diff --git a/app/panel/components/Settings/OptIn.jsx b/app/panel/components/Settings/OptIn.jsx
index 343ef70d1..3701b114f 100644
--- a/app/panel/components/Settings/OptIn.jsx
+++ b/app/panel/components/Settings/OptIn.jsx
@@ -55,7 +55,7 @@ const OptIn = (props) => {
}
- {settingsData.enable_metrics_abtest &&
+ {settingsData.enable_offers_abtest &&
diff --git a/package-lock.json b/package-lock.json
index ea3836cb4..184f4f188 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -186,7 +186,17 @@
"resolved": "https://registry.npmjs.org/@cliqz/adblocker/-/adblocker-0.1.7.tgz",
"integrity": "sha512-qMurMDwT0+6cSDkrWoriVpJbaffJzLmPRxJIU+7/c7CaWYrOBw96+zpa2zpyL3+2CiLBXiDsqyQ0uTubz/MldA==",
"requires": {
- "tldjs": "https://github.com/remusao/tld.js/releases/download/v2.2.0/tldjs-2.2.0.tgz"
+ "tldjs": "2.2.0"
+ },
+ "dependencies": {
+ "tldjs": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tldjs/-/tldjs-2.2.0.tgz",
+ "integrity": "sha512-5b5t+HKprfccAFRAsH/fzDR4O+UgO6vStvbaJo10jvMcUavlwxR3Jrn2WmXfjG3k22T7b4pqqfput38nr1RpJQ==",
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ }
}
},
"@cliqz/indexeddbshim": {
@@ -201,6 +211,27 @@
"typeson-registry": "1.0.0-alpha.18",
"unicode-9.0.0": "0.7.4",
"websql": "git+https://github.com/brettz9/node-websql.git#c9828a34c92eced64858fc19151ec099fd60e8dd"
+ },
+ "dependencies": {
+ "immediate": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz",
+ "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw="
+ },
+ "sync-promise": {
+ "version": "git+https://github.com/brettz9/sync-promise.git#25845a49a00aa2d2c985a5149b97c86a1fcdc75a"
+ },
+ "websql": {
+ "version": "git+https://github.com/brettz9/node-websql.git#c9828a34c92eced64858fc19151ec099fd60e8dd",
+ "requires": {
+ "argsarray": "0.0.1",
+ "immediate": "3.2.3",
+ "noop-fn": "1.0.0",
+ "pouchdb-collections": "1.0.1",
+ "sqlite3": "3.1.13",
+ "tiny-queue": "0.2.1"
+ }
+ }
}
},
"@sinonjs/formatio": {
@@ -1680,9 +1711,9 @@
}
},
"bowser": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.2.tgz",
- "integrity": "sha512-fuiANC1Bqbqa/S4gmvfCt7bGBmNELMsGZj4Wg3PrP6esP66Ttoj1JSlzFlXtHyduMv07kDNmDsX6VsMWT/MLGg=="
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.3.tgz",
+ "integrity": "sha512-/gp96UlcFw5DbV2KQPCqTqi0Mb9gZRyDAHiDsGEH+4B/KOQjeoE5lM1PxlVX8DQDvfEfitmC1rW2Oy8fk/XBDg=="
},
"brace-expansion": {
"version": "1.1.11",
@@ -1837,7 +1868,7 @@
},
"browser-core": {
"version": "https://s3.amazonaws.com/cdncliqz/update/edge/ghostery/v7.24/7.24.2.tgz",
- "integrity": "sha512-liuhqgOebZq47qAdS8+dOAIFLFRZuXVMpj95chw0A9JxD1avA/YgnjCDVPPZjxG5zEm2JrcYlTtsHCuRhBDrQA==",
+ "integrity": "sha1-8mqji/LINnuYF/2mjbJVgOJbk7E=",
"requires": {
"@cliqz-oss/dexie": "2.0.1-security-error-fix",
"@cliqz-oss/pouchdb": "6.3.4-security-error-fix-2",
@@ -1891,6 +1922,12 @@
"yuidoc-bootstrap-theme": "1.0.6"
},
"dependencies": {
+ "es6-micro-loader": {
+ "version": "github:cliqz-oss/es6-micro-loader#145e7bdbd8be2f4582096175482b1411eb56ec79",
+ "requires": {
+ "es6-promise": "1.0.0"
+ }
+ },
"fs-extra": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
@@ -2060,7 +2097,7 @@
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
"integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
"requires": {
- "caniuse-lite": "1.0.30000813",
+ "caniuse-lite": "1.0.30000815",
"electron-to-chromium": "1.3.33"
}
},
@@ -2208,9 +2245,9 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000813",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000813.tgz",
- "integrity": "sha512-A8ITSmH5SFdMFdC704ggjg+x2z5PzQmVlG8tavwnfvbC33Q1UYrj0+G+Xm0SNAnd4He36fwUE/KEWytOEchw+A=="
+ "version": "1.0.30000815",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000815.tgz",
+ "integrity": "sha512-PGSOPK6gFe5fWd+eD0u2bG0aOsN1qC4B1E66tl3jOsIoKkTIcBYAc2+O6AeNzKW8RsFykWgnhkTlfOyuTzgI9A=="
},
"caseless": {
"version": "0.12.0",
@@ -2261,7 +2298,6 @@
"requires": {
"anymatch": "1.3.2",
"async-each": "1.0.1",
- "fsevents": "1.1.3",
"glob-parent": "2.0.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
@@ -3592,12 +3628,6 @@
"event-emitter": "0.3.5"
}
},
- "es6-micro-loader": {
- "version": "github:cliqz-oss/es6-micro-loader#145e7bdbd8be2f4582096175482b1411eb56ec79",
- "requires": {
- "es6-promise": "1.0.0"
- }
- },
"es6-promise": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-1.0.0.tgz",
@@ -4300,1156 +4330,252 @@
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
- "dev": true
- },
- "fast-ordered-set": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz",
- "integrity": "sha1-P7s2Y097555PftvbSjV97iXRhOs=",
- "requires": {
- "blank-object": "1.0.2"
- }
- },
- "fast-url-parser": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.2.tgz",
- "integrity": "sha1-SzJGDsOmpw6NSR+ogBXeUzjQHEA=",
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "fastparse": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
- "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
- "dev": true
- },
- "fb-watchman": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
- "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
- "dev": true,
- "requires": {
- "bser": "2.0.0"
- }
- },
- "fbjs": {
- "version": "0.8.16",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
- "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
- "requires": {
- "core-js": "1.2.7",
- "isomorphic-fetch": "2.2.1",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1",
- "promise": "7.3.1",
- "setimmediate": "1.0.5",
- "ua-parser-js": "0.7.17"
- },
- "dependencies": {
- "core-js": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
- "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
- }
- }
- },
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "1.0.5"
- }
- },
- "file-entry-cache": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
- "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
- "dev": true,
- "requires": {
- "flat-cache": "1.3.0",
- "object-assign": "4.1.1"
- }
- },
- "file-loader": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz",
- "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==",
- "dev": true,
- "requires": {
- "loader-utils": "1.1.0",
- "schema-utils": "0.3.0"
- }
- },
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
- "dev": true
- },
- "fileset": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
- "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
- "dev": true,
- "requires": {
- "glob": "7.1.2",
- "minimatch": "3.0.4"
- }
- },
- "fill-range": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
- "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
- "dev": true,
- "requires": {
- "is-number": "2.1.0",
- "isobject": "2.1.0",
- "randomatic": "1.1.7",
- "repeat-element": "1.1.2",
- "repeat-string": "1.6.1"
- }
- },
- "find-cache-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
- "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
- "dev": true,
- "requires": {
- "commondir": "1.0.1",
- "make-dir": "1.1.0",
- "pkg-dir": "2.0.0"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "2.0.0"
- }
- },
- "flat-cache": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
- "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
- "dev": true,
- "requires": {
- "circular-json": "0.3.3",
- "del": "2.2.2",
- "graceful-fs": "4.1.11",
- "write": "0.2.1"
- }
- },
- "flatten": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
- "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
- "dev": true
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
- },
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "dev": true,
- "requires": {
- "for-in": "1.0.2"
- }
- },
- "foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.6",
- "mime-types": "2.1.17"
- }
- },
- "formatio": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz",
- "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=",
- "dev": true,
- "requires": {
- "samsam": "1.3.0"
- }
- },
- "foundation-sites": {
- "version": "6.4.4-rc1",
- "resolved": "https://registry.npmjs.org/foundation-sites/-/foundation-sites-6.4.4-rc1.tgz",
- "integrity": "sha512-26cL66QFNqMVwM7bmIEqq4jiW+6CkIeW719ci1pchdJ4UK0Om+3Jl7MhkX/lzdzRHB75f2m1IK9lxk3JGOwApA==",
- "requires": {
- "jquery": "3.3.1",
- "what-input": "4.3.1"
- },
- "dependencies": {
- "jquery": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
- "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg=="
- }
- }
- },
- "fraction.js": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.2.tgz",
- "integrity": "sha512-OswcigOSil3vYXgrPSx4NCaSyPikXqVNYN/4CyhS0ucVOJ4GVYr6KQQLLcAudvS/4bBOzxqJ3XIsFaaMjl98ZQ=="
- },
- "fs-extra": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
- "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "4.0.0",
- "universalify": "0.1.1"
- }
- },
- "fs-tree-diff": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/fs-tree-diff/-/fs-tree-diff-0.5.7.tgz",
- "integrity": "sha512-dJwDX6NBH7IfdfFjZAdHCZ6fIKc8LwR7kzqUhYRFJuX4g9ctG/7cuqJuwegGQsyLEykp6Z4krq+yIFMQlt7d9Q==",
- "requires": {
- "heimdalljs-logger": "0.1.9",
- "object-assign": "4.1.1",
- "path-posix": "1.0.0",
- "symlink-or-copy": "1.2.0"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fsevents": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
- "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
- "dev": true,
- "optional": true,
- "requires": {
- "nan": "2.4.0",
- "node-pre-gyp": "0.6.39"
- },
- "dependencies": {
- "abbrev": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "ajv": {
- "version": "4.11.8",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
- }
- },
- "ansi-regex": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true
- },
- "aproba": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "are-we-there-yet": {
- "version": "1.1.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.2.9"
- }
- },
- "asn1": {
- "version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "assert-plus": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "asynckit": {
- "version": "0.4.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "aws-sign2": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "aws4": {
- "version": "1.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "balanced-match": {
- "version": "0.4.2",
- "bundled": true,
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "tweetnacl": "0.14.5"
- }
- },
- "block-stream": {
- "version": "0.0.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "boom": {
- "version": "2.10.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "brace-expansion": {
- "version": "1.1.7",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "0.4.2",
- "concat-map": "0.0.1"
- }
- },
- "buffer-shims": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "caseless": {
- "version": "0.12.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "co": {
- "version": "4.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "delayed-stream": "1.0.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "bundled": true,
- "dev": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "cryptiles": {
- "version": "2.0.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "boom": "2.10.1"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "debug": {
- "version": "2.6.8",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "deep-extend": {
- "version": "0.4.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "delayed-stream": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "delegates": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "detect-libc": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "extend": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "extsprintf": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "forever-agent": {
- "version": "0.6.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "form-data": {
- "version": "2.1.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.15"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "fstream": {
- "version": "1.0.11",
- "bundled": true,
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.1"
- }
- },
- "fstream-ignore": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "fstream": "1.0.11",
- "inherits": "2.0.3",
- "minimatch": "3.0.4"
- }
- },
- "gauge": {
- "version": "2.7.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "aproba": "1.1.1",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.2"
- }
- },
- "getpass": {
- "version": "0.1.7",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "glob": {
- "version": "7.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "graceful-fs": {
- "version": "4.1.11",
- "bundled": true,
- "dev": true
- },
- "har-schema": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "har-validator": {
- "version": "4.2.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ajv": "4.11.8",
- "har-schema": "1.0.5"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "hawk": {
- "version": "3.1.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
- }
- },
- "hoek": {
- "version": "2.16.3",
- "bundled": true,
- "dev": true
- },
- "http-signature": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.0",
- "sshpk": "1.13.0"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "bundled": true,
- "dev": true
- },
- "ini": {
- "version": "1.3.4",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-typedarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "isarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jodid25519": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "json-schema": {
- "version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jsonify": {
- "version": "0.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jsprim": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.0.2",
- "json-schema": "0.2.3",
- "verror": "1.3.6"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "mime-db": {
- "version": "1.27.0",
- "bundled": true,
- "dev": true
- },
- "mime-types": {
- "version": "2.1.15",
- "bundled": true,
- "dev": true,
- "requires": {
- "mime-db": "1.27.0"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.7"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "bundled": true,
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "node-pre-gyp": {
- "version": "0.6.39",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "detect-libc": "1.0.2",
- "hawk": "3.1.3",
- "mkdirp": "0.5.1",
- "nopt": "4.0.1",
- "npmlog": "4.1.0",
- "rc": "1.2.1",
- "request": "2.81.0",
- "rimraf": "2.6.1",
- "semver": "5.3.0",
- "tar": "2.2.1",
- "tar-pack": "3.4.0"
- }
- },
- "nopt": {
- "version": "4.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "abbrev": "1.1.0",
- "osenv": "0.1.4"
- }
- },
- "npmlog": {
- "version": "4.1.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "are-we-there-yet": "1.1.4",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "oauth-sign": {
- "version": "0.8.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "object-assign": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "osenv": {
- "version": "0.1.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "performance-now": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "bundled": true,
- "dev": true
- },
- "punycode": {
- "version": "1.4.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "qs": {
- "version": "6.4.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "rc": {
- "version": "1.2.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "readable-stream": {
- "version": "2.2.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "buffer-shims": "1.0.0",
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "1.0.1",
- "util-deprecate": "1.0.2"
- }
- },
- "request": {
- "version": "2.81.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.6.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "4.2.1",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.15",
- "oauth-sign": "0.8.2",
- "performance-now": "0.2.0",
- "qs": "6.4.0",
- "safe-buffer": "5.0.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
- "tunnel-agent": "0.6.0",
- "uuid": "3.0.1"
- }
- },
- "rimraf": {
- "version": "2.6.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "glob": "7.1.2"
- }
- },
- "safe-buffer": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true
- },
- "semver": {
- "version": "5.3.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "sntp": {
- "version": "1.0.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "sshpk": {
- "version": "1.13.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jodid25519": "1.0.2",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "string_decoder": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "tar": {
- "version": "2.2.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "block-stream": "0.0.9",
- "fstream": "1.0.11",
- "inherits": "2.0.3"
- }
- },
- "tar-pack": {
- "version": "3.4.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "debug": "2.6.8",
- "fstream": "1.0.11",
- "fstream-ignore": "1.0.5",
- "once": "1.4.0",
- "readable-stream": "2.2.9",
- "rimraf": "2.6.1",
- "tar": "2.2.1",
- "uid-number": "0.0.6"
- }
- },
- "tough-cookie": {
- "version": "2.3.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "uid-number": {
- "version": "0.0.6",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "uuid": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "verror": {
- "version": "1.3.6",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "extsprintf": "1.0.2"
- }
- },
- "wide-align": {
- "version": "1.1.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "string-width": "1.0.2"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fast-ordered-set": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz",
+ "integrity": "sha1-P7s2Y097555PftvbSjV97iXRhOs=",
+ "requires": {
+ "blank-object": "1.0.2"
+ }
+ },
+ "fast-url-parser": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.2.tgz",
+ "integrity": "sha1-SzJGDsOmpw6NSR+ogBXeUzjQHEA=",
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "fb-watchman": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
+ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
+ "dev": true,
+ "requires": {
+ "bser": "2.0.0"
+ }
+ },
+ "fbjs": {
+ "version": "0.8.16",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
+ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.17"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ }
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "1.3.0",
+ "object-assign": "4.1.1"
+ }
+ },
+ "file-loader": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz",
+ "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
+ "fileset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "minimatch": "3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "dev": true,
+ "requires": {
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "1.1.7",
+ "repeat-element": "1.1.2",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "requires": {
+ "commondir": "1.0.1",
+ "make-dir": "1.1.0",
+ "pkg-dir": "2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
+ "dev": true,
+ "requires": {
+ "circular-json": "0.3.3",
+ "del": "2.2.2",
+ "graceful-fs": "4.1.11",
+ "write": "0.2.1"
+ }
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "2.1.17"
+ }
+ },
+ "formatio": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz",
+ "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=",
+ "dev": true,
+ "requires": {
+ "samsam": "1.3.0"
+ }
+ },
+ "foundation-sites": {
+ "version": "6.4.4-rc1",
+ "resolved": "https://registry.npmjs.org/foundation-sites/-/foundation-sites-6.4.4-rc1.tgz",
+ "integrity": "sha512-26cL66QFNqMVwM7bmIEqq4jiW+6CkIeW719ci1pchdJ4UK0Om+3Jl7MhkX/lzdzRHB75f2m1IK9lxk3JGOwApA==",
+ "requires": {
+ "jquery": "3.3.1",
+ "what-input": "4.3.1"
+ },
+ "dependencies": {
+ "jquery": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
+ "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg=="
}
}
},
+ "fraction.js": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.2.tgz",
+ "integrity": "sha512-OswcigOSil3vYXgrPSx4NCaSyPikXqVNYN/4CyhS0ucVOJ4GVYr6KQQLLcAudvS/4bBOzxqJ3XIsFaaMjl98ZQ=="
+ },
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.1"
+ }
+ },
+ "fs-tree-diff": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/fs-tree-diff/-/fs-tree-diff-0.5.7.tgz",
+ "integrity": "sha512-dJwDX6NBH7IfdfFjZAdHCZ6fIKc8LwR7kzqUhYRFJuX4g9ctG/7cuqJuwegGQsyLEykp6Z4krq+yIFMQlt7d9Q==",
+ "requires": {
+ "heimdalljs-logger": "0.1.9",
+ "object-assign": "4.1.1",
+ "path-posix": "1.0.0",
+ "symlink-or-copy": "1.2.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
"fstream": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
@@ -6171,7 +5297,7 @@
"resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz",
"integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=",
"requires": {
- "bowser": "1.9.2",
+ "bowser": "1.9.3",
"css-in-js-utils": "2.0.0"
}
},
@@ -10296,7 +9422,7 @@
"npmlog": "2.0.4",
"os-homedir": "1.0.2",
"pump": "1.0.3",
- "rc": "1.2.5",
+ "rc": "1.2.6",
"simple-get": "1.4.3",
"tar-fs": "1.16.0",
"tar-stream": "1.5.5",
@@ -10549,9 +9675,9 @@
}
},
"rc": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.5.tgz",
- "integrity": "sha1-J1zWh/bjs2zHVrqibf7oCnkDAf0=",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz",
+ "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=",
"requires": {
"deep-extend": "0.4.2",
"ini": "1.3.5",
@@ -11275,7 +10401,6 @@
"anymatch": "1.3.2",
"exec-sh": "0.2.1",
"fb-watchman": "2.0.0",
- "fsevents": "1.1.3",
"minimatch": "3.0.4",
"minimist": "1.2.0",
"walker": "1.0.7",
@@ -12829,9 +11954,6 @@
"resolved": "https://registry.npmjs.org/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz",
"integrity": "sha512-W31+GLiBmU/ZR02Ii0mVZICuNEN9daZ63xZMPDsYgPgNjMtg+atqLEGI7PPI936jYSQZxoLb/63xos8Adrx4Eg=="
},
- "sync-promise": {
- "version": "git+https://github.com/brettz9/sync-promise.git#25845a49a00aa2d2c985a5149b97c86a1fcdc75a"
- },
"systemjs": {
"version": "0.19.47",
"resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.47.tgz",
@@ -14023,24 +13145,6 @@
}
}
},
- "websql": {
- "version": "git+https://github.com/brettz9/node-websql.git#c9828a34c92eced64858fc19151ec099fd60e8dd",
- "requires": {
- "argsarray": "0.0.1",
- "immediate": "3.2.3",
- "noop-fn": "1.0.0",
- "pouchdb-collections": "1.0.1",
- "sqlite3": "3.1.13",
- "tiny-queue": "0.2.1"
- },
- "dependencies": {
- "immediate": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz",
- "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw="
- }
- }
- },
"what-input": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/what-input/-/what-input-4.3.1.tgz",
diff --git a/src/background.js b/src/background.js
index 2c970c636..235c189cb 100644
--- a/src/background.js
+++ b/src/background.js
@@ -67,24 +67,33 @@ const onHeadersReceived = events.onHeadersReceived.bind(events);
// Cliqz Modules
const humanweb = cliqz.modules['human-web'];
-const { adblocker, antitracking } = cliqz.modules;
+const { adblocker, antitracking, hpn } = cliqz.modules;
const messageCenter = cliqz.modules['message-center'];
const offers = cliqz.modules['offers-v2'];
+log('MODULES', cliqz.modules);
+
+const CORRECT_STATE = 'CorrectState';
+/**
+ * Enable or disable specified module.
+ * @memberOf Background
+ * @param {Object} module Cliqz module
+ * @param {boolean} enabled true - enable, false - disable
+ * @return {Promise}
+ */
function setCliqzModuleEnabled(module, enabled) {
- if (enabled) {
+ if (enabled && !module.isEnabled) {
+ log('SET CLIQZ MODULE ENABLED', module);
return cliqz.enableModule(module.name);
+ } else if (!enabled && module.isEnabled) {
+ log('SET CLIQZ MODULE DISABLED', module);
+ cliqz.disableModule(module.name);
+ return Promise.resolve();
}
- return module.isReady().then(() => cliqz.disableModule(module.name));
+ log('MODULE IS ALREADY IN CORRECT STATE', module, enabled);
+ return Promise.resolve(CORRECT_STATE);
}
-// local varialbes
-let HUMAN_WEB_PROCESSING = false;
-let OFFERS_PROCESSING = false;
-let ANTI_TRACKING_PROCESSING = false;
-let AD_BLOCK_PROCESSING = false;
-let BACKGROUND_LOADING = true;
-
/**
* Check and fetch (if needed) a new tracker library every 12 hours
* @memberOf Background
@@ -775,45 +784,27 @@ function initializeDispatcher() {
});
dispatcher.on('conf.save.enable_human_web', (enableHumanWeb) => {
if (!IS_EDGE && !IS_CLIQZ) {
- if (!HUMAN_WEB_PROCESSING && !BACKGROUND_LOADING) {
- HUMAN_WEB_PROCESSING = true;
- setCliqzModuleEnabled(humanweb, enableHumanWeb).then(() => {
- HUMAN_WEB_PROCESSING = false;
- // humanweb enable/disable may change telemetry abtest behaviour
- setupABTests();
- });
- }
+ setCliqzModuleEnabled(humanweb, enableHumanWeb).then((data) => {
+ if (data !== CORRECT_STATE) {
+ // We don't want to affect Offers here
+ setupABTestAntitracking();
+ }
+ });
}
});
dispatcher.on('conf.save.enable_offers', (enableOffers) => {
if (!IS_EDGE && !IS_CLIQZ) {
- if (!OFFERS_PROCESSING && !BACKGROUND_LOADING) {
- OFFERS_PROCESSING = true;
- setCliqzModuleEnabled(messageCenter, enableOffers)
- .then(() => setCliqzModuleEnabled(offers, enableOffers));
- OFFERS_PROCESSING = false;
- }
+ setCliqzModuleEnabled(offers, enableOffers);
}
});
dispatcher.on('conf.save.enable_anti_tracking', (enableAntitracking) => {
if (!IS_CLIQZ) {
- if (!ANTI_TRACKING_PROCESSING && !BACKGROUND_LOADING) {
- ANTI_TRACKING_PROCESSING = true;
- setCliqzModuleEnabled(antitracking, enableAntitracking)
- .then(() => {
- ANTI_TRACKING_PROCESSING = false;
- });
- }
+ setCliqzModuleEnabled(antitracking, enableAntitracking);
}
});
dispatcher.on('conf.save.enable_ad_block', (enableAdBlock) => {
if (!IS_CLIQZ) {
- if (!AD_BLOCK_PROCESSING && !BACKGROUND_LOADING) {
- setCliqzModuleEnabled(adblocker, enableAdBlock)
- .then(() => {
- AD_BLOCK_PROCESSING = false;
- });
- }
+ setCliqzModuleEnabled(adblocker, enableAdBlock);
}
});
@@ -855,11 +846,10 @@ function getAntitrackingTestConfig() {
}
/**
- * Setup Antitracking and Offers based on the results
- * returned from the abtest endpoint.
- * @memberOf Background
+ * Adjust antitracking parameters based on the current state
+ * of ABTest and availability of Human Web.
*/
-function setupABTests() {
+function setupABTestAntitracking() {
const antitrackingConfig = getAntitrackingTestConfig();
if (antitrackingConfig && conf.enable_anti_tracking) {
if (!conf.enable_human_web) {
@@ -872,9 +862,23 @@ function setupABTests() {
antitracking.action('setConfigOption', opt, val);
});
}
+}
+/**
+ * Adjust offers based on the current state of ABTest.
+ */
+function setupABTestOffers() {
// enable offers ONLY if ABTest is true and user has left it enabled.
conf.enable_offers = (abtest.hasTest('offers') && conf.enable_offers);
}
+/**
+ * Setup Antitracking and Offers based on the results
+ * returned from the abtest endpoint.
+ * @memberOf Background
+ */
+function setupABTests() {
+ setupABTestAntitracking();
+ setupABTestOffers();
+}
/**
* WebRequest pipeline initialisation: find which Cliqz modules are enabled,
@@ -965,59 +969,68 @@ adblocker.on('enabled', () => {
});
});
-
-// Set listener for 'enabled' event for Offers module.
-// It registers message handler for messages with the offers.
-// This handler adds incoming message data to the array of
-// notimication messages (CMP_DATA) to be eventually displayed.
offers.on('enabled', () => {
- const messageCenter = cliqz.modules['message-center'];
- return messageCenter.action('registerMessageHandler', OFFERS_HANDLER_ID, (msg) => {
- // ffers enabled at the moment when message received
- messageCenter.action('hideMessage', OFFERS_HANDLER_ID, msg);
- msg.Dismiss = 1; // to be immediately dismissed once shown
-
- /**
- * We changed the message structure here so we need to map
- * to the new way on ghostery 8 after nav-ext 1.18
- *
- * {
- * id: offerInfoCpy.display_id,
- * Message: offerInfoCpy.ui_info.template_data.title,
- * Link: offerInfoCpy.ui_info.template_data.call_to_action.url,
- * LinkText: offerInfoCpy.ui_info.template_data.call_to_action.text,
- * type: 'offers',
- * origin: 'cliqz',
- * data: {
- * offer_info: {
- * offer_id: data.offer_data.offer_id,
- * offer_urls: urlsToShow
- * }
- * }
- * }
- */
-
- // first check that the message is from core and is the one we expect
- if (msg.origin === 'offers-core' &&
- msg.type === 'push-offer' &&
- msg.data.offer_data) {
- const { data } = msg;
- const cmpMsg = {
- id: data.offer_data.display_id,
- Message: data.offer_data.ui_info.template_data.title,
- Link: data.offer_data.ui_info.template_data.call_to_action.url,
- LinkText: data.offer_data.ui_info.template_data.call_to_action.text,
- type: 'offers',
- origin: 'cliqz',
- data: {
- offer_info: {
- offer_id: data.offer_data.offer_id,
- offer_urls: data.offer_data.rule_info.url
+ offers.isReady().then(() => {
+ log('IN OFFERS ON ENABLED', offers, messageCenter);
+ setCliqzModuleEnabled(messageCenter, true);
+ });
+});
+/**
+ * Set listener for 'enabled' event for Offers module.
+ * It registers message handler for messages with the offers.
+ * This handler adds incoming message data to the array of
+ * notimication messages (CMP_DATA) to be eventually displayed.
+ */
+messageCenter.on('enabled', () => {
+ messageCenter.isReady().then(() => {
+ log('IN MESSAGE CENTER ON ENABLED', offers, messageCenter);
+ // const messageCenter = cliqz.modules['message-center'];
+ return messageCenter.action('registerMessageHandler', OFFERS_HANDLER_ID, (msg) => {
+ // ffers enabled at the moment when message received
+ messageCenter.action('hideMessage', OFFERS_HANDLER_ID, msg);
+ msg.Dismiss = 1; // to be immediately dismissed once shown
+ /**
+ * We changed the message structure here so we need to map
+ * to the new way on ghostery 8 after nav-ext 1.18
+ *
+ * {
+ * id: offerInfoCpy.display_id,
+ * Message: offerInfoCpy.ui_info.template_data.title,
+ * Link: offerInfoCpy.ui_info.template_data.call_to_action.url,
+ * LinkText: offerInfoCpy.ui_info.template_data.call_to_action.text,
+ * type: 'offers',
+ * origin: 'cliqz',
+ * data: {
+ * offer_info: {
+ * offer_id: data.offer_data.offer_id,
+ * offer_urls: urlsToShow
+ * }
+ * }
+ * }
+ */
+ log('GOT OFFER!!!!!!!!!!!!!!!!!!!!!!');
+ // first check that the message is from core and is the one we expect
+ if (msg.origin === 'offers-core' &&
+ msg.type === 'push-offer' &&
+ msg.data.offer_data) {
+ const { data } = msg;
+ const cmpMsg = {
+ id: data.offer_data.display_id,
+ Message: data.offer_data.ui_info.template_data.title,
+ Link: data.offer_data.ui_info.template_data.call_to_action.url,
+ LinkText: data.offer_data.ui_info.template_data.call_to_action.text,
+ type: 'offers',
+ origin: 'cliqz',
+ data: {
+ offer_info: {
+ offer_id: data.offer_data.offer_id,
+ offer_urls: data.offer_data.rule_info.url
+ }
}
- }
- };
- cmp.CMP_DATA.push(cmpMsg);
- }
+ };
+ cmp.CMP_DATA.push(cmpMsg);
+ }
+ });
});
});
@@ -1284,9 +1297,7 @@ function initializeGhosteryModules() {
});
if (IS_EDGE) {
- cliqz.disableModule('hpn');
- cliqz.disableModule('offers-v2');
- cliqz.disableModule('human-web');
+ setCliqzModuleEnabled(hpn, false);
}
cliqzStartup.then(() => {
if (!IS_EDGE) {
@@ -1360,16 +1371,13 @@ function init() {
initializePopup();
initializeEventListeners();
initializeVersioning();
- return metrics.init(globals.JUST_INSTALLED).then(() => initializeGhosteryModules().then(() => {
- BACKGROUND_LOADING = false;
- return accounts.pullUserSettings().catch((err) => {
- log('init() cannot pull user settings:', err);
- }).then(() => {
- // persist Conf properties to storage only after init has completed
- common.prefsSet(globals.initProps);
- globals.INIT_COMPLETE = true;
- });
- }));
+ return metrics.init(globals.JUST_INSTALLED).then(() => initializeGhosteryModules().then(() => accounts.pullUserSettings().catch((err) => {
+ log('init() cannot pull user settings:', err);
+ }).then(() => {
+ // persist Conf properties to storage only after init has completed
+ common.prefsSet(globals.initProps);
+ globals.INIT_COMPLETE = true;
+ })));
}).catch((err) => {
log('Error in init()', err);
return Promise.reject(err);
diff --git a/src/classes/Metrics.js b/src/classes/Metrics.js
index 941671077..062a955cd 100644
--- a/src/classes/Metrics.js
+++ b/src/classes/Metrics.js
@@ -15,6 +15,7 @@ import globals from './Globals';
import conf from './Conf';
import { log, prefsSet, prefsGet } from '../utils/common';
import { processUrlQuery } from '../utils/utils';
+import abtest from './ABTest';
// CONSTANTS
const FREQUENCIES = { // in milliseconds
@@ -280,7 +281,7 @@ class Metrics {
`&l=${encodeURIComponent(conf.language)}` +
// Old parameters, new names
// Offers (former offers)
- `&of=${encodeURIComponent(IS_EDGE ? '0' : (conf.enable_offers ? '1' : '0'))}` +
+ `&of=${encodeURIComponent(IS_EDGE ? '0' : ((conf.enable_offers && abtest.hasTest('offers')) ? '1' : '0'))}` +
// Random number, assigned at install (former install_rand)
`&ir=${encodeURIComponent(conf.install_random_number)}` +
// Login state (former signed_in)
diff --git a/src/classes/PanelData.js b/src/classes/PanelData.js
index 71eb99238..5732171c2 100644
--- a/src/classes/PanelData.js
+++ b/src/classes/PanelData.js
@@ -250,7 +250,7 @@ class PanelData {
enable_human_web: this._confData.get('enable_human_web'),
enable_offers: this._confData.get('enable_offers'),
enable_metrics: this._confData.get('enable_metrics'),
- enable_metrics_abtest: abtest.hasTest('offers'),
+ enable_offers_abtest: abtest.hasTest('offers'),
first_name: this._confData.get('first_name'),
last_name: this._confData.get('last_name'),
hide_alert_trusted: this._confData.get('hide_alert_trusted'),