diff --git a/.github/workflows/generate-bundle-url.yml b/.github/workflows/generate-bundle-url.yml new file mode 100644 index 0000000..76e1e18 --- /dev/null +++ b/.github/workflows/generate-bundle-url.yml @@ -0,0 +1,41 @@ +name: Generate Bundle CDN URL + +on: + pull_request: + types: [opened, synchronize, reopened] + +permissions: + pull-requests: write # Ensure the token has write access to PRs + +jobs: + generate-url: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' + + - name: Install dependencies + run: npm install + + - name: Generate CDN URL + id: generate-url + run: | + # Generate the URL and capture it as an output + URL=$(node scripts/generate-bundle-url.js) + echo "URL=$URL" >> $GITHUB_ENV + + - name: Create or update PR comment with CDN URL + uses: peter-evans/create-or-update-comment@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.pull_request.number }} + body: | + ### CUSTOM FOOTER SCRIPT + + ${{ env.URL }} + diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..906da39 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,2 @@ + +npm run pre-commit:generate-bundle diff --git a/package-lock.json b/package-lock.json index 7fa8821..5b05cad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "autoprefixer": "^10.4.19", "cssnano": "^7.0.2", "http-server": "^14.1.1", - "ngrok": "^5.0.0-beta.2", + "husky": "^9.1.6", "npm-run-all": "^4.1.5", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-terser": "^7.0.2", @@ -1268,6 +1268,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -1287,18 +1288,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -1308,39 +1297,12 @@ "node": ">=10.13.0" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "20.14.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", @@ -1356,31 +1318,12 @@ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -1678,63 +1621,12 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -1925,18 +1817,6 @@ "node": ">=12" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2417,33 +2297,6 @@ } } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -2453,15 +2306,6 @@ "node": ">=4.0.0" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -2605,15 +2449,6 @@ "dev": true, "peer": true }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -2978,41 +2813,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -3038,15 +2838,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -3399,31 +3190,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -3576,13 +3342,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/hpagent": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", - "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==", - "dev": true, - "optional": true - }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -3595,12 +3354,6 @@ "node": ">=12" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", @@ -3673,19 +3426,6 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", @@ -3708,6 +3448,22 @@ "node": ">=18.18.0" } }, + "node_modules/husky": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", + "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -4259,12 +4015,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -4290,15 +4040,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, "node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", @@ -4402,12 +4143,6 @@ "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true - }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", @@ -4444,15 +4179,6 @@ "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", "dev": true }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/lru-cache": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", @@ -4592,15 +4318,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4682,41 +4399,6 @@ "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", "dev": true }, - "node_modules/ngrok": { - "version": "5.0.0-beta.2", - "resolved": "https://registry.npmjs.org/ngrok/-/ngrok-5.0.0-beta.2.tgz", - "integrity": "sha512-UzsyGiJ4yTTQLCQD11k1DQaMwq2/SsztBg2b34zAqcyjS25qjDpogMKPaCKHwe/APRTHeel3iDXcVctk5CNaCQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "extract-zip": "^2.0.1", - "got": "^11.8.5", - "lodash.clonedeep": "^4.5.0", - "uuid": "^7.0.0 || ^8.0.0", - "yaml": "^2.2.2" - }, - "bin": { - "ngrok": "bin/ngrok" - }, - "engines": { - "node": ">=14.2" - }, - "optionalDependencies": { - "hpagent": "^0.1.2" - } - }, - "node_modules/ngrok/node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -7673,15 +7355,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -7707,15 +7380,6 @@ "opener": "bin/opener-bin.js" } }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/p-each-series": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", @@ -7951,12 +7615,6 @@ "node": ">=8" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", @@ -8651,16 +8309,6 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", @@ -8696,18 +8344,6 @@ } ] }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -8871,12 +8507,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -8886,18 +8516,6 @@ "node": ">=8" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -10852,15 +10470,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -11047,12 +10656,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -11111,16 +10714,6 @@ "node": ">=12" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yoctocolors": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.0.2.tgz", diff --git a/package.json b/package.json index b378c27..631548d 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "build": "vite build", "preview": "vite preview", "serve": "npm run build && http-server ./dist -p 3456 --cors", - "ngrok": "ngrok http 3456", - "ngrok-auth": "ngrok config add-authtoken $NGROK_TOKEN" + "prepare": "husky install", + "pre-commit:generate-bundle": "node scripts/generate-bundle-script.js" }, "devDependencies": { "@semantic-release/changelog": "^6.0.3", @@ -24,10 +24,10 @@ "autoprefixer": "^10.4.19", "cssnano": "^7.0.2", "http-server": "^14.1.1", - "ngrok": "^5.0.0-beta.2", + "husky": "^9.1.6", "npm-run-all": "^4.1.5", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-terser": "^7.0.2", "vite": "^5.2.13" } -} \ No newline at end of file +} diff --git a/scripts/generate-bundle-script.js b/scripts/generate-bundle-script.js new file mode 100644 index 0000000..83dd142 --- /dev/null +++ b/scripts/generate-bundle-script.js @@ -0,0 +1,37 @@ + +const { exec } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +const rootDir = path.resolve(__dirname, ".."); +const srcFile = path.join(rootDir, "dist/js/footer_scripts.min.js"); +const destFile = path.join(rootDir, "src/bundle-script.min.js"); + +// Step 1: Run the build command +exec("npm run build", { cwd: rootDir }, (err, stdout, stderr) => { + if (err) { + console.error(`Error during build: ${stderr}`); + process.exit(1); + } + console.log(stdout); + + // Step 2: Copy the file from dist/js/footer_scripts.min.js to src/bundle-script.min.js + fs.copyFile(srcFile, destFile, (copyErr) => { + if (copyErr) { + console.error(`Error copying file: ${copyErr.message}`); + process.exit(1); + } + + // Step 3: Add the file to git + exec( + `git add ${destFile}`, + { cwd: rootDir }, + (gitErr, gitStdout, gitStderr) => { + if (gitErr) { + console.error(`Error adding file to git: ${gitStderr}`); + process.exit(1); + } + } + ); + }); +}); diff --git a/scripts/generate-bundle-url.js b/scripts/generate-bundle-url.js new file mode 100644 index 0000000..866b9cb --- /dev/null +++ b/scripts/generate-bundle-url.js @@ -0,0 +1,20 @@ +// scripts/generate-latest-url.js +const { exec } = require('child_process'); + +// Define your GitHub repository details +const repoName = 'deriv-com/webflow-deriv-com-scripts'; +const filePath = 'src/bundle-script.min.js'; + +// Step 1: Get the latest commit hash +exec('git rev-parse HEAD', (err, stdout, stderr) => { + if (err) { + console.error(`Error getting latest commit hash: ${stderr}`); + process.exit(1); + } + + const latestCommitHash = stdout.trim(); + + // Step 2: Generate the URL with the latest commit hash + const generatedUrl = `https://cdn.jsdelivr.net/gh/${repoName}@${latestCommitHash}/${filePath}`; + console.log(`Generated URL: ${generatedUrl}`); +}); diff --git a/src/bundle-script.min.js b/src/bundle-script.min.js new file mode 100644 index 0000000..ba4230c --- /dev/null +++ b/src/bundle-script.min.js @@ -0,0 +1 @@ +var e,o,n,i,t,a,r,d,c,s;import{initializeApp as l}from"https://www.gstatic.com/firebasejs/10.8.1/firebase-app.js";import{getDatabase as u,ref as p,onValue as w}from"https://www.gstatic.com/firebasejs/10.8.1/firebase-database.js";function h(e,o,n,i){let t="";if(n){let e=new Date;e.setTime(e.getTime()+24*n*60*60*1e3),t="; expires="+e.toUTCString()}document.cookie=i?e+"="+(o||"")+t+`;domain=${i};path=/`:e+"="+(o||"")+t+";path=/"}function m(e,o){const n={};return e.split(";").forEach((e=>{const[o,i]=e.split("=").map((e=>e.trim()));n[o]=decodeURIComponent(i)})),n[o]}function y(e){h("webflow-user-language",e,30)}function N(e){document.cookie=e+"=; Max-Age=-99999999;"}window.emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,window.toggleErrorField=(e,o)=>{o?e.classList.remove("error-field"):e.classList.add("error-field")},window.disableButton=function(e){e.disabled=!0,e.style.opacity="0.5"},window.isEuRegion=function(e){const o=e.replace(/\/$/,"");return/^\/(?:[^\/]+\/)?eu(?:\/|$)/.test(o)},window.enableButton=function(e){e.disabled=!1,e.style.opacity="1"},window.getOauthUrl=function(){var e=window.location.href,o=new URL(e).hostname,n=["deriv.com","deriv.be","deriv.me"].find((e=>o.endsWith(e)));return n?`https://oauth.${n}`:"https://oauth.deriv.com"},window.getClientCountry=function(){var e;const o=m(document.cookie,"clients_country"),n=m(document.cookie,"client_information");return n&&(null==(e=JSON.parse(n))?void 0:e.residence)||o},window.deriv_com_url="deriv.com",window.deriv_me_url="deriv.me",window.deriv_be_url="deriv.be",window.webflow_domain="webflow.deriv.com",window.staging_url="staging.deriv.com",window.staging_deriv_be_url="staging.deriv.be",window.domain_list_app_id={[window.deriv_com_url]:"16929",[window.deriv_me_url]:"1411",[window.deriv_be_url]:"30767",[window.webflow_domain]:"53503",[window.staging_url]:"16303"},window.getDomain=()=>{var e=window.location.href;return new URL(e).hostname},window.getAppId=()=>{const e=window.getDomain(),o=new URLSearchParams(window.location.search||"").get("app_id");if(o)return o;const n=localStorage.getItem("config.app_id");if(n)return n;const i={[window.webflow_domain]:window.domain_list_app_id[window.webflow_domain],[window.deriv_be_url]:window.domain_list_app_id[window.deriv_be_url],[window.deriv_me_url]:window.domain_list_app_id[window.deriv_me_url],[window.staging_url]:window.domain_list_app_id[window.staging_url]};return i[e]?i[e]:window.domain_list_app_id[window.deriv_com_url]};const g=()=>{const e=localStorage.getItem("config.server_url"),o=m(document.cookie,"webflow-user-language");let n=o?o.toLowerCase():"en";"zh-cn"!==n&&"zh-tw"!==n||(n=n.replace("-","_"));const i=(e=>{let o="";return e&&Object.keys(e).forEach((n=>{o+=`&${n}=${e[n]}`})),o})((()=>{const e=m(document.cookie,"utm_data");if(e){const o=JSON.parse(e),n={};return["utm_source","utm_ad_id","utm_adgroup_id","utm_adrollclk_id","utm_campaign","utm_campaign_id","utm_content","utm_fbcl_id","utm_gl_client_id","utm_medium","utm_msclk_id","utm_term"].forEach((e=>{o.hasOwnProperty(e)&&(n[e]=o[e])})),n}return null})()),t=m(document.cookie,"affiliate_tracking"),a=t?`&affiliate_token=${t}`:"",r=void["mt5","bot","derivx"].filter((e=>window.location.pathname.includes(e)&&e))||"";return e&&/qa/.test(e)?`https://${e}/oauth2/authorize?app_id=${window.getAppId()}&l=${n}&brand=deriv${a}${i}&platform=${r}`:`${window.getOauthUrl()}/oauth2/authorize?app_id=${(()=>{const e=window.getDomain();return e===window.deriv_me_url?window.domain_list_app_id[window.deriv_me_url]:e===window.deriv_be_url?window.domain_list_app_id[window.deriv_be_url]:e===window.webflow_domain?window.domain_list_app_id[window.webflow_domain]:window.domain_list_app_id[window.deriv_com_url]})()}&l=${n}&brand=deriv${a}${i}&platform=${r}`};if(!!!m(document.cookie,"client_information")){var f=document.createElement("iframe");f.src=(()=>{const e=window.location.hostname;let o;switch(o="deriv.com"===e||"deriv.be"===e||"deriv.me"===e?"production":"staging.deriv.com"===e?"staging":"development",o){case"production":return"https://hub.deriv.com/tradershub/signup";case"staging":return"https://staging-hub.deriv.com/tradershub/signup";default:return"https://dev-hub.deriv.com/tradershub/signup"}})(),f.style.width="0",f.style.height="0",f.style.border="none",f.style.visibility="hidden",f.setAttribute("sandbox","allow-same-origin allow-scripts"),document.body.appendChild(f)}window.establishWebSocketConnection=()=>new Promise(((e,o)=>{const n=m(document.cookie,"webflow-user-language"),i=n?n.toLowerCase():"en",t=localStorage.getItem("config.server_url")||"green.derivws.com";window.websocket=new WebSocket(`wss://${t}/websockets/v3?app_id=${window.getAppId()}&l=${i||"en"}&brand=deriv`),window.websocket.addEventListener("open",(o=>{window.websocket.addEventListener("close",(()=>{window.websocket.close()})),window.websocket.addEventListener("message",(e=>{JSON.parse(e.data)})),e(window.websocket)})),window.websocket.addEventListener("error",(e=>{var n;null==(n=null==window?void 0:window.websocket)||n.close(),o(e)}))})),window.socketMessageSend=async(e,o)=>{var n;try{return(null==window?void 0:window.websocket)&&(null==(n=null==window?void 0:window.websocket)?void 0:n.readyState)===(null==WebSocket?void 0:WebSocket.OPEN)?(window.websocket.send(e),new Promise(((e,n)=>{window.websocket.addEventListener("message",(i=>{const t=JSON.parse(i.data);o===t.msg_type&&(t.error?n(t.error):e(t))}))}))):establishWebSocketConnection().then((()=>(websocket.send(e),new Promise(((e,n)=>{websocket.addEventListener("message",(i=>{const t=JSON.parse(i.data);o===t.msg_type&&(t.error?n(t.error):e(t))}))}))))).catch((e=>Promise.reject(e)))}catch(i){return Promise.reject(i)}};const v=[{id:"appgallery",selectors:[".footer_banner-badge.gallery.w-inline-block",".app-download_link-wrapper.appgallery.w-inline-block"],countries:["af","ax","al","dz","as","ad","ao","aq","am","au","at","az","bh","bd","by","be","bj","bm","bt","bo","ba","bw","bv","br","io","bn","bg","bf","bi","kh","cm","ca","cv","bq","cf","td","cn","cx","cc","km","cg","cd","ck","ci","hr","cu","cw","cy","cz","dk","dj","dm","eg","gq","er","ee","et","fk","fo","fj","fi","fr","pf","tf","ga","gm","ge","de","gh","gi","gr","gl","gu","gg","gn","gw","hm","va","hu","is","in","id","ir","iq","ie","im","il","it","jp","je","jo","kz","ke","ki","kr","kp","kw","kg","la","lv","lb","ls","lr","ly","li","lt","lu","mo","mk","mg","mw","my","mv","ml","mt","mh","mr","mu","yt","mx","fm","md","mc","mn","me","ma","mz","mm","na","nr","np","nl","nc","nz","ne","ng","nu","nf","mp","no","om","pk","pw","ps","pg","pe","ph","pn","pl","pt","qa","re","ro","ru","rw","sh","kn","pm","bl","mf","ws","sm","st","sa","sn","rs","sc","sl","sg","sx","sk","si","sb","so","gs","ss","es","lk","sd","sj","sz","se","ch","sy","tw","tj","tz","th","tl","tg","tk","to","tn","tr","tm","tc","tv","ug","ua","ae","gb","um","us","uz","vu","vi","wf","eh","ye","zm","zw"]},{id:"googlePlay",selectors:[".footer_banner-badge.google.w-inline-block",".app-download_link-wrapper.google.w-inline-block"],countries:["af","ax","as","ad","ai","aq","au","bb","bt","bv","io","bn","bi","ca","bq","cf","cx","cc","cg","cd","ck","cw","gq","et","fk","fo","gf","pf","tf","gl","gp","gu","gg","gy","hm","va","hk","ir","im","jp","je","ki","kp","ls","ly","mg","mw","mh","mq","mr","yt","fm","mn","me","ms","nr","nc","nz","ng","nu","nf","mp","pw","ps","pn","pr","re","sh","kn","lc","pm","vc","bl","mf","st","sg","sx","gs","ss","sj","sz","sy","tl","tk","tc","tv","um","us","vg","vi","wf","eh"]},{id:"appstore",selectors:[".footer_banner-badge.store.w-inline-block",".app-download_link-wrapper.appstore.w-inline-block"],countries:["ax","al","as","ad","aq","aw","au","at","bd","be","bv","io","bg","bi","ca","bq","cf","cx","cc","km","ck","hr","cu","cw","cy","cz","dk","dj","gq","er","ee","et","fk","fo","fi","fr","gf","pf","tf","de","gi","gr","gl","gp","gu","gg","gn","ht","hm","va","hk","hu","is","ir","iq","ie","im","il","it","je","ki","kp","lv","ls","ly","li","lt","lu","mt","mh","mq","yt","fm","me","nl","nc","nz","ng","nu","nf","mp","no","ps","pn","pl","pt","pr","re","ro","sh","pm","bl","mf","ws","sm","sg","sx","sk","si","so","gs","ss","es","sd","sj","se","ch","sy","tw","tl","tg","tk","tr","tv","gb","um","us","vu","vi","wf","eh"]},{id:"p2p",selectors:["#p2payment.accordion_toggle-block","#p2component.section_dp2p","#card_block_p2p.help_category"],countries:["as","au","at","be","bg","ca","hr","cy","cz","dk","ee","fi","fr","gr","gu","gg","hk","hu","ir","ie","im","il","it","je","ng","mm","sy","kp","lv","lt","lu","my","mt","nl","nz","mp","py","pl","pt","pr","ro","rw","sk","si","es","se","ae","gb","us","um","vu","vi","ky","cu","de"]},{id:"w-dyn-item-p2p",selectors:["div.w-dyn-item"],countries:["as","au","at","be","bg","ca","hr","cy","cz","dk","ee","fi","fr","gr","gu","gg","hk","hu","ir","ie","im","il","it","je","ng","mm","sy","kp","lv","lt","lu","my","mt","nl","nz","mp","py","pl","pt","pr","ro","rw","sk","si","es","se","ae","gb","us","um","vu","vi","ky","cu","de"]},{id:"hideRow",selectors:["#footer_social-icons_row","#footer_text_row",".footer_risk-warning.w-richtext"],countries:["br","uy","lk","ch","za","ec"]},{id:"hideDiel",selectors:["#footer_text_diel","#footer_social-icons_diel"],countries:["br","uy","lk","ch","za","ec"]}],Y=[{id:"showElems",selectors:[".banner_disclaimer"],countries:["br","uy","lk","ch","za","ec"]}],_=()=>{const e=window.getClientCountry();v.forEach((o=>{const n="hideDiel"===o.id?!o.countries.includes(e):o.countries.includes(e);if(e&&n)return o.selectors.forEach((e=>{document.querySelectorAll(e).forEach((e=>{if(e)if("w-dyn-item-p2p"===o.id){e.querySelector("#card_block_p2p.help_category")&&(e.style.display="none")}else e.style.display="none"}))}));if(!n){const e=document.querySelector(".footer_social-icons.diel");e&&(e.style.display="flex")}})),Y.forEach((o=>{e&&o.countries.includes(e)?o.selectors.forEach((e=>{document.querySelectorAll(e).forEach((o=>{if(o){const n=document.querySelector(".page-wrapper");".banner_disclaimer"===e?(n.classList.add("disclaimer-show"),o.classList.remove("hide-element")):o.style.display="block"}}))})):o.selectors.forEach((e=>{document.querySelectorAll(e).forEach((o=>{o&&(".banner_disclaimer"===e?o.classList.add("hide-element"):o.style.display="none")}))}))}))},A=JSON.stringify({website_status:1});!async function(){try{const e=await fetch("https://www.cloudflare.com/cdn-cgi/trace"),o=await e.text(),n=Object.fromEntries(o.split("\n").map((e=>e.split("=",2)))).loc.toLowerCase();n!==m(document.cookie,"clients_country")&&(N("clients_country"),h("clients_country",n,30)),_()}catch(e){_()}}();m(document.cookie,"clients_country")||window.socketMessageSend(A,"website_status").then((e=>{m(document.cookie,"clients_country")!==e.website_status.clients_country&&(N("clients_country"),h("clients_country",e.website_status.clients_country,30)),_()})).catch((e=>{}));const b=["ar","bn","de","en","es","fr","it","ko","pl","pt","ru","si","sw","th","tr","vi","zh_cn","zh_tw","zh-cn","zh-tw"];(()=>{var e;const o=window.location.pathname,n=window.location.hash,i=window.location.search,t=o.split("/"),a=t[1],r=b.includes(a||""),d=t.includes("careers")||t.includes("locations")||t.includes("derivtech")||t.includes("derivlife")||t.includes("eu-careers")||t.includes("our-locations");r&&y(a);const c=(null==(e=m(document.cookie,"webflow-user-language"))?void 0:e.toLowerCase())||"en",s=r?a:c;if((r||"en"!==c)&&a!==c)if(r&&a!==c)y(s);else if(!d){const e=(r?t.map((e=>e===a?s:e)).join("/"):s+t.join("/"))+i+n;window.location.href="/"+e}})();const k=function(){let e,o=!1,n=!1;const i=()=>{n=!0,o=!!m(document.cookie,"client_information"),o&&clearInterval(e),document.dispatchEvent(new Event("authStatusChange"))};return i(),e=setInterval(i,800),{getLoggedInStatus:()=>o,getAuthCheckedStatus:()=>n,onAuthStatusChange:e=>document.addEventListener("authStatusChange",e)}}();k.onAuthStatusChange((()=>{if(k.getAuthCheckedStatus()&&k.getLoggedInStatus()){document.querySelectorAll(".logged-in-btn").forEach((e=>{e.classList.remove("hide-element")}));document.querySelectorAll(".logged-out-btn").forEach((e=>{e.classList.add("hide-element")}))}else if(k.getAuthCheckedStatus()&&!k.getLoggedInStatus()){document.querySelectorAll(".logged-out-btn").forEach((e=>{e.classList.remove("hide-element")}));document.querySelectorAll(".logged-in-btn").forEach((e=>{e.classList.add("hide-element")}))}}));const L=window.location.href;if(["help-centre"].some((e=>L.includes(e)))){const e=new URL(L).searchParams;e.has("platform")&&"derivgo"===e.get("platform")&&(S=".derivgo-query-element",document.querySelectorAll(S).forEach((e=>{e.style.display="none"})))}var S;const E=document.querySelector(".banner_disclaimer"),C=document.querySelector(".main-wrapper");if(E){new ResizeObserver((e=>{for(let o of e)if(o.target===E){let e=o.target.getBoundingClientRect();C&&(C.style.paddingTop=e.height+"px")}})).observe(E)}window.addEventListener("pageshow",(function(e){if(e.persisted){const e=document.querySelector(".w-nav-overlay");e&&(e.style.display="none",document.querySelector("body").click())}}));const q=u(l({databaseURL:window.location.hostname.includes("staging")?"https://app-config-staging.firebaseio.com":"https://app-config-prod.firebaseio.com"}));let I=!1,z=!1;!function(){var e;const o=document.getElementById("live_chat-wrapper");try{const e=p(q,"remote_config/deriv-com/chat");w(e,(e=>{const n=e.val();I=n.live_chat,z=n.whatsapp_chat;const i=document.querySelector(".whatsapp_chat"),t=document.querySelector(".livechatbtn");i&&(i.style.visibility=z?"visible":"hidden"),t&&(t.style.visibility=I?"visible":"hidden");if(window.location.pathname.includes("/help-centre")){const e=document.querySelectorAll(".livechatbtn");I?e.forEach((e=>{e.style.visibility="visible"})):e.forEach((e=>{e.style.visibility="hidden"}));const o=document.querySelectorAll(".whatsapp_chat");z?o.forEach((e=>{e.style.visibility="visible"})):o.forEach((e=>{e.style.visibility="hidden"}))}window.addEventListener("scroll",(function(){var e,n;(I||z)&&(null==(e=null==o?void 0:o.classList)||e.remove("hide-element")),I||z||null==(n=null==o?void 0:o.classList)||n.add("hide-element")}))}),(e=>{var n;null==(n=null==o?void 0:o.classList)||n.remove("hide-element")}))}catch(n){null==(e=null==o?void 0:o.classList)||e.remove("hide-element")}}();new MutationObserver((function(e){for(const o of e)if(o.addedNodes.length)for(const e of o.addedNodes)e.nodeType===Node.ELEMENT_NODE&&"chat-widget-minimized"===e.id&&(e.style.opacity="0")})).observe(document.body,{childList:!0,subtree:!0});const x=window.getClientCountry();const j=[{country:"af",apple:"Yes",android:"N/A",huawei:"N/A"},{country:"ax",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"al",apple:"No",android:"Yes",huawei:"No"},{country:"dz",apple:"Yes",android:"Yes",huawei:"No"},{country:"as",apple:"N/A",android:"No",huawei:"N/A"},{country:"ad",apple:"N/A",android:"N/A",huawei:"No"},{country:"ao",apple:"Yes",android:"Yes",huawei:"No"},{country:"ai",apple:"Yes",android:"N/A",huawei:"Yes"},{country:"aq",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"ag",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"ar",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"am",apple:"Yes",android:"Yes",huawei:"No"},{country:"aw",apple:"N/A",android:"Yes",huawei:"Yes"},{country:"au",apple:"No",android:"No",huawei:"No"},{country:"at",apple:"No",android:"Yes",huawei:"No"},{country:"az",apple:"Yes",android:"Yes",huawei:"No"},{country:"bs",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"bh",apple:"Yes",android:"Yes",huawei:"No"},{country:"bd",apple:"N/A",android:"Yes",huawei:"No"},{country:"bb",apple:"Yes",android:"N/A",huawei:"Yes"},{country:"by",apple:"Yes",android:"Yes",huawei:"No"},{country:"be",apple:"No",android:"Yes",huawei:"No"},{country:"bz",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"bj",apple:"Yes",android:"Yes",huawei:"No"},{country:"bm",apple:"Yes",android:"Yes",huawei:"N/A"},{country:"bt",apple:"Yes",android:"N/A",huawei:"N/A"},{country:"bo",apple:"Yes",android:"Yes",huawei:"No"},{country:"ba",apple:"Yes",android:"Yes",huawei:"No"},{country:"bw",apple:"Yes",android:"Yes",huawei:"No"},{country:"bv",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"br",apple:"Yes",android:"Yes",huawei:"No"},{country:"io",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"bn",apple:"Yes",android:"N/A",huawei:"No"},{country:"bg",apple:"No",android:"Yes",huawei:"No"},{country:"bf",apple:"Yes",android:"Yes",huawei:"No"},{country:"bi",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"kh",apple:"Yes",android:"Yes",huawei:"No"},{country:"cm",apple:"Yes",android:"Yes",huawei:"No"},{country:"ca",apple:"No",android:"No",huawei:"No"},{country:"cv",apple:"Yes",android:"Yes",huawei:"No"},{country:"bq",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"ky",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"cf",apple:"N/A",android:"N/A",huawei:"No"},{country:"td",apple:"Yes",android:"Yes",huawei:"No"},{country:"cl",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"cn",apple:"Yes",android:"Yes",huawei:"No"},{country:"cx",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"cc",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"co",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"km",apple:"N/A",android:"Yes",huawei:"N/A"},{country:"cg",apple:"Yes",android:"N/A",huawei:"No"},{country:"cd",apple:"Yes",android:"N/A",huawei:"No"},{country:"ck",apple:"N/A",android:"N/A",huawei:"No"},{country:"cr",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"ci",apple:"Yes",android:"Yes",huawei:"No"},{country:"hr",apple:"No",android:"Yes",huawei:"No"},{country:"cu",apple:"N/A",android:"Yes",huawei:"N/A"},{country:"cw",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"cy",apple:"No",android:"Yes",huawei:"No"},{country:"cz",apple:"No",android:"Yes",huawei:"No"},{country:"dk",apple:"No",android:"Yes",huawei:"No"},{country:"dj",apple:"N/A",android:"Yes",huawei:"No"},{country:"dm",apple:"Yes",android:"Yes",huawei:"N/A"},{country:"do",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"ec",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"eg",apple:"Yes",android:"Yes",huawei:"No"},{country:"sv",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"gq",apple:"N/A",android:"N/A",huawei:"No"},{country:"er",apple:"N/A",android:"Yes",huawei:"No"},{country:"ee",apple:"No",android:"Yes",huawei:"No"},{country:"et",apple:"N/A",android:"N/A",huawei:"No"},{country:"fk",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"fo",apple:"N/A",android:"N/A",huawei:"No"},{country:"fj",apple:"Yes",android:"Yes",huawei:"No"},{country:"fi",apple:"No",android:"Yes",huawei:"No"},{country:"fr",apple:"No",android:"Yes",huawei:"No"},{country:"gf",apple:"N/A",android:"N/A",huawei:"Yes"},{country:"pf",apple:"N/A",android:"N/A",huawei:"No"},{country:"tf",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"ga",apple:"Yes",android:"Yes",huawei:"No"},{country:"gm",apple:"Yes",android:"Yes",huawei:"No"},{country:"ge",apple:"Yes",android:"Yes",huawei:"No"},{country:"de",apple:"No",android:"Yes",huawei:"No"},{country:"gh",apple:"Yes",android:"Yes",huawei:"No"},{country:"gi",apple:"N/A",android:"Yes",huawei:"No"},{country:"gr",apple:"No",android:"Yes",huawei:"No"},{country:"gl",apple:"N/A",android:"N/A",huawei:"No"},{country:"gd",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"gp",apple:"N/A",android:"N/A",huawei:"Yes"},{country:"gu",apple:"N/A",android:"No",huawei:"N/A"},{country:"gt",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"gg",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"gn",apple:"N/A",android:"Yes",huawei:"No"},{country:"gw",apple:"Yes",android:"Yes",huawei:"No"},{country:"gy",apple:"Yes",android:"N/A",huawei:"Yes"},{country:"ht",apple:"N/A",android:"Yes",huawei:"Yes"},{country:"hm",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"va",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"hn",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"hk",apple:"No",android:"No",huawei:"Yes"},{country:"hu",apple:"No",android:"Yes",huawei:"No"},{country:"is",apple:"No",android:"Yes",huawei:"No"},{country:"in",apple:"Yes",android:"Yes",huawei:"No"},{country:"id",apple:"Yes",android:"Yes",huawei:"No"},{country:"ir",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"iq",apple:"No",android:"Yes",huawei:"N/A"},{country:"ie",apple:"No",android:"Yes",huawei:"No"},{country:"im",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"il",apple:"No",android:"Yes",huawei:"No"},{country:"it",apple:"No",android:"Yes",huawei:"No"},{country:"jm",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"jp",apple:"Yes",android:"No",huawei:"No"},{country:"je",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"jo",apple:"Yes",android:"Yes",huawei:"No"},{country:"kz",apple:"Yes",android:"Yes",huawei:"No"},{country:"ke",apple:"Yes",android:"Yes",huawei:"No"},{country:"ki",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"kr",apple:"Yes",android:"Yes",huawei:"N/A"},{country:"kp",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"kw",apple:"Yes",android:"Yes",huawei:"No"},{country:"kg",apple:"Yes",android:"Yes",huawei:"No"},{country:"la",apple:"Yes",android:"Yes",huawei:"No"},{country:"lv",apple:"No",android:"Yes",huawei:"No"},{country:"lb",apple:"Yes",android:"Yes",huawei:"No"},{country:"ls",apple:"N/A",android:"N/A",huawei:"No"},{country:"lr",apple:"Yes",android:"Yes",huawei:"No"},{country:"ly",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"li",apple:"N/A",android:"Yes",huawei:"No"},{country:"lt",apple:"No",android:"Yes",huawei:"No"},{country:"lu",apple:"No",android:"Yes",huawei:"No"},{country:"mo",apple:"Yes",android:"Yes",huawei:"No"},{country:"mk",apple:"Yes",android:"Yes",huawei:"No"},{country:"mg",apple:"Yes",android:"N/A",huawei:"No"},{country:"mw",apple:"Yes",android:"N/A",huawei:"No"},{country:"my",apple:"Yes",android:"Yes",huawei:"No"},{country:"mv",apple:"Yes",android:"Yes",huawei:"N/A"},{country:"ml",apple:"Yes",android:"Yes",huawei:"No"},{country:"mt",apple:"No",android:"Yes",huawei:"No"},{country:"mh",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"mq",apple:"N/A",android:"N/A",huawei:"Yes"},{country:"mr",apple:"Yes",android:"N/A",huawei:"No"},{country:"mu",apple:"Yes",android:"Yes",huawei:"No"},{country:"yt",apple:"N/A",android:"N/A",huawei:"No"},{country:"mx",apple:"Yes",android:"Yes",huawei:"No"},{country:"fm",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"md",apple:"Yes",android:"Yes",huawei:"No"},{country:"mc",apple:"Yes",android:"Yes",huawei:"No"},{country:"mn",apple:"Yes",android:"N/A",huawei:"No"},{country:"me",apple:"No",android:"N/A",huawei:"No"},{country:"ms",apple:"Yes",android:"N/A",huawei:"Yes"},{country:"ma",apple:"Yes",android:"Yes",huawei:"No"},{country:"mz",apple:"Yes",android:"Yes",huawei:"No"},{country:"mm",apple:"Yes",android:"Yes",huawei:"No"},{country:"na",apple:"Yes",android:"Yes",huawei:"No"},{country:"nr",apple:"Yes",android:"N/A",huawei:"No"},{country:"np",apple:"Yes",android:"Yes",huawei:"No"},{country:"nl",apple:"No",android:"Yes",huawei:"No"},{country:"nc",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"nz",apple:"No",android:"No",huawei:"No"},{country:"ni",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"ne",apple:"Yes",android:"Yes",huawei:"No"},{country:"ng",apple:"No",android:"No",huawei:"No"},{country:"nu",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"nf",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"mp",apple:"N/A",android:"No",huawei:"N/A"},{country:"no",apple:"No",android:"Yes",huawei:"No"},{country:"om",apple:"Yes",android:"Yes",huawei:"No"},{country:"pk",apple:"Yes",android:"Yes",huawei:"No"},{country:"pw",apple:"Yes",android:"No",huawei:"N/A"},{country:"ps",apple:"N/A",android:"N/A",huawei:"No"},{country:"pa",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"pg",apple:"Yes",android:"Yes",huawei:"No"},{country:"py",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"pe",apple:"Yes",android:"Yes",huawei:"No"},{country:"ph",apple:"Yes",android:"Yes",huawei:"No"},{country:"pn",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"pl",apple:"No",android:"Yes",huawei:"No"},{country:"pt",apple:"No",android:"Yes",huawei:"No"},{country:"pr",apple:"N/A",android:"No",huawei:"Yes"},{country:"qa",apple:"Yes",android:"Yes",huawei:"No"},{country:"re",apple:"N/A",android:"N/A",huawei:"No"},{country:"ro",apple:"No",android:"Yes",huawei:"No"},{country:"ru",apple:"Yes",android:"Yes",huawei:"No"},{country:"rw",apple:"Yes",android:"Yes",huawei:"No"},{country:"sh",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"kn",apple:"Yes",android:"N/A",huawei:"N/A"},{country:"lc",apple:"Yes",android:"N/A",huawei:"Yes"},{country:"pm",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"vc",apple:"Yes",android:"N/A",huawei:"Yes"},{country:"bl",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"mf",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"ws",apple:"N/A",android:"Yes",huawei:"No"},{country:"sm",apple:"N/A",android:"Yes",huawei:"No"},{country:"st",apple:"Yes",android:"N/A",huawei:"No"},{country:"sa",apple:"Yes",android:"Yes",huawei:"No"},{country:"sn",apple:"Yes",android:"Yes",huawei:"No"},{country:"rs",apple:"Yes",android:"Yes",huawei:"No"},{country:"sc",apple:"Yes",android:"Yes",huawei:"N/A"},{country:"sl",apple:"Yes",android:"Yes",huawei:"No"},{country:"sg",apple:"No",android:"No",huawei:"No"},{country:"sx",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"sk",apple:"No",android:"Yes",huawei:"No"},{country:"si",apple:"No",android:"Yes",huawei:"No"},{country:"sb",apple:"Yes",android:"Yes",huawei:"No"},{country:"so",apple:"N/A",android:"Yes",huawei:"N/A"},{country:"za",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"gs",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"ss",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"es",apple:"No",android:"Yes",huawei:"No"},{country:"lk",apple:"Yes",android:"Yes",huawei:"No"},{country:"sd",apple:"N/A",android:"Yes",huawei:"N/A"},{country:"sr",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"sj",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"sz",apple:"Yes",android:"N/A",huawei:"No"},{country:"se",apple:"No",android:"Yes",huawei:"No"},{country:"ch",apple:"No",android:"Yes",huawei:"No"},{country:"sy",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"tw",apple:"No",android:"Yes",huawei:"No"},{country:"tj",apple:"Yes",android:"Yes",huawei:"No"},{country:"tz",apple:"Yes",android:"Yes",huawei:"No"},{country:"th",apple:"Yes",android:"Yes",huawei:"No"},{country:"tl",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"tg",apple:"N/A",android:"Yes",huawei:"No"},{country:"tk",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"to",apple:"Yes",android:"Yes",huawei:"No"},{country:"tt",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"tn",apple:"Yes",android:"Yes",huawei:"No"},{country:"tr",apple:"No",android:"Yes",huawei:"No"},{country:"tm",apple:"Yes",android:"Yes",huawei:"No"},{country:"tc",apple:"Yes",android:"N/A",huawei:"N/A"},{country:"tv",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"ug",apple:"Yes",android:"Yes",huawei:"No"},{country:"ua",apple:"Yes",android:"Yes",huawei:"No"},{country:"ae",apple:"Yes",android:"Yes",huawei:"No"},{country:"gb",apple:"No",android:"Yes",huawei:"No"},{country:"um",apple:"N/A",android:"No",huawei:"N/A"},{country:"us",apple:"No",android:"No",huawei:"N/A"},{country:"uy",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"uz",apple:"Yes",android:"Yes",huawei:"No"},{country:"vu",apple:"No",android:"Yes",huawei:"N/A"},{country:"ve",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"vn",apple:"Yes",android:"Yes",huawei:"Yes"},{country:"vg",apple:"Yes",android:"N/A",huawei:"Yes"},{country:"vi",apple:"N/A",android:"No",huawei:"N/A"},{country:"wf",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"eh",apple:"N/A",android:"N/A",huawei:"N/A"},{country:"ye",apple:"Yes",android:"Yes",huawei:"No"},{country:"zm",apple:"Yes",android:"Yes",huawei:"No"},{country:"zw",apple:"Yes",android:"Yes",huawei:"No"}].find((e=>e.country===x)),O=j?function(e){const{apple:o,android:n,huawei:i}=e;return"Yes"===o&&"Yes"===n&&"Yes"===i?"Android, iOS & Huawei":"Yes"===o&&"Yes"===n&&"Yes"!==i?"Android, and iOS":"Yes"===o&&"Yes"===i&&"Yes"!==n?"iOS, and Huawei":"Yes"===n&&"Yes"!==o&&"Yes"!==i?"Android":"Yes"===o&&"Yes"===i&&"Yes"!==n?"iOS, and Huawei":"Yes"===o&&"Yes"!==n&&"Yes"!==i?"iOS":"Yes"!==o&&"Yes"!==n&&"Yes"===i?"Huawei":""}(j):"",$=document.getElementById("app-download-heading");$&&($.innerText=O);const B=document.querySelector(".redirection_background-wrapper"),D=document.getElementById("cancel-redirect"),P=document.getElementById("proceed-redirect");if(window.isEuRegion(window.location.pathname)&&B&&D&&P){const e=["deriv.me","deriv.be","deriv.com","app.deriv.me","app.deriv.be","app.deriv.com","docs.deriv.com","community.deriv.com","deriv.statuspage.io","signup.deriv.com","login.deriv.com","api.deriv.com"];let o="",n="_self";document.querySelectorAll("a").forEach((function(i){const t=new URL(i.href,window.location.href),a=new URL(window.location.href);e.includes(t.host)||t.host===a.host||i.addEventListener("click",(function(e){e.preventDefault(),o=t.href,n=i.target||"_self",B.classList.remove("hide-element"),document.body.style.overflow="hidden"}))})),D.addEventListener("click",(function(){B.classList.add("hide-element"),document.body.style.overflow="auto",o=""})),P.addEventListener("click",(function(){o&&(window.open(o,n),o="",B.classList.add("hide-element"),document.body.style.overflow="auto")}))}document.querySelector(".banner_disclaimer")?document.body.classList.add("disclaimer-visible"):document.body.classList.remove("disclaimer-visible");const W=document.querySelectorAll(".navbar_accordion-item");function R(){const e=document.querySelector(".navbar_accordion-trigger.open");e&&e.scrollIntoView({behavior:"smooth",block:"start"})}W.forEach((e=>{e.querySelector(".navbar_accordion-trigger").classList.remove("open");const o=e.querySelector(".navbar_accordion-content");o.classList.remove("open"),o.style.maxHeight="0px",o.style.overflow="hidden",o.style.transition="max-height 0.3s ease-in, opacity 0.3s ease-in",o.style.opacity="0"})),W.forEach((e=>{const o=e.querySelector(".navbar_accordion-trigger");o.addEventListener("click",(function(){const e=o.classList.contains("open");if(W.forEach((e=>{e.querySelector(".navbar_accordion-trigger").classList.remove("open");const o=e.querySelector(".navbar_accordion-content");o.classList.remove("open"),o.style.maxHeight="0px",o.style.opacity="0"})),!e){o.classList.add("open");const e=o.nextElementSibling;e.classList.add("open"),e.style.maxHeight=e.scrollHeight+"px",e.style.opacity="1"}}))}));document.querySelectorAll(".navbar_accordion-trigger").forEach((e=>{e.addEventListener("click",(function(){setTimeout(R,300)}))}));const U=new MutationObserver((e=>{e.forEach((e=>{if("class"===e.attributeName){const o=e.target;o.classList.contains("open")&&o.scrollIntoView({behavior:"smooth",block:"start"})}}))}));document.querySelectorAll(".navbar_accordion-item").forEach((e=>{U.observe(e,{attributes:!0})}));const J=new URL(window.location.href),T=new URLSearchParams(J.search),F=T.get("t");if(T.has("referrer")&&null!=F){m(document.cookie,"referrer_token")!==F&&(N("referrer_token"),h("referrer_token",F,365,".deriv.com"))}const H=document.getElementById("navbar-home_login");H&&H.addEventListener("click",(function(e){e.preventDefault(),window.location.href=g()}));const M=document.getElementById("res-navbar-home_login");M&&M.addEventListener("click",(function(e){e.preventDefault(),window.location.href=g()}));const V=document.getElementById("white-navbar_login");V&&V.addEventListener("click",(function(e){e.preventDefault(),window.location.href=g()}));const G=document.getElementById("res-white-navbar_login");G&&G.addEventListener("click",(function(e){e.preventDefault(),window.location.href=g()})),window.fallbackLoader="Migrated All + Removal of Webflow array functions";let K=document.querySelectorAll(".navbar_accordion-trigger");K.forEach((e=>{e.addEventListener("click",(function(){K.forEach((e=>e.classList.remove("current"))),this.classList.add("current")}))}));let Z=document.querySelector(".navbar_accordion-link.w--current");if(Z){let e=Z.closest(".navbar_accordion-item");if(e){let o=e.querySelector(".navbar_accordion-trigger");o&&o.classList.add("current")}}let Q=document.querySelector(".locale > .new-navbar_dropdown-link.w--current");if(Q){let e=Q.getAttribute("hreflang"),o=document.querySelectorAll(".current-locale-iso-code");if(e&&o.length)for(let n of o)n.innerText=e}function X(e,o,n){let i="";{let e=new Date;e.setTime(e.getTime()+24*n*60*60*1e3),i="; expires="+e.toUTCString()}document.cookie=e+"="+(o||"")+i+"; path=/"}let ee=document.querySelectorAll(".w-locales-items");if(ee.length>0){let e=function(e){let o=document.querySelector('a[hreflang="'+e+'"]');o&&window.location.pathname!==o.getAttribute("href")&&o.click()};ee.forEach((function(e){e.querySelectorAll("a").forEach((function(e){e.addEventListener("click",(function(o){o.preventDefault(),X("webflow-user-language",e.getAttribute("hreflang"),30),window.location.href=e.href}))}))})),window.setLanguageCookie=e=>{X("webflow-user-language",e,30)};let o=function(e){let o=document.cookie.split(";");for(let n=0;ni.includes(e))),o&&t&&e(o)}if(document.querySelector(".new-navbar_component")){let e=function(){document.body.classList.add("disable-scroll")},o=function(){document.body.classList.remove("disable-scroll")};const n=document.querySelector(".new-navbar_component");n.addEventListener("mouseenter",(()=>{window.innerWidth>991&&e()})),n.addEventListener("mouseleave",(()=>{window.innerWidth>991&&o()}))}window.getClientCountry();const oe=window.parseCookies(document.cookie,"webflow-user-language"),ne=["as","au","at","be","bg","ca","hr","cy","cz","dk","ee","fi","fr","gr","gu","gg","hk","hu","ir","ie","im","il","it","je","ng","mm","sy","kp","lv","lt","lu","my","mt","nl","nz","mp","py","pl","pt","pr","ro","rw","sk","si","es","se","ae","gb","us","um","vu","vi","ky","cu","de"];if(window.location.pathname.endsWith("p2p")&&!window.location.pathname.startsWith("/blog")){const e=window.getClientCountry();e&&ne.includes(e)&&("en"===oe?window.location.replace("/404"):window.location.replace(`/${oe}/404`))}if(void 0!==window.parseCookies(document.cookie,"client_information")){let e=function(e){e.forEach((e=>{e.href="https://app.deriv.com/appstore/traders-hub"}))},o=document.querySelectorAll("a.live-markets_button.is-secondary.is-small.is-purchase.w-button"),n=document.querySelectorAll("a.live-markets_button.is-secondary.is-small.is-sell.w-button");e(o),e(n)}document.getElementById("mobile-menu"),document.getElementById("live_chat-wrapper");const ie=()=>{window.LC_API&&window.LC_API.open_chat_window&&window.LC_API.open_chat_window()},te=()=>{"true"===new URLSearchParams(window.location.search).get("is_livechat_open")&&ie()},ae=e=>{var o;null==(o=null==window?void 0:window.LiveChatWidget)||o.on("ready",(()=>{window.LC_API.open_chat_window(),window.LC_API.hide_chat_window(),te();const o=window.parseCookies(document.cookie,"utm_data"),n=o?JSON.parse(o):{},{utm_source:i,utm_medium:t,utm_campaign:a}=n,r=window.parseCookies(document.cookie,"client_information"),d=new URLSearchParams(window.location.search),{loginid:c,email:s,landing_company_shortcode:l,currency:u,residence:p,first_name:w,last_name:h}=r?JSON.parse(r):{},m={is_logged_in:e,loginid:c??"",landing_company_shortcode:l??"",currency:u??"",residence:p??"",email:s??"",platform:d.get("platform")??"",utm_source:i??"",utm_medium:t??"",utm_campaign:a??""};window.LiveChatWidget.call("set_session_variables",m),e?(s&&window.LiveChatWidget.call("set_customer_email",s),w&&h&&window.LiveChatWidget.call("set_customer_name",`${w} ${h}`)):window.LC_API.on_chat_ended=()=>{window.LiveChatWidget.call("set_customer_email"," "),window.LiveChatWidget.call("set_customer_name"," ")},te(),window.LiveChatWidget.on("new_event",(e=>{e.greeting&&window.LC_API.open_chat_window()}))}))};let re=!1;const de=()=>{const e=!!window.parseCookies(document.cookie,"client_information");e!==re&&(ae(e),re=e)};de(),setInterval(de,2e3),(()=>{if(window.__lc=window.__lc||{},window.__lc.license="12049137",window.LC_API=window.LC_API||{loaded:!1},window.LC_API.loaded)te();else{const e=document.createElement("script");e.async=!0,e.src="https://cdn.livechatinc.com/tracking.js",e.onload=()=>{window.LC_API.loaded=!0,window.LC_API.on_after_load=function(){ae(!!window.parseCookies(document.cookie,"client_information")),te()},"undefined"!=typeof LiveChatWidget&&LiveChatWidget.init&&LiveChatWidget.init()},document.body.appendChild(e)}})();const ce=document.querySelectorAll(".livechatbtn");ce.length>0&&ce.forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault(),ie()}))}));const se=document.getElementById("liveChatBtn");se&&se.addEventListener("click",(e=>{e.preventDefault(),ie()}));document.querySelectorAll('a[rel="liveChatBtn"]').forEach((e=>{null==e||e.addEventListener("click",(e=>{e.preventDefault(),ie()}))}));let le=document.querySelector(".navbar_menu-button");le&&le.addEventListener("click",(function(){let e=window.innerHeight,o=document.querySelector(".new-navbar_main-wrapper");if(o){let n=e-o.offsetHeight,i=document.querySelector(".new-navbar_menu");i&&(i.style.height=`${n}px`)}}));let ue=document.querySelector(".lang-mob");ue&&ue.addEventListener("click",(function(){let e=document.querySelector(".new-navbar_menu-wrapper");e&&e.scrollBy({top:-3e3})}));class pe{constructor(e){this.cookieName=e}setItem(e){const o=new Date;o.setDate(o.getDate()+30);const n="expires="+o.toUTCString(),i=encodeURIComponent(JSON.stringify(e));document.cookie=`${this.cookieName}=${i};${n};path=/`}getItem(){const e=document.cookie.split(";");for(let o=0;ove.includes(e)))&&document.head.querySelectorAll("link").forEach((function(e){e.hasAttribute("hreflang")&&"x-default"!==e.getAttribute("hreflang")&&e.remove()}));const Ye=e=>{window.rudderanalytics?window.rudderanalytics.track(e.name,e.properties):(e=>{let o=[],n=parseCookies(document.cookie,"cached_analytics_events");n&&(o=JSON.parse(n)),o.push(e),document.cookie=`cached_analytics_events=${JSON.stringify(o)}; path=/; Domain=.deriv.com`})(e)};window.addClickListener=function(e,o,n){e&&e.addEventListener("click",(function(){Ye({name:o,properties:n})}))};var _e=null==document?void 0:document.getElementsByClassName("livechatbtn"),Ae=null==document?void 0:document.getElementsByClassName("whatsapp_chat"),be=null==document?void 0:document.getElementsByClassName("tradershub-btn"),ke=document.querySelectorAll(".btn-free-demo .w-button"),Le=document.querySelectorAll('.btn-free-demo [data-class="w-button"]');const Se=document.querySelectorAll('[data-attributes="btn-primary-nav"]'),Ee=document.querySelectorAll('[data-attributes="btn-secondary-nav"]');_e&&Array.from(_e).forEach((e=>{window.addClickListener(e,"ce_widget_usage_form",{action:"click",widget_name:"livechat"})})),Ae&&Array.from(Ae).forEach((e=>{window.addClickListener(e,"ce_widget_usage_form",{action:"click",widget_name:"whatsapp"})})),be&&Array.from(be).forEach((e=>{window.addClickListener(e,"ce_cta_clicks",{action:"click",cta_name:"Traders Hub"})})),ke&&Array.from(ke).forEach((e=>{window.addClickListener(e,"ce_cta_clicks",{action:"click",cta_name:"Try free demo"})})),Le&&Array.from(Le).forEach((e=>{window.addClickListener(e,"ce_cta_clicks",{action:"click",cta_name:"Try free demo"})})),Se&&Array.from(Se).forEach((e=>{e.classList.contains("tradershub-btn")||window.addClickListener(e,"ce_cta_clicks",{action:"click",cta_name:"Try free demo"})})),Ee&&Array.from(Ee).forEach((e=>{window.addClickListener(e,"ce_cta_clicks",{action:"click",cta_name:"Login"})}));var Ce,qe,Ie;"deriv.com"===window.location.hostname||"deriv.be"===window.location.hostname||"deriv.me"===window.location.hostname?(Ce="sdk-UhZV3cNEg5nLNLNS",Ie="nre64BV0dNIa44zW4tz5ow==",qe="1oV5agvlcnCZ6IH94wCKM1oR8Pd"):(Ce="sdk-9wuqJ1mlcQsSyZQ",Ie="",qe="1lN3tsFD2nruGFgM5F074DC2hMB");const ze=(Ne=window.parseCookies(document.cookie,"client_information"))?JSON.parse(Ne):null,xe=window.parseCookies(document.cookie,"utm_data"),je=xe?JSON.parse(xe):{},Oe=window.parseCookies(document.cookie,"signup_device");let $e=null;Oe&&($e=(null==(e=JSON.parse(Oe))?void 0:e.signup_device)||null);const Be={growthbookKey:Ce,growthbookDecryptionKey:Ie,rudderstackKey:qe,growthbookOptions:{navigate:e=>window.location.replace(e),antiFlicker:!1,navigateDelay:0,attributes:{country:window.parseCookies(document.cookie,"clients_country")||window.parseCookies(document.cookie,"website_status"),user_language:window.parseCookies(document.cookie,"user_language")||("undefined"!=typeof window?localStorage.getItem("i18n")||navigator.language:null),device_language:window.parseCookies(document.cookie,"language")||" ",device_type:$e,utm_source:null==je?void 0:je.utm_source,utm_medium:null==je?void 0:je.utm_medium,utm_campaign:null==je?void 0:je.utm_campaign,is_authorised:!!window.parseCookies(document.cookie,"client_information"),loggedIn:!!window.parseCookies(document.cookie,"client_information"),url:window.location.href}}};try{null==Analytics||Analytics.Analytics.initialise(Be);const e=(null==ze?void 0:ze.user_id)?null==ze?void 0:ze.user_id:null==(i=null==(n=null==(o=null==Analytics?void 0:Analytics.Analytics)?void 0:o.getInstances)?void 0:n.call(o).tracking)?void 0:i.getAnonymousId();null==(t=null==Analytics?void 0:Analytics.Analytics)||t.identifyEvent(e)}catch(Pe){}null==(a=null==Analytics?void 0:Analytics.Analytics)||a.pageView(location.pathname,"Deriv.com"),window.useGrowthbookFeatureFlag=function({featureFlag:e}){var o,n,i,t,a;let r=null==(o=null==Analytics?void 0:Analytics.Analytics)?void 0:o.getFeatureValue(e);return null==(a=null==(t=null==(i=null==(n=null==Analytics?void 0:Analytics.Analytics)?void 0:n.getInstances())?void 0:i.ab)?void 0:t.GrowthBook)||a.setRenderer((function(){var o;const n=null==(o=null==Analytics?void 0:Analytics.Analytics)?void 0:o.getFeatureValue(e);r=n})),r};const De=window.parseCookies(document.cookie,"client_information")?JSON.parse(window.parseCookies(document.cookie,"client_information")):null;(null==De?void 0:De.loginid)&&(null==window||window.hj("identify",De.loginid,{is_logged_in:!!window.parseCookies(document.cookie,"client_information"),landing_company_shortcode:De.landing_company_shortcode||"null"}));null==(s=null==(c=null==(d=null==(r=null==Analytics?void 0:Analytics.Analytics)?void 0:r.getInstances())?void 0:d.ab)?void 0:c.GrowthBook)||s.loadFeatures().then((()=>{window.location.href.indexOf("/partners")>-1==!1&&(()=>{var e;const o=(null==(e=null==Analytics?void 0:Analytics.Analytics)?void 0:e.getFeatureValue("trigger_os_signup_wf"))?function(){const e=navigator.userAgent.toLowerCase();return/ipad|iphone|ipod/.test(e)}()||function(){const e=navigator.userAgent.toLowerCase();return/safari/.test(e)&&!/chrome/.test(e)&&!/crios/.test(e)}()?`https://${window.location.host}/signup`:(()=>{const e=window.location.hostname;let o;switch(o="deriv.com"===e||"deriv.be"===e||"deriv.me"===e?"production":"staging.deriv.com"===e?"staging":"development",o){case"production":return"https://hub.deriv.com/tradershub/signup";case"staging":return"https://staging-hub.deriv.com/tradershub/signup";default:return"https://dev-hub.deriv.com/tradershub/signup"}})():`https://${window.location.host}/signup`,n=document.getElementById("cta-home-btn-navbar");n&&(n.href=o);const i=document.querySelectorAll(".logged-out-btn");null==i||i.forEach((e=>{var n;(null==(n=null==e?void 0:e.href)?void 0:n.indexOf("/signup"))>0&&(e.href=o)}));const t=document.querySelectorAll(".logged-out-btn a");null==t||t.forEach((e=>{var n;(null==(n=null==e?void 0:e.href)?void 0:n.indexOf("/signup"))>0&&(e.href=o)}))})()}));