diff --git a/.dependabot/config.yml b/.dependabot/config.yml index 38c7a4c9d..a04f0d11c 100644 --- a/.dependabot/config.yml +++ b/.dependabot/config.yml @@ -16,3 +16,17 @@ update_configs: # # But you have been warned... dependency_name: "systemjs" + default_reviewers: + - "remusao" + - "private-face" + - "luciancor" + default_labels: + - "chore" + automerged_updates: + # Here we indicate to dependabot that whenever a dev dependency is + # updated, and CI is green, and the version bump is withing version range + # specified in package.json, then it should be safe to merge + # automatically. + - match: + dependency_type: "development" + update_type: "in_range" diff --git a/.editorconfig b/.editorconfig index e35020ffe..6e58f4c8b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,7 +14,7 @@ insert_final_newline = true charset = utf-8 trim_trailing_whitespace = true -[*.{es,js,json,jsm,jsx,ts,tsx}] +[*.{es,js,json,jsm,jsx,ts,tsx,yml}] indent_style = space indent_size = 2 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..60277f4f0 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +# Changelog + +## [1.46.0] - 2020-05-12 + + * Update visuals on Cliqz Tab + * Improve UI in quick search dropdown + * Telemetry improvements (generic UI analyses, fix in search sessions) + +## [1.45.0] - 2020-04-07 + + * Make Cliqz default search for 5% of new desktop browser users + * Fix page breakage for auto-consent (cookie pop-up blocker) + * Improve UI in various places (like on-boarding, Cliqz Tab) + * Clean-up and reduce telemetry by removing legacy code + * Using only bundled versions of anti-tracking resources to save bandwidth and storage + * On-going work to clean-up and trim-down extension bundle for better performance diff --git a/CODEOWNERS b/CODEOWNERS index 0354bf8a2..6eaad1be9 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -20,6 +20,7 @@ /configs/common/urls-myoffrz.js @luciancor /configs/offers.js @luciancor /configs/releases/offers-chip-chrome.js @luciancor +/configs/releases/offers-chip-edge.js @luciancor /configs/releases/offers-chip-firefox.js @luciancor /configs/releases/offers-chrome.js @luciancor /configs/releases/offers-edge.js @luciancor diff --git a/Dockerfile.benchmark b/Dockerfile.benchmark index f17b8ba80..659657513 100644 --- a/Dockerfile.benchmark +++ b/Dockerfile.benchmark @@ -6,15 +6,20 @@ RUN apt-get update --no-install-recommends \ && apt-get install -y time jq \ && rm -rf /var/lib/apt/lists/* -RUN mkdir /app +RUN mkdir -p /app/benchmarks RUN chown node:node -R /app USER node +WORKDIR /app/ + +# Install benchmark dependencies +COPY benchmarks/package.json /app/benchmarks/ +COPY benchmarks/package-lock.json /app/benchmarks/ +RUN cd ./benchmarks && npm ci + COPY package.json /app/ COPY package-lock.json /app/ -WORKDIR /app/ - RUN mkdir -p /app/benchmarks && wget -O - https://s3.amazonaws.com/cdncliqz/extension-profiles/session_2018-10-15.jl.gz | gunzip > /app/benchmarks/session.jl RUN wget -O - https://cdn.cliqz.com/adblocking/requests_top500.json.gz | gunzip | head -n 100000 > /app/benchmarks/requests.jl RUN npm ci diff --git a/Dockerfile.ci b/Dockerfile.ci index a1fdbb640..481bc6cce 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -20,6 +20,8 @@ RUN apt-get update --no-install-recommends \ libdbus-glib-1-2 \ libfontconfig1 \ libfreetype6 \ + libgbm-dev \ + libgbm1 \ libgcc1 \ libgconf-2-4 \ libgdk-pixbuf2.0-0 \ diff --git a/Jenkinsfile.benchmark b/Jenkinsfile.benchmark index 6ae5190e9..bd259a4bb 100644 --- a/Jenkinsfile.benchmark +++ b/Jenkinsfile.benchmark @@ -45,6 +45,7 @@ node('docker && !gpu && us-east-1') { withEnv(["CLIQZ_CONFIG_PATH=./configs/${params.CONFIG}"]) { stage('fern build') { sh 'cp -r /app/node_modules ./' + sh 'cp -r /app/benchmarks/node_modules ./benchmarks/' sh './fern.js build' } diff --git a/Jenkinsfile.multibranch b/Jenkinsfile.multibranch index 7dbfc83a2..e42734af1 100644 --- a/Jenkinsfile.multibranch +++ b/Jenkinsfile.multibranch @@ -84,6 +84,10 @@ if (env.BRANCH_NAME.startsWith('v12.')) { matrix['cliqz-geckoview'] = [ 'config': 'cliqz-geckoview.js', ] + matrix['ghostery-geckoview'] = [ + 'config': 'ghostery-geckoview.js', + ] + } if (env.BRANCH_NAME.startsWith('v13.')) { @@ -99,6 +103,9 @@ if (env.BRANCH_NAME.startsWith('v14.')) { matrix['offers-chip-chrome'] = [ 'config': 'releases/offers-chip-chrome.js', ] + matrix['offers-chip-edge'] = [ + 'config': 'releases/offers-chip-edge.js', + ] } if (isIntegrationBranch) { @@ -158,6 +165,10 @@ if (isIntegrationBranch) { 'config': 'cliqz-geckoview.js', ] + matrix['ghostery-geckoview'] = [ + 'config': 'ghostery-geckoview.js', + ] + matrix['lumen-ios'] = [ 'config': 'lumen-ios.js', ] diff --git a/VERSION b/VERSION index cbc91f9f0..d811568bc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v7.45.2 +v7.47.0 diff --git a/amocleaner.js b/amocleaner.js index 8b1b0c0a3..bb61532ee 100755 --- a/amocleaner.js +++ b/amocleaner.js @@ -15,12 +15,12 @@ const CONFIGS = { sparalarm: { configs: ['offers.js'], 'configs/common': [...COMMON_CONFIGS, 'urls-myoffrz.js'], - 'configs/releases': ['offers-chip-firefox.js', 'offers-chip-chrome.js'], + 'configs/releases': ['offers-chip-firefox.js', 'offers-chip-chrome.js', 'offers-chip-edge.js'], }, myoffrz: { configs: ['offers.js'], 'configs/common': [...COMMON_CONFIGS, 'urls-myoffrz.js'], - 'configs/releases': ['offers-chip-firefox.js', 'offers-chip-chrome.js'], + 'configs/releases': ['offers-firefox.js', 'offers-chrome.js'], }, gt: { configs: ['ghostery-tab-base.js', 'ghostery-tab-firefox.js', 'ghostery-tab-chrome.js'], diff --git a/benchmarks/package-lock.json b/benchmarks/package-lock.json new file mode 100644 index 000000000..ceef25da0 --- /dev/null +++ b/benchmarks/package-lock.json @@ -0,0 +1,1070 @@ +{ + "name": "browser-core-benchmarks", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/polyfill": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.8.7.tgz", + "integrity": "sha512-LeSfP9bNZH2UOZgcGcZ0PIHUt1ZuHub1L3CVmEyqLxCeDLm4C5Gi8jRH8ZX2PNpDhQCo0z6y/+DIs2JlliXW8w==", + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, + "@cliqz/webextension-emulator": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@cliqz/webextension-emulator/-/webextension-emulator-0.2.1.tgz", + "integrity": "sha512-AFuSjBx3UH+ZgARc7RQDBytxvMO7MGtcJ7z7GLJDICXfS/2HOiRZYYzVygSO3/woIh89ABuaMCKYNzbgNv6mqw==", + "requires": { + "atob": "^2.1.2", + "blob": "0.0.5", + "btoa": "^1.2.1", + "fake-indexeddb": "^2.0.5", + "filereader": "^0.10.3", + "indexeddbshim": "^4.1.0", + "node-fetch": "^2.3.0", + "node-webcrypto-ossl": "^1.0.44", + "webextension-polyfill": "^0.3.1" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argsarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", + "integrity": "sha1-bnIHtOzbObCviDA/pa4ivajfYcs=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-arraybuffer-es6": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer-es6/-/base64-arraybuffer-es6-0.5.0.tgz", + "integrity": "sha512-UCIPaDJrNNj5jG2ZL+nzJ7czvZV/ZYX6LaIRgfVU1k1edJOQg7dkbiSKzwHkNp6aHEHER/PhlFBrMYnlvJJQEw==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "eventtargeter": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eventtargeter/-/eventtargeter-0.5.0.tgz", + "integrity": "sha512-FQbP+ToTYLKEF3VpyaciNbaexbvIOrXW1V1Hg7kKCT+AiX6sq8rUn1NIQiYEpA04eWzHpopH/QRHqm3K2KnLtQ==", + "requires": { + "@babel/polyfill": "^7.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fake-indexeddb": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fake-indexeddb/-/fake-indexeddb-2.1.1.tgz", + "integrity": "sha512-di5PzbH6/gleD4qcpxT1IDtNNMTKuEs+C2KeJDP1e4mwP2L0UY+vPcTkCdIGq8IcaUUph6IkCrUZJvtpFUdhfg==", + "requires": { + "core-js": "^2.4.1", + "realistic-structured-clone": "^2.0.1", + "setimmediate": "^1.0.5" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "filereader": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/filereader/-/filereader-0.10.3.tgz", + "integrity": "sha1-x0fUos2PYeVBinwH/hJXpD8KzbE=" + }, + "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.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "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" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + }, + "indexeddbshim": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/indexeddbshim/-/indexeddbshim-4.1.0.tgz", + "integrity": "sha512-gnhy0Fz1fWU9pnIo16uKC9dGimsv/vKlXzZ9zasN2EUkx/KxtHkCIfR8I1XRqujsuTelQmn1/34RpDFycNVxtw==", + "requires": { + "@babel/polyfill": "^7.0.0", + "eventtargeter": "0.5.0", + "sync-promise": "git+https://github.com/brettz9/sync-promise.git#full-sync-missing-promise-features", + "typeson": "5.11.0", + "typeson-registry": "1.0.0-alpha.26", + "websql": "git+https://github.com/brettz9/node-websql.git#configurable-secure2" + }, + "dependencies": { + "base64-arraybuffer-es6": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer-es6/-/base64-arraybuffer-es6-0.4.2.tgz", + "integrity": "sha512-HaJx92u12By863ZXVHZs4Bp1nkKaLpbs3Ec9SI1OKzq60Hz+Ks6z7UvdD8pIx61Ck3e8F9MH/IPEu5T0xKSbkQ==" + }, + "typeson": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/typeson/-/typeson-5.11.0.tgz", + "integrity": "sha512-S5KtLzcU4dr4BXh8VuJDYugsRGsDQYlumCbrmwuAX1a1GNpbVYK4p9wluCIfTVPFvVyV6wRfExXX6Q1+YDItEQ==" + }, + "typeson-registry": { + "version": "1.0.0-alpha.26", + "resolved": "https://registry.npmjs.org/typeson-registry/-/typeson-registry-1.0.0-alpha.26.tgz", + "integrity": "sha512-R0wwXIYSiJMh+1XfvyUsCnEGVERoJcNrMl9e/ka30dJ+gQyh4/0NU9WHaqUm8oHtZzZYCz+A5fDRCiXYIq7H1Q==", + "requires": { + "base64-arraybuffer-es6": "0.4.2", + "typeson": "5.11.0", + "uuid": "3.3.2", + "whatwg-url": "7.0.0" + } + }, + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + }, + "needle": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz", + "integrity": "sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "node-webcrypto-ossl": { + "version": "1.0.49", + "resolved": "https://registry.npmjs.org/node-webcrypto-ossl/-/node-webcrypto-ossl-1.0.49.tgz", + "integrity": "sha512-Zs73PeTWoUXUFicvAaxZC6ZyVCuq1Eg/Q4rYqiWyBY4eWIbZPFiRIi/KRM0A9GVKBPRNraaXsVmRAC83jEQ6nw==", + "requires": { + "mkdirp": "^0.5.5", + "nan": "^2.14.0", + "tslib": "^1.11.1", + "webcrypto-core": "^0.1.27" + } + }, + "noop-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/noop-fn/-/noop-fn-1.0.0.tgz", + "integrity": "sha1-XzPUfxPSFQ35PgywNmmemC94/78=" + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "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" + } + }, + "realistic-structured-clone": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/realistic-structured-clone/-/realistic-structured-clone-2.0.2.tgz", + "integrity": "sha512-5IEvyfuMJ4tjQOuKKTFNvd+H9GSbE87IcendSBannE28PTrbolgaVg5DdEApRKhtze794iXqVUFKV60GLCNKEg==", + "requires": { + "core-js": "^2.5.3", + "domexception": "^1.0.1", + "typeson": "^5.8.2", + "typeson-registry": "^1.0.0-alpha.20" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "sqlite3": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.1.tgz", + "integrity": "sha512-CvT5XY+MWnn0HkbwVKJAyWEMfzpAPwnTiB3TobA5Mri44SrTovmmh499NPQP+gatkeOipqPlBLel7rn4E/PCQg==", + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.11.0", + "request": "^2.87.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "sync-promise": { + "version": "git+https://github.com/brettz9/sync-promise.git#25845a49a00aa2d2c985a5149b97c86a1fcdc75a", + "from": "git+https://github.com/brettz9/sync-promise.git#full-sync-missing-promise-features" + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "tiny-queue": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tiny-queue/-/tiny-queue-0.2.1.tgz", + "integrity": "sha1-JaZ/LG4lOyypQZd7XvdELvl6YEY=" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "typeson": { + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/typeson/-/typeson-5.18.2.tgz", + "integrity": "sha512-Vetd+OGX05P4qHyHiSLdHZ5Z5GuQDrHHwSdjkqho9NSCYVSLSfRMjklD/unpHH8tXBR9Z/R05rwJSuMpMFrdsw==" + }, + "typeson-registry": { + "version": "1.0.0-alpha.35", + "resolved": "https://registry.npmjs.org/typeson-registry/-/typeson-registry-1.0.0-alpha.35.tgz", + "integrity": "sha512-a/NffrpFswBTyU6w2d6vjk62K1TZ45H64af9AfRbn7LXqNEfL+h+gw3OV2IaG+enfwqgLB5WmbkrNBaQuc/97A==", + "requires": { + "base64-arraybuffer-es6": "0.5.0", + "typeson": "5.18.2", + "whatwg-url": "7.1.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "webcrypto-core": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-0.1.27.tgz", + "integrity": "sha512-r0MSFxvqaIjoqIKerm80P9+7n1dWBG88PYnshJk57J4uZuXlqNX8yQixrEIe3CGqrJ7xwfGM2SQGR4AlJYr02g==", + "requires": { + "tslib": "^1.7.1" + } + }, + "webextension-polyfill": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.3.1.tgz", + "integrity": "sha512-ISB42vlgMyM7xE1u6pREeCqmmXjLsYu/nqAR8Dl/gIAnylb+KpRpvKbVkUYNFePhhXn0Obkkc3jasOII9ztUtg==" + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "websql": { + "version": "git+https://github.com/brettz9/node-websql.git#5149bc0763376ca757fc32dc74345ada0467bfbb", + "from": "git+https://github.com/brettz9/node-websql.git#configurable-secure2", + "requires": { + "argsarray": "^0.0.1", + "immediate": "^3.2.2", + "noop-fn": "^1.0.0", + "sqlite3": "^4.0.0", + "tiny-queue": "^0.2.1" + } + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/benchmarks/package.json b/benchmarks/package.json new file mode 100644 index 000000000..a9f695ca6 --- /dev/null +++ b/benchmarks/package.json @@ -0,0 +1,14 @@ +{ + "name": "browser-core-benchmarks", + "version": "0.0.1", + "description": "Benchmarks for browser-core", + "main": "run_benchmarks.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "MPL-2.0", + "dependencies": { + "@cliqz/webextension-emulator": "^0.2.1" + } +} diff --git a/broccoli/resources.js b/broccoli/resources.js index b04adfd07..0fdcafe33 100644 --- a/broccoli/resources.js +++ b/broccoli/resources.js @@ -16,7 +16,7 @@ let fileContents = ''; if (config.resources && config.resources.bundling === 'require') { const pathVariable = path => path.replace('/', '_').replace('.', '_').replace('-', '_'); - const assets = config.resources.include.map(path => [pathVariable(path), path]); + const assets = config.resources.include.map(path => ({ varName: pathVariable(path), resourcePath: path })); const importStatements = assets.map((args) => { const varName = args.varName; const resourceName = args.resourcePath; diff --git a/configs/browser.js b/configs/browser.js index d0a06e1f8..0435c495a 100644 --- a/configs/browser.js +++ b/configs/browser.js @@ -70,8 +70,8 @@ module.exports = { 'modules.offers-templates.enabled': false, 'modules.cookie-monster.enabled': true, 'friends.enable.level': 'development', - 'modules.search.operators.addCompletion.useTitle': false, - 'modules.freshtab.customBackground': false, + 'modules.search.operators.addCompletion.useTitle': true, + 'modules.freshtab.customBackground': true, }, modules: [ 'core', @@ -98,6 +98,7 @@ module.exports = { 'adblocker', 'https-everywhere', 'onboarding-v4', + 'offboarding', 'history', 'offers-templates', 'video-downloader', @@ -112,6 +113,7 @@ module.exports = { 'dat', 'youtube-fixer', 'my-name-is-cliqz', + 'whotracksme' ], bundles: [ 'anolysis-cc/dashboard/anolysis.bundle.js', @@ -124,9 +126,11 @@ module.exports = { 'offers-templates/offers-checkout.bundle.js', 'offers-templates/offers-control-center.bundle.js', 'offers-templates/offers-control-center-after.bundle.js', + 'offers-v2/environment.bundle.js', 'freshtab/home.bundle.js', 'history/home.bundle.js', 'onboarding-v4/app.bundle.js', + 'offboarding/app.bundle.js', 'dropdown/dropdown.bundle.js', 'dropdown/debug.bundle.js', 'control-center/control-center-react.bundle.js', diff --git a/configs/cliqz-android.js b/configs/cliqz-android.js index 5554a739b..5e7caad40 100644 --- a/configs/cliqz-android.js +++ b/configs/cliqz-android.js @@ -63,7 +63,7 @@ module.exports = { 'core/logo-database.json', 'antitracking/prob.json', 'antitracking/config.json', - 'antitracking/tracker_db_v2.json', + 'core/tracker_db_v2.json', ] } }; diff --git a/configs/cliqz-geckoview.js b/configs/cliqz-geckoview.js index 38fc6629b..f700b23e6 100644 --- a/configs/cliqz-geckoview.js +++ b/configs/cliqz-geckoview.js @@ -10,24 +10,15 @@ * Privacy config: * Privacy components (anti-tracking, adblocker etc) as a webextension for the Geckoview platform. */ - const urls = require('./common/urls-cliqz'); +const configBase = require('./geckoview'); const publish = require('./common/publish'); -module.exports = { - platform: 'webextension', - brocfile: 'Brocfile.webextension.js', - specific: 'geckoview', - baseURL: '/modules/', - pack: 'web-ext build -s build -a .', +module.exports = Object.assign({}, configBase, { publish: publish.toPrerelease('cliqz', 'cliqz-geckoview', 'zip'), - sourceMaps: false, - versionPrefix: '12', - settings: { + settings: Object.assign({}, configBase.settings, { ...urls, channel: 'MA60', - MSGCHANNEL: 'web-extension', - ATTRACK_TELEMETRY_PROVIDER: 'hpnv2', antitrackingPlaceholder: 'cliqz.com/tracking', antitrackingHeader: 'CLIQZ-AntiTracking', telemetry: { @@ -37,53 +28,11 @@ module.exports = { platform: 'android', }, }, - // Human Web Lite: // Available proxies are: https://proxy[1-100].(cliqz|humanweb).foxyproxy.com HUMAN_WEB_LITE_COLLECTOR_VIA_PROXY: 'https://proxy*.cliqz.foxyproxy.com', HUMAN_WEB_LITE_COLLECTOR_DIRECT: 'https://collector-hpn.cliqz.com', HW_CHANNEL: 'android', ALLOWED_COUNTRY_CODES: ['de', 'at', 'ch', 'es', 'us', 'fr', 'nl', 'gb', 'it', 'se'], - - // Enable "auto-trigger" mode, which means that the extension will use the - // network (e.g. doublefetch, sending messages) without guidance from the browser. - HUMAN_WEB_LITE_AUTO_TRIGGER: true, - - // Insights interval triggering - INSIGHTS_INTERNAL: true, - }, - default_prefs: { - 'modules.webextension-specific.enabled': true, - 'cliqz-adb': 1, - 'cliqz-adb-strict': true, - attrackBloomFilter: true, - attrackTelemetryMode: 0, - attrackDefaultAction: 'placeholder', - sendAntiTrackingHeader: false, - attrackCookieTrustReferers: true, - 'attrack.cookieMode': 'trackers', - attrackBlockCookieTracking: true, - 'modules.cookie-monster.enabled': true, - 'cookie-monster.expireSession': true, - 'cookie-monster.nonTracker': true, - showConsoleLogs: true, - }, - bundles: [ - 'core/cliqz.bundle.js', - 'core/content-script.bundle.js', - ], - modules: [ - 'core', - 'antitracking', - 'webrequest-pipeline', - 'adblocker', - 'anolysis', - 'abtests-legacy', - 'webextension-specific', - 'cookie-monster', - 'autoconsent', - 'dat', - 'human-web-lite', - 'insights', - ], -}; + }), +}); diff --git a/configs/common/amo-settings.js b/configs/common/amo-settings.js index 73da4be5c..54b50d99e 100644 --- a/configs/common/amo-settings.js +++ b/configs/common/amo-settings.js @@ -19,6 +19,7 @@ module.exports = { antitrackingHeader: 'CLIQZ-AntiTracking', FRESHTAB_TITLE: 'Cliqz Tab', OFFERS_BRAND: 'cliqz', + URL_CHANGED_EVENT_DEBOUNCE: 500, ENABLE_OFFER_COLLECTIONS: false, MAX_GROUPS_IN_OFFER_COLLECTIONS: 3, }; diff --git a/configs/common/urls.js b/configs/common/urls.js index c8da41655..58006e642 100644 --- a/configs/common/urls.js +++ b/configs/common/urls.js @@ -26,7 +26,10 @@ module.exports = (base, cdn = 'cdn') => ({ // not used as URL, but as key to signal to ambassor to fetch news HB_NEWS: `hb-news.${base}`, // freshtab/sources/news.es, history/sources/rich-header-proxy.es OFFERS_BE_BASE_URL: `https://offers-api.${base}`, + // expected to be unbranded as this is only use for testing purpouses + OFFERS_STAGING_BASE_URL: 'https://offers-api-staging-myo.myoffrz.ninja', PRIVACY_SCORE_URL: `https://anti-tracking.${base}/api/v1/score?`, // antitracking/sources/privacy-score.es + TRACKER_SCORE_URL: `https://${cdn}.${base}/privacy-score/privacy_score.json`, // whotracksme/source/background.es RESULTS_PROVIDER: `https://api.${base}/api/v2/results?nrh=1&q=`, // core/config.es RESULTS_PROVIDER_LOG: `https://api.${base}/api/v1/logging?q=`, // core/config.es RICH_HEADER: `https://api.${base}/api/v2/rich-header?path=/v2/map`, diff --git a/configs/geckoview.js b/configs/geckoview.js new file mode 100644 index 000000000..29c601282 --- /dev/null +++ b/configs/geckoview.js @@ -0,0 +1,71 @@ +/*! + * Copyright (c) 2014-present Cliqz GmbH. All rights reserved. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +/** + * Geckoview config: + * Privacy components (anti-tracking, adblocker etc) as a webextension for the Geckoview platform. + */ + +const publish = require('./common/publish'); + +module.exports = { + platform: 'webextension', + brocfile: 'Brocfile.webextension.js', + specific: 'geckoview', + baseURL: '/modules/', + pack: 'web-ext build -s build -a .', + publish: publish.toPrerelease('cliqz', 'cliqz-geckoview', 'zip'), + sourceMaps: false, + versionPrefix: '12', + settings: { + // ...urls, + MSGCHANNEL: 'web-extension', + ATTRACK_TELEMETRY_PROVIDER: 'hpnv2', + // Enable "auto-trigger" mode, which means that the extension will use the + // network (e.g. doublefetch, sending messages) without guidance from the browser. + HUMAN_WEB_LITE_AUTO_TRIGGER: true, + + // Insights internal triggering + INSIGHTS_INTERNAL: true, + }, + default_prefs: { + 'modules.webextension-specific.enabled': true, + 'cliqz-adb': 1, + 'cliqz-adb-strict': true, + attrackBloomFilter: true, + attrackTelemetryMode: 0, + attrackDefaultAction: 'placeholder', + sendAntiTrackingHeader: false, + attrackCookieTrustReferers: true, + 'attrack.cookieMode': 'trackers', + attrackBlockCookieTracking: true, + 'modules.cookie-monster.enabled': true, + 'cookie-monster.expireSession': true, + 'cookie-monster.nonTracker': true, + showConsoleLogs: true, + }, + bundles: [ + 'core/cliqz.bundle.js', + 'core/content-script.bundle.js', + ], + modules: [ + 'core', + 'antitracking', + 'webrequest-pipeline', + 'adblocker', + 'anolysis', + 'abtests-legacy', + 'webextension-specific', + 'cookie-monster', + 'autoconsent', + 'dat', + 'human-web-lite', + 'hpn-lite', + 'insights', + ], +}; diff --git a/configs/ghostery-geckoview.js b/configs/ghostery-geckoview.js new file mode 100644 index 000000000..6dc804bcb --- /dev/null +++ b/configs/ghostery-geckoview.js @@ -0,0 +1,37 @@ +/*! + * Copyright (c) 2014-present Cliqz GmbH. All rights reserved. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +/** + * Privacy config: + * Privacy components (anti-tracking, adblocker etc) as a webextension for the Geckoview platform. + */ +const urls = require('./common/urls-ghostery'); +const configBase = require('./geckoview'); +const publish = require('./common/publish'); + +module.exports = Object.assign({}, configBase, { + publish: publish.toPrerelease('cliqz', 'ghostery-geckoview', 'zip'), + settings: Object.assign({}, configBase.settings, { + ...urls, + channel: 'MA60', + antitrackingPlaceholder: 'ghostery', + antitrackingHeader: 'Ghostery-AntiTracking', + telemetry: { + demographics: { + brand: 'ghostery', + name: 'browser', + platform: 'android', + }, + }, + // Human Web Lite: + HUMAN_WEB_LITE_COLLECTOR_VIA_PROXY: 'https://collector-hpn.ghostery.net', + HUMAN_WEB_LITE_COLLECTOR_DIRECT: 'https://collector-hpn.ghostery.net', + HW_CHANNEL: 'android', + ALLOWED_COUNTRY_CODES: ['de', 'at', 'ch', 'es', 'us', 'fr', 'nl', 'gb', 'it', 'be', 'se', 'dk', 'fi', 'cz', 'gr', 'hu', 'ro', 'no', 'ca', 'au', 'ru', 'ua', 'in', 'pl', 'jp', 'br', 'mx', 'cn', 'ar'], + }), +}); diff --git a/configs/ghostery-tab-base.js b/configs/ghostery-tab-base.js index b7b53efb3..72f6bd76f 100644 --- a/configs/ghostery-tab-base.js +++ b/configs/ghostery-tab-base.js @@ -47,6 +47,7 @@ module.exports = { 'freshtab.search.mode': 'search', 'freshtab.search.autofocus': false, 'offers2UserEnabled': false, + 'modules.freshtab.customBackground': true, }, modules: [ 'core', @@ -65,7 +66,8 @@ module.exports = { 'anolysis-cc', 'overlay', 'control-center', - 'toolbox' + 'toolbox', + 'whotracksme', ], bundles: [ 'hpnv2/worker.wasm.bundle.js', diff --git a/configs/ghostery.js b/configs/ghostery.js index 9271039a0..f9f92b26b 100644 --- a/configs/ghostery.js +++ b/configs/ghostery.js @@ -21,6 +21,7 @@ module.exports = { channel: 'CH80', MSGCHANNEL: 'web-extension', OFFERS_CHANNEL: 'ghostery', + URL_CHANGED_EVENT_DEBOUNCE: 500, ENABLE_OFFER_COLLECTIONS: false, MAX_GROUPS_IN_OFFER_COLLECTIONS: 3, ATTRACK_TELEMETRY_PROVIDER: 'hpnv2', @@ -34,6 +35,8 @@ module.exports = { name: 'extension', }, }, + HUMAN_WEB_LITE_COLLECTOR_VIA_PROXY: 'https://collector-hpn.ghostery.net', + HUMAN_WEB_LITE_COLLECTOR_DIRECT: 'https://collector-hpn.ghostery.net', }), default_prefs: { 'modules.human-web.enabled': true, @@ -65,6 +68,7 @@ module.exports = { 'offers-templates/offers-checkout.bundle.js', 'offers-templates/offers-control-center.bundle.js', 'offers-templates/offers-control-center-after.bundle.js', + 'offers-v2/environment.bundle.js', ], modules: [ 'core', @@ -80,6 +84,8 @@ module.exports = { 'anti-phishing', 'myoffrz-helper', 'insights', + 'hpn-lite', + 'human-web-lite', ], buildTargets: { firefox: 52, diff --git a/configs/offers.js b/configs/offers.js index 3d77f1886..f5288642d 100644 --- a/configs/offers.js +++ b/configs/offers.js @@ -35,6 +35,7 @@ module.exports = { OFFBOARDING_URL: 'https://myoffrz.com/off-boarding/', SHOW_ONBOARDING_OVERLAY: true, THROTTLE_OFFER_APPEARANCE_MODE: 'PER_DOMAIN', + URL_CHANGED_EVENT_DEBOUNCE: 500, ENABLE_OFFER_COLLECTIONS: true, MAX_GROUPS_IN_OFFER_COLLECTIONS: 3, telemetry: { @@ -75,6 +76,7 @@ module.exports = { 'offers-templates/offers-checkout.bundle.js', 'offers-templates/offers-control-center.bundle.js', 'offers-templates/offers-control-center-after.bundle.js', + 'offers-v2/environment.bundle.js', 'onboarding-overlay/app.bundle.js', ], builderDefault: Object.assign({}, base.builderConfig, { diff --git a/configs/releases/amo-webextension.js b/configs/releases/amo-webextension.js index 50f10f27c..46c4faf43 100644 --- a/configs/releases/amo-webextension.js +++ b/configs/releases/amo-webextension.js @@ -74,6 +74,7 @@ module.exports = { 'offers-templates/offers-control-center.bundle.js', 'offers-templates/offers-control-center-after.bundle.js', 'offers-banner/app.bundle.js', + 'offers-v2/environment.bundle.js', 'human-web/page.bundle.js', 'human-web/rusha.bundle.js', 'onboarding-overlay/app.bundle.js', diff --git a/configs/releases/offers-chip-chrome.js b/configs/releases/offers-chip-chrome.js index 247501811..b0e50f610 100644 --- a/configs/releases/offers-chip-chrome.js +++ b/configs/releases/offers-chip-chrome.js @@ -21,7 +21,7 @@ module.exports = Object.assign({}, configBase, { channel: 'MC10', // CHIP Sparalarm Chrome Release OFFERS_CHANNEL: 'chip', OFFERS_BRAND: 'chip', - ONBOARDING_URL: 'https://sparalarm.chip.de/onboarding#step-0', + ONBOARDING_URL: 'https://sparalarm.chip.de/welcome/#step-0', OFFBOARDING_URL: 'https://sparalarm.chip.de/offboarding', SUPPORTED_LANGS: ['de'], 'dynamic-offers.enabled': false, diff --git a/configs/releases/offers-chip-edge.js b/configs/releases/offers-chip-edge.js new file mode 100644 index 000000000..2f7a73482 --- /dev/null +++ b/configs/releases/offers-chip-edge.js @@ -0,0 +1,33 @@ +/*! + * Copyright (c) 2014-present Cliqz GmbH. All rights reserved. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +const configBase = require('../offers'); +const publish = require('../common/publish'); + +const id = 'nhceipmndngbhhhadbohlngbaehbiogj'; + +module.exports = Object.assign({}, configBase, { + publish: publish.toPrereleaseFullName('chip_sparalarm', 'offers_pre', 'edge', 'zip'), + settings: Object.assign({}, configBase.settings, { + id, + name: 'chipAppName', + description: 'chipAppDesc', + storeName: id, + channel: 'MC20', // CHIP Sparalarm Edge Release + OFFERS_CHANNEL: 'chip', + OFFERS_BRAND: 'chip', + ONBOARDING_URL: 'https://sparalarm.chip.de/welcome/#step-0', + OFFBOARDING_URL: 'https://sparalarm.chip.de/offboarding', + SUPPORTED_LANGS: ['de'], + 'dynamic-offers.enabled': false, + }), + versionPrefix: '14', + specific: 'offers', + PRODUCT_PREFIX: 'chip', + PRODUCT_TITLE: 'CHIP Sparalarm', +}); diff --git a/configs/releases/offers-chip-firefox.js b/configs/releases/offers-chip-firefox.js index e1c88779b..37bd6f4f4 100644 --- a/configs/releases/offers-chip-firefox.js +++ b/configs/releases/offers-chip-firefox.js @@ -21,7 +21,7 @@ module.exports = Object.assign({}, configBase, { channel: 'MC00', // CHIP Sparalarm Firefox Release OFFERS_CHANNEL: 'chip', OFFERS_BRAND: 'chip', - ONBOARDING_URL: 'https://sparalarm.chip.de/onboarding#step-0', + ONBOARDING_URL: 'https://sparalarm.chip.de/welcome/#step-0', OFFBOARDING_URL: 'https://sparalarm.chip.de/offboarding', SUPPORTED_LANGS: ['de'], 'dynamic-offers.enabled': false, diff --git a/configs/user-agent-ios.js b/configs/user-agent-ios.js index fb28df59c..5da52fe33 100644 --- a/configs/user-agent-ios.js +++ b/configs/user-agent-ios.js @@ -49,12 +49,11 @@ module.exports = { modules: [ 'core', 'human-web-lite', + 'hpn-lite', 'search', 'anolysis', 'geolocation', - 'news', 'insights', - 'autoconsent', ], bundles: [ ], @@ -62,7 +61,7 @@ module.exports = { bundling: 'assets', include: [ 'core/logo-database.json', - 'autoconsent/cosmetics.json', + 'core/tracker_db_v2.json', ] } }; diff --git a/modules/anolysis-cc/sources/templates/about.hbs b/modules/anolysis-cc/sources/templates/about.hbs index f42c55a65..5228a4d01 100644 --- a/modules/anolysis-cc/sources/templates/about.hbs +++ b/modules/anolysis-cc/sources/templates/about.hbs @@ -8,40 +8,19 @@
Anolysis is a new approach for collecting usage data - without relying on user profiles. The approach is inspired - by the principle of group anonymity; making sure that K users - are indistinguishable from each other. Users send sanitized browser - attributes in the form of a group identity, and usage data through - multiple messages, in a way that this data cannot be pieced together and - used as an identifier. + without relying on user profiles. Users send a limited set of + sanitized browser attributes and usage data through multiple messages + to our backend. Note that many messages do not even send browser attributes + at all.

- We are able to achieve privacy by design, by representing browser - attributes hierarchically in a tree structure and algorithmically creating - anonymous groups, hence moving away from the concept of a user identity, - and embrace a group identity instead. - -

- - So here's what you can take away from this: - - + Some messages send an ephemerid, a + ephemeral, non-unique key that allows for determining rolling retention, + for example. Each message type has a different ephemerid so that different + messages types cannot be linked together. On top, each ephemerid changes + over time so that even messages of the same type cannot be linked together + infinitely.