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/05 12:23:31 UTC

[unomi] branch master updated: UNOMI-609 : remove web tracker (#454)

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

jsinovassinnaik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/master by this push:
     new 49456fe10 UNOMI-609 : remove web tracker (#454)
49456fe10 is described below

commit 49456fe10f54ee85e9ecc59cf5adaf5be756b984
Author: jsinovassin <58...@users.noreply.github.com>
AuthorDate: Tue Jul 5 14:23:25 2022 +0200

    UNOMI-609 : remove web tracker (#454)
---
 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>