UNOMI-189 : JS package, readme, minifications and license
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/83aa4115 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/83aa4115 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/83aa4115 Branch: refs/heads/master Commit: 83aa4115549c9d418e270af01f1ef74fe66a513d Parents: e13e8a1 Author: tdraier <dra...@apache.org> Authored: Thu Sep 20 15:17:38 2018 +0200 Committer: tdraier <dra...@apache.org> Committed: Thu Sep 20 15:17:38 2018 +0200 ---------------------------------------------------------------------- .gitignore | 2 +- extensions/web-tracker/README.md | 87 +- extensions/web-tracker/javascript/LICENSE | 201 + extensions/web-tracker/javascript/README.md | 52 + .../javascript/dist/unomi-tracker.js | 12457 +++++++++++++++++ .../javascript/dist/unomi-tracker.min.js | 28 + extensions/web-tracker/javascript/package.json | 37 + extensions/web-tracker/javascript/snippet.js | 84 + .../web-tracker/javascript/snippet.min.js | 1 + .../analytics.js-integration-apache-unomi.js | 483 + extensions/web-tracker/javascript/src/index.js | 50 + .../web-tracker/javascript/src/integrations.js | 22 + .../web-tracker/javascript/src/license.js | 18 + extensions/web-tracker/javascript/yarn.lock | 3147 +++++ .../wab/javascript/dist/unomi-tracker.js | 12431 ---------------- .../wab/javascript/dist/unomi-tracker.min.js | 4 - .../web-tracker/wab/javascript/package.json | 30 - .../web-tracker/wab/javascript/snippet.js | 84 - .../web-tracker/wab/javascript/snippet.min.js | 1 - .../analytics.js-integration-apache-unomi.js | 483 - .../web-tracker/wab/javascript/src/index.js | 50 - .../wab/javascript/src/integrations.js | 22 - extensions/web-tracker/wab/javascript/yarn.lock | 3141 ----- .../web-tracker/wab/src/main/webapp/index.html | 2 +- .../src/main/webapp/javascript/unomi-tracker.js | 46 +- .../main/webapp/javascript/unomi-tracker.min.js | 30 +- 26 files changed, 16656 insertions(+), 16337 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/83aa4115/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index 134bd4c..a2a2e15 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ target .classpath .project - +node_modules /src/main/webapp/META-INF/MANIFEST.MF /**/.idea *.iml http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/83aa4115/extensions/web-tracker/README.md ---------------------------------------------------------------------- diff --git a/extensions/web-tracker/README.md b/extensions/web-tracker/README.md index 2cc182a..1c8c63b 100644 --- a/extensions/web-tracker/README.md +++ b/extensions/web-tracker/README.md @@ -23,83 +23,18 @@ This extension is providing the web tracker to start collecting visitors data on ## Getting started +Extension can be tested at : `http://localhost:8181/tracker/index.html` + +In your page include unomiOptions and include code snippet from `snippet.min.js` : + ```html <script type="text/javascript"> - window.unomiTracker || (window.unomiTracker = {}); - window.unomiTracker_queue || (window.unomiTracker_queue = []); - (function() { - var methods = ['trackSubmit', 'trackClick', 'trackLink', 'trackForm', 'initialize', 'pageview', 'identify', 'reset', 'group', - 'track', 'ready', 'alias', 'debug', 'page', 'once', 'off', 'on']; - - var factory = function(method) { - return function () { - var args = Array.prototype.slice.call(arguments); - args.unshift(method); - window.unomiTracker_queue.push(args); - return window.unomiTracker; - }; + var unomiOption = { + scope: 'realEstateManager', + url: 'http://localhost:8181' }; - - // For each of our methods, generate a queueing stub. - for (var i = 0; i < methods.length; i++) { - var method = methods[i]; - window.unomiTracker[method] = factory(method); - } - })(); - - // Define a method to load Analytics.js from our CDN, - // and that will be sure to only ever load it once. - unomiTracker.load = function(callback, option) { - console.log('load'); - // Create an async script element based on your key. - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - // TODO we might want to add a check on the url to see if it ends with / or not - script.src = option.url + '/tracker/javascript/dist/unomi-tracker.js'; - - if (script.addEventListener) { - script.addEventListener('load', function(e) { - if (typeof callback === 'function') { - callback(e); - } - }, false); - } else { - script.onreadystatechange = function () { - if (this.readyState == 'complete' || this.readyState == 'loaded') { - callback(window.event); - } - }; - } - - // Insert our script next to the first script element. - var first = document.getElementsByTagName('script')[0]; - first.parentNode.insertBefore(script, first); - }; - - var option = { - scope: 'realEstateManager', - url: 'http://localhost:8181' - }; - - unomiTracker.load(function () { - unomiTracker.initialize({ - 'Apache Unomi': option - }); - - // Loop through the interim analytics queue and reapply the calls to their - // proper analytics.js method. - while (window.unomiTracker_queue.length > 0) { - var item = window.unomiTracker_queue.shift(); - var method = item.shift(); - if (unomiTracker[method]) { - unomiTracker[method].apply(unomiTracker, item); - } - } - }, option); - - unomiTracker.ready(function () { - unomiTracker.page(); - }); + window.unomiTracker||(window.unomiTracker={}),function(){for(var e=[],r=["trackSubmit","trackClick","trackLink","trackForm","initialize","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"],n=0;n<r.length;n++){var t=r[n];window.unomiTracker[t]=function(r){return function(){var n=Array.prototype.slice.call(arguments);return n.unshift(r),e.push(n),window.unomiTracker}}(t)}unomiTracker.load=function(e,r){var n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=r.url+"/tracker/javascript/unomi-tracker.js",n.addEventListener?n.addEventListener("load",function(r){"function"==typeof e&&e(r)},!1):n.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||e(window.event)};var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(n,t)},unomiTracker.load(function(r){for(unomiTracker.initialize({"Apache Unomi":r});e.length>0;){var n=e.shift(),t=n.shift();unomiTracker[t]&&unom iTracker[t].apply(unomiTracker,n)}},unomiOption),unomiTracker.page()}(); </script> -``` \ No newline at end of file +``` + +`window.unomiTracker` can be used to send additional events when needed. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/83aa4115/extensions/web-tracker/javascript/LICENSE ---------------------------------------------------------------------- diff --git a/extensions/web-tracker/javascript/LICENSE b/extensions/web-tracker/javascript/LICENSE new file mode 100644 index 0000000..f49a4e1 --- /dev/null +++ b/extensions/web-tracker/javascript/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/83aa4115/extensions/web-tracker/javascript/README.md ---------------------------------------------------------------------- diff --git a/extensions/web-tracker/javascript/README.md b/extensions/web-tracker/javascript/README.md new file mode 100644 index 0000000..d16a01a --- /dev/null +++ b/extensions/web-tracker/javascript/README.md @@ -0,0 +1,52 @@ +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one or more + ~ contributor license agreements. See the NOTICE file distributed with + ~ this work for additional information regarding copyright ownership. + ~ The ASF licenses this file to You under the Apache License, Version 2.0 + ~ (the "License"); you may not use this file except in compliance with + ~ the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + + +Apache Unomi Web Tracker +================================= + +This is the web tracker for apache-unomi ( http://unomi.apache.org/ ) + +It's included in unomi server, and can be served directly by unomi : https://github.com/apache/incubator-unomi/tree/master/extensions/web-tracker + +This package can be used in a JS app to interact with unomi. + +## Getting started + +Adds tracker to your app : + +`npm add unomi-analytics` + +Then + +```javascript +unomiTracker.initialize({ + 'Apache Unomi': { + scope: 'my-app', + url: 'http://unomi:8181' + } + }); + +unomiTracker.ready(function() { + console.log("Unomi context loaded - profile id : "+window.cxs.profileId + ", sessionId="+window.cxs.sessionId); +}); +``` + +Then send events : +```javascript +unomiTracker.page() +```