You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by js...@apache.org on 2022/07/04 13:44:59 UTC

[unomi] branch UNOMI-609-remove-web-tracker created (now 597254db1)

This is an automated email from the ASF dual-hosted git repository.

jsinovassinnaik pushed a change to branch UNOMI-609-remove-web-tracker
in repository https://gitbox.apache.org/repos/asf/unomi.git


      at 597254db1 UNOMI-609 : remove web tracker

This branch includes the following new commits:

     new 597254db1 UNOMI-609 : remove web tracker

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[unomi] 01/01: UNOMI-609 : remove web tracker

Posted by js...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jsinovassinnaik pushed a commit to branch UNOMI-609-remove-web-tracker
in repository https://gitbox.apache.org/repos/asf/unomi.git

commit 597254db130f0b85ac357db9fbee678b48eba545
Author: jsinovassin <js...@jahia.com>
AuthorDate: Mon Jul 4 15:44:49 2022 +0200

    UNOMI-609 : remove web tracker
---
 extensions/pom.xml                                 |    1 -
 extensions/web-tracker/README.md                   |   48 -
 extensions/web-tracker/javascript/.gitignore       |    1 -
 extensions/web-tracker/javascript/.npmignore       |    7 -
 .../web-tracker/javascript/NPM-RELEASE-GUIDE.md    |   22 -
 extensions/web-tracker/javascript/README.md        |  111 --
 extensions/web-tracker/javascript/package.json     |   36 -
 extensions/web-tracker/javascript/pom.xml          |  114 --
 .../src/analytics.js-integration-apache-unomi.js   |  626 -------
 extensions/web-tracker/javascript/src/index.js     |   50 -
 .../web-tracker/javascript/src/integrations.js     |   22 -
 extensions/web-tracker/javascript/src/license.js   |   18 -
 extensions/web-tracker/javascript/src/snippet.js   |   86 -
 extensions/web-tracker/javascript/yarn.lock        | 1756 --------------------
 extensions/web-tracker/karaf-kar/pom.xml           |   79 -
 .../karaf-kar/src/main/feature/feature.xml         |   27 -
 extensions/web-tracker/pom.xml                     |   37 -
 extensions/web-tracker/wab/.gitignore              |    3 -
 extensions/web-tracker/wab/pom.xml                 |   85 -
 .../META-INF/cxs/rules/form-mapping-example.json   |   52 -
 .../wab/src/main/webapp/basic_test.html            |   33 -
 .../web-tracker/wab/src/main/webapp/index.html     |  213 ---
 kar/pom.xml                                        |    5 -
 kar/src/main/feature/feature.xml                   |    1 -
 manual/src/archives/1.4/asciidoc/index.adoc        |    2 +-
 manual/src/main/asciidoc/5-min-quickstart.adoc     |    2 -
 manual/src/main/asciidoc/builtin-event-types.adoc  |    8 +-
 manual/src/main/asciidoc/index.adoc                |    2 -
 manual/src/main/asciidoc/request-examples.adoc     |    1 -
 manual/src/main/asciidoc/web-tracker.adoc          |  380 -----
 package/pom.xml                                    |   10 -
 src/main/resources/assemblies/source-shared.xml    |    5 +-
 .../resources/OSGI-INF/blueprint/blueprint.xml     |    1 -
 33 files changed, 6 insertions(+), 3838 deletions(-)

diff --git a/extensions/pom.xml b/extensions/pom.xml
index 5b7c58d8c..0a88f860e 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -38,7 +38,6 @@
         <module>salesforce-connector</module>
         <module>unomi-mailchimp</module>
         <module>weather-update</module>
-        <module>web-tracker</module>
         <module>groovy-actions</module>
         <module>json-schema</module>
     </modules>
diff --git a/extensions/web-tracker/README.md b/extensions/web-tracker/README.md
deleted file mode 100644
index 9a05287f1..000000000
--- a/extensions/web-tracker/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-  ~ 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 extension is providing the web tracker to start collecting visitors data on your website. 
-The tracker is implemented as an integration of [analytics.js](https://github.com/segmentio/analytics.js) for Unomi.
-
-## 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">
-        var unomiOption = {
-            scope: 'realEstateManager',
-            url: 'http://localhost:8181'
-        };
-        window.unomiTracker||(window.unomiTracker={}),function(){function e(e){for(unomiTracker.initialize({"Apache Unomi":unomiOption});n.length>0;){var r=n.shift(),t=r.shift();unomiTracker[t]&&unomiTracker[t].apply(unomiTracker,r)}}for(var n=[],r=["trackSubmit","trackClick","trackLink","trackForm","initialize","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","personalize"],t=0;t<r.length;t++){var i=r[t];window.unomiTracker[i]=function(e){re [...]
-</script>
-```
-
-`window.unomiTracker` can be used to send additional events when needed.
-
-Check analytics.js API [here](https://segment.com/docs/sources/website/analytics.js/). All methods can be used on `unomiTracker` object, although not all event types are supported by Unomi intergation.
-
-## How to contribute
-
-The source code is in the folder javascript with a package.json, the file to update is `analytics.js-integration-apache-unomi.js` apply your modification in this file then use the command `yarn build` to compile a new JS file.  
-Then you can use the test page to try your changes `http://localhost:8181/tracker/index.html`.  
diff --git a/extensions/web-tracker/javascript/.gitignore b/extensions/web-tracker/javascript/.gitignore
deleted file mode 100644
index 1521c8b76..000000000
--- a/extensions/web-tracker/javascript/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-dist
diff --git a/extensions/web-tracker/javascript/.npmignore b/extensions/web-tracker/javascript/.npmignore
deleted file mode 100644
index 723a4b525..000000000
--- a/extensions/web-tracker/javascript/.npmignore
+++ /dev/null
@@ -1,7 +0,0 @@
-node
-node_modules
-target
-NPM-RELEASE-GUIDE.md
-pom.xml
-yarn.lock
-*.iml
\ No newline at end of file
diff --git a/extensions/web-tracker/javascript/NPM-RELEASE-GUIDE.md b/extensions/web-tracker/javascript/NPM-RELEASE-GUIDE.md
deleted file mode 100644
index 8f30071e8..000000000
--- a/extensions/web-tracker/javascript/NPM-RELEASE-GUIDE.md
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
-  ~ 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.
-  -->
-
-Guide for releasing the Javascript project to the Node Package Manage central repository
-
-1. mvn clean install 
-2. yarn publish
-
diff --git a/extensions/web-tracker/javascript/README.md b/extensions/web-tracker/javascript/README.md
deleted file mode 100644
index 2ab1d5ab1..000000000
--- a/extensions/web-tracker/javascript/README.md
+++ /dev/null
@@ -1,111 +0,0 @@
-<!--
-  ~ 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 Javascript Library
-===========================================
-
-This is the web tracker for apache-unomi ( http://unomi.apache.org/ )
-
-This package can be used in a Javascript application to interact with Apache 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);
-});
-```
-
-## Implicit page view event
-
-In the initialize call, the tracker will generate an implicit page view event, which by default will be populated with 
-the following information: 
-
-```javascript
-    window.digitalData.page = window.digitalData.page || {
-        path: location.pathname + location.hash,
-        pageInfo: {
-            pageName: document.title,
-            pageID : location.pathname + location.hash,
-            pagePath : location.pathname + location.hash,
-            destinationURL: location.href
-        }
-    }
-```
-
-Now if you want to provide your own custom page information for the initial page view, you can simply do it like this:
-
-````javascript
-    unomiTracker.initialize({
-            scope: 'myScope',
-            url: 'http://unomi:8181', // we use an empty URL to make it relative to this page.
-            initialPageProperties: {
-                path: path,
-                pageInfo: {
-                    destinationURL: location.href,
-                    tags: ["tag1", "tag2", "tag3"],
-                    categories: ["category1", "category2", "category3"]
-                },
-                interests: {
-                    "interest1": 1,
-                    "interest2": 2,
-                    "interest3": 3
-                }
-            }
-        });
-````
-
-Also note that the FIRST call to unomiTracker.page() will be IGNORED because of this initial page view. This is the 
-way that the Analytics.js library handles it. So make sure you are aware of this when calling it. This is to avoid having
-two page views on a single call and to be compatible with old versions that did use the explicit call.
-
-## Sending events
-
-Here are some examples of sending events :
-
-```javascript
-unomiTracker.page() // first call will be ignored as the initial page load is done in the initialize method
-
-unomiTracker.identify({
-    nickname: 'Amazing Grace',
-    favoriteCompiler: 'A-0',
-    industry: 'Computer Science'
-});
-
-unomiTracker.track('articleCompleted', {
-    title: 'How to Create a Tracking Plan',
-    course: 'Intro to Analytics'
-});
-
-```
-
-As the Unomi Tracker uses the Analytics.JS API, you can find more information about it [here](https://segment.com/docs/sources/website/analytics.js/). 
-All methods can be used on `unomiTracker` object, although not all event types are supported by Unomi integration.
diff --git a/extensions/web-tracker/javascript/package.json b/extensions/web-tracker/javascript/package.json
deleted file mode 100644
index a827d8528..000000000
--- a/extensions/web-tracker/javascript/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "name": "unomi-analytics",
-  "version": "1.0.9",
-  "description": "The Apache Unomi analytics.js integration.",
-  "main": "dist/unomi-tracker.js",
-  "keywords": [
-    "unomi",
-    "analytics.js",
-    "apache"
-  ],
-  "author": "Apache Software Foundation",
-  "license": "Apache-2.0",
-  "scripts": {
-    "build": "yarn browserify && yarn snippet:browserify && yarn replace && yarn minify && yarn snippet:minify",
-    "browserify": "browserify src/index.js -p [ browserify-header --file src/license.js ] -s unomiTracker -o dist/unomi-tracker.js",
-    "snippet:browserify": "browserify src/snippet.js -o dist/snippet.js",
-    "replace": "replace-in-file 'analytics.require = require' '//analytics.require = require' dist/unomi-tracker.js",
-    "minify": "cd dist && uglifyjs -c -m --comments '/@license/' -o unomi-tracker.min.js --source-map url=unomi-tracker.min.js.map -- unomi-tracker.js",
-    "snippet:minify": "cd dist && uglifyjs -c -m -o snippet.min.js --source-map url=snipper.min.js.map -- snippet.js",
-    "clean": "rimraf *.log dist/*",
-    "clean:all": "yarn clean && rimraf node_modules"
-  },
-  "dependencies": {
-    "@segment/analytics.js-core": "3.10.1",
-    "@segment/analytics.js-integration": "3.2.1",
-    "extend": "^3.0.2"
-  },
-  "devDependencies": {
-    "browserify": "^16.5.1",
-    "browserify-header": "^1.0.1",
-    "replace-in-file": "^3.4.2",
-    "rimraf": "^2.6.2",
-    "uglify-js": "^3.9.2",
-    "yarn": "^1.22.4"
-  }
-}
diff --git a/extensions/web-tracker/javascript/pom.xml b/extensions/web-tracker/javascript/pom.xml
deleted file mode 100755
index 5746f3f28..000000000
--- a/extensions/web-tracker/javascript/pom.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.unomi</groupId>
-        <artifactId>unomi-web-tracker</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>unomi-web-tracker-javascript</artifactId>
-    <name>Apache Unomi :: Extension :: Web Tracker :: Javascript</name>
-    <description>This is the Javascript library that is used for the Web Tracker project</description>
-    <packaging>bundle</packaging>
-
-    <properties>
-        <yarn.arguments>build</yarn.arguments>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.unomi</groupId>
-            <artifactId>unomi-api</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient-osgi</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore-osgi</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-clean-plugin</artifactId>
-                <version>3.1.0</version>
-                <configuration>
-                    <filesets>
-                        <fileset>
-                            <directory>dist</directory>
-                            <includes>
-                                <include>*</include>
-                            </includes>
-                        </fileset>
-                    </filesets>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>com.github.eirslett</groupId>
-                <artifactId>frontend-maven-plugin</artifactId>
-                <version>1.8.0</version>
-                <executions>
-                    <execution>
-                        <id>npm install node and yarn</id>
-                        <phase>generate-resources</phase>
-                        <goals>
-                            <goal>install-node-and-yarn</goal>
-                        </goals>
-                        <configuration>
-                            <nodeVersion>${node.version}</nodeVersion>
-                            <yarnVersion>${yarn.version}</yarnVersion>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>yarn install</id>
-                        <phase>generate-resources</phase>
-                        <goals>
-                            <goal>yarn</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>yarn post-install</id>
-                        <phase>generate-resources</phase>
-                        <goals>
-                            <goal>yarn</goal>
-                        </goals>
-                        <configuration>
-                            <arguments>${yarn.arguments}</arguments>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/extensions/web-tracker/javascript/src/analytics.js-integration-apache-unomi.js b/extensions/web-tracker/javascript/src/analytics.js-integration-apache-unomi.js
deleted file mode 100644
index 631e3b87c..000000000
--- a/extensions/web-tracker/javascript/src/analytics.js-integration-apache-unomi.js
+++ /dev/null
@@ -1,626 +0,0 @@
-/*
- * 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.
- */
-'use strict';
-
-var integration = require('@segment/analytics.js-integration');
-var extend  = require('extend');
-
-var Unomi = (module.exports = integration('Apache Unomi')
-    .global('cxs')
-    .assumesPageview()
-    .readyOnLoad()
-    .option('scope', 'systemscope')
-    .option('url', 'http://localhost:8181')
-    .option('timeoutInMilliseconds', 3000)
-    .option('sessionCookieName', 'unomiSessionId')
-    .option('sessionId'));
-
-/**
- * Initialize.
- *
- * @api public
- */
-Unomi.prototype.initialize = function() {
-    var self = this;
-
-    console.info('[UNOMI] Initializing...', arguments);
-
-    this.analytics.on('invoke', function(msg) {
-        var action = msg.action();
-        var listener = 'on' + msg.action();
-        self.debug('%s %o', action, msg);
-        if (self[listener]) self[listener](msg);
-    });
-
-    this.analytics.personalize = function(personalization, callback) {
-        this.emit('invoke', {action:function() {return "personalize"}, personalization:personalization, callback:callback});
-    };
-
-    // Standard to check if cookies are enabled in this browser
-    if (!navigator.cookieEnabled) {
-        this.executeFallback();
-        return;
-    }
-
-    // digitalData come from a standard so we can keep the logic around it which can allow complex website to load more complex data
-    window.digitalData = window.digitalData || {
-        scope: self.options.scope
-    };
-
-    window.digitalData.page = window.digitalData.page || {
-        path: location.pathname + location.hash,
-        pageInfo: {
-            pageName: document.title,
-            pageID : location.pathname + location.hash,
-            pagePath : location.pathname + location.hash,
-            destinationURL: location.href
-        }
-    }
-
-    var unomiPage = window.digitalData.page;
-    if (!unomiPage) {
-        unomiPage = window.digitalData.page = { pageInfo:{} }
-    }
-    if (self.options.initialPageProperties) {
-        var props = self.options.initialPageProperties;
-        this.fillPageData(unomiPage, props);
-    }
-    window.digitalData.events = window.digitalData.events || [];
-    window.digitalData.events.push(this.buildEvent('view', this.buildPage(unomiPage), this.buildSource(this.options.scope, 'site')))
-
-    if (!self.options.sessionId) {
-        var cookie = require('component-cookie');
-
-        self.sessionId = cookie(self.options.sessionCookieName);
-        // so we should not need to implement our own
-        if (!self.sessionId || self.sessionId === '') {
-            self.sessionId = self.generateGuid();
-            cookie(self.options.sessionCookieName, self.sessionId);
-        }
-    } else {
-        this.sessionId = self.options.sessionId;
-    }
-
-    setTimeout(self.loadContext.bind(self), 0);
-};
-
-/**
- * Loaded.
- *
- * @api private
- * @return {boolean}
- */
-Unomi.prototype.loaded = function() {
-    return !!window.cxs;
-};
-
-/**
- * Page.
- *
- * @api public
- * @param {Page} page
- */
-Unomi.prototype.page = function(page) {
-    var unomiPage = { };
-    this.fillPageData(unomiPage, page.json().properties);
-
-    this.collectEvent(this.buildEvent('view', this.buildPage(unomiPage), this.buildSource(this.options.scope, 'site')));
-};
-
-Unomi.prototype.fillPageData = function(unomiPage, props) {
-    unomiPage.attributes = [];
-    unomiPage.consentTypes = [];
-    unomiPage.interests = props.interests || {};
-    unomiPage.pageInfo = extend({}, unomiPage.pageInfo, props.pageInfo);
-    unomiPage.pageInfo.pageName = unomiPage.pageInfo.pageName || props.title;
-    unomiPage.pageInfo.pageID = unomiPage.pageInfo.pageID || props.path;
-    unomiPage.pageInfo.pagePath = unomiPage.pageInfo.pagePath || props.path;
-    unomiPage.pageInfo.destinationURL = unomiPage.pageInfo.destinationURL || props.url;
-    unomiPage.pageInfo.referringURL = unomiPage.pageInfo.referringURL || props.referrer;
-    this.processReferrer();
-};
-
-Unomi.prototype.processReferrer = function() {
-    var referrerURL = document.referrer;
-    if (referrerURL) {
-        // parse referrer URL
-        var referrer = document.createElement('a');
-        referrer.href = referrerURL;
-
-        // only process referrer if it's not coming from the same site as the current page
-        var local = document.createElement('a');
-        local.href = document.URL;
-        if (referrer.host !== local.host) {
-            // get search element if it exists and extract search query if available
-            var search = referrer.search;
-            var query = undefined;
-            if (search && search != '') {
-                // parse parameters
-                var queryParams = [], param;
-                var queryParamPairs = search.slice(1).split('&');
-                for (var i = 0; i < queryParamPairs.length; i++) {
-                    param = queryParamPairs[i].split('=');
-                    queryParams.push(param[0]);
-                    queryParams[param[0]] = param[1];
-                }
-
-                // try to extract query: q is Google-like (most search engines), p is Yahoo
-                query = queryParams.q || queryParams.p;
-                query = decodeURIComponent(query).replace(/\+/g, ' ');
-            }
-
-            // add data to digitalData
-            if (window.digitalData && window.digitalData.page && window.digitalData.page.pageInfo) {
-                window.digitalData.page.pageInfo.referrerHost = referrer.host;
-                window.digitalData.page.pageInfo.referrerQuery = query;
-            }
-
-            // register referrer event
-            this.registerEvent(this.buildEvent('viewFromReferrer', this.buildTargetPage()));
-        }
-    }
-};
-
-
-/**
- * Identify.
- *
- * @api public
- * @param {Identify} identify
- */
-Unomi.prototype.identify = function(identify) {
-    this.collectEvent(this.buildEvent("identify",
-        this.buildTarget(identify.userId(), "analyticsUser", identify.traits()),
-        this.buildSource(this.options.scope, 'site', identify.context())));
-};
-
-/**
- * ontrack.
- *
- * @api private
- * @param {Track} track
- */
-Unomi.prototype.track = function(track) {
-    // we use the track event name to know that we are submitted a form because Analytics.js trackForm method doesn't give
-    // us another way of knowing that we are processing a form.
-    if (track.event() && track.event().indexOf("form") === 0) {
-        var form = document.forms[track.properties().formName];
-        var formEvent = this.buildFormEvent(form.name);
-        formEvent.properties = this.extractFormData(form);
-        this.collectEvent(formEvent);
-    } else {
-        this.collectEvent(this.buildEvent(track.event(),
-            this.buildTargetPage(),
-            this.buildSource(this.options.scope, 'site', track.context()),
-            track.properties()
-        ));
-    }
-};
-
-/**
- * This function is used to load the current context in the page
- *
- * @param {boolean} [skipEvents=false] Should we send the events
- * @param {boolean} [invalidate=false] Should we invalidate the current context
- */
-Unomi.prototype.loadContext = function (skipEvents, invalidate) {
-    this.contextLoaded = true;
-    var jsonData = {
-        requiredProfileProperties: ['j:nodename'],
-        source: this.buildPage(window.digitalData.page)
-    };
-    if (!skipEvents) {
-        jsonData.events = window.digitalData.events
-    }
-    if (window.digitalData.personalizationCallback) {
-        jsonData.personalizations = window.digitalData.personalizationCallback.map(function (x) {
-            return x.personalization
-        })
-    }
-
-    jsonData.sessionId = this.sessionId;
-
-    var contextUrl = this.options.url + '/cxs/context.json';
-    if (invalidate) {
-        contextUrl += '?invalidateSession=true&invalidateProfile=true';
-    }
-
-    var self = this;
-
-    var onSuccess = function (xhr) {
-
-        window.cxs = JSON.parse(xhr.responseText);
-
-        self.ready();
-
-        if (window.digitalData.loadCallbacks) {
-            console.info('[UNOMI] Found context server load callbacks, calling now...');
-            for (var i = 0; i < window.digitalData.loadCallbacks.length; i++) {
-                window.digitalData.loadCallbacks[i](digitalData);
-            }
-        }
-        if (window.digitalData.personalizationCallback) {
-            console.info('[UNOMI] Found context server personalization, calling now...');
-            for (var i = 0; i < window.digitalData.personalizationCallback.length; i++) {
-                window.digitalData.personalizationCallback[i].callback(cxs.personalizations[window.digitalData.personalizationCallback[i].personalization.id]);
-            }
-        }
-    };
-
-    this.ajax({
-        url: contextUrl,
-        type: 'POST',
-        async: true,
-        contentType: 'text/plain;charset=UTF-8', // Use text/plain to avoid CORS preflight
-        jsonData: jsonData,
-        dataType: 'application/json',
-        invalidate: invalidate,
-        success: onSuccess,
-        error: this.executeFallback
-    });
-
-    console.info('[UNOMI] Context loading...');
-};
-
-Unomi.prototype.onpersonalize = function (msg) {
-    if (this.contextLoaded) {
-        console.error('[UNOMI] Already loaded, too late...');
-        return;
-    }
-    window.digitalData = window.digitalData || {
-        scope: this.options.scope
-    };
-    window.digitalData.personalizationCallback = window.digitalData.personalizationCallback || [];
-    window.digitalData.personalizationCallback.push({personalization: msg.personalization, callback: msg.callback});
-};
-
-/**
- * This function return the basic structure for an event, it must be adapted to your need
- *
- * @param {string} eventType The name of your event
- * @param {object} [target] The target object for your event can be build with this.buildTarget(targetId, targetType, targetProperties)
- * @param {object} [source] The source object for your event can be build with this.buildSource(sourceId, sourceType, sourceProperties)
- * @param {object} [properties] a map of properties for the event
- * @returns {{eventType: *, scope}}
- */
-Unomi.prototype.buildEvent = function (eventType, target, source, properties) {
-    var event = {
-        eventType: eventType,
-        scope: window.digitalData.scope
-    };
-
-    if (target) {
-        event.target = target;
-    }
-
-    if (source) {
-        event.source = source;
-    }
-
-    if (properties) {
-        event.properties = properties;
-    }
-
-    return event;
-};
-
-/**
- * This function return an event of type form
- *
- * @param {string} formName The HTML name of id of the form to use in the target of the event
- * @returns {*|{eventType: *, scope, source: {scope, itemId: string, itemType: string, properties: {}}, target: {scope, itemId: string, itemType: string, properties: {}}}}
- */
-Unomi.prototype.buildFormEvent = function (formName) {
-    return this.buildEvent('form', this.buildTarget(formName, 'form'), this.buildSourcePage());
-};
-
-/**
- * This function return the source object for a source of type page
- *
- * @returns {*|{scope, itemId: *, itemType: *}}
- */
-Unomi.prototype.buildTargetPage = function () {
-    return this.buildTarget(window.digitalData.page.pageInfo.pageID, 'page', window.digitalData.page);
-};
-
-/**
- * This function return the source object for a source of type page
- *
- * @returns {*|{scope, itemId: *, itemType: *}}
- */
-Unomi.prototype.buildSourcePage = function () {
-    return this.buildSource(window.digitalData.page.pageInfo.pageID, 'page', window.digitalData.page);
-};
-
-
-/**
- * This function return the source object for a source of type page
- *
- * @returns {*|{scope, itemId: *, itemType: *}}
- */
-Unomi.prototype.buildPage = function (page) {
-    return this.buildSource(page.pageInfo.pageID, 'page', page);
-};
-
-/**
- * This function return the basic structure for the target of your event
- *
- * @param {string} targetId The ID of the target
- * @param {string} targetType The type of the target
- * @param {object} [targetProperties] The optional properties of the target
- * @returns {{scope, itemId: *, itemType: *}}
- */
-Unomi.prototype.buildTarget = function (targetId, targetType, targetProperties) {
-    return this.buildObject(targetId, targetType, targetProperties);
-};
-
-/**
- * This function return the basic structure for the source of your event
- *
- * @param {string} sourceId The ID of the source
- * @param {string} sourceType The type of the source
- * @param {object} [sourceProperties] The optional properties of the source
- * @returns {{scope, itemId: *, itemType: *}}
- */
-Unomi.prototype.buildSource = function (sourceId, sourceType, sourceProperties) {
-    return this.buildObject(sourceId, sourceType, sourceProperties);
-};
-
-
-/**
- * This function will send an event to Apache Unomi
- * @param {object} event The event object to send, you can build it using this.buildEvent(eventType, target, source)
- * @param {function} successCallback will be executed in case of success
- * @param {function} errorCallback will be executed in case of error
- */
-Unomi.prototype.collectEvent = function (event, successCallback, errorCallback) {
-    this.collectEvents({events: [event]}, successCallback, errorCallback);
-};
-
-/**
- * This function will send the events to Apache Unomi
- *
- * @param {object} events Javascript object { events: [event1, event2] }
- * @param {function} successCallback will be executed in case of success
- * @param {function} errorCallback will be executed in case of error
- */
-Unomi.prototype.collectEvents = function (events, successCallback, errorCallback) {
-    events.sessionId = this.sessionId;
-
-    var data = JSON.stringify(events);
-    this.ajax({
-        url: this.options.url + '/cxs/eventcollector',
-        type: 'POST',
-        async: true,
-        contentType: 'text/plain;charset=UTF-8', // Use text/plain to avoid CORS preflight
-        data: data,
-        dataType: 'application/json',
-        success: successCallback,
-        error: errorCallback
-    });
-};
-
-/*******************************/
-/* Private Function under this */
-/*******************************/
-
-Unomi.prototype.registerEvent = function (event) {
-    if (window.digitalData) {
-        if (window.cxs) {
-            console.error('[UNOMI] already loaded, too late...');
-        } else {
-            window.digitalData.events = window.digitalData.events || [];
-            window.digitalData.events.push(event);
-        }
-    } else {
-        window.digitalData = {};
-        window.digitalData.events = window.digitalData.events || [];
-        window.digitalData.events.push(event);
-    }
-};
-
-Unomi.prototype.registerCallback = function (onLoadCallback) {
-    if (window.digitalData) {
-        if (window.cxs) {
-            console.info('[UNOMI] digitalData object loaded, calling on load callback immediately and registering update callback...');
-            if (onLoadCallback) {
-                onLoadCallback(window.digitalData);
-            }
-        } else {
-            console.info('[UNOMI] digitalData object present but not loaded, registering load callback...');
-            if (onLoadCallback) {
-                window.digitalData.loadCallbacks = window.digitalData.loadCallbacks || [];
-                window.digitalData.loadCallbacks.push(onLoadCallback);
-            }
-        }
-    } else {
-        console.info('[UNOMI] No digital data object found, creating and registering update callback...');
-        window.digitalData = {};
-        if (onLoadCallback) {
-            window.digitalData.loadCallbacks = [];
-            window.digitalData.loadCallbacks.push(onLoadCallback);
-        }
-    }
-};
-
-/**
- * This is an utility function to generate a new UUID
- *
- * @returns {string}
- */
-Unomi.prototype.generateGuid = function () {
-    function s4() {
-        return Math.floor((1 + Math.random()) * 0x10000)
-            .toString(16)
-            .substring(1);
-    }
-
-    return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
-        s4() + '-' + s4() + s4() + s4();
-};
-
-Unomi.prototype.buildObject = function (itemId, itemType, properties) {
-    var object = {
-        scope: window.digitalData.scope,
-        itemId: itemId,
-        itemType: itemType
-    };
-
-    if (properties) {
-        object.properties = properties;
-    }
-
-    return object;
-};
-
-/**
- * This is an utility function to execute AJAX call
- *
- * @param {object} ajaxOptions
- */
-Unomi.prototype.ajax = function (ajaxOptions) {
-    var xhr = new XMLHttpRequest();
-    if ('withCredentials' in xhr) {
-        xhr.open(ajaxOptions.type, ajaxOptions.url, ajaxOptions.async);
-        xhr.withCredentials = true;
-    } else if (typeof XDomainRequest != 'undefined') {
-        xhr = new XDomainRequest();
-        xhr.open(ajaxOptions.type, ajaxOptions.url);
-    }
-
-    if (ajaxOptions.contentType) {
-        xhr.setRequestHeader('Content-Type', ajaxOptions.contentType);
-    }
-    if (ajaxOptions.dataType) {
-        xhr.setRequestHeader('Accept', ajaxOptions.dataType);
-    }
-
-    if (ajaxOptions.responseType) {
-        xhr.responseType = ajaxOptions.responseType;
-    }
-
-    var requestExecuted = false;
-    if (this.options.timeoutInMilliseconds !== -1) {
-        setTimeout(function () {
-            if (!requestExecuted) {
-                console.error('[UNOMI] XML request timeout, url: ' + ajaxOptions.url);
-                requestExecuted = true;
-                if (ajaxOptions.error) {
-                    ajaxOptions.error(xhr);
-                }
-            }
-        }, this.options.timeoutInMilliseconds);
-    }
-
-    xhr.onreadystatechange = function () {
-        if (!requestExecuted) {
-            if (xhr.readyState === 4) {
-                if (xhr.status === 200 || xhr.status === 204 || xhr.status === 304) {
-                    if (xhr.responseText != null) {
-                        requestExecuted = true;
-                        if (ajaxOptions.success) {
-                            ajaxOptions.success(xhr);
-                        }
-                    }
-                } else {
-                    requestExecuted = true;
-                    if (ajaxOptions.error) {
-                        ajaxOptions.error(xhr);
-                    }
-                    console.error('[UNOMI] XML request error: ' + xhr.statusText + ' (' + xhr.status + ')');
-                }
-            }
-        }
-    };
-
-    if (ajaxOptions.jsonData) {
-        xhr.send(JSON.stringify(ajaxOptions.jsonData));
-    } else if (ajaxOptions.data) {
-        xhr.send(ajaxOptions.data);
-    } else {
-        xhr.send();
-    }
-};
-
-Unomi.prototype.executeFallback = function () {
-    console.warn('[UNOMI] execute fallback');
-    window.cxs = {};
-    for (var index in window.digitalData.loadCallbacks) {
-        window.digitalData.loadCallbacks[index]();
-    }
-    if (window.digitalData.personalizationCallback) {
-        for (var i = 0; i < window.digitalData.personalizationCallback.length; i++) {
-            window.digitalData.personalizationCallback[i].callback([window.digitalData.personalizationCallback[i].personalization.strategyOptions.fallback]);
-        }
-    }
-};
-
-Unomi.prototype.extractFormData = function (form) {
-    var params = {};
-    for (var i = 0; i < form.elements.length; i++) {
-        var e = form.elements[i];
-        if (typeof(e.name) != 'undefined') {
-            switch (e.nodeName) {
-                case 'TEXTAREA':
-                case 'INPUT':
-                    switch (e.type) {
-                        case 'checkbox':
-                            var checkboxes = document.querySelectorAll('input[name="' + e.name + '"]');
-                            if (checkboxes.length > 1) {
-                                if (!params[e.name]) {
-                                    params[e.name] = [];
-                                }
-                                if (e.checked) {
-                                    params[e.name].push(e.value);
-                                }
-
-                            }
-                            break;
-                        case 'radio':
-                            if (e.checked) {
-                                params[e.name] = e.value;
-                            }
-                            break;
-                        default:
-                            if (!e.value || e.value === '') {
-                                // ignore element if no value is provided
-                                break;
-                            }
-                            params[e.name] = e.value;
-                    }
-                    break;
-                case 'SELECT':
-                    if (e.options && e.options[e.selectedIndex]) {
-                        if (e.multiple) {
-                            params[e.name] = [];
-                            for (var j = 0; j < e.options.length; j++) {
-                                if (e.options[j].selected) {
-                                    params[e.name].push(e.options[j].value);
-                                }
-                            }
-                        } else {
-                            params[e.name] = e.options[e.selectedIndex].value;
-                        }
-                    }
-                    break;
-                default:
-                    console.warn("[UNOMI] " + e.nodeName + " form element type not implemented and will not be tracked.");
-            }
-        }
-    }
-    return params;
-};
diff --git a/extensions/web-tracker/javascript/src/index.js b/extensions/web-tracker/javascript/src/index.js
deleted file mode 100644
index d49dc7160..000000000
--- a/extensions/web-tracker/javascript/src/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-/**
- * Analytics.js
- *
- * (C) 2017 Segment Inc.
- */
-
-var analytics = require('@segment/analytics.js-core');
-var Integrations = require('./integrations');
-
-/**
- * Expose the `analytics` singleton.
- */
-
-module.exports = exports = analytics;
-
-/**
- * Expose require.
- */
-
-analytics.require = require
-
-/**
- * Expose `VERSION`.
- */
-
-exports.VERSION = require('../package.json').version;
-
-/**
- * Add integrations.
- */
-
-for (var integration in Integrations) {
-    analytics.use(Integrations[integration]);
-}
\ No newline at end of file
diff --git a/extensions/web-tracker/javascript/src/integrations.js b/extensions/web-tracker/javascript/src/integrations.js
deleted file mode 100644
index 7d2ebcd5a..000000000
--- a/extensions/web-tracker/javascript/src/integrations.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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.
- */
-/* eslint quote-props: 0 */
-'use strict';
-
-module.exports = {
-    'apache-unomi': require('./analytics.js-integration-apache-unomi')
-};
diff --git a/extensions/web-tracker/javascript/src/license.js b/extensions/web-tracker/javascript/src/license.js
deleted file mode 100644
index 9223e0a21..000000000
--- a/extensions/web-tracker/javascript/src/license.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * 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.
- *
- * @license Apache-2.0
- */
diff --git a/extensions/web-tracker/javascript/src/snippet.js b/extensions/web-tracker/javascript/src/snippet.js
deleted file mode 100644
index c63f8f032..000000000
--- a/extensions/web-tracker/javascript/src/snippet.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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.
- */
-window.unomiTracker || (window.unomiTracker = {});
-(function () {
-    var unomiTracker_queue = [];
-
-    var methods = ['trackSubmit', 'trackClick', 'trackLink', 'trackForm', 'initialize', 'pageview', 'identify', 'reset', 'group', 'track', 'ready', 'alias', 'debug', 'page', 'once', 'off', 'on', 'personalize'];
-
-    var factory = function (method) {
-        return function () {
-            var args = Array.prototype.slice.call(arguments);
-            args.unshift(method);
-            unomiTracker_queue.push(args);
-            return window.unomiTracker;
-        };
-    };
-
-    // 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);
-    }
-
-    function callback(e) {
-        unomiTracker.initialize({
-            'Apache Unomi': unomiOption
-        });
-
-        // Loop through the interim analytics queue and reapply the calls to their
-        // proper analytics.js method.
-        while (unomiTracker_queue.length > 0) {
-            var item = unomiTracker_queue.shift();
-            var method = item.shift();
-            if (unomiTracker[method]) {
-                unomiTracker[method].apply(unomiTracker, item);
-            }
-        }
-    }
-
-    // Define a method to load Analytics.js from our CDN,
-    // and that will be sure to only ever load it once.
-    unomiTracker.load = function() {
-        // 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 = unomiOption.url + '/tracker/unomi-tracker.min.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);
-    };
-
-    document.addEventListener('DOMContentLoaded', unomiTracker.load);
-
-    unomiTracker.page();
-})();
diff --git a/extensions/web-tracker/javascript/yarn.lock b/extensions/web-tracker/javascript/yarn.lock
deleted file mode 100644
index e45ef4f88..000000000
--- a/extensions/web-tracker/javascript/yarn.lock
+++ /dev/null
@@ -1,1756 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@ndhoule/after@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/after/-/after-1.0.0.tgz#e6d86d121448247ac742ff3a61c63fae83ee1191"
-  integrity sha1-5thtEhRIJHrHQv86YcY/roPuEZE=
-  dependencies:
-    "@ndhoule/arity" "^2.0.0"
-
-"@ndhoule/arity@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/arity/-/arity-2.0.0.tgz#26bfa0b9755ced9aea819d4e6e7a93db27a5b658"
-  integrity sha1-Jr+guXVc7ZrqgZ1ObnqT2yeltlg=
-
-"@ndhoule/clone@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/clone/-/clone-1.0.0.tgz#0f68394a95008cf360370e101924564a70927afc"
-  integrity sha1-D2g5SpUAjPNgNw4QGSRWSnCSevw=
-  dependencies:
-    component-type "^1.2.1"
-
-"@ndhoule/defaults@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@ndhoule/defaults/-/defaults-2.0.1.tgz#704aae3c601a4e4a1a10f0876a2d3253bc7d4d9b"
-  integrity sha1-cEquPGAaTkoaEPCHai0yU7x9TZs=
-  dependencies:
-    "@ndhoule/drop" "^2.0.0"
-    "@ndhoule/rest" "^2.0.0"
-
-"@ndhoule/drop@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/drop/-/drop-2.0.0.tgz#bcab1f3041555eaf84ce84e16475ff42ee949c8c"
-  integrity sha1-vKsfMEFVXq+EzoThZHX/Qu6UnIw=
-
-"@ndhoule/each@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@ndhoule/each/-/each-2.0.1.tgz#bbed372a603e0713a3193c706a73ddebc5b426a9"
-  integrity sha1-u+03KmA+BxOjGTxwanPd68W0Jqk=
-  dependencies:
-    "@ndhoule/keys" "^2.0.0"
-
-"@ndhoule/every@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@ndhoule/every/-/every-2.0.1.tgz#3907d8b6c430493dbb619c18071ce9055f8a106d"
-  integrity sha1-OQfYtsQwST27YZwYBxzpBV+KEG0=
-  dependencies:
-    "@ndhoule/each" "^2.0.1"
-
-"@ndhoule/extend@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/extend/-/extend-2.0.0.tgz#8c9aa5c9b2f0a012104ffe214cd9746572b9aeb6"
-  integrity sha1-jJqlybLwoBIQT/4hTNl0ZXK5rrY=
-
-"@ndhoule/foldl@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@ndhoule/foldl/-/foldl-2.0.1.tgz#788acedfa2cfd12ecb0b84d2beaf650d97be84f2"
-  integrity sha1-eIrO36LP0S7LC4TSvq9lDZe+hPI=
-  dependencies:
-    "@ndhoule/each" "^2.0.1"
-
-"@ndhoule/includes@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@ndhoule/includes/-/includes-2.0.1.tgz#051ff5eb042c8fa17e7158f0a8a70172e1affaa5"
-  integrity sha1-BR/16wQsj6F+cVjwqKcBcuGv+qU=
-  dependencies:
-    "@ndhoule/each" "^2.0.1"
-
-"@ndhoule/keys@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/keys/-/keys-2.0.0.tgz#3d64ae677c65a261747bf3a457c62eb292a4e0ce"
-  integrity sha1-PWSuZ3xlomF0e/OkV8YuspKk4M4=
-
-"@ndhoule/map@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@ndhoule/map/-/map-2.0.1.tgz#f5ca0a47424ea67f46e2a6d499b9e9bc886aefa8"
-  integrity sha1-9coKR0JOpn9G4qbUmbnpvIhq76g=
-  dependencies:
-    "@ndhoule/each" "^2.0.1"
-
-"@ndhoule/pick@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/pick/-/pick-2.0.0.tgz#e1eb1a6ca3243eef56daa095c3a1612c74a52156"
-  integrity sha1-4esabKMkPu9W2qCVw6FhLHSlIVY=
-
-"@ndhoule/rest@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@ndhoule/rest/-/rest-2.0.0.tgz#0346b02a964a513ed2ba24d164f01d34f2107a0f"
-  integrity sha1-A0awKpZKUT7SuiTRZPAdNPIQeg8=
-
-"@segment/analytics.js-core@3.10.1":
-  version "3.10.1"
-  resolved "https://registry.yarnpkg.com/@segment/analytics.js-core/-/analytics.js-core-3.10.1.tgz#faf983dbddb5917de3ff500843c04a2cc4236ab7"
-  integrity sha512-YfI4Zu1YQpQ+HZ0cVvnkEeFaKLJrVkQTN0P9yDPTgfHiK5aPIPyiTPvYNb17cLZX4j2PW+rvpDCi9RjVpFws0A==
-  dependencies:
-    "@ndhoule/clone" "^1.0.0"
-    "@ndhoule/defaults" "^2.0.1"
-    "@ndhoule/each" "^2.0.1"
-    "@ndhoule/extend" "^2.0.0"
-    "@ndhoule/foldl" "^2.0.1"
-    "@ndhoule/includes" "^2.0.1"
-    "@ndhoule/keys" "^2.0.0"
-    "@ndhoule/map" "^2.0.1"
-    "@ndhoule/pick" "^2.0.0"
-    "@segment/canonical" "^1.0.0"
-    "@segment/is-meta" "^1.0.0"
-    "@segment/isodate" "^1.0.2"
-    "@segment/isodate-traverse" "^1.0.1"
-    "@segment/prevent-default" "^1.0.0"
-    "@segment/send-json" "^3.0.0"
-    "@segment/store" "^1.3.20"
-    "@segment/top-domain" "^3.0.0"
-    bind-all "^1.0.0"
-    component-cookie "^1.1.2"
-    component-emitter "^1.2.1"
-    component-event "^0.1.4"
-    component-querystring "^2.0.0"
-    component-type "^1.2.1"
-    component-url "^0.2.1"
-    debug "^0.7.4"
-    extend "3.0.2"
-    inherits "^2.0.1"
-    install "^0.7.3"
-    is "^3.1.0"
-    json3 "^3.3.2"
-    new-date "^1.0.0"
-    next-tick "^0.2.2"
-    segmentio-facade "^3.0.2"
-    spark-md5 "^2.0.2"
-    uuid "^2.0.2"
-
-"@segment/analytics.js-integration@3.2.1":
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/@segment/analytics.js-integration/-/analytics.js-integration-3.2.1.tgz#a58fe1f9374d3ba98bfd2033ba3d0e1d4807a697"
-  integrity sha1-pY/h+TdNO6mL/SAzuj0OHUgHppc=
-  dependencies:
-    "@ndhoule/after" "^1.0.0"
-    "@ndhoule/clone" "^1.0.0"
-    "@ndhoule/defaults" "^2.0.1"
-    "@ndhoule/each" "^2.0.1"
-    "@ndhoule/every" "^2.0.1"
-    "@ndhoule/extend" "^2.0.0"
-    "@ndhoule/foldl" "^2.0.1"
-    "@ndhoule/includes" "^2.0.1"
-    "@segment/fmt" "^1.0.0"
-    "@segment/load-script" "^1.0.1"
-    analytics-events "^2.0.2"
-    component-bind "^1.0.0"
-    component-emitter "^1.2.0"
-    debug "^2.2.0"
-    domify "^1.4.0"
-    is "^3.1.0"
-    load-iframe "^1.0.0"
-    lodash.clonedeep "4.5.0"
-    next-tick "^0.2.2"
-    slug-component "^1.1.0"
-    to-no-case "^0.1.3"
-
-"@segment/base64-encode@^2.0.2":
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/@segment/base64-encode/-/base64-encode-2.0.2.tgz#3ac90b9c28678dfd467e76191f7b1d063673034f"
-  integrity sha1-OskLnChnjf1GfnYZH3sdBjZzA08=
-  dependencies:
-    utf8-encode "1"
-
-"@segment/canonical@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@segment/canonical/-/canonical-1.0.0.tgz#9adb1a731d29ab975493bf17a4ce4952985c4920"
-  integrity sha1-mtsacx0pq5dUk78XpM5JUphcSSA=
-
-"@segment/fmt@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@segment/fmt/-/fmt-1.0.0.tgz#7b2db58a12d8420b0a004889af048ab22765557f"
-  integrity sha1-ey21ihLYQgsKAEiJrwSKsidlVX8=
-
-"@segment/is-meta@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@segment/is-meta/-/is-meta-1.0.0.tgz#d911b3f2327b39f8abb16a282954fa26edd3b27c"
-  integrity sha1-2RGz8jJ7OfirsWooKVT6Ju3Tsnw=
-
-"@segment/isodate-traverse@^1.0.0", "@segment/isodate-traverse@^1.0.1":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@segment/isodate-traverse/-/isodate-traverse-1.1.0.tgz#4fb36f30d94c2c5a3c8a75d25c1504822a1bb9ab"
-  integrity sha1-T7NvMNlMLFo8inXSXBUEgiobuas=
-  dependencies:
-    "@segment/isodate" "^1.0.0"
-    component-each "^0.2.6"
-    component-type "^1.2.1"
-
-"@segment/isodate@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/@segment/isodate/-/isodate-1.0.2.tgz#71fef69e816b77593a80b4cfbf2d22443222eafe"
-  integrity sha1-cf72noFrd1k6gLTPvy0iRDIi6v4=
-
-"@segment/isodate@^1.0.0", "@segment/isodate@^1.0.2":
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/@segment/isodate/-/isodate-1.0.3.tgz#f44e8202d5edd277ce822785239474b2c9411d4a"
-  integrity sha512-BtanDuvJqnACFkeeYje7pWULVv8RgZaqKHWwGFnL/g/TH/CcZjkIVTfGDp/MAxmilYHUkrX70SqwnYSTNEaN7A==
-
-"@segment/load-script@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@segment/load-script/-/load-script-1.0.1.tgz#adb7a2def2c99ac248cc8e2c154fb4bb03094399"
-  integrity sha1-rbei3vLJmsJIzI4sFU+0uwMJQ5k=
-  dependencies:
-    component-type "^1.2.0"
-    next-tick "^0.2.2"
-    script-onload "^1.0.2"
-
-"@segment/prevent-default@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@segment/prevent-default/-/prevent-default-1.0.0.tgz#2ac896ee8c0249dc7af4ac032f8df900fe31892e"
-  integrity sha1-KsiW7owCSdx69KwDL435AP4xiS4=
-
-"@segment/send-json@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@segment/send-json/-/send-json-3.0.0.tgz#f79e70efbd01b62361f5a2cf3fb67e91de43135e"
-  integrity sha1-955w770BtiNh9aLPP7Z+kd5DE14=
-  dependencies:
-    "@segment/base64-encode" "^2.0.2"
-    has-cors "^1.1.0"
-    json3 "^3.3.2"
-    jsonp "^0.2.0"
-
-"@segment/store@^1.3.20":
-  version "1.3.20"
-  resolved "https://registry.yarnpkg.com/@segment/store/-/store-1.3.20.tgz#859f6a1415aa82cb92cd4d0d0265f5661c0502d4"
-  integrity sha1-hZ9qFBWqgsuSzU0NAmX1ZhwFAtQ=
-  dependencies:
-    json3 "^3.3.2"
-
-"@segment/top-domain@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@segment/top-domain/-/top-domain-3.0.0.tgz#02e5a5a4fd42a9f6cf886b05e82f104012a3c3a7"
-  integrity sha1-AuWlpP1CqfbPiGsF6C8QQBKjw6c=
-  dependencies:
-    component-cookie "^1.1.2"
-    component-url "^0.2.1"
-
-JSONStream@^1.0.3:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
-  integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
-  dependencies:
-    jsonparse "^1.2.0"
-    through ">=2.2.7 <3"
-
-acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1:
-  version "1.8.2"
-  resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
-  integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
-  dependencies:
-    acorn "^7.0.0"
-    acorn-walk "^7.0.0"
-    xtend "^4.0.2"
-
-acorn-walk@^7.0.0:
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
-  integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
-
-acorn@^7.0.0:
-  version "7.4.1"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
-  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-
-analytics-events@^2.0.2:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/analytics-events/-/analytics-events-2.2.0.tgz#f00f55946940a6357809582f6fded6ab80034b84"
-  integrity sha1-8A9VlGlApjV4CVgvb97Wq4ADS4Q=
-  dependencies:
-    "@ndhoule/foldl" "^2.0.1"
-    "@ndhoule/map" "^2.0.1"
-
-ansi-regex@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
-  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
-ansi-styles@^3.2.0, ansi-styles@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
-  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
-  dependencies:
-    color-convert "^1.9.0"
-
-asn1.js@^5.2.0:
-  version "5.4.1"
-  resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
-  integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
-  dependencies:
-    bn.js "^4.0.0"
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-    safer-buffer "^2.1.0"
-
-assert@^1.4.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
-  integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
-  dependencies:
-    object-assign "^4.1.1"
-    util "0.10.3"
-
-balanced-match@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-
-base64-js@^1.0.2:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
-  integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
-
-bind-all@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/bind-all/-/bind-all-1.0.0.tgz#0f8a316f72b3c755de7b4682adf00c65831dab0d"
-  integrity sha1-D4oxb3Kzx1Xee0aCrfAMZYMdqw0=
-  dependencies:
-    component-bind "^1.0.0"
-
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
-  version "4.11.9"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
-  integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
-
-bn.js@^5.1.1:
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b"
-  integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==
-
-brace-expansion@^1.1.7:
-  version "1.1.11"
-  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
-  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
-  dependencies:
-    balanced-match "^1.0.0"
-    concat-map "0.0.1"
-
-brorand@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
-  integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-
-browser-pack@^6.0.1:
-  version "6.1.0"
-  resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774"
-  integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==
-  dependencies:
-    JSONStream "^1.0.3"
-    combine-source-map "~0.8.0"
-    defined "^1.0.0"
-    safe-buffer "^5.1.1"
-    through2 "^2.0.0"
-    umd "^3.0.0"
-
-browser-resolve@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b"
-  integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==
-  dependencies:
-    resolve "^1.17.0"
-
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
-  integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
-  dependencies:
-    buffer-xor "^1.0.3"
-    cipher-base "^1.0.0"
-    create-hash "^1.1.0"
-    evp_bytestokey "^1.0.3"
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-browserify-cipher@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
-  integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
-  dependencies:
-    browserify-aes "^1.0.4"
-    browserify-des "^1.0.0"
-    evp_bytestokey "^1.0.0"
-
-browserify-des@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
-  integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
-  dependencies:
-    cipher-base "^1.0.1"
-    des.js "^1.0.0"
-    inherits "^2.0.1"
-    safe-buffer "^5.1.2"
-
-browserify-header@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/browserify-header/-/browserify-header-1.0.1.tgz#09437c7f6f7662194ca37959a198e83f6e356c67"
-  integrity sha512-J2RQMs0FUVPQmqHPeEGP2DaoZ3CY0U3JGdUrKC06ozfrScU3OSentN9wVXQWmKBu1rl2t/LMc4K4TVvQN/Tlng==
-  dependencies:
-    through2 "3.0.1"
-
-browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
-  integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
-  dependencies:
-    bn.js "^4.1.0"
-    randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
-  integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
-  dependencies:
-    bn.js "^5.1.1"
-    browserify-rsa "^4.0.1"
-    create-hash "^1.2.0"
-    create-hmac "^1.1.7"
-    elliptic "^6.5.3"
-    inherits "^2.0.4"
-    parse-asn1 "^5.1.5"
-    readable-stream "^3.6.0"
-    safe-buffer "^5.2.0"
-
-browserify-zlib@~0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
-  integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
-  dependencies:
-    pako "~1.0.5"
-
-browserify@^16.5.1:
-  version "16.5.2"
-  resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.2.tgz#d926835e9280fa5fd57f5bc301f2ef24a972ddfe"
-  integrity sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==
-  dependencies:
-    JSONStream "^1.0.3"
-    assert "^1.4.0"
-    browser-pack "^6.0.1"
-    browser-resolve "^2.0.0"
-    browserify-zlib "~0.2.0"
-    buffer "~5.2.1"
-    cached-path-relative "^1.0.0"
-    concat-stream "^1.6.0"
-    console-browserify "^1.1.0"
-    constants-browserify "~1.0.0"
-    crypto-browserify "^3.0.0"
-    defined "^1.0.0"
-    deps-sort "^2.0.0"
-    domain-browser "^1.2.0"
-    duplexer2 "~0.1.2"
-    events "^2.0.0"
-    glob "^7.1.0"
-    has "^1.0.0"
-    htmlescape "^1.1.0"
-    https-browserify "^1.0.0"
-    inherits "~2.0.1"
-    insert-module-globals "^7.0.0"
-    labeled-stream-splicer "^2.0.0"
-    mkdirp-classic "^0.5.2"
-    module-deps "^6.2.3"
-    os-browserify "~0.3.0"
-    parents "^1.0.1"
-    path-browserify "~0.0.0"
-    process "~0.11.0"
-    punycode "^1.3.2"
-    querystring-es3 "~0.2.0"
-    read-only-stream "^2.0.0"
-    readable-stream "^2.0.2"
-    resolve "^1.1.4"
-    shasum "^1.0.0"
-    shell-quote "^1.6.1"
-    stream-browserify "^2.0.0"
-    stream-http "^3.0.0"
-    string_decoder "^1.1.1"
-    subarg "^1.0.0"
-    syntax-error "^1.1.1"
-    through2 "^2.0.0"
-    timers-browserify "^1.0.1"
-    tty-browserify "0.0.1"
-    url "~0.11.0"
-    util "~0.10.1"
-    vm-browserify "^1.0.0"
-    xtend "^4.0.0"
-
-buffer-from@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
-  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-
-buffer-xor@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
-  integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
-
-buffer@~5.2.1:
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
-  integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
-  dependencies:
-    base64-js "^1.0.2"
-    ieee754 "^1.1.4"
-
-builtin-status-codes@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
-  integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
-
-cached-path-relative@^1.0.0, cached-path-relative@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db"
-  integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==
-
-camelcase@^5.0.0:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
-  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-chalk@^2.4.2:
-  version "2.4.2"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
-  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
-  dependencies:
-    ansi-styles "^3.2.1"
-    escape-string-regexp "^1.0.5"
-    supports-color "^5.3.0"
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
-  integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
-  dependencies:
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-cliui@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
-  integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
-  dependencies:
-    string-width "^3.1.0"
-    strip-ansi "^5.2.0"
-    wrap-ansi "^5.1.0"
-
-color-convert@^1.9.0:
-  version "1.9.3"
-  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
-  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
-  dependencies:
-    color-name "1.1.3"
-
-color-name@1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-
-combine-source-map@^0.8.0, combine-source-map@~0.8.0:
-  version "0.8.0"
-  resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b"
-  integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=
-  dependencies:
-    convert-source-map "~1.1.0"
-    inline-source-map "~0.6.0"
-    lodash.memoize "~3.0.3"
-    source-map "~0.5.3"
-
-component-bind@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
-  integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=
-
-component-cookie@^1.1.2:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/component-cookie/-/component-cookie-1.1.4.tgz#1b88b3dda4953d890163dd52fa53df374247cf8d"
-  integrity sha512-j6rzl+vHDTowvYz7Al3V0ud84O2l4YqGdA9qMj1W1nlZ5yWi7EhOd7ZSPzWFM25gZgv2OxWh6JlJYfsz2+XYow==
-  dependencies:
-    debug "2.2.0"
-
-component-each@^0.2.6:
-  version "0.2.6"
-  resolved "https://registry.yarnpkg.com/component-each/-/component-each-0.2.6.tgz#991faf31ef4fcafbad04237124d381b3394941d5"
-  integrity sha1-mR+vMe9PyvutBCNxJNOBszlJQdU=
-  dependencies:
-    component-type "1.0.0"
-    to-function "2.0.6"
-
-component-emitter@^1.2.0, component-emitter@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
-  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-component-event@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/component-event/-/component-event-0.1.4.tgz#3de78fc28782381787e24bf2a7c536bf0142c9b4"
-  integrity sha1-PeePwoeCOBeH4kvyp8U2vwFCybQ=
-
-component-props@*:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/component-props/-/component-props-1.1.1.tgz#f9b7df9b9927b6e6d97c9bd272aa867670f34944"
-  integrity sha1-+bffm5kntubZfJvScqqGdnDzSUQ=
-
-component-querystring@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/component-querystring/-/component-querystring-2.0.0.tgz#84a95d18e471c8491b043df240f0d18d4db527ec"
-  integrity sha1-hKldGORxyEkbBD3yQPDRjU21J+w=
-  dependencies:
-    component-type "1.1.0"
-    trim "0.0.1"
-
-component-type@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/component-type/-/component-type-1.0.0.tgz#1ed8812e32dd65099d433570757f111ea3d3d871"
-  integrity sha1-HtiBLjLdZQmdQzVwdX8RHqPT2HE=
-
-component-type@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/component-type/-/component-type-1.1.0.tgz#95b666aad53e5c8d1f2be135c45b5d499197c0c5"
-  integrity sha1-lbZmqtU+XI0fK+E1xFtdSZGXwMU=
-
-component-type@^1.2.0, component-type@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/component-type/-/component-type-1.2.1.tgz#8a47901700238e4fc32269771230226f24b415a9"
-  integrity sha1-ikeQFwAjjk/DIml3EjAibyS0Fak=
-
-component-url@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/component-url/-/component-url-0.2.1.tgz#4e4f4799c43ead9fd3ce91b5a305d220208fee47"
-  integrity sha1-Tk9HmcQ+rZ/TzpG1owXSICCP7kc=
-
-concat-map@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
-  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
-  dependencies:
-    buffer-from "^1.0.0"
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
-
-console-browserify@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
-  integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
-
-constants-browserify@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
-  integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
-
-convert-source-map@~1.1.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
-  integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=
-
-core-util-is@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-
-create-ecdh@^4.0.0:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
-  integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
-  dependencies:
-    bn.js "^4.1.0"
-    elliptic "^6.5.3"
-
-create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
-  integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
-  dependencies:
-    cipher-base "^1.0.1"
-    inherits "^2.0.1"
-    md5.js "^1.3.4"
-    ripemd160 "^2.0.1"
-    sha.js "^2.4.0"
-
-create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
-  integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
-  dependencies:
-    cipher-base "^1.0.3"
-    create-hash "^1.1.0"
-    inherits "^2.0.1"
-    ripemd160 "^2.0.0"
-    safe-buffer "^5.0.1"
-    sha.js "^2.4.8"
-
-crypto-browserify@^3.0.0:
-  version "3.12.0"
-  resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
-  integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
-  dependencies:
-    browserify-cipher "^1.0.0"
-    browserify-sign "^4.0.0"
-    create-ecdh "^4.0.0"
-    create-hash "^1.1.0"
-    create-hmac "^1.1.0"
-    diffie-hellman "^5.0.0"
-    inherits "^2.0.1"
-    pbkdf2 "^3.0.3"
-    public-encrypt "^4.0.0"
-    randombytes "^2.0.0"
-    randomfill "^1.0.3"
-
-dash-ast@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37"
-  integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==
-
-debug@2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
-  integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=
-  dependencies:
-    ms "0.7.1"
-
-debug@^0.7.4:
-  version "0.7.4"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
-  integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=
-
-debug@^2.1.3, debug@^2.2.0:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
-  dependencies:
-    ms "2.0.0"
-
-decamelize@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-defined@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
-  integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
-
-deps-sort@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d"
-  integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==
-  dependencies:
-    JSONStream "^1.0.3"
-    shasum-object "^1.0.0"
-    subarg "^1.0.0"
-    through2 "^2.0.0"
-
-des.js@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
-  integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
-  dependencies:
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-
-detective@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
-  integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
-  dependencies:
-    acorn-node "^1.6.1"
-    defined "^1.0.0"
-    minimist "^1.1.1"
-
-diffie-hellman@^5.0.0:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
-  integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
-  dependencies:
-    bn.js "^4.1.0"
-    miller-rabin "^4.0.0"
-    randombytes "^2.0.0"
-
-domain-browser@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
-  integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-
-domify@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/domify/-/domify-1.4.0.tgz#11483617f764f8695975b4bdc79b14f0803b629b"
-  integrity sha1-EUg2F/dk+GlZdbS9x5sU8IA7Yps=
-
-duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
-  integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
-  dependencies:
-    readable-stream "^2.0.2"
-
-elliptic@^6.5.3:
-  version "6.5.3"
-  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
-  integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
-  dependencies:
-    bn.js "^4.4.0"
-    brorand "^1.0.1"
-    hash.js "^1.0.0"
-    hmac-drbg "^1.0.0"
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-    minimalistic-crypto-utils "^1.0.0"
-
-emoji-regex@^7.0.1:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
-  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
-escape-string-regexp@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-
-events@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5"
-  integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==
-
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
-  integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
-  dependencies:
-    md5.js "^1.3.4"
-    safe-buffer "^5.1.1"
-
-extend@3.0.2, extend@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-fast-safe-stringify@^2.0.7:
-  version "2.0.7"
-  resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
-  integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
-
-find-up@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
-  integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
-  dependencies:
-    locate-path "^3.0.0"
-
-fs.realpath@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-
-function-bind@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-get-assigned-identifiers@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1"
-  integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==
-
-get-caller-file@^2.0.1:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
-  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-glob@^7.1.0, glob@^7.1.3:
-  version "7.1.6"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
-  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
-  dependencies:
-    fs.realpath "^1.0.0"
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "^3.0.4"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
-has-cors@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
-  integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
-
-has-flag@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
-  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
-
-has@^1.0.0, has@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
-  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
-  dependencies:
-    function-bind "^1.1.1"
-
-hash-base@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
-  integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
-  dependencies:
-    inherits "^2.0.4"
-    readable-stream "^3.6.0"
-    safe-buffer "^5.2.0"
-
-hash.js@^1.0.0, hash.js@^1.0.3:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
-  integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
-  dependencies:
-    inherits "^2.0.3"
-    minimalistic-assert "^1.0.1"
-
-hmac-drbg@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
-  integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
-  dependencies:
-    hash.js "^1.0.3"
-    minimalistic-assert "^1.0.0"
-    minimalistic-crypto-utils "^1.0.1"
-
-htmlescape@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
-  integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=
-
-https-browserify@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
-  integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-
-ieee754@^1.1.4:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
-  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-
-inflight@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
-  dependencies:
-    once "^1.3.0"
-    wrappy "1"
-
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
-  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inherits@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
-  integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
-
-inherits@2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-
-inline-source-map@~0.6.0:
-  version "0.6.2"
-  resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5"
-  integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=
-  dependencies:
-    source-map "~0.5.3"
-
-insert-module-globals@^7.0.0:
-  version "7.2.1"
-  resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3"
-  integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==
-  dependencies:
-    JSONStream "^1.0.3"
-    acorn-node "^1.5.2"
-    combine-source-map "^0.8.0"
-    concat-stream "^1.6.1"
-    is-buffer "^1.1.0"
-    path-is-absolute "^1.0.1"
-    process "~0.11.0"
-    through2 "^2.0.0"
-    undeclared-identifiers "^1.1.2"
-    xtend "^4.0.0"
-
-install@^0.7.3:
-  version "0.7.3"
-  resolved "https://registry.yarnpkg.com/install/-/install-0.7.3.tgz#17bc6af1f471cddf192c2eec5fee2b67d1fff9c3"
-  integrity sha1-F7xq8fRxzd8ZLC7sX+4rZ9H/+cM=
-
-is-buffer@^1.1.0:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
-  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-core-module@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946"
-  integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==
-  dependencies:
-    has "^1.0.3"
-
-is-email@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/is-email/-/is-email-0.1.0.tgz#e7eb1aefe8d4a3183980a7172b851272ebd04a95"
-  integrity sha1-5+sa7+jUoxg5gKcXK4UScuvQSpU=
-
-is-fullwidth-code-point@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
-is@^3.0.1, is@^3.1.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79"
-  integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==
-
-isarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-
-json-stable-stringify@~0.0.0:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45"
-  integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=
-  dependencies:
-    jsonify "~0.0.0"
-
-json3@^3.3.2:
-  version "3.3.3"
-  resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
-  integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
-
-jsonify@~0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
-  integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
-
-jsonp@^0.2.0:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/jsonp/-/jsonp-0.2.1.tgz#a65b4fa0f10bda719a05441ea7b94c55f3e15bae"
-  integrity sha1-pltPoPEL2nGaBUQep7lMVfPhW64=
-  dependencies:
-    debug "^2.1.3"
-
-jsonparse@^1.2.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
-  integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
-
-labeled-stream-splicer@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21"
-  integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==
-  dependencies:
-    inherits "^2.0.1"
-    stream-splicer "^2.0.0"
-
-load-iframe@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/load-iframe/-/load-iframe-1.0.0.tgz#b2c111f1a2b982897463232f5286191343bbdbd8"
-  integrity sha1-ssER8aK5gol0YyMvUoYZE0O729g=
-  dependencies:
-    is "^3.0.1"
-    next-tick "^0.2.2"
-    script-onload "^1.0.2"
-
-locate-path@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
-  integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
-  dependencies:
-    p-locate "^3.0.0"
-    path-exists "^3.0.0"
-
-lodash.clonedeep@4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
-  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
-lodash.memoize@~3.0.3:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f"
-  integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=
-
-md5.js@^1.3.4:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
-  integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
-  dependencies:
-    hash-base "^3.0.0"
-    inherits "^2.0.1"
-    safe-buffer "^5.1.2"
-
-miller-rabin@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
-  integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
-  dependencies:
-    bn.js "^4.0.0"
-    brorand "^1.0.1"
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
-  integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-  integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-
-minimatch@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
-  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
-  dependencies:
-    brace-expansion "^1.1.7"
-
-minimist@^1.1.0, minimist@^1.1.1:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
-  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-
-mkdirp-classic@^0.5.2:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
-  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
-
-module-deps@^6.2.3:
-  version "6.2.3"
-  resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee"
-  integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==
-  dependencies:
-    JSONStream "^1.0.3"
-    browser-resolve "^2.0.0"
-    cached-path-relative "^1.0.2"
-    concat-stream "~1.6.0"
-    defined "^1.0.0"
-    detective "^5.2.0"
-    duplexer2 "^0.1.2"
-    inherits "^2.0.1"
-    parents "^1.0.0"
-    readable-stream "^2.0.2"
-    resolve "^1.4.0"
-    stream-combiner2 "^1.1.1"
-    subarg "^1.0.0"
-    through2 "^2.0.0"
-    xtend "^4.0.0"
-
-ms@0.7.1:
-  version "0.7.1"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-  integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=
-
-ms@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
-new-date@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/new-date/-/new-date-1.0.1.tgz#0044981b1739161e653099c44e6e9e4ff72e02d2"
-  integrity sha1-AESYGxc5Fh5lMJnETm6eT/cuAtI=
-  dependencies:
-    "@segment/isodate" "1.0.2"
-    is "^3.1.0"
-
-next-tick@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-0.2.2.tgz#75da4a927ee5887e39065880065b7336413b310d"
-  integrity sha1-ddpKkn7liH45BliABltzNkE7MQ0=
-
-obj-case@0.x:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/obj-case/-/obj-case-0.2.0.tgz#841c0b26784fc329968396fd871f830255c1ff2d"
-  integrity sha1-hBwLJnhPwymWg5b9hx+DAlXB/y0=
-
-object-assign@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
-once@^1.3.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
-  dependencies:
-    wrappy "1"
-
-os-browserify@~0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
-  integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
-
-p-limit@^2.0.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
-  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
-  dependencies:
-    p-try "^2.0.0"
-
-p-locate@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
-  integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
-  dependencies:
-    p-limit "^2.0.0"
-
-p-try@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
-  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-pako@~1.0.5:
-  version "1.0.11"
-  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
-  integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
-
-parents@^1.0.0, parents@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751"
-  integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=
-  dependencies:
-    path-platform "~0.11.15"
-
-parse-asn1@^5.0.0, parse-asn1@^5.1.5:
-  version "5.1.6"
-  resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
-  integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
-  dependencies:
-    asn1.js "^5.2.0"
-    browserify-aes "^1.0.0"
-    evp_bytestokey "^1.0.0"
-    pbkdf2 "^3.0.3"
-    safe-buffer "^5.1.1"
-
-path-browserify@~0.0.0:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
-  integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
-
-path-exists@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-
-path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-
-path-parse@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
-  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
-
-path-platform@~0.11.15:
-  version "0.11.15"
-  resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2"
-  integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=
-
-pbkdf2@^3.0.3:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94"
-  integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==
-  dependencies:
-    create-hash "^1.1.2"
-    create-hmac "^1.1.4"
-    ripemd160 "^2.0.1"
-    safe-buffer "^5.0.1"
-    sha.js "^2.4.8"
-
-process-nextick-args@~2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
-  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-process@~0.11.0:
-  version "0.11.10"
-  resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
-  integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
-
-public-encrypt@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
-  integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
-  dependencies:
-    bn.js "^4.1.0"
-    browserify-rsa "^4.0.0"
-    create-hash "^1.1.0"
-    parse-asn1 "^5.0.0"
-    randombytes "^2.0.1"
-    safe-buffer "^5.1.2"
-
-punycode@1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-
-punycode@^1.3.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-  integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
-
-querystring-es3@~0.2.0:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
-  integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
-
-querystring@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-  integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
-
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
-  integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
-  dependencies:
-    safe-buffer "^5.1.0"
-
-randomfill@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
-  integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
-  dependencies:
-    randombytes "^2.0.5"
-    safe-buffer "^5.1.0"
-
-read-only-stream@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
-  integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=
-  dependencies:
-    readable-stream "^2.0.2"
-
-"readable-stream@2 || 3", readable-stream@^3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
-  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
-  dependencies:
-    inherits "^2.0.3"
-    string_decoder "^1.1.1"
-    util-deprecate "^1.0.1"
-
-readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.6:
-  version "2.3.7"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
-  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.3"
-    isarray "~1.0.0"
-    process-nextick-args "~2.0.0"
-    safe-buffer "~5.1.1"
-    string_decoder "~1.1.1"
-    util-deprecate "~1.0.1"
-
-replace-in-file@^3.4.2:
-  version "3.4.4"
-  resolved "https://registry.yarnpkg.com/replace-in-file/-/replace-in-file-3.4.4.tgz#2c2b95a493dc4f6161c2bcd29a661be16d03d323"
-  integrity sha512-ehq0dFsxSpfPiPLBU5kli38Ud8bZL0CQKG8WQVbvhmyilXaMJ8y4LtDZs/K3MD8C0+rHbsfW8c9r2bUEy0B/6Q==
-  dependencies:
-    chalk "^2.4.2"
-    glob "^7.1.3"
-    yargs "^13.2.2"
-
-require-directory@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-require-main-filename@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
-  integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-
-resolve@^1.1.4, resolve@^1.17.0, resolve@^1.4.0:
-  version "1.18.1"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130"
-  integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==
-  dependencies:
-    is-core-module "^2.0.0"
-    path-parse "^1.0.6"
-
-rimraf@^2.6.2:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
-  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
-  dependencies:
-    glob "^7.1.3"
-
-ripemd160@^2.0.0, ripemd160@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
-  integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
-  dependencies:
-    hash-base "^3.0.0"
-    inherits "^2.0.1"
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
-  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-safe-buffer@~5.1.0, safe-buffer@~5.1.1:
-  version "5.1.2"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
-  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-safer-buffer@^2.1.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
-  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-script-onload@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/script-onload/-/script-onload-1.0.2.tgz#6bdca122875487192ccaf4e6884fcfdd0c7fde32"
-  integrity sha1-a9yhIodUhxksyvTmiE/P3Qx/3jI=
-
-segmentio-facade@^3.0.2:
-  version "3.2.3"
-  resolved "https://registry.yarnpkg.com/segmentio-facade/-/segmentio-facade-3.2.3.tgz#7ddc6971801a482475b6a768184696a847e9197d"
-  integrity sha1-fdxpcYAaSCR1tqdoGEaWqEfpGX0=
-  dependencies:
-    "@ndhoule/clone" "^1.0.0"
-    "@segment/isodate-traverse" "^1.0.0"
-    inherits "^2.0.1"
-    is-email "0.1.0"
-    new-date "^1.0.0"
-    obj-case "0.x"
-    trim "0.0.1"
-    type-component "0.0.1"
-
-set-blocking@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4:
-  version "2.4.11"
-  resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
-  integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
-  dependencies:
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-shasum-object@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e"
-  integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==
-  dependencies:
-    fast-safe-stringify "^2.0.7"
-
-shasum@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f"
-  integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8=
-  dependencies:
-    json-stable-stringify "~0.0.0"
-    sha.js "~2.4.4"
-
-shell-quote@^1.6.1:
-  version "1.7.2"
-  resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
-  integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
-
-simple-concat@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
-  integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
-
-slug-component@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/slug-component/-/slug-component-1.1.0.tgz#224290a04591bf9ac08b9c622d3a14f43e3a0df7"
-  integrity sha1-IkKQoEWRv5rAi5xiLToU9D46Dfc=
-
-source-map@~0.5.3:
-  version "0.5.7"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
-spark-md5@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-2.0.2.tgz#37b763847763ae7e7acef2ca5233d01e649a78b7"
-  integrity sha1-N7djhHdjrn56zvLKUjPQHmSaeLc=
-
-stream-browserify@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
-  integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
-  dependencies:
-    inherits "~2.0.1"
-    readable-stream "^2.0.2"
-
-stream-combiner2@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
-  integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4=
-  dependencies:
-    duplexer2 "~0.1.0"
-    readable-stream "^2.0.2"
-
-stream-http@^3.0.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564"
-  integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==
-  dependencies:
-    builtin-status-codes "^3.0.0"
-    inherits "^2.0.4"
-    readable-stream "^3.6.0"
-    xtend "^4.0.2"
-
-stream-splicer@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd"
-  integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==
-  dependencies:
-    inherits "^2.0.1"
-    readable-stream "^2.0.2"
-
-string-width@^3.0.0, string-width@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
-  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
-  dependencies:
-    emoji-regex "^7.0.1"
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^5.1.0"
-
-string_decoder@^1.1.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
-  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
-  dependencies:
-    safe-buffer "~5.2.0"
-
-string_decoder@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
-  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
-  dependencies:
-    safe-buffer "~5.1.0"
-
-strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
-  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
-  dependencies:
-    ansi-regex "^4.1.0"
-
-subarg@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2"
-  integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI=
-  dependencies:
-    minimist "^1.1.0"
-
-supports-color@^5.3.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
-  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
-  dependencies:
-    has-flag "^3.0.0"
-
-syntax-error@^1.1.1:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c"
-  integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==
-  dependencies:
-    acorn-node "^1.2.0"
-
-through2@3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a"
-  integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==
-  dependencies:
-    readable-stream "2 || 3"
-
-through2@^2.0.0:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
-  integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
-  dependencies:
-    readable-stream "~2.3.6"
-    xtend "~4.0.1"
-
-"through@>=2.2.7 <3":
-  version "2.3.8"
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-timers-browserify@^1.0.1:
-  version "1.4.2"
-  resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
-  integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=
-  dependencies:
-    process "~0.11.0"
-
-to-function@2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/to-function/-/to-function-2.0.6.tgz#7d56cd9c3b92fa8dbd7b22e83d51924de740ebc5"
-  integrity sha1-fVbNnDuS+o29eyLoPVGSTedA68U=
-  dependencies:
-    component-props "*"
-
-to-no-case@^0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/to-no-case/-/to-no-case-0.1.3.tgz#f761b1ea1931680967b79886a3303106d966e061"
-  integrity sha1-92Gx6hkxaAlnt5iGozAxBtlm4GE=
-
-trim@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
-  integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0=
-
-tty-browserify@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
-  integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
-
-type-component@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/type-component/-/type-component-0.0.1.tgz#952a6c81c21efd24d13d811d0c8498cb860e1956"
-  integrity sha1-lSpsgcIe/STRPYEdDISYy4YOGVY=
-
-typedarray@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-
-uglify-js@^3.9.2:
-  version "3.11.5"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.5.tgz#d6788bc83cf35ff18ea78a65763e480803409bc6"
-  integrity sha512-btvv/baMqe7HxP7zJSF7Uc16h1mSfuuSplT0/qdjxseesDU+yYzH33eHBH+eMdeRXwujXspaCTooWHQVVBh09w==
-
-umd@^3.0.0:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf"
-  integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==
-
-undeclared-identifiers@^1.1.2:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f"
-  integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==
-  dependencies:
-    acorn-node "^1.3.0"
-    dash-ast "^1.0.0"
-    get-assigned-identifiers "^1.2.0"
-    simple-concat "^1.0.0"
-    xtend "^4.0.1"
-
-url@~0.11.0:
-  version "0.11.0"
-  resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
-  integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
-  dependencies:
-    punycode "1.3.2"
-    querystring "0.2.0"
-
-utf8-encode@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/utf8-encode/-/utf8-encode-1.0.0.tgz#3ad61542bc1da8a2723c82d20617d21b64b0d0d4"
-  integrity sha1-OtYVQrwdqKJyPILSBhfSG2Sw0NQ=
-
-util-deprecate@^1.0.1, util-deprecate@~1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-
-util@0.10.3:
-  version "0.10.3"
-  resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
-  integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
-  dependencies:
-    inherits "2.0.1"
-
-util@~0.10.1:
-  version "0.10.4"
-  resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
-  integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
-  dependencies:
-    inherits "2.0.3"
-
-uuid@^2.0.2:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
-  integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=
-
-vm-browserify@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
-  integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
-
-which-module@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-
-wrap-ansi@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
-  integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
-  dependencies:
-    ansi-styles "^3.2.0"
-    string-width "^3.0.0"
-    strip-ansi "^5.0.0"
-
-wrappy@1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
-  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-y18n@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
-  integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-
-yargs-parser@^13.1.2:
-  version "13.1.2"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
-  integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
-  dependencies:
-    camelcase "^5.0.0"
-    decamelize "^1.2.0"
-
-yargs@^13.2.2:
-  version "13.3.2"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
-  integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
-  dependencies:
-    cliui "^5.0.0"
-    find-up "^3.0.0"
-    get-caller-file "^2.0.1"
-    require-directory "^2.1.1"
-    require-main-filename "^2.0.0"
-    set-blocking "^2.0.0"
-    string-width "^3.0.0"
-    which-module "^2.0.0"
-    y18n "^4.0.0"
-    yargs-parser "^13.1.2"
-
-yarn@^1.22.4:
-  version "1.22.10"
-  resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.10.tgz#c99daa06257c80f8fa2c3f1490724e394c26b18c"
-  integrity sha512-IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA==
diff --git a/extensions/web-tracker/karaf-kar/pom.xml b/extensions/web-tracker/karaf-kar/pom.xml
deleted file mode 100644
index 96f523334..000000000
--- a/extensions/web-tracker/karaf-kar/pom.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.unomi</groupId>
-        <artifactId>unomi-web-tracker</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>unomi-web-tracker-karaf-kar</artifactId>
-    <name>Apache Unomi :: Extension :: Web Tracker :: Apache Karaf Feature and KAR archive</name>
-    <description>This is a simple Apache Unomi plugin.</description>
-    <packaging>kar</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.unomi</groupId>
-            <artifactId>unomi-api</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore-osgi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient-osgi</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.unomi</groupId>
-            <artifactId>unomi-web-tracker-wab</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.karaf.tooling</groupId>
-                    <artifactId>karaf-maven-plugin</artifactId>
-                    <extensions>true</extensions>
-                    <configuration>
-                        <includeTransitiveDependency>false</includeTransitiveDependency>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.tooling</groupId>
-                <artifactId>karaf-maven-plugin</artifactId>
-                <configuration>
-                    <startLevel>85</startLevel>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/extensions/web-tracker/karaf-kar/src/main/feature/feature.xml b/extensions/web-tracker/karaf-kar/src/main/feature/feature.xml
deleted file mode 100644
index 85c64468b..000000000
--- a/extensions/web-tracker/karaf-kar/src/main/feature/feature.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-  ~ 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.
-  -->
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.1" name="unomi-web-tracker-karaf-feature">
-    <feature name="unomi-web-tracker-karaf-kar" version="${project.version}"
-             description="Apache Unomi :: Extensions :: Web Tracker :: Apache Karaf Feature">
-        <details>Apache Karaf feature for the Apache Unomi Context Server extension that provide the web tracker.</details>
-        <feature>unomi-kar</feature>
-        <bundle start-level="85">mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore-osgi.version}</bundle>
-        <bundle start-level="85">mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient-osgi.version}</bundle>
-        <bundle start-level="85">mvn:org.apache.unomi/unomi-web-tracker-wab/${project.version}</bundle>
-    </feature>
-</features>
diff --git a/extensions/web-tracker/pom.xml b/extensions/web-tracker/pom.xml
deleted file mode 100644
index 685bb62f7..000000000
--- a/extensions/web-tracker/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.unomi</groupId>
-        <artifactId>unomi-extensions</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>unomi-web-tracker</artifactId>
-    <name>Apache Unomi :: Extension :: Web Tracker</name>
-    <description>Apache Unomi Context Server to provide the web tracker</description>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>javascript</module>
-        <module>wab</module>
-        <module>karaf-kar</module>
-    </modules>
-</project>
diff --git a/extensions/web-tracker/wab/.gitignore b/extensions/web-tracker/wab/.gitignore
deleted file mode 100644
index 6ade2e913..000000000
--- a/extensions/web-tracker/wab/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-yarn-error.log
-src/main/webapp/dist
\ No newline at end of file
diff --git a/extensions/web-tracker/wab/pom.xml b/extensions/web-tracker/wab/pom.xml
deleted file mode 100755
index f4ce3e5fe..000000000
--- a/extensions/web-tracker/wab/pom.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.unomi</groupId>
-        <artifactId>unomi-web-tracker</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>unomi-web-tracker-wab</artifactId>
-    <name>Apache Unomi :: Extension :: Web Tracker :: Wab</name>
-    <description>This is a simple Apache Unomi plugin.</description>
-    <packaging>bundle</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.unomi</groupId>
-            <artifactId>unomi-api</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient-osgi</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore-osgi</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <_wab>src/main/webapp</_wab>
-                        <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
-                        <Import-Package>
-                            *
-                        </Import-Package>
-                        <Web-ContextPath>/tracker</Web-ContextPath>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-
-        <resources>
-            <resource>
-                <directory>../javascript/dist</directory>
-            </resource>
-            <resource>
-                <directory>src/main/resources</directory>
-            </resource>
-        </resources>
-    </build>
-
-</project>
diff --git a/extensions/web-tracker/wab/src/main/resources/META-INF/cxs/rules/form-mapping-example.json b/extensions/web-tracker/wab/src/main/resources/META-INF/cxs/rules/form-mapping-example.json
deleted file mode 100644
index b03f91d7a..000000000
--- a/extensions/web-tracker/wab/src/main/resources/META-INF/cxs/rules/form-mapping-example.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "itemId": "form-mapping-example",
-  "itemType": "rule",
-  "linkedItems": null,
-  "raiseEventOnlyOnceForProfile": false,
-  "raiseEventOnlyOnceForSession": false,
-  "priority": -1,
-  "metadata": {
-    "id": "form-mapping-example",
-    "name": "Example Form Mapping",
-    "description": "An example of how to map event properties to profile properties",
-    "scope": "realEstateManager",
-    "tags": [],
-    "enabled": true,
-    "missingPlugins": false,
-    "hidden": false,
-    "readOnly": false
-  },
-  "condition": {
-    "type": "formEventCondition",
-    "parameterValues": {
-      "formId": "testFormTracking",
-      "pagePath" : "/tracker/"
-    }
-  },
-  "actions": [
-    {
-      "type": "setPropertyAction",
-      "parameterValues": {
-        "setPropertyName": "properties(firstName)",
-        "setPropertyValue": "eventProperty::properties(firstName)",
-        "setPropertyStrategy": "alwaysSet"
-      }
-    },
-    {
-      "type": "setPropertyAction",
-      "parameterValues": {
-        "setPropertyName": "properties(lastName)",
-        "setPropertyValue": "eventProperty::properties(lastName)",
-        "setPropertyStrategy": "alwaysSet"
-      }
-    },
-    {
-      "type": "setPropertyAction",
-      "parameterValues": {
-        "setPropertyName": "properties(email)",
-        "setPropertyValue": "eventProperty::properties(email)",
-        "setPropertyStrategy": "alwaysSet"
-      }
-    }
-  ]
-}
diff --git a/extensions/web-tracker/wab/src/main/webapp/basic_test.html b/extensions/web-tracker/wab/src/main/webapp/basic_test.html
deleted file mode 100644
index 944c59c80..000000000
--- a/extensions/web-tracker/wab/src/main/webapp/basic_test.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-~ 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.
--->
-<!doctype html>
-<html lang="en">
-  <head>
-      <title>Basic Tracker test page</title>
-      <script type="text/javascript">
-          var unomiOption = {
-              scope: 'realEstateManager',
-              url: 'http://localhost:8181'
-          };
-
-          window.unomiTracker||(window.unomiTracker={}),function(){function e(e){for(unomiTracker.initialize({"Apache Unomi":unomiOption});n.length>0;){var r=n.shift(),t=r.shift();unomiTracker[t]&&unomiTracker[t].apply(unomiTracker,r)}}for(var n=[],r=["trackSubmit","trackClick","trackLink","trackForm","initialize","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","personalize"],t=0;t<r.length;t++){var i=r[t];window.unomiTracker[i]=function(e){ [...]
-     </script>
-  </head>
-<body>
-  Please check that there are no errors in Javascript console.
-</body>
-</html>
\ No newline at end of file
diff --git a/extensions/web-tracker/wab/src/main/webapp/index.html b/extensions/web-tracker/wab/src/main/webapp/index.html
deleted file mode 100644
index 5c8e95bc6..000000000
--- a/extensions/web-tracker/wab/src/main/webapp/index.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!--
-~ 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.
--->
-<!doctype html>
-<html lang="en">
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Apache Unomi Web Tracker Test Page</title>
-
-    <meta name="Date-Revision-yyyymmdd" content="20180919"/>
-    <meta http-equiv="Content-Language" content="en"/>
-
-    <style type="text/css">
-        form {
-            display: grid;
-            grid-template-columns: 200px 1fr;
-            grid-gap: 16px;
-        }
-
-        label {
-            grid-column: 1 / 2;
-        }
-
-        input,
-        button {
-            grid-column: 2 / 3;
-        }
-    </style>
-
-    <script type="text/javascript">
-        var path = location.pathname + location.hash;
-        var unomiOption = {
-            scope: 'myScope',
-            url: '', // we use an empty URL to make it relative to this page.
-            initialPageProperties: {
-                path: path,
-                pageInfo: {
-                    destinationURL: location.href,
-                    tags: ["tag1", "tag2", "tag3"],
-                    categories: ["category1", "category2", "category3"]
-                },
-                interests: {
-                    "interest1": 1,
-                    "interest2": 2,
-                    "interest3": 3
-                }
-            }
-        };
-        window.unomiTracker || (window.unomiTracker = {});
-        (function () {
-            var unomiTracker_queue = [];
-
-            var methods = ['trackSubmit', 'trackClick', 'trackLink', 'trackForm', 'initialize', 'pageview', 'identify', 'reset', 'group', 'track', 'ready', 'alias', 'debug', 'page', 'once', 'off', 'on', 'personalize'];
-
-            var factory = function (method) {
-                return function () {
-                    var args = Array.prototype.slice.call(arguments);
-                    args.unshift(method);
-                    unomiTracker_queue.push(args);
-                    return window.unomiTracker;
-                };
-            };
-
-            // 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);
-            }
-
-            function callback(e) {
-                unomiTracker.initialize({
-                    'Apache Unomi': unomiOption
-                });
-
-                // Loop through the interim analytics queue and reapply the calls to their
-                // proper analytics.js method.
-                while (unomiTracker_queue.length > 0) {
-                    var item = unomiTracker_queue.shift();
-                    var method = item.shift();
-                    if (unomiTracker[method]) {
-                        unomiTracker[method].apply(unomiTracker, item);
-                    }
-                }
-            }
-
-            // Define a method to load Analytics.js from our CDN,
-            // and that will be sure to only ever load it once.
-            unomiTracker.load = function () {
-                // 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 = unomiOption.url + '/tracker/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);
-            };
-
-            document.addEventListener('DOMContentLoaded', unomiTracker.load);
-
-            unomiTracker.page(unomiOption.initialPageProperties);
-
-            // these examples come from the Analytics.JS documentation:
-            unomiTracker.identify({
-                nickname: 'Amazing Grace',
-                favoriteCompiler: 'A-0',
-                industry: 'Computer Science'
-            });
-
-            unomiTracker.track('articleCompleted', {
-                title: 'How to Create a Tracking Plan',
-                course: 'Intro to Analytics'
-            });
-        })();
-    </script>
-</head>
-<body>
-<h1>Apache Unomi Web Tracker Test Page</h1>
-
-<p>The line below this one will be personalized depending on whether you have been here for more or less than 5
-    seconds. Try reload the page to see the changes.</p>
-
-<div id="var1" style="display: none">
-    You have been there for more than 5s
-</div>
-
-<div id="var2" style="display: none">
-    Welcome
-</div>
-
-<script type="text/javascript">
-    unomiTracker.personalize({
-        "id": "testPersonalization",
-        "strategy": "matching-first",
-        "strategyOptions": {"fallback": "var2"},
-        "contents": [{
-            "id": "var1",
-            "filters": [{
-                "condition": {
-                    "parameterValues": {"minimumDuration": 5, "maximumDuration": 360000},
-                    "type": "sessionDurationCondition"
-                }
-            }]
-        }, {
-            "id": "var2"
-        }]
-    }, function (res) {
-        console.log(res);
-        document.getElementById(res[0]).style.display = 'block';
-    });
-</script>
-
-<p>
-    The following form is an example of tracking form submissions with Apache Unomi's web tracker.
-</p>
-
-<form id="testFormTracking" action="#" name="testFormTracking">
-    <label for="firstName">First name</label>
-    <input type="text" id="firstName" name="firstName" value="John"/>
-
-    <label for="lastName">Last name</label>
-    <input type="text" id="lastName" name="lastName" value="Doe"/>
-
-    <label for="email">Email</label>
-    <input type="email" id="email" name="email" value="johndoe@acme.com"/>
-
-    <input type="submit" name="submitButton" value="Submit"/>
-</form>
-
-<script type="text/javascript">
-    window.addEventListener("load", function () {
-        var form = document.getElementById('testFormTracking');
-        unomiTracker.trackForm(form, 'formSubmitted', {formName: form.name});
-    });
-</script>
-
-<p>
-    You can find more information about how this tracker works and how to integrate it into your pages in the
-    <a href="http://unomi.apache.org/manual/latest/index.html#_web_tracker" target="_blank">Apache Unomi manual tracker
-        documentation</a>
-</p>
-
-</body>
-</html>
diff --git a/kar/pom.xml b/kar/pom.xml
index 67335e982..f81c1e649 100644
--- a/kar/pom.xml
+++ b/kar/pom.xml
@@ -164,11 +164,6 @@
             <type>xml</type>
             <scope>runtime</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.unomi</groupId>
-            <artifactId>unomi-web-tracker-wab</artifactId>
-            <version>${project.version}</version>
-        </dependency>
         <dependency>
             <groupId>org.apache.unomi</groupId>
             <artifactId>unomi-scripting</artifactId>
diff --git a/kar/src/main/feature/feature.xml b/kar/src/main/feature/feature.xml
index 1c9b6ddca..b0c8db5e5 100644
--- a/kar/src/main/feature/feature.xml
+++ b/kar/src/main/feature/feature.xml
@@ -90,7 +90,6 @@
         <bundle start-level="85" start="false">mvn:org.apache.unomi/unomi-plugins-optimization-test/${project.version}</bundle>
         <bundle start-level="85" start="false">mvn:org.apache.unomi/cxs-lists-extension-actions/${project.version}</bundle>
         <bundle start-level="85" start="false">mvn:org.apache.unomi/shell-dev-commands/${project.version}</bundle>
-        <bundle start-level="85" start="false">mvn:org.apache.unomi/unomi-web-tracker-wab/${project.version}</bundle>
 
         <bundle start-level="99">mvn:org.apache.unomi/shell-commands/${project.version}</bundle>
     </feature>
diff --git a/manual/src/archives/1.4/asciidoc/index.adoc b/manual/src/archives/1.4/asciidoc/index.adoc
index f39cc67f4..4f1f2b228 100644
--- a/manual/src/archives/1.4/asciidoc/index.adoc
+++ b/manual/src/archives/1.4/asciidoc/index.adoc
@@ -102,4 +102,4 @@ include::extending-plugins.adoc[]
 
 include::custom-extensions.adoc[]
 
-include::patches.adoc[]
\ No newline at end of file
+include::patches.adoc[]
diff --git a/manual/src/main/asciidoc/5-min-quickstart.adoc b/manual/src/main/asciidoc/5-min-quickstart.adoc
index 92fdb6536..380c3160e 100644
--- a/manual/src/main/asciidoc/5-min-quickstart.adoc
+++ b/manual/src/main/asciidoc/5-min-quickstart.adoc
@@ -39,6 +39,4 @@ make sure you are using the proper version.
 
 Next steps:
 
-- Connect to http://localhost:8181 to try our some live examples (such as the web tracker)
 - Trying our integration <<Samples,samples page>>
-- Learning more about the <<Web Tracker,web tracker>>
diff --git a/manual/src/main/asciidoc/builtin-event-types.adoc b/manual/src/main/asciidoc/builtin-event-types.adoc
index 16821b55d..9c0c18695 100644
--- a/manual/src/main/asciidoc/builtin-event-types.adoc
+++ b/manual/src/main/asciidoc/builtin-event-types.adoc
@@ -335,7 +335,7 @@ Based on the structure of the following object: Event
 
 ===== Example
 
-In this example (coming from the Apache Unomi tracker example), an event containing additional information about the user (his nickname, favorite compiler and industry) was sent to Apache Unomi.
+In this example, an event containing additional information about the user (his nickname, favorite compiler and industry) was sent to Apache Unomi.
 
 [source,json]
 ----
@@ -354,11 +354,11 @@ In this example (coming from the Apache Unomi tracker example), an event contain
         "scope": "myScope",
         "properties": {
             "page": {
-                "path": "/tracker/",
+                "path": "/web-page/",
                 "referrer": "http://localhost:8181/",
                 "search": "",
-                "title": "Apache Unomi Web Tracker Test Page",
-                "url": "http://localhost:8181/tracker/"
+                "title": "Apache Unomi Web Test Page",
+                "url": "http://localhost:8181/web-page/"
             }
         }
     },
diff --git a/manual/src/main/asciidoc/index.adoc b/manual/src/main/asciidoc/index.adoc
index 0d487fc3a..2976cc0fa 100644
--- a/manual/src/main/asciidoc/index.adoc
+++ b/manual/src/main/asciidoc/index.adoc
@@ -36,8 +36,6 @@ include::recipes.adoc[]
 
 include::request-examples.adoc[]
 
-include::web-tracker.adoc[]
-
 include::configuration.adoc[]
 
 include::migrations/migrations.adoc[]
diff --git a/manual/src/main/asciidoc/request-examples.adoc b/manual/src/main/asciidoc/request-examples.adoc
index 0480fdfb6..71301c831 100644
--- a/manual/src/main/asciidoc/request-examples.adoc
+++ b/manual/src/main/asciidoc/request-examples.adoc
@@ -157,5 +157,4 @@ to send additional events.
 ==== Where to go from here
 
 * You can find more <<Useful Apache Unomi URLs,useful Apache Unomi URLs>> that can be used in the same way as the above examples.
-* You may want to know integrate the provided <<Web Tracker,web tracker>> into your web site.
 * Read the <<Twitter sample,Twitter sample>> documentation that contains a detailed example of how to integrate with Apache Unomi.
diff --git a/manual/src/main/asciidoc/web-tracker.adoc b/manual/src/main/asciidoc/web-tracker.adoc
deleted file mode 100644
index ecb1547d7..000000000
--- a/manual/src/main/asciidoc/web-tracker.adoc
+++ /dev/null
@@ -1,380 +0,0 @@
-//
-// 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.
-//
-=== Web Tracker
-
-This extension is providing the web tracker to start collecting visitors data on your website.
-The tracker is implemented as an integration of https://github.com/segmentio/analytics.js[analytics.js] for Unomi.
-
-==== 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` :
-
-[source]
-----
-<script type="text/javascript">
-        var unomiOption = {
-            scope: 'realEstateManager',
-            url: 'http://localhost:8181'
-        };
-        window.unomiTracker||(window.unomiTracker={}),function(){function e(e){for(unomiTracker.initialize({"Apache Unomi":unomiOption});n.length>0;){var r=n.shift(),t=r.shift();unomiTracker[t]&&unomiTracker[t].apply(unomiTracker,r)}}for(var n=[],r=["trackSubmit","trackClick","trackLink","trackForm","initialize","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","personalize"],t=0;t<r.length;t++){var i=r[t];window.unomiTracker[i]=function(e){re [...]
-</script>
-----
-
-`window.unomiTracker` can be used to send additional events when needed.
-
-Check analytics.js API https://segment.com/docs/sources/website/analytics.js/[here].
-All methods can be used on `unomiTracker` object, although not all event types are supported by Unomi intergation.
-
-==== How to contribute
-
-The source code is in the folder javascript with a package.json, the file to update is `analytics.js-integration-apache-unomi.js` apply your modification in this file then use the command `yarn build` to compile a new JS file.
-Then you can use the test page to try your changes `http://localhost:8181/tracker/index.html`.
-
-==== Tracking page views
-
-In the initialize call, the tracker will generate an implicit page view event, which by default will be populated with
-the following information:
-
-[source,javascript]
-----
-    window.digitalData.page = window.digitalData.page || {
-        path: location.pathname + location.hash,
-        pageInfo: {
-            pageName: document.title,
-            pageID : location.pathname + location.hash,
-            pagePath : location.pathname + location.hash,
-            destinationURL: location.href
-        }
-    }
-----
-
-Now if you want to provide your own custom page information for the initial page view, you can simply do it like this:
-
-[source,`javascript]
-----
-    unomiTracker.initialize({
-            scope: 'myScope',
-            url: 'http://unomi:8181', // we use an empty URL to make it relative to this page.
-            initialPageProperties: {
-                path: path,
-                pageInfo: {
-                    destinationURL: location.href,
-                    tags: ["tag1", "tag2", "tag3"],
-                    categories: ["category1", "category2", "category3"]
-                },
-                interests: {
-                    "interest1": 1,
-                    "interest2": 2,
-                    "interest3": 3
-                }
-            }
-        });
-----
-
-`
-
-Also note that the FIRST call to unomiTracker.page() will be IGNORED because of this initial page view.This is the
-way that the Analytics.js library handles it.So make sure you are aware of this when calling it.This is to avoid having
-two page views on a single call and to be compatible with old versions that did use the explicit call.
-
-By default the script will track page views, but maybe you want to take control over this mechanism of add page views
-to a single page application.In order to generate a page view programmatically from Javascript you can use code similar
-to this :
-
-[source]
-----
-    <script type="text/javascript">
-        // This is an example of how to provide more details page properties to the view event. This can be useful
-        // in the case of an SPA that wants to provide information about a view that has metadata such as categories,
-        // tags or interests.
-        path = location.pathname + location.hash;
-        properties = {
-            path: path,
-            pageInfo: {
-                destinationURL: location.href,
-                tags : [ "tag1", "tag2", "tag3"],
-                categories : ["category1", "category2", "category3"],
-            },
-            interests : {
-                "interest1" : 1,
-                "interest2" : 2,
-                "interest3" : 3
-            }
-        };
-        console.log(properties);
-        // this will trigger a second page view for the same page (the first page view is in the tracker snippet).
-        window.unomiTracker.page(properties);
-    </script>
-----
-
-Here is a more detail view of what you may include in the pageInfo object :
-
-.PageInfo Properties
-|===
-|Name|Description
-
-|pageID
-|A unique identifier in string format for the page. Default value : page path
-
-|pageName
-|A user-displayed name for the page. Default value : page title
-
-|pagePath
-|The path of the page, stored by Unomi. This value should be the same as the one passed in the `page` property of the
-object passed to the unomiTracker call. Default value : page path
-
-|destinationURL
-|The full URL for the page view. This doesn't have to be a real existing URL it could be an internal SPA route. Default value : page URL
-
-|referringURL
-|The referringURL also known as the previous URL of the page/screen viewed. Default value : page referrer URL
-
-|tags
-|A String array of tag identifiers. For example `['tag1', 'tag2', 'tag3']`
-
-|categories
-|A String array of category identifiers. For example `['category1', 'category2', 'category3']`
-
-|===
-
-The `interests` object is basically list of interests with "weights" attached to them.These interests will be accumulated
-in Apache Unomi on profiles to indicate growing interest over time for specific topics.These are freely defined and
-will be accepted by Apache Unomi without needing to declare them previously anywhere (the same is true for tags and
-categories).
-
-==== Tracking form submissions
-
-Using the web tracker you can also track form submissions. In order to do this a few steps are required to get a form's
-submission to be tracked and then its form values to be sent as events to Apache Unomi. Finally setting up a rule to
-react to the incoming event will help use the form values to perform any action that is desired.
-
-Let's look at a concrete example. Before we get started you should know that this example is already available to
-directly test in Apache Unomi at the following URL :
-
-    http://localhost:8181/tracker
-
-Simply modify the form values and click submit and it will perform all the steps we are describing below.
-
-So here is the form we want to track :
-
-[source]
-----
-<form id="testFormTracking" action="#" name="testFormTracking">
-    <label for="firstName">First name</label>
-    <input type="text" id="firstName" name="firstName" value="John"/>
-
-    <label for="lastName">Last name</label>
-    <input type="text" id="lastName" name="lastName" value="Doe"/>
-
-    <label for="email">Email</label>
-    <input type="email" id="email" name="email" value="johndoe@acme.com"/>
-
-    <input type="submit" name="submitButton" value="Submit"/>
-</form>
-----
-
-As you can see it's composed of three fields - firstName, lastName and email - as well as a submit button. In order to
-track it we can add directly under the following snippet :
-
-[source]
-----
-<script type="text/javascript">
-    window.addEventListener("load", function () {
-        var form = document.getElementById('testFormTracking');
-        unomiTracker.trackForm(form, 'formSubmitted', {formName: form.name});
-    });
-</script>
-----
-
-What this snippet does is retrieve the form using its element ID and then uses the unomiTracker to track form submissions.
-Be careful to always use in the form event name a string that starts with `form` in order for the event to be sent back
-to Unomi. Also the form name is also a mandatory parameter that will be passed to Unomi inside a event of type `form` under
-the `target.itemId` property name.
-
-Here is an example of the event that gets sent back to Apache Unomi:
-
-[source]
-----
-{
-  "itemId" : "cd627012-963e-4bb5-97f0-480990b41254",
-  "itemType" : "event",
-  "scope" : "realEstateManager",
-  "version" : 1,
-  "eventType" : "form",
-  "sessionId" : "aaad09aa-88c2-67bd-b106-5a47ded43ead",
-  "profileId" : "48563fd0-6319-4260-8dba-ae421beba26f",
-  "timeStamp" : "2018-11-23T16:32:26Z",
-  "properties" : {
-    "firstName" : "John",
-    "lastName" : "Doe",
-    "email" : "johndoe@acme.com",
-    "submitButton" : "Submit"
-  },
-  "source" : {
-    "itemId" : "/tracker/",
-    "itemType" : "page",
-    "scope" : "realEstateManager",
-    "version" : null,
-    "properties" : {
-      "pageInfo" : {
-        "destinationURL" : "http://localhost:8181/tracker/?firstName=Bill&lastName=Gates&email=bgates%40microsoft.com",
-        "pageID" : "/tracker/",
-        "pagePath" : "/tracker/",
-        "pageName" : "Apache Unomi Web Tracker Test Page",
-        "referringURL" : "http://localhost:8181/tracker/?firstName=John&lastName=Doe&email=johndoe%40acme.com"
-      },
-      "attributes" : [ ],
-      "consentTypes" : [ ],
-      "interests" : { }
-    }
-  },
-  "target" : {
-    "itemId" : "testFormTracking",
-    "itemType" : "form",
-    "scope" : "realEstateManager",
-    "version" : null,
-    "properties" : { }
-  },
-  "persistent" : true
-}
-----
-
-You can see in this event that the form values are sent as properties of the event itself, while the form name is sent
-as the `target.itemId`
-
-While setting up form tracking, it can be very useful to use the Apache Unomi Karaf SSH shell commands : `event-tail`
-and `event-view` to check if you are properly receiving the form submission events and that they contain the expected
-data. If not, check your tracking code for any errors.
-
-Now that the data is properly sent using an event to Apache Unomi, we must still use it to perform some kind of actions.
-Using rules, we could do anything from updating the profile to sending the data to a third-party server (using a custom-
-developped action of course). In this example we will illustrate how to update the profile.
-
-In order to do so we will deploy a rule that will copy data coming from the event into a profile. But we will need to
-map the form field names to profile names, and this can be done using the `setPropertyAction` that's available out of the
-box in the Apache Unomi server.
-
-There are two ways to register rules : either by building a custom OSGi bundle plugin or using the REST API to directly
-send a JSON representation of the rule to be saved. We will in this example use the CURL shell command to make a call to
-the REST API.
-
-[source]
-----
-curl -X POST -k -u karaf:karaf https://localhost:9443/cxs/rules \
-  --header "Content-Type: application/json" \
--d @- << EOF
-{
-  "itemId": "form-mapping-example",
-  "itemType": "rule",
-  "linkedItems": null,
-  "raiseEventOnlyOnceForProfile": false,
-  "raiseEventOnlyOnceForSession": false,
-  "priority": -1,
-  "metadata": {
-    "id": "form-mapping-example",
-    "name": "Example Form Mapping",
-    "description": "An example of how to map event properties to profile properties",
-    "scope": "realEstateManager",
-    "tags": [],
-    "enabled": true,
-    "missingPlugins": false,
-    "hidden": false,
-    "readOnly": false
-  },
-  "condition": {
-    "type": "formEventCondition",
-    "parameterValues": {
-      "formId": "testFormTracking",
-      "pagePath" : "/tracker/"
-    }
-  },
-  "actions": [
-    {
-      "type": "setPropertyAction",
-      "parameterValues": {
-        "setPropertyName": "properties(firstName)",
-        "setPropertyValue": "eventProperty::properties(firstName)",
-        "setPropertyStrategy": "alwaysSet"
-      }
-    },
-    {
-      "type": "setPropertyAction",
-      "parameterValues": {
-        "setPropertyName": "properties(lastName)",
-        "setPropertyValue": "eventProperty::properties(lastName)",
-        "setPropertyStrategy": "alwaysSet"
-      }
-    },
-    {
-      "type": "setPropertyAction",
-      "parameterValues": {
-        "setPropertyName": "properties(email)",
-        "setPropertyValue": "eventProperty::properties(email)",
-        "setPropertyStrategy": "alwaysSet"
-      }
-    }
-  ]
-}
-EOF
-----
-
-As you can see in this request, we have a few parameters that need explaining:
-
-- `-k` is used to accept any certificate as we are in this example using a default Apache Unomi server configuration that
-comes with its predefined HTTPS certificates
-- `-u karaf:karaf` is the default username/password for authenticating to the REST API. To change this value you should
-edit the `etc/users.properties`file and it is required to modify this login before going to production.
-
-Finally the rule itself should be pretty self-explanatory but there are a few important things to note :
-
-- the `itemId` and `metadata.id` values should be the same
-- the `scope` should be the same as the scope that was setup in the tracker initialization
-- the `formId` parameter must have the form name value
-- the `pagePath` should be the pagePath passed through the event (if you're not sure of its value, you could either using
-network debugging in the browser or use the `event-tail` and `event-view` commands in the Apache Unomi Karaf SSH shell).
-- the setPropertyAction may be repeated as many times as desired to copy the values from the event to the profile. Note that
-the `setPropertyName` will define the property to set on the profile and the `setPropertyValue` will define where the
-value is coming from. In this example the name and the value are the same but that is no way a requirement. It could
-even be possible to using multiple `setPropertyAction` instances to copy the same event property into different profile
-properties.
-
-To check if your rule is properly deployed you can use the following SSH shell command :
-
-`unomi:rule-view form-mapping-example`
-
-The parameter is the `itemId` of the rule. If you want to see all the rules deployed in the system you can use the
-command :
-
-`unomi:rule-list 1000`
-
-The `1000` parameter is the limit of number of objects to retrieve. As the number of rules can grow quickly in an Apache
-Unomi instance, it is recommended to put this value a bit high to make sure you get the full list of rules.
-
-Once the rule is in place, try submitting the form with some values and check that the profile is properly updated. One
-recommend way of doing this is to use the `event-tail` command that will output something like this :
-
-[source]
-----
-ID                                  |Type          |Session                             |Profile                             |Timestamp                    |Scope          |Persi|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-cef09b89-6b99-4e4f-a99c-a4159a66b42b|form          |aaad09aa-88c2-67bd-b106-5a47ded43ead|48563fd0-6319-4260-8dba-ae421beba26f|Fri Nov 23 17:52:33 CET 2018 |realEstateManag|true |
-----
-
-You can directly see the profile that is being used, so you can then simply use the
-
-`unomi:profile-view 48563fd0-6319-4260-8dba-ae421beba26f`
-
-command to see a JSON dump of the profile and check that the form values have been properly positioned.
\ No newline at end of file
diff --git a/package/pom.xml b/package/pom.xml
index 2881e0c00..f557ca875 100644
--- a/package/pom.xml
+++ b/package/pom.xml
@@ -106,15 +106,6 @@
             <scope>runtime</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.unomi</groupId>
-            <artifactId>unomi-web-tracker-karaf-kar</artifactId>
-            <version>${project.version}</version>
-            <classifier>features</classifier>
-            <type>xml</type>
-            <scope>runtime</scope>
-        </dependency>
-
         <dependency>
             <groupId>org.apache.unomi</groupId>
             <artifactId>unomi-groovy-actions</artifactId>
@@ -375,7 +366,6 @@
                         <feature>shell-compat</feature>
                         <feature>unomi-kar</feature>
                         <feature>unomi-router-karaf-feature</feature>
-                        <feature>unomi-web-tracker-karaf-kar</feature>
                         <feature>unomi-groovy-actions</feature>
                         <feature>unomi-rest-ui</feature>
                     </bootFeatures>
diff --git a/src/main/resources/assemblies/source-shared.xml b/src/main/resources/assemblies/source-shared.xml
index 78c89030d..24e559b52 100644
--- a/src/main/resources/assemblies/source-shared.xml
+++ b/src/main/resources/assemblies/source-shared.xml
@@ -90,9 +90,6 @@
                 <exclude>
                     %regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]
                 </exclude>
-                <!-- NodeJS projects -->
-                <exclude>**/extensions/web-tracker/javascript/node/**/*</exclude>
-                <exclude>**/extensions/web-tracker/javascript/node_modules/**/*</exclude>
             </excludes>
         </fileSet>
         <!--  license, readme, etc. calculated at build time  -->
@@ -103,4 +100,4 @@
             <outputDirectory/>
         </fileSet>
     </fileSets>
-</component>
\ No newline at end of file
+</component>
diff --git a/tools/shell-commands/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/tools/shell-commands/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 2e8cac13e..25e44f799 100644
--- a/tools/shell-commands/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/tools/shell-commands/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -58,7 +58,6 @@
                 <value>org.apache.unomi.router-service</value>
                 <value>org.apache.unomi.router-rest</value>
                 <value>org.apache.unomi.shell-dev-commands</value>
-                <value>org.apache.unomi.web-tracker-wab</value>
                 <value>org.apache.unomi.groovy-actions-services</value>
                 <value>org.apache.unomi.groovy-actions-rest</value>
             </list>