diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6f4ca91bac74..7c7af76890b8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -53,6 +53,11 @@ # vinu-deriv # wojciech-deriv # yashim-deriv +# farabi-deriv +# maryia-matskevich-deriv +# shahzaib-deriv +# rupato-deriv +# akmal-deriv ###################################################################################################### # @@ -119,7 +124,7 @@ /packages/core/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv /packages/shared/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv /packages/components/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv -/packages/translations/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv +/packages/translations/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv @heorhi-deriv @jim-deriv @vinu-deriv @nada-deriv @hirad-deriv @farabi-deriv @likhith-deriv @maryia-matskevich-deriv @shahzaib-deriv @rupato-deriv @akmal-deriv /packages/utils/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv /packages/hooks/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv /packages/stores/**/* @ali-hosseini-deriv @amina-deriv @balakrishna-deriv @farrah-deriv @habib-deriv @matin-deriv @nijil-deriv @sandeep-deriv @wojciech-deriv @yashim-deriv diff --git a/.github/actions/publish_to_pages_uat/action.yml b/.github/actions/publish_to_pages_uat/action.yml index 3d84e8df0aa6..1132f0a22056 100644 --- a/.github/actions/publish_to_pages_uat/action.yml +++ b/.github/actions/publish_to_pages_uat/action.yml @@ -7,6 +7,9 @@ inputs: CLOUDFLARE_API_TOKEN: description: 'Cloudflare token' required: true + BRANCH_NAME: + description: 'Branch name' + required: true runs: using: composite steps: @@ -17,6 +20,6 @@ runs: run: | npm i wrangler@3.1.0 cd packages/core - npx wrangler pages deploy dist/ --project-name=deriv-app-pages --branch=uat - echo "New uat website - https://uat.cf-pages-deriv-app.deriv.com" + npx wrangler pages deploy dist/ --project-name=deriv-app-pages --branch=${{ inputs.BRANCH_NAME }} + echo "New uat website - https://${{ inputs.BRANCH_NAME }}.cf-pages-deriv-app.deriv.com" shell: bash diff --git a/.github/workflows/release_uat.yml b/.github/workflows/release_uat.yml index 87b9b6685092..a3b877ca4183 100644 --- a/.github/workflows/release_uat.yml +++ b/.github/workflows/release_uat.yml @@ -53,3 +53,4 @@ jobs: with: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + BRANCH_NAME: uat diff --git a/.github/workflows/release_uat2.yml b/.github/workflows/release_uat2.yml new file mode 100644 index 000000000000..4ff8991ca0c3 --- /dev/null +++ b/.github/workflows/release_uat2.yml @@ -0,0 +1,53 @@ +name: Deriv App Release to UAT2 Environment +on: + workflow_dispatch: + +jobs: + build_test_and_publish: + name: Build, Test and Publish to Cloudflare UAT2 + runs-on: Runner_16cores_Deriv-app + environment: Staging + steps: + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + - name: Setup Node + uses: "./.github/actions/setup_node" + - name: Install Dependencies + uses: "./.github/actions/npm_install_from_cache" + - name: Download Remote Config Backup File + uses: ./.github/actions/download_remote_config_backup + with: + REMOTE_CONFIG_URL: ${{ vars.REMOTE_CONFIG_URL }} + - name: Build + uses: "./.github/actions/build" + with: + NODE_ENV: staging + CROWDIN_WALLETS_API_KEY: ${{ secrets.CROWDIN_WALLETS_API_KEY }} + DATADOG_APPLICATION_ID: ${{ vars.DATADOG_APPLICATION_ID }} + DATADOG_CLIENT_TOKEN: ${{ vars.DATADOG_CLIENT_TOKEN }} + IS_GROWTHBOOK_ENABLED: ${{ vars.IS_GROWTHBOOK_ENABLED }} + DATADOG_CLIENT_TOKEN_LOGS: ${{ vars.DATADOG_CLIENT_TOKEN_LOGS }} + DATADOG_SESSION_REPLAY_SAMPLE_RATE: ${{ vars.DATADOG_SESSION_REPLAY_SAMPLE_RATE }} + DATADOG_SESSION_SAMPLE_RATE: ${{ vars.DATADOG_SESSION_SAMPLE_RATE }} + DATADOG_SESSION_SAMPLE_RATE_LOGS: ${{ vars.DATADOG_SESSION_SAMPLE_RATE_LOGS }} + GD_API_KEY: ${{ secrets.GD_API_KEY }} + GD_APP_ID: ${{ secrets.GD_APP_ID }} + GD_CLIENT_ID: ${{ secrets.GD_CLIENT_ID }} + RUDDERSTACK_KEY: ${{ vars.RUDDERSTACK_KEY }} + GROWTHBOOK_CLIENT_KEY: ${{ vars.GROWTHBOOK_CLIENT_KEY }} + GROWTHBOOK_DECRYPTION_KEY: ${{ vars.GROWTHBOOK_DECRYPTION_KEY }} + REF_NAME: ${{ github.ref_name }} + REMOTE_CONFIG_URL: ${{ vars.REMOTE_CONFIG_URL }} + TRUSTPILOT_API_KEY: ${{ secrets.TRUSTPILOT_API_KEY }} + - name: Versioning + uses: "./.github/actions/versioning" + with: + release_type: uat2 + - name: Run tests + run: npm test + - name: Publish to Cloudflare Pages UAT2 + uses: "./.github/actions/publish_to_pages_uat" + with: + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + BRANCH_NAME: uat2 diff --git a/package-lock.json b/package-lock.json index 6445fd1f5f6e..38afcb649f3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,20 +14,18 @@ "@contentpass/zxcvbn": "^4.4.3", "@datadog/browser-rum": "^5.11.0", "@deriv-com/analytics": "1.14.0", - "@deriv-com/auth-client": "1.0.27", + "@deriv-com/auth-client": "1.0.29", "@deriv-com/quill-tokens": "2.0.4", - "@deriv-com/quill-ui": "1.16.20", + "@deriv-com/quill-ui": "1.18.0", "@deriv-com/translations": "1.3.9", - "@deriv-com/ui": "1.35.0", - "@deriv-com/utils": "^0.0.34", + "@deriv-com/ui": "1.36.4", + "@deriv-com/utils": "^0.0.36", "@deriv/api-types": "1.0.172", "@deriv/deriv-api": "^1.0.15", "@deriv/deriv-charts": "^2.5.1", "@deriv/js-interpreter": "^3.0.0", "@deriv/quill-design": "^1.3.2", "@deriv/quill-icons": "1.23.3", - "@deriv/ui": "^0.6.0", - "@livechat/customer-sdk": "^2.0.4", "@lottiefiles/dotlottie-react": "0.7.2", "@sendbird/chat": "^4.9.7", "@simplewebauthn/browser": "^8.3.4", @@ -49,7 +47,7 @@ "@types/classnames": "^2.2.11", "@types/css-modules": "^1.0.2", "@types/dompurify": "^3.0.5", - "@types/js-cookie": "^2.2.1", + "@types/js-cookie": "^3.0.1", "@types/jsdom": "^20.0.0", "@types/loadjs": "^4.0.1", "@types/lodash.debounce": "^4.0.7", @@ -77,7 +75,6 @@ "babel-jest": "^27.3.1", "babel-loader": "^8.1.0", "babel-plugin-transform-barrels": "1.0.12", - "binary-utils": "^4.23.0", "blockly": "^10.4.3", "bowser": "^2.9.0", "canvas-toBlob": "^1.0.0", @@ -302,6 +299,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "license": "MIT", "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", @@ -655,9 +653,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", "engines": { "node": ">=6.9.0" } @@ -1079,11 +1077,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", - "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.25.7.tgz", + "integrity": "sha512-fyoj6/YdVtlv2ROig/J0fP7hh/wNO1MJGm1NR70Pg7jbkF+jOUL9joorqaCOQh06Y+LfgTagHzC8KqZ3MF782w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1093,9 +1092,10 @@ } }, "node_modules/@babel/plugin-syntax-flow/node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -1388,12 +1388,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz", - "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.7.tgz", + "integrity": "sha512-q8Td2PPc6/6I73g96SreSUCKEcwMXCwcXSIAVTyTTN6CpJe0dMj8coxu1fg1T9vfBLi6Rsi6a4ECcFBbKabS5w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-flow": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/plugin-syntax-flow": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1403,9 +1404,10 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types/node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -1787,6 +1789,7 @@ "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", + "license": "MIT", "dependencies": { "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" @@ -1880,13 +1883,14 @@ } }, "node_modules/@babel/preset-flow": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.7.tgz", - "integrity": "sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.25.7.tgz", + "integrity": "sha512-q2x3g0YHzo/Ohsr51KOYS/BtZMsvkzVd8qEyhZAyTatYdobfgXCuyppTqTuIhdq5kR/P3nyyVvZ6H5dMc4PnCQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-flow-strip-types": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "@babel/plugin-transform-flow-strip-types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1896,9 +1900,10 @@ } }, "node_modules/@babel/preset-flow/node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -1951,9 +1956,10 @@ } }, "node_modules/@babel/register": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz", - "integrity": "sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.25.7.tgz", + "integrity": "sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -1972,6 +1978,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -1984,6 +1991,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1992,6 +2000,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -2026,9 +2035,10 @@ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" }, "node_modules/@babel/standalone": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.25.6.tgz", - "integrity": "sha512-Kf2ZcZVqsKbtYhlA7sP0z5A3q5hmCVYMKMWRWNK/5OVwHIve3JY1djVRmIVAx8FMueLIfZGKQDIILK2w8zO4mg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.25.8.tgz", + "integrity": "sha512-UvRanvLCGPRscJ5Rw9o6vUBS5P+E+gkhl6eaokrIN+WM1kUkmj254VZhyihFdDZVDlI3cPcZoakbJJw24QPISw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -2079,7 +2089,8 @@ "node_modules/@base2/pretty-print-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz", - "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==" + "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==", + "license": "BSD-2-Clause" }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", @@ -2089,6 +2100,7 @@ "version": "2.4.8", "resolved": "https://registry.npmjs.org/@binary-com/binary-document-uploader/-/binary-document-uploader-2.4.8.tgz", "integrity": "sha512-lOd0zClNbRff+3VJZ9IZ9u3olVVigbejU9aYfwFUyWEcaqApP1wbnbptUL53nzOkEvivx3lXc9/8qn72H49qng==", + "license": "ISC", "dependencies": { "md5": "^2.2.1" } @@ -2097,6 +2109,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/@cloudflare/stream-react/-/stream-react-1.9.1.tgz", "integrity": "sha512-Yeftxpgzs69hK3VmVZjhvqIqhyo5PHWLAoZMmbzPiTH0rqkyzMMHxRvyNe7jfBRAGknOiTeeU7TQCdPBDCkuvg==", + "license": "BSD-3-Clause", "engines": { "node": ">=10" }, @@ -2122,6 +2135,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -2597,7 +2611,8 @@ "node_modules/@contentpass/zxcvbn": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/@contentpass/zxcvbn/-/zxcvbn-4.4.3.tgz", - "integrity": "sha512-8PlusOoIovRFI03q2qs8a4hEsSRKP1s4oAAsU8YfQSuOI1xTGJewV6NZDHJ8JE6ibBkS1xnl2MM2aUMwlFgcHA==" + "integrity": "sha512-8PlusOoIovRFI03q2qs8a4hEsSRKP1s4oAAsU8YfQSuOI1xTGJewV6NZDHJ8JE6ibBkS1xnl2MM2aUMwlFgcHA==", + "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", @@ -2623,6 +2638,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "license": "CC0-1.0", "dependencies": { "@csstools/selector-specificity": "^2.0.2", "postcss-selector-parser": "^6.0.10" @@ -2642,6 +2658,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "license": "CC0-1.0", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -2661,6 +2678,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2679,6 +2697,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2697,6 +2716,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "license": "CC0-1.0", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -2716,6 +2736,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "license": "CC0-1.0", "dependencies": { "@csstools/selector-specificity": "^2.0.0", "postcss-selector-parser": "^6.0.10" @@ -2735,6 +2756,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2753,6 +2775,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2771,6 +2794,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "license": "CC0-1.0", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -2790,6 +2814,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2804,6 +2829,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2822,6 +2848,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2840,6 +2867,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2858,6 +2886,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "license": "CC0-1.0", "engines": { "node": "^12 || ^14 || >=16" }, @@ -2873,6 +2902,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "license": "CC0-1.0", "engines": { "node": "^14 || ^16 || >=18" }, @@ -2885,20 +2915,22 @@ } }, "node_modules/@datadog/browser-core": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-5.28.0.tgz", - "integrity": "sha512-aLYXaTkbZQIpyx+mxRGnj3Es6njoac8VhBaGr27KPuvwb/xJlBgAt5K/xdGxAPO135mdfq5evmguWuMpffE4Og==" + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-5.28.1.tgz", + "integrity": "sha512-teBNd2pynPWPThsjDqLzzk4mbxOVqQ5MkbPbIhg+1Sl6idsGmpapDp6GSMP8YyToayjgMuApel2GYp0T05GOeA==", + "license": "Apache-2.0" }, "node_modules/@datadog/browser-rum": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-5.28.0.tgz", - "integrity": "sha512-PZPUelUPHWR+TxzvS7PgGudU4QiaMuZLAjTy0q0x5j32+upKbUsKtmSmRyZYxEoWa70ncsRMER+Pk3ky0hE2gQ==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-5.28.1.tgz", + "integrity": "sha512-Q6vtTd3bcVLriWNxdSjx7MTNYTO2Jv43KO4x5DUdd2nGPPuvWawsccYK3UzD+V6XGtq5nFeAx9IAFHr7vdBQxQ==", + "license": "Apache-2.0", "dependencies": { - "@datadog/browser-core": "5.28.0", - "@datadog/browser-rum-core": "5.28.0" + "@datadog/browser-core": "5.28.1", + "@datadog/browser-rum-core": "5.28.1" }, "peerDependencies": { - "@datadog/browser-logs": "5.28.0" + "@datadog/browser-logs": "5.28.1" }, "peerDependenciesMeta": { "@datadog/browser-logs": { @@ -2907,11 +2939,12 @@ } }, "node_modules/@datadog/browser-rum-core": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-rum-core/-/browser-rum-core-5.28.0.tgz", - "integrity": "sha512-SlYMGgtKhwgSdLVMvY7vMUDCzBvDC3YIjtZuaazIqW5+mPtO/MRXNhq+oXjp4MljiBrf7NYZ3C0lq2qUE5hvYg==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum-core/-/browser-rum-core-5.28.1.tgz", + "integrity": "sha512-O6K3/5lGw3uEv9csQm5V/qr16/kE5vVDfFmI0xB/A8wTdUE48intbUh7d7rIbDxYmD2DWUgv4eP30O05LR4pnw==", + "license": "Apache-2.0", "dependencies": { - "@datadog/browser-core": "5.28.0" + "@datadog/browser-core": "5.28.1" } }, "node_modules/@deriv-com/analytics": { @@ -2941,17 +2974,18 @@ } }, "node_modules/@deriv-com/auth-client": { - "version": "1.0.27", - "resolved": "https://registry.npmjs.org/@deriv-com/auth-client/-/auth-client-1.0.27.tgz", - "integrity": "sha512-8nZVJeljFnu/zAKiXvye5P9yK5CFHwcs2gWi7YGmHx7nVBL1BnaxMNbc/2JuQAD/oKpHh81hNOLADBslyJBIeA==", + "version": "1.0.29", + "resolved": "https://registry.npmjs.org/@deriv-com/auth-client/-/auth-client-1.0.29.tgz", + "integrity": "sha512-4iBxaSKM9hu6qVHGUr4MHtik59j1ZIuvveRnSqAbqQgcQGzKfSLRwGJ53P/5lVByh9fIIyICpuxbTgaaYA4eXg==", "dependencies": { - "@deriv-com/utils": "^0.0.33" + "@deriv-com/utils": "^0.0.37", + "oidc-client-ts": "^3.1.0" } }, "node_modules/@deriv-com/auth-client/node_modules/@deriv-com/utils": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@deriv-com/utils/-/utils-0.0.33.tgz", - "integrity": "sha512-LzIpzMvfWhK9y06Qpe/HOB4pFCizk2wAyhv9I0s48Romq+d5MM1mmsuh5CvS4SnzzdLyuBy4rgXrOO3394HB7w==" + "version": "0.0.37", + "resolved": "https://registry.npmjs.org/@deriv-com/utils/-/utils-0.0.37.tgz", + "integrity": "sha512-+ngUvT+OqwblBoqkHcsbLtljjwOGIjjMpo5xLS5fwyhtNvBe8Rcq+140QV1j0xq9vlm2kmcowEKIVBq33imFmg==" }, "node_modules/@deriv-com/quill-tokens": { "version": "2.0.4", @@ -2968,22 +3002,75 @@ "remove": "^0.1.5" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/@semantic-release/release-notes-generator": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz", - "integrity": "sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==", + "node_modules/@deriv-com/quill-ui": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@deriv-com/quill-ui/-/quill-ui-1.18.0.tgz", + "integrity": "sha512-W/Gx1oY/VlrdH3CzhevpXyI7U5zLmNKZfX6i9hEdLD09TkA5fgJvl/moPrJYChl4wFyc5mrPJXY9c/QdPRdXXQ==", + "dependencies": { + "@deriv-com/quill-tokens": "^2.0.13", + "@deriv/quill-icons": "^1.22.10", + "@headlessui/react": "1.7.18", + "dayjs": "^1.11.11", + "react-calendar": "^5.0.0", + "react-number-format": "^5.4.0", + "react-swipeable": "^6.2.1", + "react-tiny-popover": "^8.0.4", + "react-transition-group": "4.4.2", + "usehooks-ts": "^3.0.2", + "uuid": "^9.0.1" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "^4.22.4" + } + }, + "node_modules/@deriv-com/quill-ui/node_modules/@deriv-com/quill-tokens": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@deriv-com/quill-tokens/-/quill-tokens-2.0.13.tgz", + "integrity": "sha512-TMzgQkwCcg/wuiXMYfWoI9RxQsmDJIljdYxmvePvLsMOl43eyIo3PVGy0sTMsjlZJUzh8G0UzyF1tLBdpy3URA==", + "license": "ISC", + "dependencies": { + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/github": "^10.0.4", + "@semantic-release/npm": "^12.0.1", + "@semantic-release/release-notes-generator": "^14.0.1", + "@types/lodash": "^4.14.197", + "lodash": "^4.17.21", + "remove": "^0.1.5" + } + }, + "node_modules/@deriv-com/quill-ui/node_modules/@headlessui/react": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.18.tgz", + "integrity": "sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==", "license": "MIT", "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-changelog-writer": "^7.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", + "@tanstack/react-virtual": "^3.0.0-beta.60", + "client-only": "^0.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, + "node_modules/@deriv-com/quill-ui/node_modules/@semantic-release/release-notes-generator": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", + "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", "debug": "^4.0.0", "get-stream": "^7.0.0", "import-from-esm": "^1.0.3", "into-stream": "^7.0.0", "lodash-es": "^4.17.21", - "read-pkg-up": "^11.0.0" + "read-package-up": "^11.0.0" }, "engines": { "node": ">=20.8.1" @@ -2992,66 +3079,62 @@ "semantic-release": ">=20.1.0" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "node_modules/@deriv-com/quill-ui/node_modules/conventional-changelog-angular": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/conventional-changelog-writer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", - "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", + "node_modules/@deriv-com/quill-ui/node_modules/conventional-changelog-writer": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", + "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", "license": "MIT", "dependencies": { - "conventional-commits-filter": "^4.0.0", + "@types/semver": "^7.5.5", + "conventional-commits-filter": "^5.0.0", "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^12.0.1", - "semver": "^7.5.2", - "split2": "^4.0.0" + "meow": "^13.0.0", + "semver": "^7.5.2" }, "bin": { - "conventional-changelog-writer": "cli.mjs" + "conventional-changelog-writer": "dist/cli/index.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/conventional-commits-filter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", - "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", + "node_modules/@deriv-com/quill-ui/node_modules/conventional-commits-filter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "node_modules/@deriv-com/quill-ui/node_modules/conventional-commits-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", + "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", "license": "MIT", "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" + "meow": "^13.0.0" }, "bin": { - "conventional-commits-parser": "cli.mjs" + "conventional-commits-parser": "dist/cli/index.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/get-stream": { + "node_modules/@deriv-com/quill-ui/node_modules/get-stream": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", @@ -3063,109 +3146,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", - "license": "MIT", - "dependencies": { - "text-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/@deriv-com/quill-tokens/node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", - "license": "MIT", - "engines": { - "node": ">=16.10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/parse-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", - "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "index-to-position": "^0.1.2", - "type-fest": "^4.7.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/read-pkg": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", - "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.3", - "normalize-package-data": "^6.0.0", - "parse-json": "^8.0.0", - "type-fest": "^4.6.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/read-pkg-up": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-11.0.0.tgz", - "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==", - "deprecated": "Renamed to read-package-up", + "node_modules/@deriv-com/quill-ui/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "license": "MIT", - "dependencies": { - "find-up-simple": "^1.0.0", - "read-pkg": "^9.0.0", - "type-fest": "^4.6.0" - }, "engines": { "node": ">=18" }, @@ -3173,107 +3158,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@deriv-com/quill-tokens/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/text-extensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@deriv-com/quill-tokens/node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@deriv-com/quill-ui": { - "version": "1.16.20", - "resolved": "https://registry.npmjs.org/@deriv-com/quill-ui/-/quill-ui-1.16.20.tgz", - "integrity": "sha512-QQ89adtZIZN+xILX7tZJOb7M9yR6CRmn0NM08/Y2hCveB3JNMMJM7X95O81BSvTKryZ9ZK9R3Kz+DVIHF0bFfw==", - "dependencies": { - "@deriv-com/quill-tokens": "^2.0.12", - "@deriv/quill-icons": "^1.22.10", - "@headlessui/react": "1.7.18", - "dayjs": "^1.11.11", - "react-calendar": "^5.0.0", - "react-number-format": "^5.4.0", - "react-swipeable": "^6.2.1", - "react-tiny-popover": "^8.0.4", - "react-transition-group": "4.4.2", - "usehooks-ts": "^3.0.2", - "uuid": "^9.0.1" - }, - "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.22.4" - } - }, - "node_modules/@deriv-com/quill-ui/node_modules/@deriv-com/quill-tokens": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@deriv-com/quill-tokens/-/quill-tokens-2.0.12.tgz", - "integrity": "sha512-+ZjZACN2OmYdDbxAiNe9iT6Du59jKXlu1N+LQLE1R+hfA5u6l+lHs98yjlJb6o9lOknQWfoikoRAW8Gc7ryb6A==", - "license": "ISC", - "dependencies": { - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/github": "^10.0.4", - "@semantic-release/npm": "^12.0.1", - "@semantic-release/release-notes-generator": "^14.0.1", - "@types/lodash": "^4.14.197", - "lodash": "^4.17.21", - "remove": "^0.1.5" - } - }, - "node_modules/@deriv-com/quill-ui/node_modules/@headlessui/react": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.18.tgz", - "integrity": "sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==", - "dependencies": { - "@tanstack/react-virtual": "^3.0.0-beta.60", - "client-only": "^0.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16 || ^17 || ^18", - "react-dom": "^16 || ^17 || ^18" - } - }, "node_modules/@deriv-com/quill-ui/node_modules/react-calendar": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.0.0.tgz", "integrity": "sha512-bHcE5e5f+VUKLd4R19BGkcSQLpuwjKBVG0fKz74cwPW5xDfNsReHdDbfd4z3mdjuUuZzVtw4Q920mkwK5/ZOEg==", + "license": "MIT", "dependencies": { "@wojtekmaj/date-utils": "^1.1.3", "clsx": "^2.0.0", @@ -3298,15 +3187,29 @@ "version": "8.1.2", "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-8.1.2.tgz", "integrity": "sha512-zzG9hGBCNeSesZLLItNOiQvIU+/tLdLQ9y8cfSAtLQnOH7eoKVJflQzEng8w7rTblE+cV0/R6dFjjiZS1A4qTA==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@deriv-com/quill-ui/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@deriv-com/quill-ui/node_modules/usehooks-ts": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz", "integrity": "sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==", + "license": "MIT", "dependencies": { "lodash.debounce": "^4.0.8" }, @@ -3342,6 +3245,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -3350,6 +3254,7 @@ "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", "engines": { "node": ">=18" } @@ -3358,6 +3263,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -3373,6 +3279,7 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -3392,6 +3299,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3406,6 +3314,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -3414,6 +3323,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -3422,9 +3332,9 @@ } }, "node_modules/@deriv-com/ui": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/@deriv-com/ui/-/ui-1.35.0.tgz", - "integrity": "sha512-yOD/BAUAjV/NDI7AVE6KJyMCqOiKHnf82MZnluWQ53i73256DZy4O7HaValKATt0TbKrEVxw7LRbkZD6sJHS+Q==", + "version": "1.36.4", + "resolved": "https://registry.npmjs.org/@deriv-com/ui/-/ui-1.36.4.tgz", + "integrity": "sha512-j9c20TN5FsCZq6oFF7JNKgAUkizVWqH/9byLfUPF3LprLk7ku+7jYV5DJCJLLR0bYxjEo7RI6lAfOfPTNEsE5g==", "dependencies": { "@popperjs/core": "^2.11.8", "@types/react-modal": "^3.16.3", @@ -3436,19 +3346,21 @@ } }, "node_modules/@deriv-com/utils": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@deriv-com/utils/-/utils-0.0.34.tgz", - "integrity": "sha512-Hq2DWVKiSR4dTnVTy1lMwAt1F58DPAP0VGB2Nfa9mtPWOfOBGO6ZIeU7+fLGrATukc55ZfHDmfqwgnAi6Nqczg==" + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@deriv-com/utils/-/utils-0.0.36.tgz", + "integrity": "sha512-cWI7g/O+U0hSL61XAmMVkrR3HTbSeSajTd/5fiL8GbhrZlpheLayN7lLZz+dvprWxxCvX6gGtkdVWGSRvuUVrQ==" }, "node_modules/@deriv/api-types": { "version": "1.0.172", "resolved": "https://registry.npmjs.org/@deriv/api-types/-/api-types-1.0.172.tgz", - "integrity": "sha512-3y5hTiqDRBcB6kEZagRpVnnBymM2Psvy0wQHBW6dL/jG4ww07DyOLJ/uH7uIVmcQZeYUKBpemcwRcnvieuVnRQ==" + "integrity": "sha512-3y5hTiqDRBcB6kEZagRpVnnBymM2Psvy0wQHBW6dL/jG4ww07DyOLJ/uH7uIVmcQZeYUKBpemcwRcnvieuVnRQ==", + "license": "Apache-2.0" }, "node_modules/@deriv/deriv-api": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/@deriv/deriv-api/-/deriv-api-1.0.15.tgz", "integrity": "sha512-kqNDjUqK37Ch1zS24G7ahYgN2gyF//CFR3e2kdxX/enLD/zHvkiIKDw045J2ZiAvab9gc4H94qB0weDDfe6WXg==", + "license": "MIT", "dependencies": { "dayjs": "^1.11.10", "json-stable-stringify": "^1.1.1", @@ -3459,6 +3371,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/@deriv/deriv-charts/-/deriv-charts-2.5.1.tgz", "integrity": "sha512-CDyh1uQS2plp2EkGWOx0UYSWck8iqKgU1B9mFe0YrjHEqfz7WqwW4zyKqgojAMdEWzStbNMv5J811saB8Zmt8w==", + "license": "ISC", "dependencies": { "@types/lodash.set": "^4.3.7", "@welldone-software/why-did-you-render": "^3.3.8", @@ -3516,6 +3429,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@deriv/js-interpreter/-/js-interpreter-3.0.0.tgz", "integrity": "sha512-FpzCseLmcw7AIqm31otPai+oCjcwBvkxEd4fYHX5EOfSN3Xu3/sMsTkrv3iTwxpEE6AWzB+DwF8qyfbmgU4IOQ==", + "license": "Apache-2.0", "dependencies": { "minimist": "^1.2.5", "vm-browserify": "^1.1.2" @@ -3528,6 +3442,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@deriv/quill-design/-/quill-design-1.3.2.tgz", "integrity": "sha512-YTM2jS0EJ6QaruciFX/yYFK50KbmYpWK+WwZRGgZnRuhCJD9pXcsAtQEjMHFRFUFUC3sEvB5wR4cPt5VUW0xAw==", + "license": "ISC", "peerDependencies": { "@deriv/quill-icons": "^1.1.3", "@headlessui/react": "^1.7.17", @@ -3544,34 +3459,17 @@ "version": "1.23.3", "resolved": "https://registry.npmjs.org/@deriv/quill-icons/-/quill-icons-1.23.3.tgz", "integrity": "sha512-xCjtZuFC6EAz0vFljzIkHZfLoKH0YTO9IuollwTCjj8tLY/3Lam998MvPO4zEFU6el1A6/rLjqiqlQXciSKT9w==", + "license": "ISC", "peerDependencies": { "react": ">= 16", "react-dom": ">= 16" } }, - "node_modules/@deriv/ui": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@deriv/ui/-/ui-0.6.0.tgz", - "integrity": "sha512-1w/XMuY9BT+xPYJeStdDFat7KlEGfmUT5/5QbIwrDvXDiJVU8G0vvTurhLEBl9YPcQtFPCA27Ma1Nrw3/KQp6g==", - "dependencies": { - "@radix-ui/react-checkbox": "^1.0.0", - "@radix-ui/react-dialog": "^1.0.0", - "@radix-ui/react-radio-group": "^1.0.0", - "@radix-ui/react-switch": "^1.0.0", - "@radix-ui/react-tabs": "^1.0.0", - "@radix-ui/react-tooltip": "^1.0.0", - "@stitches/react": "^1.2.8", - "classnames": "^2.3.1" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@devtools-ds/object-inspector": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@devtools-ds/object-inspector/-/object-inspector-1.2.1.tgz", "integrity": "sha512-nrAVVj4c4Iv9958oE4HA7Mk6T+4Mn/4xBRlFDeX4Ps6SMzsqO8bKhw/y6+bOfNyb/TYHmC0/pnPS68GDVZcg5Q==", + "license": "MIT", "dependencies": { "@babel/runtime": "7.7.2", "@devtools-ds/object-parser": "^1.2.1", @@ -3587,6 +3485,7 @@ "version": "7.7.2", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz", "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.2" } @@ -3595,6 +3494,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.0.tgz", "integrity": "sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -3603,6 +3503,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@devtools-ds/object-parser/-/object-parser-1.2.1.tgz", "integrity": "sha512-6qB+THhQfJqXyHn8wpJ1KFxXcbpLTlRyCVmkelhr0c1+MPLZcC+0XJxpVZ1AOEXPa6CWVZThBYSCvnYQEvfCqw==", + "license": "MIT", "dependencies": { "@babel/runtime": "~7.5.4" } @@ -3611,6 +3512,7 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz", "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.2" } @@ -3619,6 +3521,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@devtools-ds/themes/-/themes-1.2.1.tgz", "integrity": "sha512-4/KFsHnokGxUq8CSCchINcVBb6fQ74HtEfNtMuitGtGg3VCRV0kaVSOsz6wzShzhLEaVLd5coSRQKaZj7yx72w==", + "license": "MIT", "dependencies": { "@babel/runtime": "~7.5.4", "@design-systems/utils": "2.12.0", @@ -3632,6 +3535,7 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz", "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.2" } @@ -3640,6 +3544,7 @@ "version": "2.12.0", "resolved": "https://registry.npmjs.org/@design-systems/utils/-/utils-2.12.0.tgz", "integrity": "sha512-Y/d2Zzr+JJfN6u1gbuBUb1ufBuLMJJRZQk+dRmw8GaTpqKx5uf7cGUYGTwN02dIb3I+Tf+cW8jcGBTRiFxdYFg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.2", "clsx": "^1.0.4", @@ -3653,9 +3558,10 @@ } }, "node_modules/@devtools-ds/themes/node_modules/@design-systems/utils/node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -3666,12 +3572,14 @@ "node_modules/@devtools-ds/themes/node_modules/@design-systems/utils/node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/@devtools-ds/themes/node_modules/clsx": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.0.tgz", "integrity": "sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -3680,6 +3588,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@devtools-ds/tree/-/tree-1.2.1.tgz", "integrity": "sha512-2ZHG28oWJno0gD+20EoSJO0yffm6JS5r7YzYhGMkrnLGvcCRZuwXSxMmIshSPLIR0cjidiAfGCqsrigHIR4ZQA==", + "license": "MIT", "dependencies": { "@babel/runtime": "7.7.2", "@devtools-ds/themes": "^1.2.1", @@ -3693,6 +3602,7 @@ "version": "7.7.2", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz", "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.2" } @@ -3701,6 +3611,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.0.tgz", "integrity": "sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -3709,6 +3620,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -3717,6 +3629,7 @@ "version": "10.0.29", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", + "license": "MIT", "dependencies": { "@emotion/sheet": "0.9.4", "@emotion/stylis": "0.8.5", @@ -3728,6 +3641,7 @@ "version": "10.3.1", "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz", "integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.5.5", "@emotion/cache": "^10.0.27", @@ -3744,6 +3658,7 @@ "version": "10.0.27", "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", + "license": "MIT", "dependencies": { "@emotion/serialize": "^0.11.15", "@emotion/utils": "0.11.3", @@ -3753,12 +3668,14 @@ "node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" }, "node_modules/@emotion/is-prop-valid": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "license": "MIT", "dependencies": { "@emotion/memoize": "0.7.4" } @@ -3766,12 +3683,14 @@ "node_modules/@emotion/memoize": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "license": "MIT" }, "node_modules/@emotion/serialize": { "version": "0.11.16", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", + "license": "MIT", "dependencies": { "@emotion/hash": "0.8.0", "@emotion/memoize": "0.7.4", @@ -3783,17 +3702,20 @@ "node_modules/@emotion/serialize/node_modules/csstype": { "version": "2.6.21", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "license": "MIT" }, "node_modules/@emotion/sheet": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" + "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", + "license": "MIT" }, "node_modules/@emotion/styled": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.3.0.tgz", "integrity": "sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==", + "license": "MIT", "dependencies": { "@emotion/styled-base": "^10.3.0", "babel-plugin-emotion": "^10.0.27" @@ -3807,6 +3729,7 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.3.0.tgz", "integrity": "sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.5.5", "@emotion/is-prop-valid": "0.8.8", @@ -3821,22 +3744,26 @@ "node_modules/@emotion/stylis": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", + "license": "MIT" }, "node_modules/@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" }, "node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", + "license": "MIT" }, "node_modules/@emotion/weak-memoize": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", + "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", @@ -3957,40 +3884,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@floating-ui/core": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", - "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", - "dependencies": { - "@floating-ui/utils": "^0.2.8" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", - "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", - "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.8" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", - "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" - }, "node_modules/@gar/promisify": { "version": "1.1.3", "license": "MIT" @@ -3998,7 +3891,8 @@ "node_modules/@gilbarbara/deep-equal": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.3.1.tgz", - "integrity": "sha512-I7xWjLs2YSVMc5gGx1Z3ZG1lgFpITPndpi8Ku55GeEIKpACCPQNS/OTqQbxgTCfq0Ncvcc+CrFov96itVh6Qvw==" + "integrity": "sha512-I7xWjLs2YSVMc5gGx1Z3ZG1lgFpITPndpi8Ku55GeEIKpACCPQNS/OTqQbxgTCfq0Ncvcc+CrFov96itVh6Qvw==", + "license": "MIT" }, "node_modules/@growthbook/growthbook": { "version": "1.1.0", @@ -4015,6 +3909,7 @@ "version": "1.7.19", "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.19.tgz", "integrity": "sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==", + "license": "MIT", "peer": true, "dependencies": { "@tanstack/react-virtual": "^3.0.0-beta.60", @@ -4073,6 +3968,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz", "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==", + "license": "MIT", "dependencies": { "gud": "^1.0.0", "warning": "^4.0.3" @@ -4086,6 +3982,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -4102,6 +3999,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -4113,6 +4011,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -4123,12 +4022,14 @@ "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -4145,6 +4046,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4159,6 +4061,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -7201,142 +7104,11 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@livechat/customer-auth": { - "version": "0.4.0-alpha.7", - "resolved": "https://registry.npmjs.org/@livechat/customer-auth/-/customer-auth-0.4.0-alpha.7.tgz", - "integrity": "sha512-Lr7JD2c9pBqSQDT0stPAzsXpmqRoKM8X7N6jBcfDAMOIolBiqLWpEzcW48k5FMV/zt+9cNvmP8NO90GggmJsVQ==", - "dependencies": { - "@livechat/dom-utils": "^0.2.6", - "@livechat/isomorphic-storage": "^0.1.0", - "@livechat/url-utils": "^0.2.0" - } - }, - "node_modules/@livechat/customer-auth/node_modules/@livechat/data-utils": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@livechat/data-utils/-/data-utils-1.0.4.tgz", - "integrity": "sha512-LhSgNVrNqfa37pajGCv96jvsEwuUKoTmb4NXLr2Mk4gN2YYYkmqzHWqGAcGzENFeSar4R/P3LohZO8tkbmnb6g==" - }, - "node_modules/@livechat/customer-auth/node_modules/@livechat/url-utils": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@livechat/url-utils/-/url-utils-0.2.2.tgz", - "integrity": "sha512-RQEG11fvayO/8bR1Dntcm/MkLhaoOgmg5QxZ2GV0qy4zqviELUxknOFy3tjtkeKImrNWQ6BD2TtGBetdGR7p0w==", - "dependencies": { - "@livechat/data-utils": "^1.0.2" - } - }, - "node_modules/@livechat/customer-sdk": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@livechat/customer-sdk/-/customer-sdk-2.0.4.tgz", - "integrity": "sha512-MTQK3umP3JV2OlmL3d9jlUS0rnPXEThhjjivNrzP/blcRmKhIw3ImV7U7GBuscOeOWNXN6H2LSwWdDyA9O5F0g==", - "dependencies": { - "@livechat/customer-auth": "^0.4.0-alpha.6", - "@livechat/data-utils": "^0.2.9", - "@livechat/deferred": "^1.1.0", - "@livechat/file-upload": "^0.3.0", - "@livechat/isomorphic-storage": "^0.1.0", - "@livechat/mitt": "^0.1.2", - "@livechat/platform-client": "^0.2.1", - "@livechat/promise-try": "^0.1.0", - "@livechat/side-effects-middleware": "^0.2.0", - "@livechat/url-utils": "^0.1.3", - "backo2": "^1.0.2", - "redux": "^4.0.4", - "ts-toolbelt": "^6.7.5", - "unfetch": "^2.1.2" - } - }, - "node_modules/@livechat/data-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/@livechat/data-utils/-/data-utils-0.2.17.tgz", - "integrity": "sha512-QbjW6D8AMm2VDGZJiYs5Cz3dMWOES8rQLLob6MLYwnZvBFqi6186sx2Ca+4o4DnRXCFiYZYJIYhwcgFcwbi+Kw==" - }, - "node_modules/@livechat/deferred": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@livechat/deferred/-/deferred-1.1.0.tgz", - "integrity": "sha512-5B2n5EBHljL1xwflgQDRBTYcrqX5S23SmQXhpu6ZeYhgNTzB7AKyN+7Jv77nQAfWAZxS7QDmasc/wA1uxAwZ2Q==", - "deprecated": "Package no longer supported. Please use @livechat/promise-utils instead." - }, - "node_modules/@livechat/dom-utils": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@livechat/dom-utils/-/dom-utils-0.2.6.tgz", - "integrity": "sha512-900OpCS7VA9hC9iUSQWdxEGO2aInAUvkfh3klvacVGr30tEzfKNxXTfQVfAypgAWz1213ScUWPztPpogVBV3Rw==", - "dependencies": { - "@livechat/data-utils": "^0.2.16", - "csstype": "^2.6.5", - "tabbable": "^5.1.4" - } - }, - "node_modules/@livechat/dom-utils/node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "node_modules/@livechat/file-upload": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@livechat/file-upload/-/file-upload-0.3.0.tgz", - "integrity": "sha512-uAAfyZVC5JfintGj70der3mGYujOTxaMUxqYFCtvfbpdHl66ix6V7u64FMCtzBM7KtecZJO/dvOh4zc/SwqbOg==" - }, - "node_modules/@livechat/isomorphic-storage": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@livechat/isomorphic-storage/-/isomorphic-storage-0.1.0.tgz", - "integrity": "sha512-cQ0l4hFuFR+ckk/xoB17qetW5m812V/fOjUQ8AAMm/R1zLCyO3uaPjZqmadp72b1f4Lahx2bImT9PssTwrbDvQ==", - "dependencies": { - "memory-web-storage": "^0.1.0" - } - }, - "node_modules/@livechat/mitt": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@livechat/mitt/-/mitt-0.1.3.tgz", - "integrity": "sha512-EmAxcXFuzCz0cDrFOQHDyzeDjym8XAu6fKcEyEkQVpvghFyjC7ORn/9DW1FDRqTvtJ80kfNUTejqRW0xvYYyzQ==", - "dependencies": { - "mitt": "^3.0.1" - } - }, - "node_modules/@livechat/platform-client": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@livechat/platform-client/-/platform-client-0.2.1.tgz", - "integrity": "sha512-qMveYlBXE8HH6LSz/H3w5Kjg7iMfW4Bxgn7SzHp0r24HUCtGG1uhw2lAL0XzBHRXmo4/6sSdU2i7ypDVmGSG4g==", - "dependencies": { - "@livechat/data-utils": "^0.2.7", - "@livechat/deferred": "^1.1.0", - "@livechat/mitt": "^0.1.2", - "@livechat/sockjs-manager": "^0.2.0" - } - }, - "node_modules/@livechat/promise-try": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@livechat/promise-try/-/promise-try-0.1.0.tgz", - "integrity": "sha512-dqOKtFemgv8xGFHlCc6W4lfPXCzmzmgdNGhwAadftdCQCWLoLqwZVAyh5AvGuZ9pSFzg7H+/lOhNlt25+u2FVA==", - "deprecated": "Package no longer supported. Please use @livechat/promise-utils instead." - }, - "node_modules/@livechat/side-effects-middleware": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@livechat/side-effects-middleware/-/side-effects-middleware-0.2.0.tgz", - "integrity": "sha512-WqoEJd7AkvN0ofRrdzclgvEbZciOnJK5Tz8vTmRVbOE8ti1aUDTfRxGiKg1MBOKid+6VFE95QJIlNOA2jCC6SQ==" - }, - "node_modules/@livechat/sockjs-manager": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@livechat/sockjs-manager/-/sockjs-manager-0.2.0.tgz", - "integrity": "sha512-Q1AHOy4gqqhxGjgNmwMq9FH97jeDEnihpY2FCyi6lisKFeJ2/2878O+RyJtgQZc5TBbQTDL1Ko0jnZ0LX8SmUw==", - "dependencies": { - "@livechat/mitt": "^0.1.2", - "@livechat/url-utils": "^0.1.3", - "@types/sockjs-client": "^1.1.1", - "sockjs-client": "^1.3.0" - } - }, - "node_modules/@livechat/url-utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@livechat/url-utils/-/url-utils-0.1.6.tgz", - "integrity": "sha512-4fBEU0LGr9+IsRbybBNNKElN3LVUQa/0e1vig0SWtSr+LzR29U532JNB8o2gYixhpHM2enn0pbhR/FqexTJm0A==", - "dependencies": { - "@livechat/data-utils": "^0.2.9" - } - }, "node_modules/@lottiefiles/dotlottie-react": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.7.2.tgz", "integrity": "sha512-gYVFCzl2fD15/OHWv4dB+PolNH0VKJlPqP1ty3DHGxkSr7bzBDNHXGzw8hHD0a4+zoc2s0p1fofWaCaiJc7IFg==", + "license": "MIT", "dependencies": { "@lottiefiles/dotlottie-web": "0.28.0", "debounce": "^2.0.0" @@ -7349,12 +7121,14 @@ "node_modules/@lottiefiles/dotlottie-web": { "version": "0.28.0", "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.28.0.tgz", - "integrity": "sha512-erAHr4VJl/Mbsur/ydOXEc0jSOkGpwM2WsprMGRlUsvyZvtv/URefj/CsovoKc9rsbUafEt2fjYkENs9IC332w==" + "integrity": "sha512-erAHr4VJl/Mbsur/ydOXEc0jSOkGpwM2WsprMGRlUsvyZvtv/URefj/CsovoKc9rsbUafEt2fjYkENs9IC332w==", + "license": "MIT" }, "node_modules/@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "license": "MIT", "dependencies": { "@babel/core": "7.12.9", "@babel/plugin-syntax-jsx": "7.12.1", @@ -7385,6 +7159,7 @@ "version": "7.12.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.5", @@ -7415,6 +7190,7 @@ "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -7426,6 +7202,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7434,6 +7211,7 @@ "version": "8.0.3", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "license": "MIT", "dependencies": { "ccount": "^1.0.0", "collapse-white-space": "^1.0.2", @@ -7461,6 +7239,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -7469,6 +7248,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -7477,6 +7257,7 @@ "version": "9.2.0", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "license": "MIT", "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -7494,6 +7275,7 @@ "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -7506,6 +7288,7 @@ "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -7515,6 +7298,7 @@ "version": "10.18.0", "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz", "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==", + "license": "MIT", "dependencies": { "@motionone/easing": "^10.18.0", "@motionone/types": "^10.17.1", @@ -7526,6 +7310,7 @@ "version": "10.12.0", "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "license": "MIT", "dependencies": { "@motionone/animation": "^10.12.0", "@motionone/generators": "^10.12.0", @@ -7539,6 +7324,7 @@ "version": "10.18.0", "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==", + "license": "MIT", "dependencies": { "@motionone/utils": "^10.18.0", "tslib": "^2.3.1" @@ -7548,6 +7334,7 @@ "version": "10.18.0", "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz", "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==", + "license": "MIT", "dependencies": { "@motionone/types": "^10.17.1", "@motionone/utils": "^10.18.0", @@ -7557,12 +7344,14 @@ "node_modules/@motionone/types": { "version": "10.17.1", "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", - "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==" + "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==", + "license": "MIT" }, "node_modules/@motionone/utils": { "version": "10.18.0", "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz", "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==", + "license": "MIT", "dependencies": { "@motionone/types": "^10.17.1", "hey-listen": "^1.0.8", @@ -7573,6 +7362,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "license": "MIT", "dependencies": { "call-me-maybe": "^1.0.1", "glob-to-regexp": "^0.3.0" @@ -7584,7 +7374,8 @@ "node_modules/@mrmlnc/readdir-enhanced/node_modules/glob-to-regexp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==" + "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", + "license": "BSD" }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", @@ -10070,6 +9861,246 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@phenomnomnominal/tsquery": { "version": "4.1.1", "dev": true, @@ -10085,6 +10116,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -10094,6 +10126,7 @@ "version": "0.5.15", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", + "license": "MIT", "dependencies": { "ansi-html": "^0.0.9", "core-js-pure": "^3.23.3", @@ -10141,6 +10174,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -10154,6 +10188,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -10172,6 +10207,7 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -10180,6 +10216,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", "engines": { "node": ">=12.22.0" } @@ -10188,6 +10225,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -10199,6 +10237,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -10211,706 +10250,24 @@ "node_modules/@polka/url": { "version": "1.0.0-next.28", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==" + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "license": "MIT" }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", - "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", - "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.2.tgz", - "integrity": "sha512-/i0fl686zaJbDQLNKrkCbMyDm6FQMt4jg323k7HuqitoANm9sE23Ql8yOK3Wusk34HSLKDChhMux05FnP6KUkw==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", - "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", - "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", - "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", - "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", - "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", - "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", - "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", - "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", - "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", - "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", - "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-rect": "1.1.0", - "@radix-ui/react-use-size": "1.1.0", - "@radix-ui/rect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", - "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", - "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", - "dependencies": { - "@radix-ui/react-slot": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-radio-group": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.1.tgz", - "integrity": "sha512-kdbv54g4vfRjja9DNWPMxKvXblzqbpEC8kspEkZ6dVP7kQksGCn+iZHkcCz2nb00+lPdRvxrqy4WrvvV1cNqrQ==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", - "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", - "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-switch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.1.tgz", - "integrity": "sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", - "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tooltip": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.3.tgz", - "integrity": "sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", - "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", - "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", - "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", - "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", - "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", - "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", - "dependencies": { - "@radix-ui/rect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", - "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", - "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/rect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", - "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" - }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.10.4", "@rollup/pluginutils": "^3.1.0" @@ -10933,6 +10290,7 @@ "version": "11.2.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -10952,6 +10310,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" @@ -10964,6 +10323,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "license": "MIT", "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -10979,7 +10339,21 @@ "node_modules/@rollup/pluginutils/node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, "node_modules/@rudderstack/analytics-js": { "version": "3.7.0", @@ -10989,12 +10363,14 @@ "node_modules/@sec-ant/readable-stream": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", - "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==" + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" }, "node_modules/@semantic-release/changelog": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==", + "license": "MIT", "dependencies": { "@semantic-release/error": "^3.0.0", "aggregate-error": "^3.0.0", @@ -11012,6 +10388,7 @@ "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11025,6 +10402,7 @@ "version": "13.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz", "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==", + "license": "MIT", "peer": true, "dependencies": { "conventional-changelog-angular": "^8.0.0", @@ -11047,6 +10425,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "license": "ISC", "peer": true, "dependencies": { "compare-func": "^2.0.0" @@ -11059,6 +10438,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "license": "MIT", "peer": true, "dependencies": { "@types/semver": "^7.5.5", @@ -11078,6 +10458,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -11087,6 +10468,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "license": "MIT", "peer": true, "dependencies": { "meow": "^13.0.0" @@ -11102,6 +10484,7 @@ "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -11114,6 +10497,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver.js" @@ -11126,6 +10510,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", + "license": "MIT", "engines": { "node": ">=14.17" } @@ -11134,6 +10519,7 @@ "version": "10.3.5", "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.3.5.tgz", "integrity": "sha512-svvRglGmvqvxjmDgkXhrjf0lC88oZowFhOfifTldbgX9Dzj0inEtMLaC+3/MkDEmxmaQjWmF5Q/0CMIvPNSVdQ==", + "license": "MIT", "dependencies": { "@octokit/core": "^6.0.0", "@octokit/plugin-paginate-rest": "^11.0.0", @@ -11163,6 +10549,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", + "license": "MIT", "engines": { "node": ">= 18" } @@ -11171,6 +10558,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", + "license": "MIT", "dependencies": { "@octokit/auth-token": "^5.0.0", "@octokit/graphql": "^8.0.0", @@ -11188,6 +10576,7 @@ "version": "10.1.1", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", + "license": "MIT", "dependencies": { "@octokit/types": "^13.0.0", "universal-user-agent": "^7.0.2" @@ -11200,6 +10589,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", + "license": "MIT", "dependencies": { "@octokit/request": "^9.0.0", "@octokit/types": "^13.0.0", @@ -11212,12 +10602,14 @@ "node_modules/@semantic-release/github/node_modules/@octokit/openapi-types": { "version": "22.2.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT" }, "node_modules/@semantic-release/github/node_modules/@octokit/plugin-paginate-rest": { "version": "11.3.5", "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.5.tgz", "integrity": "sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==", + "license": "MIT", "dependencies": { "@octokit/types": "^13.6.0" }, @@ -11232,6 +10624,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz", "integrity": "sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==", + "license": "MIT", "dependencies": { "@octokit/request-error": "^6.0.0", "@octokit/types": "^13.0.0", @@ -11245,9 +10638,10 @@ } }, "node_modules/@semantic-release/github/node_modules/@octokit/plugin-throttling": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz", - "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.2.tgz", + "integrity": "sha512-FqpvcTpIWFpMMwIeSoypoJXysSAQ3R+ALJhXXSG1HTP3YZOIeLmcNcimKaXxTcws+Sh6yoRl13SJ5r8sXc1Fhw==", + "license": "MIT", "dependencies": { "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" @@ -11263,6 +10657,7 @@ "version": "9.1.3", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", + "license": "MIT", "dependencies": { "@octokit/endpoint": "^10.0.0", "@octokit/request-error": "^6.0.1", @@ -11277,6 +10672,7 @@ "version": "6.1.5", "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.5.tgz", "integrity": "sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==", + "license": "MIT", "dependencies": { "@octokit/types": "^13.0.0" }, @@ -11285,9 +10681,10 @@ } }, "node_modules/@semantic-release/github/node_modules/@octokit/types": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.0.tgz", - "integrity": "sha512-CrooV/vKCXqwLa+osmHLIMUb87brpgUqlqkPGc6iE2wCkUvTrHiXFMhAKoDDaAAYJrtKtrFTgSQTg5nObBEaew==", + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^22.2.0" } @@ -11296,6 +10693,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "license": "MIT", "engines": { "node": ">=18" } @@ -11304,6 +10702,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -11315,6 +10714,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -11329,12 +10729,14 @@ "node_modules/@semantic-release/github/node_modules/before-after-hook": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", - "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==" + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", + "license": "Apache-2.0" }, "node_modules/@semantic-release/github/node_modules/clean-stack": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -11349,6 +10751,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11360,6 +10763,7 @@ "version": "14.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -11379,6 +10783,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -11391,6 +10796,7 @@ "version": "7.0.5", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -11403,6 +10809,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11414,6 +10821,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11425,6 +10833,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -11435,12 +10844,14 @@ "node_modules/@semantic-release/github/node_modules/universal-user-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", - "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==" + "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", + "license": "ISC" }, "node_modules/@semantic-release/npm": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", + "license": "MIT", "dependencies": { "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", @@ -11467,6 +10878,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "license": "MIT", "engines": { "node": ">=18" } @@ -11475,6 +10887,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -11486,6 +10899,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -11501,6 +10915,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -11515,6 +10930,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11526,6 +10942,7 @@ "version": "9.4.0", "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", @@ -11551,6 +10968,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "license": "MIT", "dependencies": { "is-unicode-supported": "^2.0.0" }, @@ -11565,6 +10983,7 @@ "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11578,6 +10997,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" @@ -11593,6 +11013,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, @@ -11604,6 +11025,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -11612,6 +11034,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11623,6 +11046,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11634,6 +11058,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -11645,6 +11070,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -11655,12 +11081,14 @@ "node_modules/@semantic-release/npm/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/@semantic-release/npm/node_modules/normalize-package-data": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", "semver": "^7.3.5", @@ -11674,6 +11102,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "license": "MIT", "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" @@ -11689,6 +11118,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -11700,6 +11130,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "index-to-position": "^0.1.2", @@ -11716,6 +11147,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11727,6 +11159,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", @@ -11745,6 +11178,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -11756,6 +11190,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -11767,6 +11202,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -11778,6 +11214,7 @@ "version": "4.26.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -11786,20 +11223,21 @@ } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", - "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz", + "integrity": "sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==", + "license": "MIT", "dependencies": { - "conventional-changelog-angular": "^8.0.0", - "conventional-changelog-writer": "^8.0.0", - "conventional-commits-filter": "^5.0.0", - "conventional-commits-parser": "^6.0.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", "get-stream": "^7.0.0", "import-from-esm": "^1.0.3", "into-stream": "^7.0.0", "lodash-es": "^4.17.21", - "read-package-up": "^11.0.0" + "read-pkg-up": "^11.0.0" }, "engines": { "node": ">=20.8.1" @@ -11809,60 +11247,69 @@ } }, "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-angular": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", - "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=18" + "node": ">=16" } }, "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-writer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", - "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", + "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", + "license": "MIT", "dependencies": { - "@types/semver": "^7.5.5", - "conventional-commits-filter": "^5.0.0", + "conventional-commits-filter": "^4.0.0", "handlebars": "^4.7.7", - "meow": "^13.0.0", - "semver": "^7.5.2" + "json-stringify-safe": "^5.0.1", + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" }, "bin": { - "conventional-changelog-writer": "dist/cli/index.js" + "conventional-changelog-writer": "cli.mjs" }, "engines": { - "node": ">=18" + "node": ">=16" } }, "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-commits-filter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", - "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=16" } }, "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-commits-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", - "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "license": "MIT", "dependencies": { - "meow": "^13.0.0" + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "conventional-commits-parser": "dist/cli/index.js" + "conventional-commits-parser": "cli.mjs" }, "engines": { - "node": ">=18" + "node": ">=16" } }, "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -11870,10 +11317,109 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/release-notes-generator/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "license": "MIT", + "dependencies": { + "text-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, "node_modules/@semantic-release/release-notes-generator/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/parse-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-11.0.0.tgz", + "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==", + "deprecated": "Renamed to read-package-up", + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, "engines": { "node": ">=18" }, @@ -11885,6 +11431,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -11892,6 +11439,39 @@ "node": ">=10" } }, + "node_modules/@semantic-release/release-notes-generator/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@sendbird/chat": { "version": "4.9.7", "resolved": "https://registry.npmjs.org/@sendbird/chat/-/chat-4.9.7.tgz", @@ -11909,6 +11489,7 @@ "version": "8.3.7", "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-8.3.7.tgz", "integrity": "sha512-ZtRf+pUEgOCvjrYsbMsJfiHOdKcrSZt2zrAnIIpfmA06r0FxBovFYq0rJ171soZbe13KmWzAoLKjSxVW7KxCdQ==", + "license": "MIT", "dependencies": { "@simplewebauthn/typescript-types": "^8.3.4" } @@ -11917,7 +11498,8 @@ "version": "8.3.4", "resolved": "https://registry.npmjs.org/@simplewebauthn/typescript-types/-/typescript-types-8.3.4.tgz", "integrity": "sha512-38xtca0OqfRVNloKBrFB5LEM6PN5vzFbJG6rAutPVrtGHFYxPdiV3btYWq0eAZAZmP+dqFPYJxJWeJrGfmYHng==", - "deprecated": "This package has been renamed to @simplewebauthn/types. Please install @simplewebauthn/types instead to ensure you receive future updates." + "deprecated": "This package has been renamed to @simplewebauthn/types. Please install @simplewebauthn/types instead to ensure you receive future updates.", + "license": "MIT" }, "node_modules/@sinclair/typebox": { "version": "0.24.51", @@ -11929,6 +11511,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -11941,6 +11524,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -11968,6 +11552,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz", "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.1", @@ -11979,6 +11564,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "type-detect": "4.0.8" @@ -11988,6 +11574,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -11997,6 +11584,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -12006,20 +11594,14 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", + "license": "(Unlicense OR Apache-2.0)", "peer": true }, - "node_modules/@stitches/react": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz", - "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==", - "peerDependencies": { - "react": ">= 16.3.0" - } - }, "node_modules/@storybook/addon-actions": { "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.5.16.tgz", "integrity": "sha512-aADjilFmuD6TNGz2CRPSupnyiA/IGkPJHDBTqMpsDXTUr8xnuD122xkIhg6UxmCM2y1c+ncwYXy3WPK2xXK57g==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -12063,6 +11645,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -12072,6 +11655,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.16.tgz", "integrity": "sha512-t7qooZ892BruhilFmzYPbysFwpULt/q4zYXNSmKVbAYta8UVvitjcU4F18p8FpWd9WvhiTr0SDlyhNZuzvDfug==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -12109,6 +11693,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -12118,6 +11703,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.5.16.tgz", "integrity": "sha512-kShSGjq1MjmmyL3l8i+uPz6yddtf82mzys0l82VKtcuyjrr5944wYFJ5NTXMfZxrO/U6FeFsfuFZE/k6ex3EMg==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -12154,6 +11740,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -12163,6 +11750,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.5.16.tgz", "integrity": "sha512-QM9WDZG9P02UvbzLu947a8ZngOrQeAKAT8jCibQFM/+RJ39xBlfm8rm+cQy3dm94wgtjmVkA3mKGOV/yrrsddg==", + "license": "MIT", "dependencies": { "@babel/plugin-transform-react-jsx": "^7.12.12", "@babel/preset-env": "^7.12.11", @@ -12218,6 +11806,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^26.6.2", @@ -12243,6 +11832,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12257,6 +11847,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12272,6 +11863,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -12282,13 +11874,15 @@ "node_modules/@storybook/addon-docs/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/addon-docs/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -12298,6 +11892,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12306,6 +11901,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "license": "MIT", "dependencies": { "@jest/types": "^26.6.2", "@types/graceful-fs": "^4.1.2", @@ -12332,6 +11928,7 @@ "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "license": "MIT", "engines": { "node": ">= 10.14.2" } @@ -12340,6 +11937,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "license": "MIT", "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.4" @@ -12352,6 +11950,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12363,6 +11962,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.5.16.tgz", "integrity": "sha512-TeoMr6tEit4Pe91GH6f8g/oar1P4M0JL9S6oMcFxxrhhtOGO7XkWD5EnfyCx272Ok2VYfE58FNBTGPNBVIqYKQ==", + "license": "MIT", "dependencies": { "@storybook/addon-actions": "6.5.16", "@storybook/addon-backgrounds": "6.5.16", @@ -12446,6 +12046,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -12455,6 +12056,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/addon-info/-/addon-info-5.3.21.tgz", "integrity": "sha512-A/K9HzmoXMuOUxH3AozTvjNZwTlYVHob2OaDRfMza0gYMzG0tOrxqcdNTigeAWAjS//Z0G3enue6rHulQZK/+g==", + "license": "MIT", "dependencies": { "@storybook/addons": "5.3.21", "@storybook/client-logger": "5.3.21", @@ -12480,6 +12082,7 @@ "version": "1.3.4", "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", + "license": "MIT", "dependencies": { "create-react-context": "0.3.0", "invariant": "^2.2.3", @@ -12495,6 +12098,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.21.tgz", "integrity": "sha512-Ji/21WADTLVbTbiKcZ64BcL0Es+h1Afxx3kNmGJqPSTUYroCwIFCT9mUzCqU6G+YyWaISAmTii5UJkTwMkChwA==", + "license": "MIT", "dependencies": { "@storybook/api": "5.3.21", "@storybook/channels": "5.3.21", @@ -12509,6 +12113,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.21.tgz", "integrity": "sha512-K1o4an/Rx8daKRDooks6qzN6ZGyqizeacZZbair3F8CsSfTgrr2zCcf9pgKojLQa9koEmMHlcdb2KnS+GwPEgA==", + "license": "MIT", "dependencies": { "@reach/router": "^1.2.1", "@storybook/channels": "5.3.21", @@ -12539,6 +12144,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.21.tgz", "integrity": "sha512-OXoFs9XtBVg/cCk6lYMrxkzaNlJRf54ABdorp7YAAj7S9tRL1JxOZHxmjNQwEoiRvssmem2rAWtEAxfuEANsAA==", + "license": "MIT", "dependencies": { "core-js": "^3.0.1" } @@ -12547,6 +12153,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.21.tgz", "integrity": "sha512-OzQkwpZ5SK9cXD9Mv6lxPGPot+hSZvnkEW12kpt1AHfJz4ET26YTDOI3oetPsjfRJo6qYLeQX8+wF7rklfXbzA==", + "license": "MIT", "dependencies": { "core-js": "^3.0.1" } @@ -12555,6 +12162,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.21.tgz", "integrity": "sha512-42QQk6qZl6wrtajP8yNCfmNS2t8Iod5QY+4V/l6iNnnT9O+j6cWOlnO+ZyvjNv0Xm0zIOt+VyVjdkKh8FUjQmA==", + "license": "MIT", "dependencies": { "@storybook/client-logger": "5.3.21", "@storybook/theming": "5.3.21", @@ -12587,6 +12195,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.21.tgz", "integrity": "sha512-/Zsm1sKAh6pzQv8jQUmuhM7nuM01ZljIRKy8p2HjPNlMjDB5yaRkBfyeAUXUg+qXNI6aHVWa4jGdPEdwwY4oLA==", + "license": "MIT", "dependencies": { "core-js": "^3.0.1" } @@ -12595,6 +12204,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", + "license": "MIT", "dependencies": { "lodash": "^4.17.15" } @@ -12603,6 +12213,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.21.tgz", "integrity": "sha512-c29m5UikK5Q1lyd6FltOGFhIcpd6PIb855YS3OUNe3F6ZA1tfJ+aNKrCBc65d1c+fvCGG76dYYYv0RvwEmKXXg==", + "license": "MIT", "dependencies": { "@reach/router": "^1.2.1", "@storybook/csf": "0.0.1", @@ -12623,6 +12234,7 @@ "version": "5.3.21", "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.21.tgz", "integrity": "sha512-FZbxjizqdO9lV5LUixPio/7+6UdPiswCzTJn8Hcot9uwwgfnrViRdN7xyjmSYRqv9nHP3OlYbtdeCAgZ4aPq8g==", + "license": "MIT", "dependencies": { "@emotion/core": "^10.0.20", "@emotion/styled": "^10.0.17", @@ -12647,6 +12259,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -12656,6 +12269,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", + "license": "MIT", "dependencies": { "gud": "^1.0.0", "warning": "^4.0.3" @@ -12669,6 +12283,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "license": "MIT", "dependencies": { "is-arguments": "^1.1.1", "is-date-object": "^1.0.5", @@ -12687,12 +12302,14 @@ "node_modules/@storybook/addon-info/node_modules/fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", + "license": "MIT" }, "node_modules/@storybook/addon-info/node_modules/isobject": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12701,6 +12318,7 @@ "version": "3.7.2", "resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz", "integrity": "sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -12712,6 +12330,7 @@ "version": "16.14.0", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -12725,6 +12344,7 @@ "version": "16.14.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -12739,6 +12359,7 @@ "version": "1.3.11", "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz", "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "@hypnosphi/create-react-context": "^0.3.1", @@ -12756,6 +12377,7 @@ "version": "2.11.1", "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz", "integrity": "sha512-04A2f24GhyyMicKvg/koIOQ5BzlrRbKiAgP6L+Pdj1MVX3yJ1NeZ8+EidndQsbejFT55oW1b++wg2Z8KlAyhfQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.9.2", "react-popper": "^1.3.7" @@ -12769,6 +12391,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz", "integrity": "sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "prop-types": "^15.6.0" @@ -12781,6 +12404,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-1.2.3.tgz", "integrity": "sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg==", + "license": "MIT", "dependencies": { "prop-types": "^15.6.1", "simplebar": "^4.2.3" @@ -12794,6 +12418,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz", "integrity": "sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w==", + "license": "MIT", "dependencies": { "@types/is-function": "^1.0.0", "global": "^4.4.0", @@ -12809,6 +12434,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.2.0.tgz", "integrity": "sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA==", + "license": "MIT", "engines": { "node": ">=6.10" } @@ -12817,6 +12443,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-6.5.16.tgz", "integrity": "sha512-DdTtyp3DgB/SpbM1GQgMnuSEBCkadxmj1mUcPk+Wp2iY+fDwsuoRDkr1H9Oe7IvlBKe7ciR79LEjoaABXNdw4w==", + "license": "MIT", "dependencies": { "@devtools-ds/object-inspector": "^1.1.2", "@storybook/addons": "6.5.16", @@ -12855,6 +12482,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -12870,6 +12498,7 @@ "version": "16.0.9", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -12878,6 +12507,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12892,6 +12522,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12907,6 +12538,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -12917,13 +12549,15 @@ "node_modules/@storybook/addon-interactions/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/addon-interactions/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -12933,6 +12567,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12941,6 +12576,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -12953,6 +12589,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12965,6 +12602,7 @@ "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-6.4.0.tgz", "integrity": "sha512-DiH1/5e2AFHoHrncl1qLu18ZHPHzRMMPvOLFz8AWvvmc+VCqTdIaE+tdxKr3e8rYylKllibgvDOzrLjfTNjF+Q==", "deprecated": "deprecating @storybook/addon-knobs in favor of @storybook/addon-controls", + "license": "MIT", "dependencies": { "copy-to-clipboard": "^3.3.1", "core-js": "^3.8.2", @@ -13001,6 +12639,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13010,6 +12649,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.5.16.tgz", "integrity": "sha512-P/mmqK57NGXnR0i3d/T5B0rIt0Lg8Yq+qionRr3LK3AwG/4yGnYt4GNomLEknn/eEwABYq1Q/Z1aOpgIhNdq5A==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/client-logger": "6.5.16", @@ -13046,6 +12686,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13055,6 +12696,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.5.16.tgz", "integrity": "sha512-DMwnXkmM2L6POTh4KaOWvOAtQ2p9Tr1UUNxz6VXiN5cKFohpCs6x0txdLU5WN8eWIq0VFsO7u5ZX34CGCc6gCg==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -13087,6 +12729,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13096,6 +12739,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.5.16.tgz", "integrity": "sha512-0du96nha4qltexO0Xq1xB7LeRSbqjC9XqtZLflXG7/X3ABoPD2cXgOV97eeaXUodIyb2qYBbHUfftBeA75x0+w==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -13130,6 +12774,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13139,6 +12784,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.5.16.tgz", "integrity": "sha512-y3PuUKiwOWrAvqx1YdUvArg0UaAwmboXFeR2bkrowk1xcT+xnRO3rML4npFeUl26OQ1FzwxX/cw6nknREBBLEA==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -13170,6 +12816,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13179,6 +12826,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.5.16.tgz", "integrity": "sha512-1Vyqf1U6Qng6TXlf4SdqUKyizlw1Wn6+qW8YeA2q1lbkJqn3UlnHXIp8Q0t/5q1dK5BFtREox3+jkGwbJrzkmA==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -13214,6 +12862,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13223,6 +12872,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.16.tgz", "integrity": "sha512-p3DqQi+8QRL5k7jXhXmJZLsE/GqHqyY6PcoA1oNTJr0try48uhTGUOYkgzmqtDaa/qPFO5LP+xCPzZXckGtquQ==", + "license": "MIT", "dependencies": { "@storybook/api": "6.5.16", "@storybook/channels": "6.5.16", @@ -13250,6 +12900,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13259,6 +12910,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.5.16.tgz", "integrity": "sha512-HOsuT8iomqeTMQJrRx5U8nsC7lJTwRr1DhdD0SzlqL4c80S/7uuCy4IZvOt4sYQjOzW5fOo/kamcoBXyLproTA==", + "license": "MIT", "dependencies": { "@storybook/channels": "6.5.16", "@storybook/client-logger": "6.5.16", @@ -13292,6 +12944,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13301,6 +12954,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.5.16.tgz", "integrity": "sha512-YqDIrVNsUo8r9xc6AxsYDLxVYtMgl5Bxk+8/h1adsOko+jAFhdg6hOcAVxEmoSI0TMASOOVMFlT2hr23ppN2rQ==", + "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@storybook/addons": "6.5.16", @@ -13368,6 +13022,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -13377,6 +13032,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -13389,6 +13045,7 @@ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -13400,17 +13057,20 @@ "node_modules/@storybook/builder-webpack4/node_modules/@types/html-minifier-terser": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==" + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.113.tgz", + "integrity": "sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -13420,22 +13080,26 @@ "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -13447,6 +13111,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -13455,6 +13120,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "license": "MIT", "dependencies": { "@xtuc/long": "4.2.2" } @@ -13462,12 +13128,14 @@ "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/wasm-edit": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -13483,6 +13151,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -13495,6 +13164,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -13506,6 +13176,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -13519,6 +13190,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -13529,6 +13201,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13544,6 +13217,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -13552,6 +13226,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13560,6 +13235,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -13580,6 +13256,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -13591,6 +13268,7 @@ "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -13618,13 +13296,15 @@ "node_modules/@storybook/builder-webpack4/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -13634,6 +13314,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "cssesc": "^3.0.0", @@ -13664,6 +13345,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", @@ -13681,6 +13363,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -13689,6 +13372,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -13707,12 +13391,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/@storybook/builder-webpack4/node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -13727,6 +13413,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -13753,6 +13440,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -13765,6 +13453,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -13773,6 +13462,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -13785,6 +13475,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -13793,6 +13484,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -13807,6 +13499,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -13818,6 +13511,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -13834,6 +13528,7 @@ "version": "4.1.6", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.5.5", "chalk": "^2.4.1", @@ -13852,6 +13547,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -13860,6 +13556,7 @@ "version": "4.5.2", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "license": "MIT", "dependencies": { "@types/html-minifier-terser": "^5.0.0", "@types/tapable": "^1.0.5", @@ -13889,6 +13586,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -13900,6 +13598,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "license": "ISC", "dependencies": { "postcss": "^7.0.14" }, @@ -13910,12 +13609,14 @@ "node_modules/@storybook/builder-webpack4/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13924,6 +13625,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -13935,6 +13637,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -13946,6 +13649,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -13953,17 +13657,20 @@ "node_modules/@storybook/builder-webpack4/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "license": "MIT", "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } @@ -13972,6 +13679,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -13984,6 +13692,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13995,6 +13704,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -14004,6 +13714,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -14027,6 +13738,7 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -14038,6 +13750,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -14049,6 +13762,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -14063,6 +13777,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -14070,12 +13785,14 @@ "node_modules/@storybook/builder-webpack4/node_modules/picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" }, "node_modules/@storybook/builder-webpack4/node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -14084,6 +13801,7 @@ "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -14100,6 +13818,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", + "license": "MIT", "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.4", @@ -14123,6 +13842,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -14136,6 +13856,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -14147,6 +13868,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "license": "ISC", "dependencies": { "postcss": "^7.0.5" }, @@ -14158,6 +13880,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "license": "MIT", "dependencies": { "icss-utils": "^4.1.1", "postcss": "^7.0.32", @@ -14172,6 +13895,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "license": "ISC", "dependencies": { "postcss": "^7.0.6", "postcss-selector-parser": "^6.0.0" @@ -14184,6 +13908,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "license": "ISC", "dependencies": { "icss-utils": "^4.0.0", "postcss": "^7.0.6" @@ -14193,6 +13918,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "license": "MIT", "dependencies": { "lodash": "^4.17.20", "renderkid": "^2.0.4" @@ -14202,6 +13928,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14216,6 +13943,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "license": "MIT", "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -14227,12 +13955,14 @@ "node_modules/@storybook/builder-webpack4/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack4/node_modules/serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -14241,6 +13971,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", "dependencies": { "minipass": "^3.1.1" }, @@ -14252,6 +13983,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -14260,6 +13992,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -14271,6 +14004,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -14279,6 +14013,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "license": "MIT", "dependencies": { "cacache": "^15.0.5", "find-cache-dir": "^3.3.1", @@ -14305,6 +14040,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -14317,6 +14053,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } @@ -14325,6 +14062,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } @@ -14333,6 +14071,7 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" @@ -14346,6 +14085,7 @@ "version": "4.47.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -14394,6 +14134,7 @@ "version": "3.7.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "license": "MIT", "dependencies": { "memory-fs": "^0.4.1", "mime": "^2.4.4", @@ -14412,6 +14153,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -14423,6 +14165,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz", "integrity": "sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==", + "license": "MIT", "engines": { "node": ">= 4.3 < 5.0.0 || >= 5.10" }, @@ -14434,6 +14177,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -14443,6 +14187,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", + "license": "MIT", "dependencies": { "debug": "^3.0.0" } @@ -14451,6 +14196,7 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "license": "ISC", "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -14472,12 +14218,14 @@ "node_modules/@storybook/builder-webpack4/node_modules/webpack/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/@storybook/builder-webpack4/node_modules/webpack/node_modules/find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -14491,6 +14239,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -14502,6 +14251,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -14510,6 +14260,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -14522,6 +14273,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -14533,6 +14285,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -14545,6 +14298,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -14556,6 +14310,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -14569,6 +14324,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -14577,6 +14333,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -14585,6 +14342,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "license": "ISC", "dependencies": { "figgy-pudding": "^3.5.1" } @@ -14593,6 +14351,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -14609,6 +14368,7 @@ "version": "1.4.6", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "license": "MIT", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -14630,17 +14390,20 @@ "node_modules/@storybook/builder-webpack4/node_modules/webpack/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/@storybook/builder-webpack4/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" }, "node_modules/@storybook/builder-webpack5": { "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-6.5.16.tgz", "integrity": "sha512-kh8Sofm1sbijaHDWtm0sXabqACHVFjikU/fIkkW786kpjoPIPIec1a+hrLgDsZxMU3I7XapSOaCFzWt6FjVXjg==", + "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@storybook/addons": "6.5.16", @@ -14696,20 +14459,23 @@ } }, "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.113.tgz", + "integrity": "sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack5/node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "license": "MIT" }, "node_modules/@storybook/builder-webpack5/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -14719,6 +14485,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -14732,6 +14499,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -14751,6 +14519,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz", "integrity": "sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w==", + "license": "MIT", "dependencies": { "colorette": "^1.2.2", "mem": "^8.1.1", @@ -14774,6 +14543,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.16.tgz", "integrity": "sha512-fZZSN29dsUArWOx7e7lTdMA9+7zijVwCwbvi2Fo4fqhRLh1DsTb/VXfz1FKMCWAjNlcX7QQvV25tnxbqsD6lyw==", + "license": "MIT", "dependencies": { "@storybook/channels": "6.5.16", "@storybook/client-logger": "6.5.16", @@ -14793,6 +14563,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -14802,6 +14573,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.5.16.tgz", "integrity": "sha512-wJg2lpBjmRC2GJFzmhB9kxlh109VE58r/0WhFtLbwKvPqsvGf82xkBEl6BtBCvIQ4stzYnj/XijjA8qSi2zpOg==", + "license": "MIT", "dependencies": { "@storybook/channels": "6.5.16", "@storybook/client-logger": "6.5.16", @@ -14819,6 +14591,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -14828,6 +14601,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.16.tgz", "integrity": "sha512-VylzaWQZaMozEwZPJdyJoz+0jpDa8GRyaqu9TGG6QGv+KU5POoZaGLDkRE7TzWkyyP0KQLo80K99MssZCpgSeg==", + "license": "MIT", "dependencies": { "core-js": "^3.8.2", "ts-dedent": "^2.0.0", @@ -14843,6 +14617,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -14852,6 +14627,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.16.tgz", "integrity": "sha512-i3UwkzzUFw8I+E6fOcgB5sc4oU2fhvaKnqC1mpd9IYGJ9JN9MnGIaVl3Ko28DtFItu/QabC9JsLIJVripFLktQ==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/channel-postmessage": "6.5.16", @@ -14888,6 +14664,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -14897,6 +14674,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.16.tgz", "integrity": "sha512-pxcNaCj3ItDdicPTXTtmYJE3YC1SjxFrBmHcyrN+nffeNyiMuViJdOOZzzzucTUG0wcOOX8jaSyak+nnHg5H1Q==", + "license": "MIT", "dependencies": { "core-js": "^3.8.2", "global": "^4.4.0" @@ -14911,6 +14689,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -14920,6 +14699,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.5.16.tgz", "integrity": "sha512-LzBOFJKITLtDcbW9jXl0/PaG+4xAz25PK8JxPZpIALbmOpYWOAPcO6V9C2heX6e6NgWFMUxjplkULEk9RCQMNA==", + "license": "MIT", "dependencies": { "@storybook/client-logger": "6.5.16", "@storybook/csf": "0.0.2--canary.4566f4d.1", @@ -14944,6 +14724,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -14953,6 +14734,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.5.16.tgz", "integrity": "sha512-CEF3QFTsm/VMnMKtRNr4rRdLeIkIG0g1t26WcmxTdSThNPBd8CsWzQJ7Jqu7CKiut+MU4A1LMOwbwCE5F2gmyA==", + "license": "MIT", "dependencies": { "@storybook/core-client": "6.5.16", "@storybook/core-server": "6.5.16" @@ -14982,6 +14764,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.5.16.tgz", "integrity": "sha512-14IRaDrVtKrQ+gNWC0wPwkCNfkZOKghYV/swCUnQX3rP99defsZK8Hc7xHIYoAiOP5+sc3sweRAxgmFiJeQ1Ig==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/channel-postmessage": "6.5.16", @@ -15024,20 +14807,17 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/@storybook/core-client/node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" - }, "node_modules/@storybook/core-common": { "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.16.tgz", "integrity": "sha512-2qtnKP3TTOzt2cp6LXKRTh7XrI9z5VanMnMTgeoFcA5ebnndD4V6BExQUdYPClE/QooLx6blUWNgS9dFEpjSqQ==", + "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@babel/plugin-proposal-class-properties": "^7.12.1", @@ -15108,6 +14888,7 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", @@ -15123,14 +14904,16 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.113.tgz", + "integrity": "sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -15140,22 +14923,26 @@ "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -15167,6 +14954,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -15175,6 +14963,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "license": "MIT", "dependencies": { "@xtuc/long": "4.2.2" } @@ -15182,12 +14971,14 @@ "node_modules/@storybook/core-common/node_modules/@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/@webassemblyjs/wasm-edit": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -15203,6 +14994,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -15215,6 +15007,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -15226,6 +15019,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -15239,6 +15033,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -15249,6 +15044,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -15264,6 +15060,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -15272,6 +15069,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -15286,6 +15084,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.1.5", "core-js-compat": "^3.8.1" @@ -15298,6 +15097,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -15318,6 +15118,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -15329,6 +15130,7 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "license": "ISC", "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -15351,6 +15153,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15365,12 +15168,14 @@ "node_modules/@storybook/core-common/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/@storybook/core-common/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -15381,18 +15186,21 @@ "node_modules/@storybook/core-common/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -15415,6 +15223,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -15427,6 +15236,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -15439,6 +15249,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -15447,6 +15258,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -15461,6 +15273,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -15472,6 +15285,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -15486,6 +15300,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -15494,6 +15309,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -15501,12 +15317,14 @@ "node_modules/@storybook/core-common/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15515,6 +15333,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -15526,6 +15345,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -15537,6 +15357,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -15544,17 +15365,20 @@ "node_modules/@storybook/core-common/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "license": "MIT", "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } @@ -15563,6 +15387,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -15571,6 +15396,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -15580,6 +15406,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -15603,6 +15430,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -15614,6 +15442,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "license": "MIT", "dependencies": { "find-up": "^5.0.0" }, @@ -15625,6 +15454,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15640,6 +15470,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -15650,12 +15481,14 @@ "node_modules/@storybook/core-common/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/@storybook/core-common/node_modules/schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -15669,6 +15502,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -15677,6 +15511,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "license": "ISC", "dependencies": { "figgy-pudding": "^3.5.1" } @@ -15685,6 +15520,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -15693,6 +15529,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15704,6 +15541,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -15712,6 +15550,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -15728,6 +15567,7 @@ "version": "1.4.6", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "license": "MIT", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -15750,6 +15590,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -15762,6 +15603,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } @@ -15770,6 +15612,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } @@ -15778,6 +15621,7 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" @@ -15791,6 +15635,7 @@ "version": "4.47.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -15839,6 +15684,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -15847,17 +15693,20 @@ "node_modules/@storybook/core-common/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" }, "node_modules/@storybook/core-common/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/@storybook/core-events": { "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.16.tgz", "integrity": "sha512-qMZQwmvzpH5F2uwNUllTPg6eZXr2OaYZQRRN8VZJiuorZzDNdAFmiVWMWdkThwmyLEJuQKXxqCL8lMj/7PPM+g==", + "license": "MIT", "dependencies": { "core-js": "^3.8.2" }, @@ -15871,6 +15720,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -15880,6 +15730,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.5.16.tgz", "integrity": "sha512-/3NPfmNyply395Dm0zaVZ8P9aruwO+tPx4D6/jpw8aqrRSwvAMndPMpoMCm0NXcpSm5rdX+Je4S3JW6JcggFkA==", + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.3", "@storybook/builder-webpack4": "6.5.16", @@ -15948,14 +15799,16 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.113.tgz", + "integrity": "sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -15965,22 +15818,26 @@ "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -15992,6 +15849,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -16000,6 +15858,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "license": "MIT", "dependencies": { "@xtuc/long": "4.2.2" } @@ -16007,12 +15866,14 @@ "node_modules/@storybook/core-server/node_modules/@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/@webassemblyjs/wasm-edit": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -16028,6 +15889,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -16040,6 +15902,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -16051,6 +15914,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -16064,6 +15928,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -16074,6 +15939,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -16089,6 +15955,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -16097,6 +15964,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -16111,6 +15979,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -16131,6 +16000,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -16142,6 +16012,7 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "license": "ISC", "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -16164,6 +16035,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -16178,12 +16050,14 @@ "node_modules/@storybook/core-server/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/@storybook/core-server/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -16194,12 +16068,14 @@ "node_modules/@storybook/core-server/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -16209,6 +16085,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -16231,6 +16108,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -16243,6 +16121,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -16255,6 +16134,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -16263,6 +16143,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -16277,6 +16158,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -16288,6 +16170,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -16302,6 +16185,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -16309,12 +16193,14 @@ "node_modules/@storybook/core-server/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16323,6 +16209,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -16334,6 +16221,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -16345,6 +16233,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -16352,17 +16241,20 @@ "node_modules/@storybook/core-server/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "license": "MIT", "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } @@ -16371,6 +16263,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -16379,6 +16272,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -16388,6 +16282,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -16411,6 +16306,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -16422,6 +16318,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -16437,6 +16334,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -16447,12 +16345,14 @@ "node_modules/@storybook/core-server/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -16466,6 +16366,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -16474,6 +16375,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "license": "ISC", "dependencies": { "figgy-pudding": "^3.5.1" } @@ -16482,6 +16384,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -16490,6 +16393,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16501,6 +16405,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16509,6 +16414,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -16525,6 +16431,7 @@ "version": "1.4.6", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "license": "MIT", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -16546,12 +16453,14 @@ "node_modules/@storybook/core-server/node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/@storybook/core-server/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -16564,6 +16473,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } @@ -16572,6 +16482,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } @@ -16580,6 +16491,7 @@ "version": "4.47.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -16628,6 +16540,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -16637,6 +16550,7 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" @@ -16649,17 +16563,20 @@ "node_modules/@storybook/core-server/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" }, "node_modules/@storybook/core-server/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/@storybook/csf": { "version": "0.0.2--canary.4566f4d.1", "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.2--canary.4566f4d.1.tgz", "integrity": "sha512-9OVvMVh3t9znYZwb0Svf/YQoxX2gVOeQTGe2bses2yj+a3+OJnCrUF3/hGv6Em7KujtOdL2LL+JnG49oMVGFgQ==", + "license": "MIT", "dependencies": { "lodash": "^4.17.15" } @@ -16668,6 +16585,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.5.16.tgz", "integrity": "sha512-+WD4sH/OwAfXZX3IN6/LOZ9D9iGEFcN+Vvgv9wOsLRgsAZ10DG/NK6c1unXKDM/ogJtJYccNI8Hd+qNE/GFV6A==", + "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@babel/generator": "^7.12.11", @@ -16702,6 +16620,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -16711,6 +16630,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -16725,6 +16645,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-6.5.16.tgz", "integrity": "sha512-o+rAWPRGifjBF5xZzTKOqnHN3XQWkl0QFJYVDIiJYJrVll7ExCkpEq/PahOGzIBBV+tpMstJgmKM3lr/lu/jmg==", + "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@storybook/csf": "0.0.2--canary.4566f4d.1", @@ -16744,6 +16665,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -16753,6 +16675,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-6.5.16.tgz", "integrity": "sha512-q8/GaBk8PA/cL7m5OW+ec5t63+Zja9YvYSPGXrYtW17koSv7OnNPmk6RvI7tIHHO0mODBYnaHjF4zQfEGoyR5Q==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/client-logger": "6.5.16", @@ -16770,6 +16693,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -16779,6 +16703,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.5.16.tgz", "integrity": "sha512-5VJZwmQU6AgdsBPsYdu886UKBHQ9SJEnFMaeUxKEclXk+iRsmbzlL4GHKyVd6oGX/ZaecZtcHPR6xrzmA4Ziew==", + "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@babel/plugin-transform-template-literals": "^7.12.1", @@ -16834,6 +16759,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -16843,6 +16769,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -16855,6 +16782,7 @@ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -16866,17 +16794,20 @@ "node_modules/@storybook/manager-webpack4/node_modules/@types/html-minifier-terser": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==" + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.113.tgz", + "integrity": "sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -16886,22 +16817,26 @@ "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -16913,6 +16848,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -16921,6 +16857,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "license": "MIT", "dependencies": { "@xtuc/long": "4.2.2" } @@ -16928,12 +16865,14 @@ "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/wasm-edit": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -16949,6 +16888,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -16961,6 +16901,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -16972,6 +16913,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -16985,6 +16927,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -16995,6 +16938,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -17010,6 +16954,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -17018,6 +16963,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17026,6 +16972,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -17040,6 +16987,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -17060,6 +17008,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -17071,6 +17020,7 @@ "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -17099,6 +17049,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17114,6 +17065,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -17124,18 +17076,21 @@ "node_modules/@storybook/manager-webpack4/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -17145,6 +17100,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "cssesc": "^3.0.0", @@ -17175,6 +17131,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", @@ -17192,6 +17149,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -17200,6 +17158,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -17218,12 +17177,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/@storybook/manager-webpack4/node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -17238,6 +17199,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -17264,6 +17226,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -17276,6 +17239,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -17284,6 +17248,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -17296,6 +17261,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -17304,6 +17270,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -17318,6 +17285,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -17329,6 +17297,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -17345,6 +17314,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -17359,6 +17329,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -17367,6 +17338,7 @@ "version": "4.5.2", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "license": "MIT", "dependencies": { "@types/html-minifier-terser": "^5.0.0", "@types/tapable": "^1.0.5", @@ -17396,6 +17368,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -17407,6 +17380,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "license": "ISC", "dependencies": { "postcss": "^7.0.14" }, @@ -17417,12 +17391,14 @@ "node_modules/@storybook/manager-webpack4/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17431,6 +17407,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -17442,6 +17419,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -17453,6 +17431,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -17460,17 +17439,20 @@ "node_modules/@storybook/manager-webpack4/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "license": "MIT", "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } @@ -17479,6 +17461,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -17491,6 +17474,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -17502,6 +17486,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -17511,6 +17496,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -17534,6 +17520,7 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -17545,6 +17532,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -17556,6 +17544,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -17570,6 +17559,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -17577,12 +17567,14 @@ "node_modules/@storybook/manager-webpack4/node_modules/picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" }, "node_modules/@storybook/manager-webpack4/node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -17591,6 +17583,7 @@ "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -17607,6 +17600,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "license": "ISC", "dependencies": { "postcss": "^7.0.5" }, @@ -17618,6 +17612,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "license": "MIT", "dependencies": { "icss-utils": "^4.1.1", "postcss": "^7.0.32", @@ -17632,6 +17627,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "license": "ISC", "dependencies": { "postcss": "^7.0.6", "postcss-selector-parser": "^6.0.0" @@ -17644,6 +17640,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "license": "ISC", "dependencies": { "icss-utils": "^4.0.0", "postcss": "^7.0.6" @@ -17653,6 +17650,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "license": "MIT", "dependencies": { "lodash": "^4.17.20", "renderkid": "^2.0.4" @@ -17662,6 +17660,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -17676,6 +17675,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "license": "MIT", "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -17687,12 +17687,14 @@ "node_modules/@storybook/manager-webpack4/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack4/node_modules/serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -17701,6 +17703,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", "dependencies": { "minipass": "^3.1.1" }, @@ -17712,6 +17715,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -17720,6 +17724,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -17731,6 +17736,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -17742,6 +17748,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -17750,6 +17757,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "license": "MIT", "dependencies": { "cacache": "^15.0.5", "find-cache-dir": "^3.3.1", @@ -17776,6 +17784,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -17788,6 +17797,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } @@ -17796,6 +17806,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } @@ -17804,6 +17815,7 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" @@ -17817,6 +17829,7 @@ "version": "4.47.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -17865,6 +17878,7 @@ "version": "3.7.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "license": "MIT", "dependencies": { "memory-fs": "^0.4.1", "mime": "^2.4.4", @@ -17883,6 +17897,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -17894,6 +17909,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -17903,6 +17919,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", + "license": "MIT", "dependencies": { "debug": "^3.0.0" } @@ -17911,6 +17928,7 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "license": "ISC", "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -17932,12 +17950,14 @@ "node_modules/@storybook/manager-webpack4/node_modules/webpack/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/@storybook/manager-webpack4/node_modules/webpack/node_modules/find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -17951,6 +17971,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -17962,6 +17983,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -17970,6 +17992,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -17982,6 +18005,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -17993,6 +18017,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -18005,6 +18030,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -18016,6 +18042,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -18029,6 +18056,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -18037,6 +18065,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -18045,6 +18074,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "license": "ISC", "dependencies": { "figgy-pudding": "^3.5.1" } @@ -18053,6 +18083,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -18069,6 +18100,7 @@ "version": "1.4.6", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "license": "MIT", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -18090,17 +18122,20 @@ "node_modules/@storybook/manager-webpack4/node_modules/webpack/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/@storybook/manager-webpack4/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" }, "node_modules/@storybook/manager-webpack5": { "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/manager-webpack5/-/manager-webpack5-6.5.16.tgz", "integrity": "sha512-OtxXv8JCe0r/0rE5HxaFicsNsXA+fqZxzokxquFFgrYf/1Jg4d7QX6/pG5wINF+5qInJfVkRG6xhPzv1s5bk9Q==", + "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@babel/plugin-transform-template-literals": "^7.12.1", @@ -18150,14 +18185,16 @@ } }, "node_modules/@storybook/manager-webpack5/node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.113.tgz", + "integrity": "sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack5/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -18172,6 +18209,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18187,6 +18225,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -18197,18 +18236,21 @@ "node_modules/@storybook/manager-webpack5/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack5/node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "license": "MIT" }, "node_modules/@storybook/manager-webpack5/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18218,6 +18260,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -18232,6 +18275,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -18240,6 +18284,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -18253,6 +18298,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -18272,6 +18318,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -18283,6 +18330,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz", "integrity": "sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w==", + "license": "MIT", "dependencies": { "colorette": "^1.2.2", "mem": "^8.1.1", @@ -18306,6 +18354,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@storybook/mdx1-csf/-/mdx1-csf-0.0.1.tgz", "integrity": "sha512-4biZIWWzoWlCarMZmTpqcJNgo/RBesYZwGFbQeXiGYsswuvfWARZnW9RE9aUEMZ4XPn7B1N3EKkWcdcWe/K2tg==", + "license": "MIT", "dependencies": { "@babel/generator": "^7.12.11", "@babel/parser": "^7.12.11", @@ -18324,6 +18373,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -18337,6 +18387,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -18348,6 +18399,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.16.tgz", "integrity": "sha512-YjhBKrclQtjhqFNSO+BZK+RXOx6EQypAELJKoLFaawg331e8VUfvUuRCNB3fcEWp8G9oH13PQQte0OTjLyyOYg==", + "license": "MIT", "dependencies": { "@types/npmlog": "^4.1.2", "chalk": "^4.1.0", @@ -18364,6 +18416,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -18379,6 +18432,7 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -18391,6 +18445,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18406,6 +18461,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -18416,13 +18472,15 @@ "node_modules/@storybook/node-logger/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/node-logger/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18433,6 +18491,7 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -18452,6 +18511,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -18461,6 +18521,7 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -18472,6 +18533,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -18483,6 +18545,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.5.16.tgz", "integrity": "sha512-08K2q+qN6pqyPW7PHLCZ5G5Xa6Wosd6t0F16PQ4abX2ItlJLabVoJN5mZ0gm/aeLTjD8QYr8IDvacu4eXh0SVA==", + "license": "MIT", "dependencies": { "core-js": "^3.8.2" }, @@ -18496,6 +18559,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18505,6 +18569,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.16.tgz", "integrity": "sha512-IJnvfe2sKCfk7apN9Fu9U8qibbarrPX5JB55ZzK1amSHVmSDuYk5MIMc/U3NnSQNnvd1DO5v/zMcGgj563hrtg==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/channel-postmessage": "6.5.16", @@ -18537,20 +18602,17 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/@storybook/preview-web/node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" - }, "node_modules/@storybook/react": { "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.5.16.tgz", "integrity": "sha512-cBtNlOzf/MySpNLBK22lJ8wFU22HnfTB2xJyBk7W7Zi71Lm7Uxkhv1Pz8HdiQndJ0SlsAAQOWjQYsSZsGkZIaA==", + "license": "MIT", "dependencies": { "@babel/preset-flow": "^7.12.1", "@babel/preset-react": "^7.12.10", @@ -18631,6 +18693,7 @@ "version": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0.tgz", "integrity": "sha512-eVg3BxlOm2P+chijHBTByr90IZVUtgRW56qEOLX7xlww2NBuKrcavBlcmn+HH7GIUktquWkMPtvy6e0W0NgA5w==", + "license": "MIT", "dependencies": { "debug": "^4.1.1", "endent": "^2.0.1", @@ -18649,6 +18712,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -18664,17 +18728,20 @@ "node_modules/@storybook/react/node_modules/@types/estree": { "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "license": "MIT" }, "node_modules/@storybook/react/node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.113.tgz", + "integrity": "sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==", + "license": "MIT" }, "node_modules/@storybook/react/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -18687,6 +18754,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18696,6 +18764,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -18710,6 +18779,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.5.16.tgz", "integrity": "sha512-ZgeP8a5YV/iuKbv31V8DjPxlV4AzorRiR8OuSt/KqaiYXNXlOoQDz/qMmiNcrshrfLpmkzoq7fSo4T8lWo2UwQ==", + "license": "MIT", "dependencies": { "@storybook/client-logger": "6.5.16", "core-js": "^3.8.2", @@ -18731,6 +18801,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18740,6 +18811,7 @@ "version": "7.3.2", "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "license": "ISC", "dependencies": { "core-js": "^3.6.5", "find-up": "^4.1.0" @@ -18756,6 +18828,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18765,6 +18838,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -18777,6 +18851,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -18788,6 +18863,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -18802,6 +18878,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -18813,6 +18890,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.5.16.tgz", "integrity": "sha512-fyVl4jrM/5JLrb48aqXPu7sTsmySQaVGFp1zfeqvPPlJRFMastDrePm5XGPN7Qjv1wsKmpuBvuweFKOT1pru3g==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/client-logger": "6.5.16", @@ -18839,6 +18917,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18848,6 +18927,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -18861,6 +18941,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -18872,6 +18953,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.5.16.tgz", "integrity": "sha512-g+bVL5hmMq/9cM51K04e37OviUPHT0rHHrRm5wj/hrf18Kd9120b3sxdQ5Dc+HZ292yuME0n+cyrQPTYx9Epmw==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/client-logger": "6.5.16", @@ -18903,6 +18985,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18912,6 +18995,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-6.5.16.tgz", "integrity": "sha512-CWr5Uko1l9jJW88yTXsZTj/3GTabPvw0o7pDPOXPp8JRZiJTxv1JFaFCafhK9UzYbgcRuGfCC8kEWPZims7iKA==", + "license": "MIT", "dependencies": { "@storybook/client-logger": "6.5.16", "@storybook/core-common": "6.5.16", @@ -18935,6 +19019,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -18949,6 +19034,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18964,6 +19050,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -18974,13 +19061,15 @@ "node_modules/@storybook/telemetry/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/@storybook/telemetry/node_modules/core-js": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -18990,6 +19079,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -19004,6 +19094,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -19012,6 +19103,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -19023,6 +19115,7 @@ "version": "0.0.13", "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.0.13.tgz", "integrity": "sha512-vRMeIGer4EjJkTgI8sQyK9W431ekPWYCWL//OmSDJ64IT3h7FnW7Xg6p+eqM3oII98/O5pcya5049GxnjaPtxw==", + "license": "MIT", "dependencies": { "@storybook/client-logger": "^6.4.0", "@storybook/instrumenter": "^6.4.0", @@ -19035,6 +19128,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.16.tgz", "integrity": "sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ==", + "license": "MIT", "dependencies": { "@storybook/client-logger": "6.5.16", "core-js": "^3.8.2", @@ -19055,6 +19149,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -19064,6 +19159,7 @@ "version": "6.5.16", "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.5.16.tgz", "integrity": "sha512-rHn/n12WM8BaXtZ3IApNZCiS+C4Oc5+Lkl4MoctX8V7QSml0SxZBB5hsJ/AiWkgbRxjQpa/L/Nt7/Qw0FjTH/A==", + "license": "MIT", "dependencies": { "@storybook/addons": "6.5.16", "@storybook/api": "6.5.16", @@ -19094,6 +19190,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -19128,6 +19225,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "license": "Apache-2.0", "dependencies": { "ejs": "^3.1.6", "json5": "^2.2.0", @@ -19139,6 +19237,7 @@ "version": "8.19.4", "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.19.4.tgz", "integrity": "sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==", + "license": "MIT", "dependencies": { "remove-accents": "0.5.0" }, @@ -19154,6 +19253,7 @@ "version": "4.36.1", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -19163,6 +19263,7 @@ "version": "4.36.1", "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", + "license": "MIT", "dependencies": { "@tanstack/query-core": "4.36.1", "use-sync-external-store": "^1.2.0" @@ -19189,6 +19290,7 @@ "version": "4.36.1", "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.36.1.tgz", "integrity": "sha512-WYku83CKP3OevnYSG8Y/QO9g0rT75v1om5IvcWUwiUZJ4LanYGLVCZ8TdFG5jfsq4Ej/lu2wwDAULEUnRIMBSw==", + "license": "MIT", "dependencies": { "@tanstack/match-sorter-utils": "^8.7.0", "superjson": "^1.10.0", @@ -19208,6 +19310,7 @@ "version": "8.20.5", "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz", "integrity": "sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==", + "license": "MIT", "dependencies": { "@tanstack/table-core": "8.20.5" }, @@ -19227,6 +19330,7 @@ "version": "3.10.8", "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.10.8.tgz", "integrity": "sha512-VbzbVGSsZlQktyLrP5nxE+vE1ZR+U0NFAWPbJLoG2+DKPwd2D7dVICTVIIaYlJqX1ZCEnYDbaOpmMwbsyhBoIA==", + "license": "MIT", "dependencies": { "@tanstack/virtual-core": "3.10.8" }, @@ -19243,6 +19347,7 @@ "version": "8.20.5", "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.20.5.tgz", "integrity": "sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -19255,6 +19360,7 @@ "version": "3.10.8", "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.10.8.tgz", "integrity": "sha512-PBu00mtt95jbKFi6Llk9aik8bnR3tR/oQP1o3TSi+iG//+Q2RTIzCEgKkHG8BB86kxMNW6O8wku+Lmi+QFR6jA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -19524,6 +19630,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", "engines": { "node": ">=10.13.0" } @@ -19586,10 +19693,10 @@ } }, "node_modules/@types/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", - "deprecated": "This is a stub types definition. classnames provides its own type definitions, so you do not need this installed.", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.0.tgz", + "integrity": "sha512-3GsbOoDYteFShlrBTKzI2Eii4vPg/jAf7LXRIn0WQePKlmhpkV0KoTMuawA7gZJkrbPrZGwv9IEAfIWaOaQK8w==", + "license": "MIT", "dependencies": { "classnames": "*" } @@ -19597,12 +19704,14 @@ "node_modules/@types/css-modules": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/css-modules/-/css-modules-1.0.5.tgz", - "integrity": "sha512-oeKafs/df9lwOvtfiXVliZsocFVOexK9PZtLQWuPeuVCFR7jwiqlg60lu80JTe5NFNtH3tnV6Fs/ySR8BUPHAw==" + "integrity": "sha512-oeKafs/df9lwOvtfiXVliZsocFVOexK9PZtLQWuPeuVCFR7jwiqlg60lu80JTe5NFNtH3tnV6Fs/ySR8BUPHAw==", + "license": "MIT" }, "node_modules/@types/dompurify": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", + "license": "MIT", "dependencies": { "@types/trusted-types": "*" } @@ -19631,6 +19740,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -19647,6 +19757,7 @@ "version": "2.3.10", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "license": "MIT", "dependencies": { "@types/unist": "^2" } @@ -19660,6 +19771,7 @@ "version": "3.3.5", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "license": "MIT", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -19668,12 +19780,14 @@ "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" }, "node_modules/@types/is-function": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.3.tgz", - "integrity": "sha512-/CLhCW79JUeLKznI6mbVieGbl4QU5Hfn+6udw1YHZoofASjbQ5zaP5LzAUZYDpRYEjS4/P+DhEgyJ/PQmGGTWw==" + "integrity": "sha512-/CLhCW79JUeLKznI6mbVieGbl4QU5Hfn+6udw1YHZoofASjbQ5zaP5LzAUZYDpRYEjS4/P+DhEgyJ/PQmGGTWw==", + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", @@ -19703,14 +19817,16 @@ } }, "node_modules/@types/js-cookie": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", - "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz", + "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==", + "license": "MIT" }, "node_modules/@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", @@ -19728,17 +19844,20 @@ "node_modules/@types/loadjs": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/loadjs/-/loadjs-4.0.4.tgz", - "integrity": "sha512-IrO82vQKb37H9R+CJYoKTJBlMcIcSCA64ZPIBrLScH2vHMgXLnXtLc76PyKKzdbkj/lRLIhoH+fFAZ0UvIP5Dw==" + "integrity": "sha512-IrO82vQKb37H9R+CJYoKTJBlMcIcSCA64ZPIBrLScH2vHMgXLnXtLc76PyKKzdbkj/lRLIhoH+fFAZ0UvIP5Dw==", + "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.9.tgz", - "integrity": "sha512-w9iWudx1XWOHW5lQRS9iKpK/XuRhnN+0T7HvdCCd802FYkT1AMTnxndJHGrNJwRoRHkslGr4S29tjm1cT7x/7w==" + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==", + "license": "MIT" }, "node_modules/@types/lodash.debounce": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz", "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } @@ -19747,6 +19866,7 @@ "version": "4.6.9", "resolved": "https://registry.npmjs.org/@types/lodash.groupby/-/lodash.groupby-4.6.9.tgz", "integrity": "sha512-z2xtCX2ko7GrqORnnYea4+ksT7jZNAvaOcLd6mP9M7J09RHvJs06W8BGdQQAX8ARef09VQLdeRilSOcfHlDQJQ==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } @@ -19755,6 +19875,7 @@ "version": "4.6.9", "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.9.tgz", "integrity": "sha512-23sHDPmzd59kUgWyKGiOMO2Qb9YtqRO/x4IhkgNUiPQ1+5MUVqi6bCZeq9nBJ17msjIMbEIO5u+XW4Kz6aGUhQ==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } @@ -19763,6 +19884,7 @@ "version": "4.6.9", "resolved": "https://registry.npmjs.org/@types/lodash.pickby/-/lodash.pickby-4.6.9.tgz", "integrity": "sha512-SPI248FYnyd3jOxDeJq2vX2UKQnDzqacuqdeOVqwE1MPSk8gN8TA3FcHSMQWLlpBnuHgXvgKInvywbOFbidpJA==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } @@ -19771,6 +19893,7 @@ "version": "4.3.9", "resolved": "https://registry.npmjs.org/@types/lodash.set/-/lodash.set-4.3.9.tgz", "integrity": "sha512-KOxyNkZpbaggVmqbpr82N2tDVTx05/3/j0f50Es1prxrWB0XYf9p3QNxqcbWb7P1Q9wlvsUSlCFnwlPCIJ46PQ==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } @@ -19779,6 +19902,7 @@ "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/lodash.throttle/-/lodash.throttle-4.1.9.tgz", "integrity": "sha512-PCPVfpfueguWZQB7pJQK890F2scYKoDUL3iM522AptHWn7d5NQmeS/LTEHIcLr5PaTzl3dK2Z0xSUHHTHwaL5g==", + "license": "MIT", "dependencies": { "@types/lodash": "*" } @@ -19786,7 +19910,8 @@ "node_modules/@types/md5": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/@types/md5/-/md5-2.3.5.tgz", - "integrity": "sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw==" + "integrity": "sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw==", + "license": "MIT" }, "node_modules/@types/mdast": { "version": "3.0.10", @@ -19812,15 +19937,17 @@ "version": "2.6.11", "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "license": "MIT", "dependencies": { "@types/node": "*", "form-data": "^4.0.0" } }, "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -19839,6 +19966,7 @@ "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.6.tgz", "integrity": "sha512-0l3z16vnlJGl2Mi/rgJFrdwfLZ4jfNYgE6ZShEpjqhHuGTqdEzNles03NpYHwUMVYZa+Tj46UxKIEpE78lQ3DQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -19846,7 +19974,8 @@ "node_modules/@types/object.fromentries": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-DWMXJpuTqjYLDIqEJN1FiTUvRcOjnTceeJCmJcz9CyrzN26kjT+2WE9jIzGPdCHxTXk+DTY7ihPPtpUBwfBbQw==" + "integrity": "sha512-DWMXJpuTqjYLDIqEJN1FiTUvRcOjnTceeJCmJcz9CyrzN26kjT+2WE9jIzGPdCHxTXk+DTY7ihPPtpUBwfBbQw==", + "license": "MIT" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -19855,7 +19984,8 @@ "node_modules/@types/parse5": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", + "license": "MIT" }, "node_modules/@types/prettier": { "version": "2.7.1", @@ -19865,7 +19995,8 @@ "node_modules/@types/pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==" + "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==", + "license": "MIT" }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -19874,12 +20005,14 @@ "node_modules/@types/q": { "version": "1.5.8", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", - "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "license": "MIT" }, "node_modules/@types/qrcode.react": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/qrcode.react/-/qrcode.react-1.0.5.tgz", "integrity": "sha512-BghPtnlwvrvq8QkGa1H25YnN+5OIgCKFuQruncGWLGJYOzeSKiix/4+B9BtfKF2wf5ja8yfyWYA3OXju995G8w==", + "license": "MIT", "dependencies": { "@types/react": "*" } @@ -19887,12 +20020,14 @@ "node_modules/@types/qs": { "version": "6.9.16", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", - "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==" + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", + "license": "MIT" }, "node_modules/@types/reach__router": { "version": "1.3.15", "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.15.tgz", "integrity": "sha512-5WEHKGglRjq/Ae3F8UQxg+GYUIhTUEiyBT9GKPoOLU/vPTn8iZrRbdzxqvarOaGludIejJykHLMdOCdhgWqaxA==", + "license": "MIT", "dependencies": { "@types/react": "*" } @@ -19910,13 +20045,14 @@ "version": "13.1.8", "resolved": "https://registry.npmjs.org/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.8.tgz", "integrity": "sha512-E3TyFsro9pQuK4r8S/OL6G99eq7p8v29sX0PM7oT8Z+PJfZvSQTx4zTQbUJ+QZXioAF0e7TGBEcA1XhYhCweyQ==", + "license": "MIT", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-dom": { "version": "18.0.9", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@types/react": "*" @@ -19926,6 +20062,7 @@ "version": "5.5.11", "resolved": "https://registry.npmjs.org/@types/react-loadable/-/react-loadable-5.5.11.tgz", "integrity": "sha512-/tq2IJ853MoIFRBmqVOxnGsRRjER5TmEKzsZtaAkiXAWoDeKgR/QNOT1vd9k0p9h/F616X21cpNh3hu4RutzRQ==", + "license": "MIT", "dependencies": { "@types/react": "*", "@types/webpack": "^4" @@ -19935,6 +20072,7 @@ "version": "3.16.3", "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.16.3.tgz", "integrity": "sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg==", + "license": "MIT", "dependencies": { "@types/react": "*" } @@ -19943,6 +20081,7 @@ "version": "7.1.34", "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz", "integrity": "sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==", + "license": "MIT", "dependencies": { "@types/hoist-non-react-statics": "^3.3.0", "@types/react": "*", @@ -19973,6 +20112,7 @@ "version": "11.0.4", "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz", "integrity": "sha512-9GfTo3a0PHwQeTVoqs0g5bS28KkSY48pp5659wA+Dp4MqceDEa8EHBqrllJvvtyusszyJhViUEap0FDvlk/9Zg==", + "license": "MIT", "dependencies": { "@types/react": "*" } @@ -19990,6 +20130,7 @@ "version": "4.3.6", "resolved": "https://registry.npmjs.org/@types/react-textarea-autosize/-/react-textarea-autosize-4.3.6.tgz", "integrity": "sha512-cTf8tCem0c8A7CERYbTuF+bRFaqYu7N7HLCa6ZhUhDx8XnUsTpGx5udMWljt87JpciUKuUkImKPEsy6kcKhrcQ==", + "license": "MIT", "dependencies": { "@types/react": "*" } @@ -20024,6 +20165,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -20041,19 +20183,16 @@ "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/sha.js/-/sha.js-2.4.4.tgz", "integrity": "sha512-Qukd+D6S2Hm0wLVt2Vh+/eWBIoUt+wF8jWjBsG4F8EFQRwKtYvtXCPcNl2OEUQ1R+eTr3xuSaBYUyM3WD1x/Qw==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/sockjs-client": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/sockjs-client/-/sockjs-client-1.5.4.tgz", - "integrity": "sha512-zk+uFZeWyvJ5ZFkLIwoGA/DfJ+pYzcZ8eH4H/EILCm2OBZyHH6Hkdna1/UWL/CFruh5wj6ES7g75SvUB0VsH5w==" - }, "node_modules/@types/source-list-map": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", - "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==" + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.1", @@ -20063,7 +20202,8 @@ "node_modules/@types/tapable": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", - "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==" + "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "license": "MIT" }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.5", @@ -20076,22 +20216,26 @@ "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT" }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" }, "node_modules/@types/ua-parser-js": { "version": "0.7.39", "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.39.tgz", - "integrity": "sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==" + "integrity": "sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==", + "license": "MIT" }, "node_modules/@types/uglify-js": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", + "license": "MIT", "dependencies": { "source-map": "^0.6.1" } @@ -20103,12 +20247,14 @@ "node_modules/@types/uuid": { "version": "9.0.8", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "license": "MIT" }, "node_modules/@types/webpack": { "version": "4.41.39", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.39.tgz", "integrity": "sha512-otxUJvoi6FbBq/64gGH34eblpKLgdi+gf08GaAh8Bx6So0ZZic028Ev/SUxD22gbthMKCkeeiXEat1kHLDJfYg==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/tapable": "^1", @@ -20121,12 +20267,14 @@ "node_modules/@types/webpack-env": { "version": "1.18.5", "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.5.tgz", - "integrity": "sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA==" + "integrity": "sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA==", + "license": "MIT" }, "node_modules/@types/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/source-list-map": "*", @@ -20137,6 +20285,7 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -20536,12 +20685,14 @@ "version": "10.3.1", "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz", "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==", + "license": "MIT", "peer": true }, "node_modules/@use-gesture/react": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz", "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==", + "license": "MIT", "peer": true, "dependencies": { "@use-gesture/core": "10.3.1" @@ -20578,6 +20729,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "license": "MIT", "dependencies": { "@webassemblyjs/wast-printer": "1.9.0" } @@ -20586,6 +20738,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -20595,12 +20748,14 @@ "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/wast-printer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -20610,12 +20765,14 @@ "node_modules/@webassemblyjs/helper-fsm": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "license": "ISC" }, "node_modules/@webassemblyjs/helper-module-context": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0" } @@ -20624,6 +20781,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -20633,7 +20791,8 @@ "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.5", @@ -20737,6 +20896,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/floating-point-hex-parser": "1.9.0", @@ -20750,6 +20910,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -20759,17 +20920,20 @@ "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "license": "MIT" }, "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "license": "MIT" }, "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.5", @@ -20784,6 +20948,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "license": "MIT", "peerDependencies": { "webpack": "4.x.x || 5.x.x", "webpack-cli": "4.x.x" @@ -20793,6 +20958,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "license": "MIT", "dependencies": { "envinfo": "^7.7.3" }, @@ -20804,6 +20970,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "license": "MIT", "peerDependencies": { "webpack-cli": "4.x.x" }, @@ -20817,6 +20984,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/@welldone-software/why-did-you-render/-/why-did-you-render-3.6.0.tgz", "integrity": "sha512-UQEfDlsAm2xgPObUvlBdqp0lph+at1Z+KPYtl33gPGKZx/yPFQEZVgpycRAhNyQjmaFbqhIqub7X/y5v/vAlmw==", + "license": "MIT", "dependencies": { "lodash": "^4" }, @@ -20828,6 +20996,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.1.tgz", "integrity": "sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==", + "license": "MIT", "funding": { "url": "https://github.com/wojtekmaj/date-utils?sponsor=1" } @@ -20836,6 +21005,7 @@ "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -20887,6 +21057,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@zxcvbn-ts/core/-/core-3.0.4.tgz", "integrity": "sha512-aQeiT0F09FuJaAqNrxynlAwZ2mW/1MdXakKWNmGM1Qp/VaY6CnB/GfnMS2T8gB2231Esp1/maCWd8vTG4OuShw==", + "license": "MIT", "dependencies": { "fastest-levenshtein": "1.0.16" } @@ -20894,7 +21065,8 @@ "node_modules/@zxcvbn-ts/language-common": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@zxcvbn-ts/language-common/-/language-common-3.0.4.tgz", - "integrity": "sha512-viSNNnRYtc7ULXzxrQIVUNwHAPSXRtoIwy/Tq4XQQdIknBzw4vz36lQLF6mvhMlTIlpjoN/Z1GFu/fwiAlUSsw==" + "integrity": "sha512-viSNNnRYtc7ULXzxrQIVUNwHAPSXRtoIwy/Tq4XQQdIknBzw4vz36lQLF6mvhMlTIlpjoN/Z1GFu/fwiAlUSsw==", + "license": "MIT" }, "node_modules/abab": { "version": "2.0.6", @@ -20910,6 +21082,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -20933,6 +21106,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "license": "MIT", "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" @@ -20942,6 +21116,7 @@ "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -20953,6 +21128,7 @@ "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", "dependencies": { "acorn": "^8.11.0" }, @@ -20983,6 +21159,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -20991,6 +21168,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -21003,6 +21181,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -21050,6 +21229,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz", "integrity": "sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==", + "license": "MIT", "dependencies": { "array-includes": "^3.0.3", "array.prototype.flat": "^1.2.1", @@ -21088,6 +21268,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "license": "MIT", "peerDependencies": { "ajv": ">=5.0.0" } @@ -21123,6 +21304,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } @@ -21154,6 +21336,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -21165,6 +21348,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -21190,6 +21374,7 @@ "version": "0.6.15", "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.15.tgz", "integrity": "sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==", + "license": "MIT", "dependencies": { "entities": "^2.0.0" }, @@ -21204,22 +21389,16 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT", "peer": true }, "node_modules/anymatch": { @@ -21236,7 +21415,8 @@ "node_modules/app-root-dir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==" + "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", + "license": "MIT" }, "node_modules/aproba": { "version": "2.0.0", @@ -21270,19 +21450,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", + "license": "MIT", "peer": true }, - "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/aria-query": { "version": "5.1.3", "license": "Apache-2.0", @@ -21293,7 +21463,8 @@ "node_modules/arity-n": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", - "integrity": "sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ==" + "integrity": "sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ==", + "license": "MIT" }, "node_modules/arr-diff": { "version": "4.0.0", @@ -21347,6 +21518,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -21355,7 +21527,8 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" }, "node_modules/array-ify": { "version": "1.0.0", @@ -21389,6 +21562,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -21436,6 +21610,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.7.tgz", "integrity": "sha512-XpcFfLoBEAhezrrNw1V+yLXkE7M6uR7xJEsxbG6c/V9v043qurwVJB9r9UTnoSioFDoz1i1VOydpWGmJpfVZbg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -21455,6 +21630,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -21519,6 +21695,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -21528,12 +21705,14 @@ "node_modules/asn1.js/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" }, "node_modules/assert": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "license": "MIT", "dependencies": { "object.assign": "^4.1.4", "util": "^0.10.4" @@ -21542,12 +21721,14 @@ "node_modules/assert/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" }, "node_modules/assert/node_modules/util": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "license": "MIT", "dependencies": { "inherits": "2.0.3" } @@ -21556,6 +21737,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "license": "MIT", "peer": true, "engines": { "node": "*" @@ -21572,6 +21754,7 @@ "version": "0.14.2", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -21599,12 +21782,14 @@ "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", @@ -21628,9 +21813,10 @@ } }, "node_modules/attr-accept": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", - "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.4.tgz", + "integrity": "sha512-2pA6xFIbdTUDCAwjN8nQwI+842VwzbDUXO2IYlpPXQIORgKnavorcr4Ce3rwh+zsNg9zK7QPsdvDj3Lum4WX4w==", + "license": "MIT", "engines": { "node": ">=4" } @@ -21703,6 +21889,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "license": "MIT", "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -21713,6 +21900,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -21721,6 +21909,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -21729,6 +21918,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -21743,12 +21933,14 @@ "node_modules/babel-code-frame/node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "license": "MIT" }, "node_modules/babel-code-frame/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -21760,6 +21952,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -21768,6 +21961,7 @@ "version": "6.26.3", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "license": "MIT", "dependencies": { "babel-code-frame": "^6.26.0", "babel-generator": "^6.26.0", @@ -21794,6 +21988,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -21802,6 +21997,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "license": "MIT", "bin": { "json5": "lib/cli.js" } @@ -21809,12 +22005,14 @@ "node_modules/babel-core/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/babel-core/node_modules/slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -21823,6 +22021,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -21832,6 +22031,7 @@ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "@babel/parser": "^7.7.0", @@ -21851,6 +22051,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "license": "Apache-2.0", "engines": { "node": ">=4" } @@ -21859,6 +22060,7 @@ "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "license": "MIT", "dependencies": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -21874,6 +22076,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "license": "MIT", "dependencies": { "repeating": "^2.0.0" }, @@ -21885,6 +22088,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" } @@ -21893,6 +22097,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -21901,6 +22106,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", + "license": "MIT", "dependencies": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" @@ -22009,6 +22215,7 @@ "version": "8.4.1", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "license": "MIT", "dependencies": { "find-cache-dir": "^3.3.1", "loader-utils": "^2.0.4", @@ -22027,6 +22234,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -22042,6 +22250,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -22050,6 +22259,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -22065,12 +22275,14 @@ "node_modules/babel-loader/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/babel-loader/node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -22084,6 +22296,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", @@ -22101,6 +22314,7 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "license": "MIT", "dependencies": { "babel-runtime": "^6.22.0" } @@ -22108,12 +22322,14 @@ "node_modules/babel-plugin-add-react-displayname": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz", - "integrity": "sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==" + "integrity": "sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==", + "license": "MIT" }, "node_modules/babel-plugin-apply-mdx-type-prop": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "7.10.4", "@mdx-js/util": "1.6.22" @@ -22129,12 +22345,14 @@ "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "license": "MIT" }, "node_modules/babel-plugin-emotion": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", "integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@emotion/hash": "0.8.0", @@ -22152,6 +22370,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.7.2", "cosmiconfig": "^6.0.0", @@ -22162,6 +22381,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -22177,6 +22397,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -22185,6 +22406,7 @@ "version": "1.6.22", "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "7.10.4" }, @@ -22196,7 +22418,8 @@ "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "license": "MIT" }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", @@ -22229,6 +22452,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -22242,7 +22466,8 @@ "node_modules/babel-plugin-named-exports-order": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/babel-plugin-named-exports-order/-/babel-plugin-named-exports-order-0.0.2.tgz", - "integrity": "sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw==" + "integrity": "sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw==", + "license": "MIT" }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", @@ -22281,6 +22506,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz", "integrity": "sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==", + "license": "MIT", "dependencies": { "ast-types": "^0.14.2", "lodash": "^4.17.15", @@ -22291,6 +22517,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/babel-plugin-react-svg/-/babel-plugin-react-svg-3.0.3.tgz", "integrity": "sha512-Pst1RWjUIiV0Ykv1ODSeceCBsFOP2Y4dusjq7/XkjuzJdvS9CjpkPMUIoO4MLlvp5PiLCeMlsOC7faEUA0gm3Q==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -22301,12 +22528,14 @@ "node_modules/babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==", + "license": "MIT" }, "node_modules/babel-plugin-transform-barrels": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/babel-plugin-transform-barrels/-/babel-plugin-transform-barrels-1.0.12.tgz", "integrity": "sha512-mSVXnpmOZ0fOY16YUKWj+BD8coERyTqy9SJbkSaOt5wCjMayZnm8+1b/xeP4P4Ocrvs7/WbqlrNv1NK/LjwhKQ==", + "license": "MIT", "dependencies": { "fast-glob": "^3.3.2" } @@ -22365,6 +22594,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "license": "MIT", "dependencies": { "babel-core": "^6.26.0", "babel-runtime": "^6.26.0", @@ -22379,6 +22609,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -22390,6 +22621,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -22398,6 +22630,7 @@ "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "license": "MIT", "dependencies": { "source-map": "^0.5.6" } @@ -22418,6 +22651,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "license": "MIT", "dependencies": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -22430,6 +22664,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "license": "MIT", "dependencies": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -22446,6 +22681,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -22454,6 +22690,7 @@ "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -22461,12 +22698,14 @@ "node_modules/babel-traverse/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "license": "MIT", "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -22478,6 +22717,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -22486,15 +22726,11 @@ "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "license": "MIT", "bin": { "babylon": "bin/babylon.js" } }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" - }, "node_modules/bail": { "version": "1.0.5", "license": "MIT", @@ -22537,6 +22773,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -22562,7 +22799,8 @@ "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" }, "node_modules/before-after-hook": { "version": "2.2.3", @@ -22573,6 +22811,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz", "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==", + "license": "MIT", "dependencies": { "open": "^7.0.3" }, @@ -22584,6 +22823,7 @@ "version": "7.4.2", "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -22599,6 +22839,7 @@ "version": "1.6.52", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", "optional": true, "engines": { "node": ">=0.6" @@ -22655,19 +22896,11 @@ "node": ">=8" } }, - "node_modules/binary-utils": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/binary-utils/-/binary-utils-4.25.0.tgz", - "integrity": "sha512-OwsckAI4gLzHOsnWp5Y/nz4LIDrr7+nVKUogMhcSNCMjBJ7W6Vmci3Hf2yIdczwsJkm19TTIpI2Wbe2ni9iTBA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dependencies": { - "gulp-babel": "^6.1.2" - } - }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" @@ -22687,14 +22920,16 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/blockly/-/blockly-10.4.3.tgz", "integrity": "sha512-+opfBmQnSiv7vTiY/TkDEBOslxUyfj8luS3S+qs1NnQKjInC+Waf2l9cNsMh9J8BMkmiCIT+Ed/3mmjIaL9wug==", + "license": "Apache-2.0", "dependencies": { "jsdom": "22.1.0" } }, "node_modules/blockly/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -22708,6 +22943,7 @@ "version": "22.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "license": "MIT", "dependencies": { "abab": "^2.0.6", "cssstyle": "^3.0.0", @@ -22748,17 +22984,20 @@ "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT" }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" }, "node_modules/body-parser": { "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -22782,6 +23021,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -22790,6 +23030,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -22798,6 +23039,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -22805,12 +23047,14 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/bonjour": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "license": "MIT", "dependencies": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", @@ -22823,12 +23067,14 @@ "node_modules/bonjour/node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "license": "MIT" }, "node_modules/bonjour/node_modules/deep-equal": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "license": "MIT", "dependencies": { "is-arguments": "^1.1.1", "is-date-object": "^1.0.5", @@ -22847,22 +23093,26 @@ "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "license": "MIT" }, "node_modules/bowser": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "license": "MIT" }, "node_modules/boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -22884,6 +23134,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -22898,6 +23149,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -22909,6 +23161,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -22924,6 +23177,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -22934,12 +23188,14 @@ "node_modules/boxen/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/boxen/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -22948,6 +23204,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -22959,6 +23216,7 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -22970,6 +23228,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", "integrity": "sha512-2AEM0FXy8ZxVLBuqX0hqt1gDwcnz2zygEkQ6zaD5Wko/sB9paUNwlpawrFtKeHUAQUOzjVy9AO4oeonqIHKA9Q==", + "license": "MIT", "optional": true, "dependencies": { "big-integer": "^1.6.7" @@ -22996,7 +23255,8 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" }, "node_modules/browser-assert": { "version": "1.2.1", @@ -23013,6 +23273,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -23026,6 +23287,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "license": "MIT", "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -23036,6 +23298,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -23047,6 +23310,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "license": "MIT", "dependencies": { "bn.js": "^5.2.1", "randombytes": "^2.1.0", @@ -23060,6 +23324,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "license": "ISC", "dependencies": { "bn.js": "^5.2.1", "browserify-rsa": "^4.1.0", @@ -23079,12 +23344,14 @@ "node_modules/browserify-sign/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/browserify-sign/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -23098,12 +23365,14 @@ "node_modules/browserify-sign/node_modules/readable-stream/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/browserify-sign/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -23111,12 +23380,14 @@ "node_modules/browserify-sign/node_modules/string_decoder/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "license": "MIT", "dependencies": { "pako": "~1.0.5" } @@ -23200,17 +23471,20 @@ "node_modules/buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "license": "MIT" }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -23221,7 +23495,8 @@ "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "license": "MIT" }, "node_modules/builtins": { "version": "5.0.1", @@ -23268,6 +23543,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -23276,6 +23552,7 @@ "version": "7.14.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", + "license": "ISC", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@istanbuljs/schema": "^0.1.3", @@ -23300,12 +23577,14 @@ "node_modules/c8/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, "node_modules/c8/node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -23319,6 +23598,7 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -23336,6 +23616,7 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", "engines": { "node": ">=10" } @@ -23444,7 +23725,8 @@ "node_modules/call-me-maybe": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", @@ -23457,6 +23739,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -23473,6 +23756,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -23496,12 +23780,14 @@ "node_modules/can-use-dom": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", - "integrity": "sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==" + "integrity": "sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==", + "license": "MIT" }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -23531,7 +23817,8 @@ "node_modules/canvas-toBlob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", - "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==" + "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==", + "license": "MIT" }, "node_modules/capture-exit": { "version": "2.0.0", @@ -23547,6 +23834,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -23555,6 +23843,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -23564,6 +23853,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "license": "MIT", "peer": true, "dependencies": { "assertion-error": "^1.1.0", @@ -23582,6 +23872,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -23591,6 +23882,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", "integrity": "sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==", + "license": "MIT/X11", "dependencies": { "traverse": ">=0.3.0 <0.4" }, @@ -23602,6 +23894,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "license": "MIT/X11", "engines": { "node": "*" } @@ -23658,6 +23951,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -23666,6 +23960,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "license": "MIT", "peer": true, "dependencies": { "get-func-name": "^2.0.2" @@ -23722,6 +24017,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -23731,6 +24027,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "license": "ISC", "engines": { "node": ">=6.0.0" }, @@ -23833,6 +24130,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "license": "Apache-2.0", "peer": true, "dependencies": { "clsx": "2.0.0" @@ -23845,6 +24143,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -23853,12 +24152,14 @@ "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "license": "MIT", "dependencies": { "source-map": "~0.6.0" }, @@ -23877,6 +24178,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", + "license": "MIT", "dependencies": { "@types/webpack": "^4.4.31", "del": "^4.1.1" @@ -23892,6 +24194,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -23914,6 +24217,7 @@ "version": "2.1.11", "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "license": "ISC", "peer": true, "dependencies": { "chalk": "^4.0.0", @@ -23935,6 +24239,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -23950,6 +24255,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -23966,6 +24272,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "peer": true, "dependencies": { "color-name": "~1.1.4" @@ -23978,12 +24285,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT", "peer": true }, "node_modules/cli-highlight/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -23993,6 +24302,7 @@ "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", "peer": true, "engines": { "node": "*" @@ -24002,12 +24312,14 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "license": "MIT", "peer": true }, "node_modules/cli-highlight/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -24020,6 +24332,7 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "peer": true, "dependencies": { "cliui": "^7.0.2", @@ -24038,6 +24351,7 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", "peer": true, "engines": { "node": ">=10" @@ -24058,6 +24372,7 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -24094,12 +24409,14 @@ "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" }, "node_modules/clipboard": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "license": "MIT", "optional": true, "dependencies": { "good-listener": "^1.2.2", @@ -24169,6 +24486,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -24197,6 +24515,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "license": "MIT", "dependencies": { "@types/q": "^1.5.1", "chalk": "^2.4.1", @@ -24210,6 +24529,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -24252,7 +24572,8 @@ "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.19", @@ -24284,6 +24605,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -24292,7 +24614,8 @@ "node_modules/commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "license": "MIT" }, "node_modules/common-ancestor-path": { "version": "1.0.1", @@ -24303,6 +24626,7 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -24328,6 +24652,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", "integrity": "sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg==", + "license": "MIT", "dependencies": { "arity-n": "^1.0.4" } @@ -24336,6 +24661,7 @@ "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -24347,6 +24673,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "license": "MIT", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -24364,6 +24691,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -24371,17 +24699,20 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/compression/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/compute-scroll-into-view": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", - "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", @@ -24405,6 +24736,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", + "license": "MIT", "dependencies": { "chalk": "^2.4.2", "date-fns": "^2.0.1", @@ -24427,6 +24759,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -24435,6 +24768,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "license": "ISC", "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -24444,12 +24778,14 @@ "node_modules/concurrently/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "license": "MIT" }, "node_modules/concurrently/node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -24460,12 +24796,14 @@ "node_modules/concurrently/node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" }, "node_modules/concurrently/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "license": "MIT", "engines": { "node": ">=4" } @@ -24474,6 +24812,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -24486,6 +24825,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -24497,6 +24837,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -24511,6 +24852,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -24522,6 +24864,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -24534,6 +24877,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -24542,6 +24886,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -24550,6 +24895,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", + "license": "MIT", "dependencies": { "normalize-package-data": "^2.3.2", "parse-json": "^4.0.0", @@ -24563,6 +24909,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -24574,6 +24921,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -24582,6 +24930,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "license": "MIT", "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -24595,6 +24944,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -24606,6 +24956,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -24616,12 +24967,14 @@ "node_modules/concurrently/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, "node_modules/concurrently/node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -24634,12 +24987,14 @@ "node_modules/concurrently/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" }, "node_modules/concurrently/node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "license": "MIT", "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -24657,6 +25012,7 @@ "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -24678,6 +25034,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "license": "MIT", "engines": { "node": ">=0.8" } @@ -24694,12 +25051,14 @@ "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "license": "MIT" }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -24711,6 +25070,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -24923,6 +25283,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -24936,9 +25297,10 @@ "license": "MIT" }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -24946,12 +25308,14 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" }, "node_modules/copy-anything": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "license": "MIT", "dependencies": { "is-what": "^4.1.8" }, @@ -24967,6 +25331,7 @@ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -24979,12 +25344,14 @@ "node_modules/copy-concurrently/node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "license": "ISC" }, "node_modules/copy-concurrently/node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -24997,6 +25364,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -25015,6 +25383,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", "dependencies": { "toggle-selection": "^1.0.6" } @@ -25023,6 +25392,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "license": "MIT", "dependencies": { "fast-glob": "^3.2.7", "glob-parent": "^6.0.1", @@ -25047,6 +25417,7 @@ "version": "6.4.1", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", + "license": "MIT", "dependencies": { "cacache": "^15.0.5", "fast-glob": "^3.2.4", @@ -25075,6 +25446,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -25085,6 +25457,7 @@ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -25097,6 +25470,7 @@ "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -25125,6 +25499,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -25141,6 +25516,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -25154,6 +25530,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -25165,6 +25542,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -25176,6 +25554,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -25184,6 +25563,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", "dependencies": { "minipass": "^3.1.1" }, @@ -25195,6 +25575,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } @@ -25203,6 +25584,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } @@ -25211,6 +25593,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -25220,6 +25603,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -25289,6 +25673,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", @@ -25303,6 +25688,7 @@ "version": "8.1.2", "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", + "license": "MIT", "dependencies": { "arrify": "^2.0.1", "cp-file": "^7.0.0", @@ -25325,6 +25711,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -25333,6 +25720,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "license": "MIT", "dependencies": { "array-uniq": "^1.0.1" }, @@ -25344,6 +25732,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "license": "MIT", "engines": { "node": ">=8" } @@ -25352,6 +25741,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -25372,6 +25762,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -25383,6 +25774,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "license": "MIT", "dependencies": { "path-type": "^3.0.0" }, @@ -25394,6 +25786,7 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "license": "MIT", "dependencies": { "@mrmlnc/readdir-enhanced": "^2.2.1", "@nodelib/fs.stat": "^1.1.2", @@ -25410,6 +25803,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -25424,6 +25818,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -25435,6 +25830,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "license": "ISC", "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -25444,6 +25840,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.0" }, @@ -25455,6 +25852,7 @@ "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "array-union": "^1.0.2", @@ -25473,6 +25871,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -25480,12 +25879,14 @@ "node_modules/cpy/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/cpy/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -25494,6 +25895,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -25505,6 +25907,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -25516,6 +25919,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -25539,6 +25943,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "license": "MIT", "dependencies": { "p-map": "^2.0.0" }, @@ -25550,6 +25955,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -25558,6 +25964,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -25569,6 +25976,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -25580,6 +25988,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -25588,6 +25997,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -25596,6 +26006,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -25604,6 +26015,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -25616,6 +26028,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" }, @@ -25627,6 +26040,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -25635,12 +26049,14 @@ "node_modules/create-ecdh/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -25653,6 +26069,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -25671,6 +26088,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "license": "MIT", "dependencies": { "cross-spawn": "^6.0.5" }, @@ -25686,6 +26104,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -25701,6 +26120,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -25709,6 +26129,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -25717,6 +26138,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -25728,6 +26150,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -25736,6 +26159,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -25759,6 +26183,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -25767,6 +26192,7 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "license": "MIT", "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -25788,6 +26214,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -25802,6 +26229,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -25813,6 +26241,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "source-map": "^0.6.1", @@ -25824,6 +26253,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "license": "CC0-1.0", "dependencies": { "postcss-selector-parser": "^6.0.9" }, @@ -25841,6 +26271,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "license": "MIT", "dependencies": { "tiny-invariant": "^1.0.6" } @@ -25849,6 +26280,7 @@ "version": "6.4.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >=14" }, @@ -25860,6 +26292,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "license": "CC0-1.0", "dependencies": { "postcss-selector-parser": "^6.0.9" }, @@ -25877,6 +26310,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/css-hot-loader/-/css-hot-loader-1.4.4.tgz", "integrity": "sha512-J/qXHz+r7FOT92qMIJfxUk0LC9fecQNZVr0MswQ4FOpKLyOCBjofVMfc6R268bh/5ktkTShrweMr0wWqerC92g==", + "license": "ISC", "dependencies": { "loader-utils": "^1.1.0", "lodash": "^4.17.5", @@ -25887,6 +26321,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "license": "MIT", "dependencies": { "object-assign": "^4.0.1", "prepend-http": "^1.0.0", @@ -25901,6 +26336,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "license": "MIT", "dependencies": { "is-plain-obj": "^1.0.0" }, @@ -25912,6 +26348,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", "dependencies": { "utrie": "^1.0.2" } @@ -25920,6 +26357,7 @@ "version": "5.2.7", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==", + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "loader-utils": "^2.0.0", @@ -25947,6 +26385,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -25960,6 +26399,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -25971,6 +26411,7 @@ "version": "3.4.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "license": "MIT", "dependencies": { "cssnano": "^5.0.6", "jest-worker": "^27.0.2", @@ -26008,6 +26449,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -26016,6 +26458,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -26029,6 +26472,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -26047,6 +26491,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -26061,6 +26506,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "license": "CC0-1.0", "bin": { "css-prefers-color-scheme": "dist/cli.cjs" }, @@ -26119,6 +26565,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -26133,12 +26580,14 @@ "node_modules/css-select-base-adapter": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "license": "MIT" }, "node_modules/css-select/node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -26157,12 +26606,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/css-select/node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -26177,6 +26628,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -26190,6 +26642,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -26228,6 +26681,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -26240,6 +26694,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -26265,7 +26720,8 @@ "type": "github", "url": "https://github.com/sponsors/csstools" } - ] + ], + "license": "CC0-1.0" }, "node_modules/cssesc": { "version": "3.0.0", @@ -26281,6 +26737,7 @@ "version": "5.1.15", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "license": "MIT", "dependencies": { "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", @@ -26301,6 +26758,7 @@ "version": "5.2.14", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "license": "MIT", "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", @@ -26343,6 +26801,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "license": "MIT", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -26354,6 +26813,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", "dependencies": { "css-tree": "^1.1.2" }, @@ -26371,6 +26831,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "license": "MIT", "dependencies": { "rrweb-cssom": "^0.6.0" }, @@ -26386,6 +26847,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "license": "MIT", "optional": true, "dependencies": { "array-find-index": "^1.0.1" @@ -26397,12 +26859,14 @@ "node_modules/cyclist": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", - "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==" + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "license": "MIT" }, "node_modules/d": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" @@ -26423,6 +26887,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "license": "MIT", "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -26484,6 +26949,7 @@ "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -26506,12 +26972,14 @@ "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" }, "node_modules/debounce": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.1.1.tgz", - "integrity": "sha512-+xRWxgel9LgTC4PwKlm7TJUK6B6qsEK77NaiNvXmeQ7Y3e6OVVsBC4a9BSptS/mAYceyAz37Oa8JTTuPRft7uQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.2.0.tgz", + "integrity": "sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -26592,12 +27060,14 @@ "node_modules/deep-diff": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz", - "integrity": "sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==" + "integrity": "sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==", + "license": "MIT" }, "node_modules/deep-eql": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "license": "MIT", "peer": true, "dependencies": { "type-detect": "^4.0.0" @@ -26634,6 +27104,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -26645,7 +27116,8 @@ "node_modules/deep-object-diff": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", - "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.2.2", @@ -26658,6 +27130,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-1.0.4.tgz", "integrity": "sha512-qPy925qewwul9Hifs+3sx1ZYn14obHxpkX+mPD369w4Rzg+YkJBgi3SOvwUq81nWSjqGUegIgEPwD8u+HUnxlw==", + "license": "MIT", "optional": true, "dependencies": { "bplist-parser": "^0.1.0", @@ -26675,6 +27148,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -26684,6 +27158,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "license": "MIT", "optional": true, "dependencies": { "camelcase": "^2.0.0", @@ -26697,6 +27172,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "license": "MIT", "optional": true, "dependencies": { "path-exists": "^2.0.0", @@ -26710,6 +27186,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -26719,12 +27196,14 @@ "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC", "optional": true }, "node_modules/default-browser-id/node_modules/indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "license": "MIT", "optional": true, "dependencies": { "repeating": "^2.0.0" @@ -26737,6 +27216,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "license": "MIT", "optional": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -26753,6 +27233,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -26762,6 +27243,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "license": "MIT", "optional": true, "dependencies": { "camelcase-keys": "^2.0.0", @@ -26783,6 +27265,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", "optional": true, "dependencies": { "hosted-git-info": "^2.1.4", @@ -26795,6 +27278,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "license": "MIT", "optional": true, "dependencies": { "error-ex": "^1.2.0" @@ -26807,6 +27291,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "license": "MIT", "optional": true, "dependencies": { "pinkie-promise": "^2.0.0" @@ -26819,6 +27304,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "license": "MIT", "optional": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -26833,6 +27319,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -26842,6 +27329,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "license": "MIT", "optional": true, "dependencies": { "load-json-file": "^1.0.0", @@ -26856,6 +27344,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "license": "MIT", "optional": true, "dependencies": { "find-up": "^1.0.0", @@ -26869,6 +27358,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "license": "MIT", "optional": true, "dependencies": { "indent-string": "^2.1.0", @@ -26882,6 +27372,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "optional": true, "bin": { "semver": "bin/semver" @@ -26891,6 +27382,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "license": "MIT", "optional": true, "dependencies": { "is-utf8": "^0.2.0" @@ -26903,6 +27395,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "license": "MIT", "optional": true, "dependencies": { "get-stdin": "^4.0.1" @@ -26918,6 +27411,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -26927,6 +27421,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "license": "BSD-2-Clause", "dependencies": { "execa": "^1.0.0", "ip-regex": "^2.1.0" @@ -26939,6 +27434,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -26954,6 +27450,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "license": "MIT", "dependencies": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -26971,6 +27468,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -26982,6 +27480,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -26990,6 +27489,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "license": "MIT", "dependencies": { "path-key": "^2.0.0" }, @@ -27001,6 +27501,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -27009,6 +27510,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -27017,6 +27519,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -27028,6 +27531,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -27036,6 +27540,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -27108,6 +27613,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", @@ -27125,6 +27631,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "license": "MIT", "dependencies": { "array-uniq": "^1.0.1" }, @@ -27136,6 +27643,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "license": "MIT", "dependencies": { "array-union": "^1.0.1", "glob": "^7.0.3", @@ -27151,6 +27659,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -27159,6 +27668,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -27167,6 +27677,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -27176,6 +27687,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -27194,6 +27706,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "license": "MIT", "optional": true }, "node_modules/delegates": { @@ -27216,6 +27729,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -27225,6 +27739,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -27234,6 +27749,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "license": "MIT", "dependencies": { "repeat-string": "^1.5.4" }, @@ -27250,6 +27766,18 @@ "node": ">=8" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "dev": true, @@ -27261,17 +27789,20 @@ "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" }, "node_modules/detect-package-manager": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", + "license": "MIT", "dependencies": { "execa": "^5.1.1" }, @@ -27283,6 +27814,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "4" @@ -27307,12 +27839,14 @@ "node_modules/diacritics": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", - "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==" + "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==", + "license": "MIT" }, "node_modules/diff": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.3.1" @@ -27330,6 +27864,7 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -27339,12 +27874,14 @@ "node_modules/diffie-hellman/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" }, "node_modules/dijkstrajs": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT", "peer": true }, "node_modules/dir-glob": { @@ -27360,12 +27897,14 @@ "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "license": "MIT" }, "node_modules/dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "license": "MIT", "dependencies": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" @@ -27374,12 +27913,14 @@ "node_modules/dns-packet/node_modules/ip": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "license": "MIT" }, "node_modules/dns-txt": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "license": "MIT", "dependencies": { "buffer-indexof": "^1.0.0" } @@ -27458,6 +27999,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", "dependencies": { "utila": "~0.4" } @@ -27466,6 +28008,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" @@ -27513,6 +28056,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "license": "MIT", "engines": { "node": ">=0.4", "npm": ">=1.2" @@ -27527,6 +28071,7 @@ "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", "dependencies": { "webidl-conversions": "^7.0.0" }, @@ -27544,7 +28089,8 @@ "node_modules/dompurify": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz", - "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==" + "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==", + "license": "(MPL-2.0 OR Apache-2.0)" }, "node_modules/domready": { "version": "1.0.8", @@ -27563,6 +28109,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -27597,7 +28144,8 @@ "node_modules/dotenv-expand": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "license": "BSD-2-Clause" }, "node_modules/dotenv-webpack": { "version": "8.0.1", @@ -27618,6 +28166,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/downshift/-/downshift-8.5.0.tgz", "integrity": "sha512-BAr/KAZX8GGARwWl4aER6ABv8aAaRXZcVKP0m1oFPKpSIXCGuoqnhi6nRf87glHhYDd/CCPp9RVUK27JKJD/Fw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.22.15", "compute-scroll-into-view": "^3.0.3", @@ -27632,12 +28181,14 @@ "node_modules/downshift/node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" }, "node_modules/downshift/node_modules/tslib": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" }, "node_modules/duplexer": { "version": "0.1.2", @@ -27676,6 +28227,7 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -27686,12 +28238,14 @@ "node_modules/duplexify/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/duplexify/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -27705,12 +28259,14 @@ "node_modules/duplexify/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/duplexify/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -27718,12 +28274,14 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.8", @@ -27747,6 +28305,7 @@ "version": "6.5.7", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -27760,22 +28319,26 @@ "node_modules/elliptic/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" }, "node_modules/email-addresses": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", - "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==" + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "license": "MIT" }, "node_modules/embla-carousel": { "version": "8.0.0-rc12", "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.0.0-rc12.tgz", - "integrity": "sha512-/Xkf5zp9gs9Y45lSAT1Witn+r+o+EtoIIZg4V2lYTCaaqdDTxyO0Ddn+z00ya38JGNZrGH9U8wLGK5Hi76CRxw==" + "integrity": "sha512-/Xkf5zp9gs9Y45lSAT1Witn+r+o+EtoIIZg4V2lYTCaaqdDTxyO0Ddn+z00ya38JGNZrGH9U8wLGK5Hi76CRxw==", + "license": "MIT" }, "node_modules/embla-carousel-react": { "version": "8.0.0-rc12", "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.0.0-rc12.tgz", "integrity": "sha512-Tyd9TNH9i8bb/0S9/WZsmEvfZm8jlFU9sgaWNNgLzbPsUtz/L6UTYuRGOBDOt2oh6VPhaL1G8vRuOAuH81G5Cg==", + "license": "MIT", "dependencies": { "embla-carousel": "8.0.0-rc12", "embla-carousel-reactive-utils": "8.0.0-rc12" @@ -27788,6 +28351,7 @@ "version": "8.0.0-rc12", "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.0.0-rc12.tgz", "integrity": "sha512-sHYqMYW2qk9UXNMLoBmo4PRe+8qOW8CJDDqfkMB0WlSfrzgi9fCc36nArQz6k9olHsVfEc3haw00KiqRBvVwEg==", + "license": "MIT", "peerDependencies": { "embla-carousel": "8.0.0-rc12" } @@ -27811,6 +28375,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT", "peer": true }, "node_modules/emojis-list": { @@ -27825,6 +28390,7 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.3.0.tgz", "integrity": "sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.5.5", "@emotion/weak-memoize": "0.2.5", @@ -27839,6 +28405,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -27871,6 +28438,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", + "license": "MIT", "dependencies": { "dedent": "^0.7.0", "fast-json-parse": "^1.0.3", @@ -27906,6 +28474,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz", "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==", + "license": "MIT", "peer": true, "dependencies": { "execa": "^8.0.0", @@ -27919,6 +28488,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", "peer": true, "dependencies": { "cross-spawn": "^7.0.3", @@ -27942,6 +28512,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", "peer": true, "engines": { "node": ">=16" @@ -27954,6 +28525,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", "peer": true, "engines": { "node": ">=16.17.0" @@ -27963,6 +28535,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -27975,6 +28548,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -27987,6 +28561,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", "peer": true, "dependencies": { "path-key": "^4.0.0" @@ -28002,6 +28577,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", "peer": true, "dependencies": { "mimic-fn": "^4.0.0" @@ -28017,6 +28593,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -28029,6 +28606,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "peer": true, "engines": { "node": ">=14" @@ -28041,6 +28619,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -28070,6 +28649,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -28087,6 +28667,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "license": "MIT", "dependencies": { "prr": "~1.0.1" }, @@ -28105,6 +28686,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } @@ -28171,7 +28753,8 @@ "node_modules/es-array-method-boxes-properly": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "license": "MIT" }, "node_modules/es-define-property": { "version": "1.0.0", @@ -28265,6 +28848,7 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "hasInstallScript": true, + "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -28279,6 +28863,7 @@ "version": "4.6.7", "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.7.tgz", "integrity": "sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -28287,6 +28872,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -28296,12 +28882,14 @@ "node_modules/es6-shim": { "version": "0.35.8", "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.8.tgz", - "integrity": "sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==" + "integrity": "sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==", + "license": "MIT" }, "node_modules/es6-symbol": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" @@ -28321,7 +28909,8 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "1.0.5", @@ -28468,7 +29057,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/eslint-config-binary/-/eslint-config-binary-1.0.2.tgz", "integrity": "sha512-4PCr0wR6/aE+v9TKrcl4p/Qhs8u7mayoZuQe+599D12MIOmfRFPyhlxczORG5dSBr6+loNGmMtPTJe3tJv3ktg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "ISC" }, "node_modules/eslint-config-prettier": { "version": "7.2.0", @@ -29187,7 +29777,8 @@ "node_modules/eslint-plugin-local-rules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-local-rules/-/eslint-plugin-local-rules-2.0.0.tgz", - "integrity": "sha512-sWueme0kUcP0JC1+6OBDQ9edBDVFJR92WJHSRbhiRExlenMEuUisdaVBPR+ItFBFXo2Pdw6FD2UfGZWkz8e93g==" + "integrity": "sha512-sWueme0kUcP0JC1+6OBDQ9edBDVFJR92WJHSRbhiRExlenMEuUisdaVBPR+ItFBFXo2Pdw6FD2UfGZWkz8e93g==", + "license": "MIT" }, "node_modules/eslint-plugin-playwright": { "version": "0.9.0", @@ -29290,6 +29881,7 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz", "integrity": "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==", + "license": "MIT", "peerDependencies": { "eslint": ">=5.0.0" } @@ -29298,6 +29890,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/eslint-plugin-sort-destructure-keys/-/eslint-plugin-sort-destructure-keys-1.5.0.tgz", "integrity": "sha512-xGLyqHtbFXZNXQSvAiQ4ISBYokrbUywEhmaA50fKtSKgceCv5y3zjoNuZwcnajdM6q29Nxj+oXC9KcqfMsAPrg==", + "license": "ISC", "dependencies": { "natural-compare-lite": "^1.4.0" }, @@ -29328,6 +29921,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-2.3.0.tgz", "integrity": "sha512-3LAcYulo5gNYiPWee+TksITfvWeBuBjGgcSLTacPESFVKEoy8laOQuZvJlSCwTBHT2SCGIxr3bJ56zuux+3MCQ==", + "license": "ISC", "dependencies": { "@typescript-eslint/experimental-utils": "^5.0.0", "json-schema": "^0.4.0", @@ -29346,6 +29940,7 @@ "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "license": "MIT", "dependencies": { "@typescript-eslint/utils": "5.62.0" }, @@ -29364,6 +29959,7 @@ "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -29380,6 +29976,7 @@ "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -29392,6 +29989,7 @@ "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", @@ -29418,6 +30016,7 @@ "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -29443,6 +30042,7 @@ "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -29459,6 +30059,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -29470,6 +30071,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -29795,6 +30397,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -29881,6 +30484,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/estree-to-babel/-/estree-to-babel-3.2.1.tgz", "integrity": "sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==", + "license": "MIT", "dependencies": { "@babel/traverse": "^7.1.6", "@babel/types": "^7.2.0", @@ -29893,7 +30497,8 @@ "node_modules/estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", @@ -29906,6 +30511,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -29914,6 +30520,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -29922,7 +30529,8 @@ "node_modules/event-emitter-es6": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/event-emitter-es6/-/event-emitter-es6-1.1.5.tgz", - "integrity": "sha512-/n7qzkJBySdbe1W9/FBDdO7gzDIaewgj+Rj6Ayc2BdvVcaGP+p40DyViOFudCgV47UU8+cUFmcD3tJgjwY65qQ==" + "integrity": "sha512-/n7qzkJBySdbe1W9/FBDdO7gzDIaewgj+Rj6Ayc2BdvVcaGP+p40DyViOFudCgV47UU8+cUFmcD3tJgjwY65qQ==", + "license": "MIT" }, "node_modules/eventemitter3": { "version": "4.0.7", @@ -29939,6 +30547,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", "engines": { "node": ">=12.0.0" } @@ -29947,6 +30556,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -30257,16 +30867,17 @@ } }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -30301,6 +30912,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -30309,6 +30921,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -30316,12 +30929,14 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", "dependencies": { "type": "^2.7.2" } @@ -30424,7 +31039,8 @@ "node_modules/fast-json-parse": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", - "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==" + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", @@ -30452,6 +31068,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "license": "MIT", "dependencies": { "format": "^0.2.0" }, @@ -30464,6 +31081,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -30482,6 +31100,7 @@ "version": "0.8.18", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "license": "MIT", "dependencies": { "core-js": "^1.0.0", "isomorphic-fetch": "^2.1.1", @@ -30496,7 +31115,8 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js." + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "license": "MIT" }, "node_modules/fbjs/node_modules/ua-parser-js": { "version": "0.7.39", @@ -30516,6 +31136,7 @@ "url": "https://github.com/sponsors/faisalman" } ], + "license": "MIT", "bin": { "ua-parser-js": "script/cli.js" }, @@ -30526,13 +31147,15 @@ "node_modules/fetch-retry": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", - "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==" + "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", + "license": "MIT" }, "node_modules/figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "deprecated": "This module is no longer supported." + "deprecated": "This module is no longer supported.", + "license": "ISC" }, "node_modules/figures": { "version": "3.2.0", @@ -30562,6 +31185,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -30581,6 +31205,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -30593,12 +31218,14 @@ "node_modules/file-saver": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "license": "MIT" }, "node_modules/file-selector": { "version": "0.1.19", "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.1.19.tgz", "integrity": "sha512-kCWw3+Aai8Uox+5tHCNgMFaUdgidxvMnLWO6fM5sZ0hA2wlHP5/DHGF0ECe84BiB95qdJbKNEJhWKVDvMN+JDQ==", + "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -30610,6 +31237,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.1.0.tgz", "integrity": "sha512-IzF5MBq+5CR0jXx5RxPe4BICl/oEhBSXKaL9fLhAXrIfIUS77Hr4vzrYyqYMHN6uTt+BOqi3fDCTjjEBCjERKw==", + "license": "MIT", "dependencies": { "fs-extra": "^10.1.0", "ramda": "^0.28.0" @@ -30619,6 +31247,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", "optional": true }, "node_modules/filelist": { @@ -30649,6 +31278,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -30657,6 +31287,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "license": "MIT", "dependencies": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", @@ -30683,6 +31314,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", @@ -30700,6 +31332,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -30707,12 +31340,14 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -30726,6 +31361,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -30737,6 +31373,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -30749,6 +31386,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -30761,6 +31399,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -30775,6 +31414,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -30786,6 +31426,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -30794,6 +31435,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -30802,6 +31444,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -30813,6 +31456,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -30839,6 +31483,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -30850,6 +31495,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz", "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==", + "license": "MIT", "peer": true, "dependencies": { "semver-regex": "^4.0.5", @@ -30888,6 +31534,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -30896,12 +31543,14 @@ "node_modules/flush-write-stream/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/flush-write-stream/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -30915,12 +31564,14 @@ "node_modules/flush-write-stream/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/flush-write-stream/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -30929,6 +31580,7 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.8.1.tgz", "integrity": "sha512-/LFZOIo82WDsyyv7h7oc0MJF9ACOvDRdx9rWPZ2pgMfNWu/z8hQDBtOchuB/0BVLmuFOZjV02YwUVzNsWx/EzA==", + "license": "MIT", "dependencies": { "tslib": "^1.9.3" }, @@ -30939,7 +31591,8 @@ "node_modules/focus-lock/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, "node_modules/follow-redirects": { "version": "1.15.2", @@ -30977,6 +31630,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" @@ -30989,6 +31643,7 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", @@ -31027,6 +31682,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -31042,6 +31698,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -31050,6 +31707,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -31064,6 +31722,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -31079,6 +31738,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -31089,12 +31749,14 @@ "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -31110,6 +31772,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -31124,6 +31787,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -31131,12 +31795,14 @@ "node_modules/fork-ts-checker-webpack-plugin/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.4", "ajv": "^6.12.2", @@ -31154,6 +31820,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -31165,6 +31832,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -31176,6 +31844,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -31212,6 +31881,7 @@ "url": "https://opencollective.com/formik" } ], + "license": "Apache-2.0", "dependencies": { "@types/hoist-non-react-statics": "^3.3.1", "deepmerge": "^2.1.1", @@ -31230,6 +31900,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -31238,6 +31909,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -31246,6 +31918,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", "engines": { "node": "*" }, @@ -31268,6 +31941,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "license": "MIT", "dependencies": { "@motionone/dom": "10.12.0", "framesync": "6.0.1", @@ -31288,6 +31962,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "license": "MIT", "dependencies": { "tslib": "^2.1.0" } @@ -31296,6 +31971,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -31304,6 +31980,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -31312,12 +31989,14 @@ "node_modules/from2/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/from2/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -31331,12 +32010,14 @@ "node_modules/from2/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/from2/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -31371,13 +32052,15 @@ "node_modules/fs-monkey": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "license": "Unlicense" }, "node_modules/fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -31388,12 +32071,14 @@ "node_modules/fs-write-stream-atomic/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -31407,12 +32092,14 @@ "node_modules/fs-write-stream-atomic/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/fs-write-stream-atomic/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -31446,6 +32133,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -31519,6 +32207,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "license": "MIT", "peer": true, "engines": { "node": "*" @@ -31542,14 +32231,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "license": "ISC" @@ -31696,6 +32377,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-2.3.2.tgz", "integrity": "sha512-O2GWvQkhnbDoWFUJfaBlDIKUEdND8ATpBXD6KXcbhxlfktyD/d8w6mkzM/IlQEqGZAMz/PW6j6Hv53BiigKLUQ==", + "license": "MIT", "dependencies": { "mem": "^8.0.0" }, @@ -31711,9 +32393,10 @@ } }, "node_modules/gh-pages": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.1.1.tgz", - "integrity": "sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.2.0.tgz", + "integrity": "sha512-HMXJ8th9u5wRXaZCnLcs/d3oVvCHiZkaP5KQExQljYGwJjQbSPyTdHe/Gc1IvYUR/rWiZLxNobIqfoMHKTKjHQ==", + "license": "MIT", "dependencies": { "async": "^3.2.4", "commander": "^11.0.0", @@ -31721,7 +32404,7 @@ "filenamify": "^4.3.0", "find-cache-dir": "^3.3.1", "fs-extra": "^11.1.1", - "globby": "^6.1.0" + "globby": "^11.1.0" }, "bin": { "gh-pages": "bin/gh-pages.js", @@ -31731,21 +32414,11 @@ "node": ">=10" } }, - "node_modules/gh-pages/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/gh-pages/node_modules/commander": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", "engines": { "node": ">=16" } @@ -31754,6 +32427,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -31770,6 +32444,7 @@ "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -31779,33 +32454,11 @@ "node": ">=14.14" } }, - "node_modules/gh-pages/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gh-pages/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/git-log-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", + "license": "MIT", "peer": true, "dependencies": { "argv-formatter": "~1.0.0", @@ -31820,12 +32473,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT", "peer": true }, "node_modules/git-log-parser/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -31841,12 +32496,14 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT", "peer": true }, "node_modules/git-log-parser/node_modules/split2": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", + "license": "ISC", "peer": true, "dependencies": { "through2": "~2.0.0" @@ -31856,6 +32513,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -31865,6 +32523,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", "peer": true, "dependencies": { "readable-stream": "~2.3.6", @@ -31913,6 +32572,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/git-revision-webpack-plugin/-/git-revision-webpack-plugin-5.0.0.tgz", "integrity": "sha512-RptQN/4UKcEPkCBmRy8kLPo5i8MnF8+XfAgFYN9gbwmKLTLx4YHsQw726H+C5+sIGDixDkmGL3IxPA2gKo+u4w==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -31963,7 +32623,8 @@ "node_modules/github-slugger": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" }, "node_modules/glob": { "version": "7.2.3", @@ -31997,6 +32658,7 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "license": "ISC", "dependencies": { "@types/glob": "*" }, @@ -32015,6 +32677,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "license": "MIT", "dependencies": { "min-document": "^2.19.0", "process": "^0.11.10" @@ -32128,6 +32791,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "license": "MIT", "optional": true, "dependencies": { "delegate": "^3.1.2" @@ -32164,69 +32828,14 @@ "node_modules/gud": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" - }, - "node_modules/gulp-babel": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-6.1.3.tgz", - "integrity": "sha512-tm15R3rt4gO59WXCuqrwf4QXJM9VIJC+0J2NPYSC6xZn+cZRD5y5RPGAiHaDxCJq7Rz5BDljlrk3cEjWADF+wQ==", - "dependencies": { - "babel-core": "^6.23.1", - "object-assign": "^4.0.1", - "plugin-error": "^1.0.1", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-babel/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/gulp-babel/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/gulp-babel/node_modules/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==" - }, - "node_modules/gulp-babel/node_modules/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/gulp-babel/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==", + "license": "MIT" }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -32240,7 +32849,8 @@ "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" }, "node_modules/handlebars": { "version": "4.7.7", @@ -32289,6 +32899,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -32300,6 +32911,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -32322,6 +32934,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", "integrity": "sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==", + "license": "MIT", "dependencies": { "is-glob": "^3.0.0" }, @@ -32333,6 +32946,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.0" }, @@ -32451,6 +33065,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -32463,6 +33078,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -32472,6 +33088,7 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", "integrity": "sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==", + "license": "MIT/X11", "dependencies": { "traverse": ">=0.2.4" }, @@ -32494,6 +33111,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.3", "comma-separated-tokens": "^1.0.0", @@ -32512,6 +33130,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "license": "MIT", "dependencies": { "@types/parse5": "^5.0.0", "hastscript": "^6.0.0", @@ -32529,6 +33148,7 @@ "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -32538,6 +33158,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "hast-util-from-parse5": "^6.0.0", @@ -32558,12 +33179,14 @@ "node_modules/hast-util-raw/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" }, "node_modules/hast-util-to-parse5": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "license": "MIT", "dependencies": { "hast-to-hyperscript": "^9.0.0", "property-information": "^5.0.0", @@ -32580,6 +33203,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", @@ -32596,6 +33220,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", "bin": { "he": "bin/he" } @@ -32603,7 +33228,8 @@ "node_modules/hey-listen": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "license": "MIT" }, "node_modules/highlight.js": { "version": "9.18.5", @@ -32611,6 +33237,7 @@ "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==", "deprecated": "Support has ended for 9.x series. Upgrade to @latest", "hasInstallScript": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -32619,6 +33246,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.7.6" } @@ -32627,6 +33255,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -32637,6 +33266,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -32645,6 +33275,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "license": "MIT", "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.1" @@ -32657,6 +33288,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", + "license": "MIT", "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -32691,6 +33323,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -32701,12 +33334,14 @@ "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -32720,12 +33355,14 @@ "node_modules/hpack.js/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -32734,6 +33371,7 @@ "version": "5.0.9", "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.0.9.tgz", "integrity": "sha512-QGeoFYwgQ582EDvrBx0+ejIz76/LuQcwwkmSR4ueKncjl2yWbciA45Kfz/LrHvWR3CgtKnxKFkr4Mpq2Sh1QNg==", + "license": "MIT", "dependencies": { "domhandler": "5.0.3", "htmlparser2": "9.1.0" @@ -32743,6 +33381,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -32761,12 +33400,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/html-dom-parser/node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -32781,6 +33422,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -32794,6 +33436,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -32812,6 +33455,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -32823,6 +33467,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -32843,7 +33488,8 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/html-escaper": { "version": "2.0.2", @@ -32853,6 +33499,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz", "integrity": "sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA==", + "license": "MIT", "dependencies": { "html-minifier-terser": "^5.1.1", "htmlparser2": "^4.1.0", @@ -32874,6 +33521,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -32887,6 +33535,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -32906,12 +33555,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/html-loader/node_modules/domhandler": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.0.1" }, @@ -32926,6 +33577,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -32939,6 +33591,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -32953,6 +33606,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -32961,6 +33615,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^3.0.0", @@ -32972,6 +33627,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -32985,6 +33641,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.1", "clean-css": "^4.2.3", @@ -33005,6 +33662,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -33013,6 +33671,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -33028,12 +33687,14 @@ "node_modules/html-minifier-terser/node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/html-parse-stringify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", "dependencies": { "void-elements": "3.1.0" } @@ -33042,6 +33703,7 @@ "version": "5.1.12", "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.1.12.tgz", "integrity": "sha512-OPv8fsIvxxv/+pLj9mYvyNu8PE5dPMowTRdd5VHpcoZpXlstp8eYCxQ5rzqAE5Tb75rhdiWUXnPltfb62zCVjg==", + "license": "MIT", "dependencies": { "domhandler": "5.0.3", "html-dom-parser": "5.0.9", @@ -33067,12 +33729,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/html-react-parser/node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -33097,6 +33761,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -33106,6 +33771,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "license": "MIT", "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -33137,6 +33803,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", "dependencies": { "source-map": "~0.6.0" }, @@ -33148,6 +33815,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -33156,6 +33824,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -33176,6 +33845,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -33184,6 +33854,7 @@ "version": "2.0.17", "resolved": "https://registry.npmjs.org/html-webpack-tags-plugin/-/html-webpack-tags-plugin-2.0.17.tgz", "integrity": "sha512-TKT8hnumMni6ztKfWZpP+UBeA7+aUn+qQQ4c9wT/p1IGTO/QWoIc19E+ZrxCcToDMjBO1NMYWkUbW4c4NtlGvg==", + "license": "MIT", "dependencies": { "glob": "^7.1.4", "minimatch": "^3.0.4", @@ -33197,6 +33868,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", "dependencies": { "css-line-break": "^2.1.0", "text-segmentation": "^1.0.3" @@ -33226,12 +33898,14 @@ "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -33247,6 +33921,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -33254,12 +33929,14 @@ "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -33286,6 +33963,7 @@ "version": "0.19.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "license": "MIT", "dependencies": { "http-proxy": "^1.17.0", "is-glob": "^4.0.0", @@ -33300,6 +33978,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -33320,6 +33999,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -33331,6 +34011,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -33345,6 +34026,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -33355,12 +34037,14 @@ "node_modules/http-proxy-middleware/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/http-proxy-middleware/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -33369,6 +34053,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -33380,6 +34065,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -33391,6 +34077,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -33414,6 +34101,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -33425,7 +34113,8 @@ "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "license": "MIT" }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -33471,6 +34160,7 @@ "version": "6.8.0", "resolved": "https://registry.npmjs.org/i18n-iso-countries/-/i18n-iso-countries-6.8.0.tgz", "integrity": "sha512-jJs/+CA6+VUICFxqGcB0vFMERGfhfvyNk+8Vb9EagSZkl7kSpm/kT0VyhvzM/zixDWEV/+oN9L7v/GT9BwzoGg==", + "license": "MIT", "dependencies": { "diacritics": "1.3.0" }, @@ -33496,6 +34186,7 @@ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" } ], + "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.6" } @@ -33514,6 +34205,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -33524,7 +34216,8 @@ "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" }, "node_modules/identity-obj-proxy": { "version": "3.0.0", @@ -33559,7 +34252,8 @@ "node_modules/iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "license": "MIT" }, "node_modules/ignore": { "version": "5.2.4", @@ -33572,7 +34266,8 @@ "node_modules/ignore-styles": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ignore-styles/-/ignore-styles-5.0.1.tgz", - "integrity": "sha512-gQQmIznCETPLEzfg1UH4Cs2oRq+HBPl8quroEUNXT8oybEG7/0lqI3dGgDSRry6B9HcCXw3PVkFFS0FF3CMddg==" + "integrity": "sha512-gQQmIznCETPLEzfg1UH4Cs2oRq+HBPl8quroEUNXT8oybEG7/0lqI3dGgDSRry6B9HcCXw3PVkFFS0FF3CMddg==", + "license": "MIT" }, "node_modules/ignore-walk": { "version": "5.0.1", @@ -33608,6 +34303,7 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "license": "MIT", "bin": { "image-size": "bin/image-size.js" }, @@ -33618,12 +34314,14 @@ "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" }, "node_modules/immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -33653,6 +34351,7 @@ "version": "1.3.4", "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.4.tgz", "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==", + "license": "MIT", "dependencies": { "debug": "^4.3.4", "import-meta-resolve": "^4.0.0" @@ -33690,6 +34389,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -33713,6 +34413,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -33810,7 +34511,8 @@ "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "license": "MIT" }, "node_modules/inquirer": { "version": "8.2.5", @@ -33905,6 +34607,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "license": "MIT", "dependencies": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" @@ -33937,6 +34640,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", "integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==", + "license": "MIT", "dependencies": { "from2": "^2.3.0", "p-is-promise": "^3.0.0" @@ -33952,6 +34656,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } @@ -33964,6 +34669,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -33972,6 +34678,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -33987,6 +34694,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -34214,6 +34922,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "license": "MIT", "dependencies": { "is-object": "^1.0.1", "is-window": "^1.0.2" @@ -34250,6 +34959,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "license": "MIT", "engines": { "node": ">=0.10.0" }, @@ -34267,7 +34977,8 @@ "node_modules/is-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "license": "MIT" }, "node_modules/is-generator-fn": { "version": "2.1.0", @@ -34311,7 +35022,8 @@ "node_modules/is-lite": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-lite/-/is-lite-1.2.1.tgz", - "integrity": "sha512-pgF+L5bxC+10hLBgf6R2P4ZZUBOQIIacbdo8YvuCP8/JvsWxG7aZ9p10DYuLtifFci4l3VITphhMlMV4Y+urPw==" + "integrity": "sha512-pgF+L5bxC+10hLBgf6R2P4ZZUBOQIIacbdo8YvuCP8/JvsWxG7aZ9p10DYuLtifFci4l3VITphhMlMV4Y+urPw==", + "license": "MIT" }, "node_modules/is-map": { "version": "2.0.2", @@ -34323,7 +35035,8 @@ "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" }, "node_modules/is-negative-zero": { "version": "2.0.3", @@ -34367,6 +35080,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -34375,6 +35089,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -34383,6 +35098,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "license": "MIT", "dependencies": { "is-path-inside": "^2.1.0" }, @@ -34394,6 +35110,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "license": "MIT", "dependencies": { "path-is-inside": "^1.0.2" }, @@ -34548,6 +35265,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "license": "MIT", "optional": true }, "node_modules/is-weakmap": { @@ -34582,6 +35300,7 @@ "version": "4.1.16", "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", "engines": { "node": ">=12.13" }, @@ -34593,6 +35312,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -34601,7 +35321,8 @@ "node_modules/is-window": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==" + "integrity": "sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==", + "license": "MIT" }, "node_modules/is-windows": { "version": "1.0.2", @@ -34614,6 +35335,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -34648,6 +35370,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "license": "MIT", "dependencies": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" @@ -34657,6 +35380,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -34665,6 +35389,7 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "license": "MIT", "dependencies": { "encoding": "^0.1.11", "is-stream": "^1.0.1" @@ -34674,20 +35399,17 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.1", "unfetch": "^4.2.0" } }, - "node_modules/isomorphic-unfetch/node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" - }, "node_modules/issue-parser": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz", "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==", + "license": "MIT", "dependencies": { "lodash.capitalize": "^4.2.1", "lodash.escaperegexp": "^4.1.2", @@ -34777,6 +35499,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -34785,6 +35508,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "license": "MIT", "dependencies": { "es-get-iterator": "^1.0.2", "iterate-iterator": "^1.0.1" @@ -34797,6 +35521,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -34885,6 +35610,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", + "license": "MIT", "peer": true, "engines": { "node": ">= 0.6.0" @@ -38234,17 +38960,20 @@ "node_modules/js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "license": "BSD-3-Clause" }, "node_modules/js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", - "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", + "license": "MIT" }, "node_modules/js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -38268,6 +38997,7 @@ "version": "21.1.2", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.2.tgz", "integrity": "sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==", + "license": "MIT", "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.2", @@ -38311,12 +39041,14 @@ "node_modules/jsdom-global": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-2.1.1.tgz", - "integrity": "sha512-nVZiKQhXZzmkFSF+AfpvErIYuzPEuBV684gYpWagtwWTLiy0p5EgQbP7gmNNA6/qxFb8l1E5w1NjES5nSBCw5A==" + "integrity": "sha512-nVZiKQhXZzmkFSF+AfpvErIYuzPEuBV684gYpWagtwWTLiy0p5EgQbP7gmNNA6/qxFb8l1E5w1NjES5nSBCw5A==", + "license": "MIT" }, "node_modules/jsdom/node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -38325,9 +39057,10 @@ } }, "node_modules/jsdom/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -38358,7 +39091,8 @@ "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "node_modules/json-schema-traverse": { "version": "1.0.0", @@ -38368,6 +39102,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "isarray": "^2.0.5", @@ -38428,6 +39163,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "license": "Public Domain", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -38444,6 +39180,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -38451,7 +39188,8 @@ "node_modules/jsonp/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/jsonparse": { "version": "1.3.1", @@ -38464,6 +39202,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -38497,6 +39236,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -38515,12 +39255,23 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "license": "MIT", "peer": true }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "license": "ISC" }, "node_modules/kind-of": { "version": "6.0.3", @@ -38540,6 +39291,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -38553,6 +39305,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.5.0", "app-root-dir": "^1.0.2", @@ -38571,6 +39324,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -38825,6 +39579,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "license": "MIT", "dependencies": { "immediate": "~3.0.5" } @@ -38833,6 +39588,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", "engines": { "node": ">=10" } @@ -39045,6 +39801,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -39058,6 +39815,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -39068,12 +39826,14 @@ "node_modules/loadjs": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.3.0.tgz", - "integrity": "sha512-vNX4ZZLJBeDEOBvdr2v/F+0aN5oMuPu7JTqrMwp+DtgK+AryOlpy6Xtm2/HpNr+azEa828oQjOtWsB6iDtSfSQ==" + "integrity": "sha512-vNX4ZZLJBeDEOBvdr2v/F+0aN5oMuPu7JTqrMwp+DtgK+AryOlpy6Xtm2/HpNr+azEa828oQjOtWsB6iDtSfSQ==", + "license": "MIT" }, "node_modules/localforage": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "license": "Apache-2.0", "dependencies": { "lie": "3.1.1" } @@ -39098,7 +39858,8 @@ "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", @@ -39108,12 +39869,14 @@ "node_modules/lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==" + "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", + "license": "MIT" }, "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==" + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -39122,18 +39885,21 @@ "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "license": "MIT", "peer": true }, "node_modules/lodash.groupby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" + "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==", + "license": "MIT" }, "node_modules/lodash.isfunction": { "version": "3.0.9", @@ -39152,7 +39918,8 @@ "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" }, "node_modules/lodash.kebabcase": { "version": "4.1.1", @@ -39162,7 +39929,8 @@ "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -39176,12 +39944,14 @@ "node_modules/lodash.pickby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", - "integrity": "sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==" + "integrity": "sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==", + "license": "MIT" }, "node_modules/lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==" + "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", + "license": "MIT" }, "node_modules/lodash.snakecase": { "version": "4.1.1", @@ -39191,7 +39961,8 @@ "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" }, "node_modules/lodash.startcase": { "version": "4.4.0", @@ -39201,7 +39972,8 @@ "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", @@ -39214,7 +39986,8 @@ "node_modules/lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==" + "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", + "license": "MIT" }, "node_modules/lodash.upperfirst": { "version": "4.3.1", @@ -39373,6 +40146,7 @@ "version": "1.9.2", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "license": "MIT", "engines": { "node": ">= 0.6.0" }, @@ -39404,6 +40178,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "license": "MIT", "optional": true, "dependencies": { "currently-unhandled": "^0.4.1", @@ -39417,6 +40192,7 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "license": "MIT", "peer": true, "dependencies": { "get-func-name": "^2.0.1" @@ -39426,6 +40202,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -39434,6 +40211,7 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.11.0.tgz", "integrity": "sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A==", + "license": "MIT", "dependencies": { "fault": "^1.0.2", "highlight.js": "~9.13.0" @@ -39444,6 +40222,7 @@ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==", "deprecated": "Version no longer supported. Upgrade to @latest", + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -39467,6 +40246,7 @@ "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.8" } @@ -39526,6 +40306,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "license": "MIT", "dependencies": { "p-defer": "^1.0.0" }, @@ -39554,7 +40335,8 @@ "node_modules/map-or-similar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", - "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==" + "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", + "license": "MIT" }, "node_modules/map-visit": { "version": "1.0.0", @@ -39570,6 +40352,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -39579,6 +40362,7 @@ "version": "6.11.4", "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz", "integrity": "sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw==", + "license": "MIT", "dependencies": { "prop-types": "^15.6.2", "unquote": "^1.1.0" @@ -39594,6 +40378,7 @@ "version": "0.3.19", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "license": "MIT", "bin": { "marked": "bin/marked" }, @@ -39605,6 +40390,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/marksy/-/marksy-8.0.0.tgz", "integrity": "sha512-mmHcKZojCQAGuKTuu3153viXdCuxUmsSxomFaSOBTkOlfWFOZBmDhmJkOp0CsPMNRQ7m6oN2wflvAHLpBNZVPw==", + "license": "MIT", "dependencies": { "@babel/standalone": "^7.4.5", "he": "^1.2.0", @@ -39624,6 +40410,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -39634,6 +40421,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -39643,12 +40431,14 @@ "node_modules/md5/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/mdast-squeeze-paragraphs": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "license": "MIT", "dependencies": { "unist-util-remove": "^2.0.0" }, @@ -39661,6 +40451,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "license": "MIT", "dependencies": { "unist-util-visit": "^2.0.0" }, @@ -39689,6 +40480,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -39733,17 +40525,20 @@ "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "license": "MIT" }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -39752,6 +40547,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "license": "MIT", "dependencies": { "map-age-cleaner": "^0.1.3", "mimic-fn": "^3.1.0" @@ -39767,6 +40563,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -39775,6 +40572,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", "dependencies": { "fs-monkey": "^1.0.4" }, @@ -39785,12 +40583,14 @@ "node_modules/memoize-one": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" }, "node_modules/memoizerific": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", + "license": "MIT", "dependencies": { "map-or-similar": "^1.5.0" } @@ -39799,11 +40599,6 @@ "version": "0.2.0", "license": "MIT" }, - "node_modules/memory-web-storage": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/memory-web-storage/-/memory-web-storage-0.1.0.tgz", - "integrity": "sha512-AVVlRidjJlKqdzdxdsvXgX24m2eA/8FFlqBrvHN9JRlzMuYCGev7o0bjkP207UhkqVtIg1sNyEHBq2uvykA/3w==" - }, "node_modules/meow": { "version": "8.1.2", "dev": true, @@ -39851,6 +40646,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -39859,6 +40655,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "license": "MIT", "dependencies": { "is-plain-obj": "^1.1" }, @@ -39881,6 +40678,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -39888,7 +40686,8 @@ "node_modules/microevent.ts": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "license": "MIT" }, "node_modules/micromark": { "version": "2.11.4", @@ -39924,6 +40723,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -39935,7 +40735,8 @@ "node_modules/miller-rabin/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" }, "node_modules/mime": { "version": "4.0.4", @@ -39944,6 +40745,7 @@ "funding": [ "https://github.com/sponsors/broofa" ], + "license": "MIT", "bin": { "mime": "bin/cli.js" }, @@ -39994,6 +40796,7 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -40014,6 +40817,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -40027,6 +40831,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -40035,12 +40840,14 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" }, "node_modules/minimatch": { "version": "3.1.2", @@ -40163,6 +40970,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "license": "BSD-2-Clause", "dependencies": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -40186,6 +40994,7 @@ "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -40196,12 +41005,14 @@ "node_modules/mississippi/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/mississippi/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -40215,12 +41026,14 @@ "node_modules/mississippi/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/mississippi/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -40229,15 +41042,17 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.2.tgz", + "integrity": "sha512-3btxP0O9iGADGWAkteQ8mzDtEspZqu4I32y4GZYCV5BrwtzdcRpF4dQgNdJadCrbBx7Lu6Sq9AVrerMHR0Hkmw==", + "license": "MIT" }, "node_modules/mixin-deep": { "version": "1.3.2", @@ -40277,6 +41092,7 @@ "version": "6.13.3", "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.13.3.tgz", "integrity": "sha512-YtAS+ZMbdpbHYUU4ESht3na8KiX11KuMT1yOiKtbKlQ0GZkHDYPKyEw/Tdp7h7aHyLrTWj2TBaSNJ6bCr638iQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/mobx" @@ -40286,6 +41102,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/mobx-persist-store/-/mobx-persist-store-1.1.2.tgz", "integrity": "sha512-YY5werUDcJWiQsOPmdFae+XxeVSdyag9NfDsJrYHyAkBVWb9BzXVvrMOh3XKV6EnxMjeqRxbwrXFkgIcLx/H2w==", + "license": "MIT", "peerDependencies": { "mobx": "*" } @@ -40294,6 +41111,7 @@ "version": "7.6.0", "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-7.6.0.tgz", "integrity": "sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA==", + "license": "MIT", "dependencies": { "mobx-react-lite": "^3.4.0" }, @@ -40318,6 +41136,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.4.3.tgz", "integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/mobx" @@ -40336,9 +41155,10 @@ } }, "node_modules/mobx-utils": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/mobx-utils/-/mobx-utils-6.0.8.tgz", - "integrity": "sha512-fPNt0vJnHwbQx9MojJFEnJLfM3EMGTtpy4/qOOW6xueh1mPofMajrbYAUvByMYAvCJnpy1A5L0t+ZVB5niKO4g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/mobx-utils/-/mobx-utils-6.1.0.tgz", + "integrity": "sha512-P3qUVDFp3Kv5HXD7EIGJn3zlgJJnN+/ZpFHWQ+u6YNN1xDxY53iMvsQ9fM8kauTVdDmt7ulDgDQtDrOxb1NS9Q==", + "license": "MIT", "peerDependencies": { "mobx": "^6.0.0" } @@ -40347,6 +41167,7 @@ "version": "1.1.24", "resolved": "https://registry.npmjs.org/mock-local-storage/-/mock-local-storage-1.1.24.tgz", "integrity": "sha512-NEfmw+yEK9oe6xCfOnTaJ6Dz+L3eu6vsZopJlxflXYxr7Mg3EV+S0NXKUQlY9AAeDEdaPZDSUGq1Gi6kLSa5PA==", + "license": "MIT", "dependencies": { "core-js": "^3.30.2", "global": "^4.3.2" @@ -40357,6 +41178,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -40374,6 +41196,7 @@ "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", "engines": { "node": "*" } @@ -40383,6 +41206,7 @@ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -40395,12 +41219,14 @@ "node_modules/move-concurrently/node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "license": "ISC" }, "node_modules/move-concurrently/node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -40413,6 +41239,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -40424,6 +41251,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -40436,6 +41264,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "license": "MIT", "dependencies": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" @@ -40447,7 +41276,8 @@ "node_modules/multicast-dns-service-types": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==" + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "license": "MIT" }, "node_modules/multimatch": { "version": "5.0.0", @@ -40484,6 +41314,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", "peer": true, "dependencies": { "any-promise": "^1.0.0", @@ -40492,15 +41323,17 @@ } }, "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", + "license": "MIT", "optional": true }, "node_modules/nanoclone": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.7", @@ -40561,22 +41394,26 @@ "node_modules/nerf-dart": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==" + "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", + "license": "MIT" }, "node_modules/nested-error-stacks": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==" + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", + "license": "MIT" }, "node_modules/nested-object-assign": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nested-object-assign/-/nested-object-assign-1.0.4.tgz", - "integrity": "sha512-FlZ7oN9ICt+fbcJ4ag2IsALIcalfE/E16ttdSA8peBiHJI+oEKdOcafqDnUbeUe5NwWGn/m9zZGO9qrAGzfesg==" + "integrity": "sha512-FlZ7oN9ICt+fbcJ4ag2IsALIcalfE/E16ttdSA8peBiHJI+oEKdOcafqDnUbeUe5NwWGn/m9zZGO9qrAGzfesg==", + "license": "MIT" }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" }, "node_modules/nice-try": { "version": "1.0.5", @@ -40586,6 +41423,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz", "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.1", @@ -40599,6 +41437,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "type-detect": "4.0.8" @@ -40608,6 +41447,7 @@ "version": "13.0.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.2.tgz", "integrity": "sha512-4Bb+oqXZTSTZ1q27Izly9lv8B9dlV61CROxPiVtywwzv5SnytJqhvYe6FclHYuXml4cd1VHPo1zd5PmTeJozvA==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.1" @@ -40617,6 +41457,7 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=16" @@ -40626,6 +41467,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -40640,6 +41482,7 @@ "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "license": "MIT", "dependencies": { "minimatch": "^3.0.2" }, @@ -40651,6 +41494,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "license": "MIT", "peer": true, "dependencies": { "@sindresorhus/is": "^4.6.0", @@ -40701,6 +41545,7 @@ "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.0.0" } @@ -40785,6 +41630,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "license": "MIT", "dependencies": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -40815,6 +41661,7 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "license": "MIT", "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -40824,22 +41671,26 @@ "node_modules/node-libs-browser/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/node-libs-browser/node_modules/path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "license": "MIT" }, "node_modules/node-libs-browser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "license": "MIT" }, "node_modules/node-libs-browser/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -40853,12 +41704,14 @@ "node_modules/node-libs-browser/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/node-libs-browser/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -41000,6 +41853,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -41008,9 +41862,9 @@ } }, "node_modules/npm": { - "version": "10.8.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", - "integrity": "sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.0.tgz", + "integrity": "sha512-ZanDioFylI9helNhl2LNd+ErmVD+H5I53ry41ixlLyCBgkuYb+58CvbAp99hW+zr5L9W4X7CchSoeqKdngOLSw==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -41081,20 +41935,28 @@ "which", "write-file-atomic" ], + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.5.4", - "@npmcli/config": "^8.3.4", - "@npmcli/fs": "^3.1.1", - "@npmcli/map-workspaces": "^3.0.6", - "@npmcli/package-json": "^5.2.0", - "@npmcli/promise-spawn": "^7.0.2", - "@npmcli/redact": "^2.0.1", - "@npmcli/run-script": "^8.1.0", + "@npmcli/arborist": "^8.0.0", + "@npmcli/config": "^9.0.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "@npmcli/promise-spawn": "^8.0.1", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", "@sigstore/tuf": "^2.3.4", - "abbrev": "^2.0.0", + "abbrev": "^3.0.0", "archy": "~1.0.0", - "cacache": "^18.0.4", + "cacache": "^19.0.1", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", @@ -41102,54 +41964,54 @@ "fs-minipass": "^3.0.3", "glob": "^10.4.5", "graceful-fs": "^4.2.11", - "hosted-git-info": "^7.0.2", - "ini": "^4.1.3", - "init-package-json": "^6.0.3", + "hosted-git-info": "^8.0.0", + "ini": "^5.0.0", + "init-package-json": "^7.0.1", "is-cidr": "^5.1.0", - "json-parse-even-better-errors": "^3.0.2", - "libnpmaccess": "^8.0.6", - "libnpmdiff": "^6.1.4", - "libnpmexec": "^8.1.4", - "libnpmfund": "^5.0.12", - "libnpmhook": "^10.0.5", - "libnpmorg": "^6.0.6", - "libnpmpack": "^7.0.4", - "libnpmpublish": "^9.0.9", - "libnpmsearch": "^7.0.6", - "libnpmteam": "^6.0.5", - "libnpmversion": "^6.0.3", - "make-fetch-happen": "^13.0.1", + "json-parse-even-better-errors": "^4.0.0", + "libnpmaccess": "^9.0.0", + "libnpmdiff": "^7.0.0", + "libnpmexec": "^9.0.0", + "libnpmfund": "^6.0.0", + "libnpmhook": "^11.0.0", + "libnpmorg": "^7.0.0", + "libnpmpack": "^8.0.0", + "libnpmpublish": "^10.0.0", + "libnpmsearch": "^8.0.0", + "libnpmteam": "^7.0.0", + "libnpmversion": "^7.0.0", + "make-fetch-happen": "^14.0.1", "minimatch": "^9.0.5", "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", "node-gyp": "^10.2.0", - "nopt": "^7.2.1", - "normalize-package-data": "^6.0.2", - "npm-audit-report": "^5.0.0", - "npm-install-checks": "^6.3.0", - "npm-package-arg": "^11.0.3", - "npm-pick-manifest": "^9.1.0", - "npm-profile": "^10.0.0", - "npm-registry-fetch": "^17.1.0", - "npm-user-validate": "^2.0.1", + "nopt": "^8.0.0", + "normalize-package-data": "^7.0.0", + "npm-audit-report": "^6.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-profile": "^11.0.1", + "npm-registry-fetch": "^18.0.1", + "npm-user-validate": "^3.0.0", "p-map": "^4.0.0", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.1", - "proc-log": "^4.2.0", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", "qrcode-terminal": "^0.12.0", - "read": "^3.0.1", + "read": "^4.0.0", "semver": "^7.6.3", "spdx-expression-parse": "^4.0.0", - "ssri": "^10.0.6", + "ssri": "^12.0.0", "supports-color": "^9.4.0", "tar": "^6.2.1", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.1", - "which": "^4.0.0", - "write-file-atomic": "^5.0.1" + "validate-npm-package-name": "^6.0.0", + "which": "^5.0.0", + "write-file-atomic": "^6.0.0" }, "bin": { "npm": "bin/npm-cli.js", @@ -41554,13 +42416,24 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/npm/node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { - "version": "2.2.2", + "version": "3.0.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -41571,47 +42444,47 @@ "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.5.4", + "version": "8.0.0", "inBundle": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.1", - "@npmcli/installed-package-contents": "^2.1.0", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.1.1", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.1.0", - "@npmcli/query": "^3.1.0", - "@npmcli/redact": "^2.0.0", - "@npmcli/run-script": "^8.1.0", - "bin-links": "^4.0.4", - "cacache": "^18.0.3", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^8.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.2", - "json-parse-even-better-errors": "^3.0.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", "json-stringify-nice": "^1.1.4", "lru-cache": "^10.2.2", "minimatch": "^9.0.4", - "nopt": "^7.2.1", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.2", - "npm-pick-manifest": "^9.0.1", - "npm-registry-fetch": "^17.0.1", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.0", - "proc-log": "^4.2.0", - "proggy": "^2.0.0", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^3.0.1", - "read-package-json-fast": "^3.0.2", + "read-package-json-fast": "^4.0.0", "semver": "^7.3.7", - "ssri": "^10.0.6", + "ssri": "^12.0.0", "treeverse": "^3.0.0", "walk-up-path": "^3.0.1" }, @@ -41619,178 +42492,178 @@ "arborist": "bin/index.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.3.4", + "version": "9.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/package-json": "^5.1.1", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", "ci-info": "^4.0.0", - "ini": "^4.1.2", - "nopt": "^7.2.1", - "proc-log": "^4.2.0", + "ini": "^5.0.0", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", "walk-up-path": "^3.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.1", + "version": "4.0.0", "inBundle": true, "license": "ISC", "dependencies": { "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.8", + "version": "6.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", + "version": "3.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "bin": { "installed-package-contents": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.6", + "version": "4.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" + "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "7.1.1", + "version": "8.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "cacache": "^18.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^18.0.0", - "proc-log": "^4.1.0", + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", + "version": "3.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "3.0.0", + "version": "4.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.2.0", + "version": "6.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", + "@npmcli/git": "^6.0.0", "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", "semver": "^7.5.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", + "version": "8.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/query": { - "version": "3.1.0", + "version": "4.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/redact": { - "version": "2.0.1", + "version": "3.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "8.1.0", + "version": "9.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "proc-log": "^5.0.0", + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@pkgjs/parseargs": { @@ -41845,6 +42718,133 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/agent": { + "version": "2.2.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/fs": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/cacache": { + "version": "18.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/make-fetch-happen": { + "version": "13.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/minipass-fetch": { + "version": "3.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/proc-log": { + "version": "4.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/ssri": { + "version": "10.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-filename": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-slug": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@sigstore/tuf": { "version": "2.3.4", "inBundle": true, @@ -41891,11 +42891,11 @@ } }, "node_modules/npm/node_modules/abbrev": { - "version": "2.0.0", + "version": "3.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/agent-base": { @@ -41956,17 +42956,18 @@ "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { - "version": "4.0.4", + "version": "5.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/binary-extensions": { @@ -41989,11 +42990,11 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "18.0.4", + "version": "19.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", + "@npmcli/fs": "^4.0.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", @@ -42001,13 +43002,82 @@ "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/minizlib": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/p-map": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/npm/node_modules/chalk": { @@ -42075,11 +43145,11 @@ } }, "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.3", + "version": "7.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/color-convert": { @@ -42266,14 +43336,14 @@ "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "7.0.2", + "version": "8.0.0", "inBundle": true, "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/http-cache-semantics": { @@ -42318,14 +43388,14 @@ } }, "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.5", + "version": "7.0.0", "inBundle": true, "license": "ISC", "dependencies": { "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/imurmurhash": { @@ -42345,28 +43415,28 @@ } }, "node_modules/npm/node_modules/ini": { - "version": "4.1.3", + "version": "5.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/init-package-json": { - "version": "6.0.3", + "version": "7.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/package-json": "^5.0.0", - "npm-package-arg": "^11.0.0", - "promzard": "^1.0.0", - "read": "^3.0.1", + "@npmcli/package-json": "^6.0.0", + "npm-package-arg": "^12.0.0", + "promzard": "^2.0.0", + "read": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/ip-address": { @@ -42441,11 +43511,11 @@ "license": "MIT" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", + "version": "4.0.0", "inBundle": true, "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/json-stringify-nice": { @@ -42475,158 +43545,158 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.6", + "version": "9.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^11.0.2", - "npm-registry-fetch": "^17.0.1" + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.1.4", + "version": "7.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.4", - "@npmcli/installed-package-contents": "^2.1.0", + "@npmcli/arborist": "^8.0.0", + "@npmcli/installed-package-contents": "^3.0.0", "binary-extensions": "^2.3.0", "diff": "^5.1.0", "minimatch": "^9.0.4", - "npm-package-arg": "^11.0.2", - "pacote": "^18.0.6", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", "tar": "^6.2.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "8.1.4", + "version": "9.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.4", - "@npmcli/run-script": "^8.1.0", + "@npmcli/arborist": "^8.0.0", + "@npmcli/run-script": "^9.0.1", "ci-info": "^4.0.0", - "npm-package-arg": "^11.0.2", - "pacote": "^18.0.6", - "proc-log": "^4.2.0", - "read": "^3.0.1", - "read-package-json-fast": "^3.0.2", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", + "read": "^4.0.0", + "read-package-json-fast": "^4.0.0", "semver": "^7.3.7", "walk-up-path": "^3.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.12", + "version": "6.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.4" + "@npmcli/arborist": "^8.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.5", + "version": "11.0.0", "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^17.0.1" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.6", + "version": "7.0.0", "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^17.0.1" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "7.0.4", + "version": "8.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.4", - "@npmcli/run-script": "^8.1.0", - "npm-package-arg": "^11.0.2", - "pacote": "^18.0.6" + "@npmcli/arborist": "^8.0.0", + "@npmcli/run-script": "^9.0.1", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.9", + "version": "10.0.0", "inBundle": true, "license": "ISC", "dependencies": { "ci-info": "^4.0.0", - "normalize-package-data": "^6.0.1", - "npm-package-arg": "^11.0.2", - "npm-registry-fetch": "^17.0.1", - "proc-log": "^4.2.0", + "normalize-package-data": "^7.0.0", + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1", + "proc-log": "^5.0.0", "semver": "^7.3.7", "sigstore": "^2.2.0", - "ssri": "^10.0.6" + "ssri": "^12.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.6", + "version": "8.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^17.0.1" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.5", + "version": "7.0.0", "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^17.0.1" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "6.0.3", + "version": "7.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.7", - "@npmcli/run-script": "^8.1.0", - "json-parse-even-better-errors": "^3.0.2", - "proc-log": "^4.2.0", + "@npmcli/git": "^6.0.1", + "@npmcli/run-script": "^9.0.1", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.7" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/lru-cache": { @@ -42635,25 +43705,24 @@ "license": "ISC" }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "13.0.1", + "version": "14.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", + "minipass-fetch": "^4.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", - "proc-log": "^4.2.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "ssri": "^12.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/minimatch": { @@ -42690,21 +43759,33 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.5", + "version": "4.0.0", "inBundle": true, "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "minizlib": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" }, "optionalDependencies": { "encoding": "^0.1.13" } }, + "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", "inBundle": true, @@ -42811,11 +43892,11 @@ "license": "MIT" }, "node_modules/npm/node_modules/mute-stream": { - "version": "1.0.0", + "version": "2.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/negotiator": { @@ -42849,7 +43930,109 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/nopt": { + "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/agent": { + "version": "2.2.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { + "version": "18.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { + "version": "13.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { + "version": "3.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { "version": "7.2.1", "inBundle": true, "license": "ISC", @@ -42863,132 +44046,221 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { + "version": "4.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { + "version": "10.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/nopt/node_modules/abbrev": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/normalize-package-data": { - "version": "6.0.2", + "version": "7.0.0", "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^8.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-audit-report": { - "version": "5.0.0", + "version": "6.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.1", + "version": "4.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.3.0", + "version": "7.1.0", "inBundle": true, "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", + "version": "4.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "11.0.3", + "version": "12.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "8.0.2", + "version": "9.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "ignore-walk": "^6.0.4" + "ignore-walk": "^7.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "9.1.0", + "version": "10.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-profile": { - "version": "10.0.0", + "version": "11.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^17.0.1", - "proc-log": "^4.0.0" + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0" }, "engines": { - "node": ">=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "17.1.0", + "version": "18.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/redact": "^2.0.0", + "@npmcli/redact": "^3.0.0", "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", + "make-fetch-happen": "^14.0.0", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" } }, "node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.1", + "version": "3.0.0", "inBundle": true, "license": "BSD-2-Clause", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/p-map": { @@ -43011,46 +44283,46 @@ "license": "BlueOak-1.0.0" }, "node_modules/npm/node_modules/pacote": { - "version": "18.0.6", + "version": "19.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", "sigstore": "^2.2.0", - "ssri": "^10.0.0", + "ssri": "^12.0.0", "tar": "^6.1.11" }, "bin": { "pacote": "bin/index.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/parse-conflict-json": { - "version": "3.0.1", + "version": "4.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", + "json-parse-even-better-errors": "^4.0.0", "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/path-key": { @@ -43089,19 +44361,19 @@ } }, "node_modules/npm/node_modules/proc-log": { - "version": "4.2.0", + "version": "5.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/proggy": { - "version": "2.0.0", + "version": "3.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/promise-all-reject-late": { @@ -43138,14 +44410,14 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "1.0.2", + "version": "2.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "read": "^3.0.1" + "read": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/qrcode-terminal": { @@ -43156,34 +44428,34 @@ } }, "node_modules/npm/node_modules/read": { - "version": "3.0.1", + "version": "4.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "^1.0.0" + "mute-stream": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/read-cmd-shim": { - "version": "4.0.0", + "version": "5.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/read-package-json-fast": { - "version": "3.0.2", + "version": "4.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/retry": { @@ -43194,6 +44466,20 @@ "node": ">= 4" } }, + "node_modules/npm/node_modules/rimraf": { + "version": "5.0.10", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", "inBundle": true, @@ -43335,14 +44621,14 @@ "license": "BSD-3-Clause" }, "node_modules/npm/node_modules/ssri": { - "version": "10.0.6", + "version": "12.0.0", "inBundle": true, "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/string-width": { @@ -43483,7 +44769,112 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/unique-filename": { + "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/agent": { + "version": "2.2.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/fs": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/cacache": { + "version": "18.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/make-fetch-happen": { + "version": "13.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/minipass-fetch": { + "version": "3.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/proc-log": { + "version": "4.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/ssri": { + "version": "10.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/unique-filename": { "version": "3.0.0", "inBundle": true, "license": "ISC", @@ -43494,7 +44885,7 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/unique-slug": { + "node_modules/npm/node_modules/tuf-js/node_modules/unique-slug": { "version": "4.0.0", "inBundle": true, "license": "ISC", @@ -43505,6 +44896,28 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/unique-filename": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", "inBundle": true, @@ -43529,11 +44942,11 @@ } }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.1", + "version": "6.0.0", "inBundle": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/walk-up-path": { @@ -43542,7 +44955,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/which": { - "version": "4.0.0", + "version": "5.0.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -43552,7 +44965,7 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/which/node_modules/isexe": { @@ -43657,7 +45070,7 @@ } }, "node_modules/npm/node_modules/write-file-atomic": { - "version": "5.0.1", + "version": "6.0.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -43665,7 +45078,7 @@ "signal-exit": "^4.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/yallist": { @@ -43691,6 +45104,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -43702,6 +45116,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -43721,6 +45136,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -44175,6 +45591,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "license": "MIT", "dependencies": { "array.prototype.reduce": "^1.0.6", "call-bind": "^1.0.7", @@ -44230,17 +45647,32 @@ "node_modules/objectorarray": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==" + "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==", + "license": "ISC" }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/oidc-client-ts": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/oidc-client-ts/-/oidc-client-ts-3.1.0.tgz", + "integrity": "sha512-IDopEXjiwjkmJLYZo6BTlvwOtnlSniWZkKZoXforC/oLZHC9wkIxd25Kwtmo5yKFMMVcsp3JY6bhcNJqdYk8+g==", + "license": "Apache-2.0", + "dependencies": { + "jwt-decode": "^4.0.0" + }, + "engines": { + "node": ">=18" + } }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -44252,6 +45684,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -44295,6 +45728,7 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } @@ -44303,6 +45737,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "license": "MIT", "dependencies": { "is-wsl": "^1.1.0" }, @@ -44314,6 +45749,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -44424,12 +45860,14 @@ "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "license": "MIT" }, "node_modules/os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -44445,6 +45883,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", + "license": "MIT", "dependencies": { "p-map": "^2.0.0" }, @@ -44456,6 +45895,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -44464,6 +45904,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -44483,6 +45924,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "license": "MIT", "dependencies": { "p-timeout": "^3.1.0" }, @@ -44497,6 +45939,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", + "license": "MIT", "dependencies": { "p-map": "^7.0.1" }, @@ -44511,6 +45954,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -44529,6 +45973,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -44618,6 +46063,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "license": "MIT", "dependencies": { "retry": "^0.12.0" }, @@ -44659,7 +46105,8 @@ "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" }, "node_modules/pacote": { "version": "13.6.2", @@ -44748,12 +46195,14 @@ "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" }, "node_modules/parallel-transform": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "license": "MIT", "dependencies": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -44763,12 +46212,14 @@ "node_modules/parallel-transform/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/parallel-transform/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -44782,12 +46233,14 @@ "node_modules/parallel-transform/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/parallel-transform/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -44796,6 +46249,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -44815,6 +46269,7 @@ "version": "5.1.7", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "license": "ISC", "dependencies": { "asn1.js": "^4.10.1", "browserify-aes": "^1.2.0", @@ -44876,6 +46331,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -44900,11 +46356,12 @@ } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.0.tgz", + "integrity": "sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -44914,6 +46371,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "license": "MIT", "peer": true, "dependencies": { "parse5": "^6.0.1" @@ -44923,12 +46381,14 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT", "peer": true }, "node_modules/parse5/node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -44940,6 +46400,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -44948,6 +46409,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -44963,12 +46425,14 @@ "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==" + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", @@ -44987,7 +46451,8 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" }, "node_modules/path-key": { "version": "3.1.1", @@ -45004,6 +46469,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -45018,12 +46484,14 @@ "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/path-scurry/node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -45031,7 +46499,8 @@ "node_modules/path-to-regexp": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", @@ -45044,6 +46513,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "license": "MIT", "peer": true, "engines": { "node": "*" @@ -45053,6 +46523,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "license": "MIT", "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -45094,6 +46565,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -45102,6 +46574,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "license": "MIT", "dependencies": { "pinkie": "^2.0.0" }, @@ -45121,6 +46594,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", + "license": "MIT", "peer": true, "dependencies": { "find-up": "^2.0.0", @@ -45134,6 +46608,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "license": "MIT", "peer": true, "dependencies": { "locate-path": "^2.0.0" @@ -45146,6 +46621,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "license": "MIT", "peer": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -45161,6 +46637,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "license": "MIT", "peer": true, "dependencies": { "p-locate": "^2.0.0", @@ -45174,6 +46651,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "license": "MIT", "peer": true, "dependencies": { "p-try": "^1.0.0" @@ -45186,6 +46664,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "license": "MIT", "peer": true, "dependencies": { "p-limit": "^1.1.0" @@ -45198,6 +46677,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -45207,6 +46687,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", "peer": true, "dependencies": { "error-ex": "^1.3.1", @@ -45220,6 +46701,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -45229,6 +46711,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -45238,6 +46721,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -45305,31 +46789,6 @@ "semver-compare": "^1.0.0" } }, - "node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/plugin-error/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/plur": { "version": "4.0.0", "license": "MIT", @@ -45347,6 +46806,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", "peer": true, "engines": { "node": ">=10.13.0" @@ -45356,6 +46816,7 @@ "version": "1.6.4", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "license": "MIT", "dependencies": { "ts-pnp": "^1.1.6" }, @@ -45367,6 +46828,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.17.8" }, @@ -45378,6 +46840,7 @@ "version": "11.0.3", "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", + "license": "MIT", "dependencies": { "framesync": "6.0.1", "hey-listen": "^1.0.8", @@ -45390,6 +46853,7 @@ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -45399,6 +46863,7 @@ "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "license": "MIT", "dependencies": { "async": "^2.6.4", "debug": "^3.2.7", @@ -45412,6 +46877,7 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } @@ -45420,6 +46886,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -45428,6 +46895,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -45481,6 +46949,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.10" }, @@ -45530,6 +46999,7 @@ "version": "8.2.4", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.9", "postcss-value-parser": "^4.2.0" @@ -45542,6 +47012,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45556,6 +47027,7 @@ "version": "4.2.4", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45574,6 +47046,7 @@ "version": "8.0.4", "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45592,6 +47065,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45610,6 +47084,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", @@ -45627,6 +47102,7 @@ "version": "5.1.3", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" @@ -45642,6 +47118,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45660,6 +47137,7 @@ "version": "12.1.11", "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45678,6 +47156,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -45696,6 +47175,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "license": "CC0-1.0", "dependencies": { "postcss-selector-parser": "^6.0.10" }, @@ -45714,6 +47194,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "license": "MIT", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -45725,6 +47206,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "license": "MIT", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -45736,6 +47218,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "license": "MIT", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -45747,6 +47230,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "license": "MIT", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -45758,6 +47242,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "license": "CC0-1.0", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -45777,6 +47262,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45791,6 +47277,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "license": "MIT", "dependencies": { "postcss": "^7.0.26" } @@ -45798,12 +47285,14 @@ "node_modules/postcss-flexbugs-fixes/node_modules/picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" }, "node_modules/postcss-flexbugs-fixes/node_modules/postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -45820,6 +47309,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "license": "CC0-1.0", "dependencies": { "postcss-selector-parser": "^6.0.9" }, @@ -45834,6 +47324,7 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "license": "CC0-1.0", "dependencies": { "postcss-selector-parser": "^6.0.9" }, @@ -45848,6 +47339,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", "peerDependencies": { "postcss": "^8.1.0" } @@ -45856,6 +47348,7 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "license": "CC0-1.0", "engines": { "node": "^12 || ^14 || >=16" }, @@ -45883,6 +47376,7 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -45901,6 +47395,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "license": "MIT", "peerDependencies": { "postcss": "^8.0.0" } @@ -45909,6 +47404,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "license": "CC0-1.0", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -45960,6 +47456,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "license": "MIT", "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", @@ -45981,6 +47478,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -45992,6 +47490,7 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "license": "CC0-1.0", "engines": { "node": "^12 || ^14 || >=16" }, @@ -46003,6 +47502,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -46019,6 +47519,7 @@ "version": "5.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.1" @@ -46034,6 +47535,7 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", @@ -46051,6 +47553,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46065,6 +47568,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "license": "MIT", "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", @@ -46081,6 +47585,7 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", @@ -46097,6 +47602,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.5" }, @@ -46111,6 +47617,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -46122,6 +47629,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -46138,6 +47646,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "license": "ISC", "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -46152,6 +47661,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -46166,6 +47676,7 @@ "version": "10.2.0", "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "license": "CC0-1.0", "dependencies": { "@csstools/selector-specificity": "^2.0.0", "postcss-selector-parser": "^6.0.10" @@ -46185,6 +47696,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "license": "MIT", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -46196,6 +47708,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46210,6 +47723,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46224,6 +47738,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46238,6 +47753,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46252,6 +47768,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46266,6 +47783,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" @@ -46281,6 +47799,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "license": "MIT", "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" @@ -46296,6 +47815,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -46307,6 +47827,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46331,6 +47852,7 @@ "url": "https://liberapay.com/mrcgrtz" } ], + "license": "MIT", "engines": { "node": "^12 || ^14 || >=16" }, @@ -46342,6 +47864,7 @@ "version": "5.1.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "license": "MIT", "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -46357,6 +47880,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46375,6 +47899,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", "peerDependencies": { "postcss": "^8" } @@ -46383,6 +47908,7 @@ "version": "7.0.5", "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "license": "CC0-1.0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46401,6 +47927,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz", "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==", + "license": "MIT", "peerDependencies": { "postcss": ">4 <9" } @@ -46409,6 +47936,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "license": "CC0-1.0", "dependencies": { "@csstools/postcss-cascade-layers": "^1.1.1", "@csstools/postcss-color-function": "^1.1.1", @@ -46489,6 +48017,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "browserslist": "^4.23.3", "caniuse-lite": "^1.0.30001646", @@ -46511,6 +48040,7 @@ "version": "7.1.6", "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "license": "CC0-1.0", "dependencies": { "postcss-selector-parser": "^6.0.10" }, @@ -46529,6 +48059,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" @@ -46544,6 +48075,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -46558,6 +48090,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", "peerDependencies": { "postcss": "^8.0.3" } @@ -46571,6 +48104,7 @@ "version": "4.0.9", "resolved": "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-4.0.9.tgz", "integrity": "sha512-dCNKEf+FgTv+EA3XI8ysg2RnpS5s3/iZmU+9qpCNFxHU/BhK+4hz7jyCsCAfo0CLnDrMPtaQENhwb+EGm1wh7Q==", + "license": "Apache-2.0", "dependencies": { "rtlcss": "4.1.1" }, @@ -46658,6 +48192,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "engines": { "node": ">=12.0" }, @@ -46669,6 +48204,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.10" }, @@ -46699,6 +48235,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" @@ -46722,6 +48259,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.5" }, @@ -46740,6 +48278,7 @@ "version": "0.9.2", "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz", "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==", + "license": "MIT", "dependencies": { "posthtml-parser": "^0.2.0", "posthtml-render": "^1.0.5" @@ -46752,6 +48291,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz", "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==", + "license": "MIT", "dependencies": { "htmlparser2": "^3.8.3", "isobject": "^2.1.0" @@ -46760,12 +48300,14 @@ "node_modules/posthtml-parser/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/posthtml-parser/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "license": "MIT", "dependencies": { "isarray": "1.0.0" }, @@ -46777,6 +48319,7 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz", "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==", + "license": "MIT", "dependencies": { "escape-string-regexp": "1.0.5" } @@ -46785,6 +48328,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -46793,6 +48337,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", + "license": "MIT", "dependencies": { "merge-options": "1.0.1", "posthtml": "^0.9.2", @@ -46804,6 +48349,7 @@ "version": "3.0.0-beta.4", "resolved": "https://registry.npmjs.org/preload-webpack-plugin/-/preload-webpack-plugin-3.0.0-beta.4.tgz", "integrity": "sha512-6hhh0AswCbp/U4EPVN4fbK2wiDkXhmgjjgEYEmXa21UYwjYzCIgh3ZRMXM21ZPLfbQGpdFuSL3zFslU+edjpwg==", + "license": "Apache-2.0", "engines": { "node": ">=8.0.0" }, @@ -46824,6 +48370,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -46855,6 +48402,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -46866,6 +48414,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -46902,6 +48451,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -46910,6 +48460,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "license": "MIT", "dependencies": { "parse-ms": "^4.0.0" }, @@ -46924,6 +48475,7 @@ "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "license": "MIT", "engines": { "node": ">=6" } @@ -46932,6 +48484,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -46948,6 +48501,7 @@ "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -46968,6 +48522,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", "dependencies": { "asap": "~2.0.3" } @@ -46995,7 +48550,8 @@ "node_modules/promise-polyfill": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz", - "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==" + "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==", + "license": "MIT" }, "node_modules/promise-retry": { "version": "2.0.1", @@ -47013,6 +48569,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.7.tgz", "integrity": "sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==", + "license": "MIT", "dependencies": { "array.prototype.map": "^1.0.5", "call-bind": "^1.0.2", @@ -47032,6 +48589,7 @@ "version": "3.1.8", "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.8.tgz", "integrity": "sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -47077,12 +48635,14 @@ "node_modules/property-expr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "license": "MIT" }, "node_modules/property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -47104,6 +48664,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -47120,7 +48681,8 @@ "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT" }, "node_modules/psl": { "version": "1.9.0", @@ -47130,6 +48692,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -47142,7 +48705,8 @@ "node_modules/public-encrypt/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" }, "node_modules/pump": { "version": "3.0.0", @@ -47156,6 +48720,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "license": "MIT", "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -47166,6 +48731,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -47191,6 +48757,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", "peer": true, "dependencies": { "dijkstrajs": "^1.0.1", @@ -47208,6 +48775,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.2.0.tgz", "integrity": "sha512-YietHHltOHA4+l5na1srdaMx4sVSOjV9tamHs+mwiLWAMr6QVACRUw1Neax5CptFILcNoITctJY0Ipyn5enQ8g==", + "license": "ISC", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -47216,6 +48784,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -47231,6 +48800,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", "peer": true, "dependencies": { "string-width": "^4.2.0", @@ -47242,6 +48812,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "peer": true, "dependencies": { "color-name": "~1.1.4" @@ -47254,12 +48825,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT", "peer": true }, "node_modules/qrcode/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", "peer": true, "dependencies": { "locate-path": "^5.0.0", @@ -47273,6 +48846,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", "peer": true, "dependencies": { "p-locate": "^4.1.0" @@ -47285,6 +48859,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "peer": true, "dependencies": { "p-try": "^2.0.0" @@ -47300,6 +48875,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", "peer": true, "dependencies": { "p-limit": "^2.2.0" @@ -47312,6 +48888,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -47326,12 +48903,14 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC", "peer": true }, "node_modules/qrcode/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", "peer": true, "dependencies": { "cliui": "^6.0.0", @@ -47354,6 +48933,7 @@ "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", "peer": true, "dependencies": { "camelcase": "^5.0.0", @@ -47367,6 +48947,7 @@ "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" }, @@ -47381,6 +48962,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "license": "MIT", "dependencies": { "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" @@ -47430,12 +49012,14 @@ "node_modules/raf-schd": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==", + "license": "MIT" }, "node_modules/ramda": { "version": "0.28.0", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/ramda" @@ -47452,6 +49036,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "license": "MIT", "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -47461,6 +49046,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -47469,6 +49055,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -47483,6 +49070,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -47491,6 +49079,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -47510,6 +49099,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -47523,6 +49113,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -47537,6 +49128,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -47557,6 +49149,7 @@ "version": "15.6.2", "resolved": "https://registry.npmjs.org/react-addons-create-fragment/-/react-addons-create-fragment-15.6.2.tgz", "integrity": "sha512-O9+cXwMGcMF7WfpZHw+Lt8+jkRhyQBgihOVz9xfGMRORMdMf40HLeQQbdwPUQB7G73+/Zc+hB77A/UyE58n9Og==", + "license": "MIT", "dependencies": { "fbjs": "^0.8.4", "loose-envify": "^1.3.1", @@ -47567,6 +49160,8 @@ "version": "13.1.1", "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", + "deprecated": "react-beautiful-dnd is now deprecated. Context and options: https://github.com/atlassian/react-beautiful-dnd/issues/2672", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.9.2", "css-box-model": "^1.2.0", @@ -47585,6 +49180,7 @@ "version": "4.8.0", "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-4.8.0.tgz", "integrity": "sha512-qFgwo+p58sgv1QYMI1oGNaop90eJVKuHTZ3ZgBfrrpUb+9cAexxsKat0sAszgsizPMVo7vOXedV7Lqa0GQGMvA==", + "license": "MIT", "dependencies": { "@wojtekmaj/date-utils": "^1.1.3", "clsx": "^2.0.0", @@ -47610,6 +49206,7 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13" }, @@ -47621,6 +49218,7 @@ "version": "5.6.1", "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", + "license": "MIT", "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" @@ -47630,6 +49228,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/react-content-loader/-/react-content-loader-6.2.1.tgz", "integrity": "sha512-6ONbFX+Hi3SHuP66JB8CPvJn372pj+qwltJV0J8z/8MFrq98I1cbFdZuhDWeQXu3CFxiiDTXJn7DFxx2ZvrO7g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -47641,6 +49240,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/react-div-100vh/-/react-div-100vh-0.3.8.tgz", "integrity": "sha512-1kDFW+HXYpfac1tfJ4BcQmgTSeTtLVs2FO2ZNHcwLIga+oVluexUEISCBJvr9xq98DK8tcygY3259EvIy5O+3g==", + "license": "MIT", "peerDependencies": { "react": ">15", "react-dom": ">15" @@ -47650,6 +49250,7 @@ "version": "5.4.3", "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz", "integrity": "sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.7.5", "@babel/generator": "^7.12.11", @@ -47673,6 +49274,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz", "integrity": "sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==", + "license": "MIT", "peerDependencies": { "typescript": ">= 4.3.x" } @@ -47680,7 +49282,8 @@ "node_modules/react-docgen/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/react-dom": { "version": "17.0.2", @@ -47708,6 +49311,7 @@ "version": "11.0.1", "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-11.0.1.tgz", "integrity": "sha512-x/6wqRHaR8jsrNiu/boVMIPYuoxb83Vyfv77hO7/3ZRn8Pr+KH5onsCsB8MLBa3zdJl410C5FXPUINbu16XIzw==", + "license": "MIT", "dependencies": { "attr-accept": "^2.0.0", "file-selector": "^0.1.12", @@ -47724,6 +49328,7 @@ "version": "14.3.4", "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-14.3.4.tgz", "integrity": "sha512-t4ZwvV6vwNxzujDQ+37bspnLwA4JlgUPWhLjBJWsNIDceAf6ZKUTCjdm08cN6WeZ5pTMKiCJkmAYnpmR4Bm+dg==", + "license": "MIT", "dependencies": { "@base2/pretty-print-object": "1.0.1", "is-plain-object": "5.0.0", @@ -47737,17 +49342,20 @@ "node_modules/react-element-to-jsx-string/node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" }, "node_modules/react-fast-compare": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", + "license": "MIT" }, "node_modules/react-floater": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/react-floater/-/react-floater-0.7.9.tgz", "integrity": "sha512-NXqyp9o8FAXOATOEo0ZpyaQ2KPb4cmPMXGWkx377QtJkIXHlHRAGer7ai0r0C1kG5gf+KJ6Gy+gdNIiosvSicg==", + "license": "MIT", "dependencies": { "deepmerge": "^4.3.1", "is-lite": "^0.8.2", @@ -47763,12 +49371,14 @@ "node_modules/react-floater/node_modules/@gilbarbara/deep-equal": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.1.2.tgz", - "integrity": "sha512-jk+qzItoEb0D0xSSmrKDDzf9sheQj/BAPxlgNxgmOaA3mxpUa6ndJLYGZKsJnIVEQSD8zcTbyILz7I0HcnBCRA==" + "integrity": "sha512-jk+qzItoEb0D0xSSmrKDDzf9sheQj/BAPxlgNxgmOaA3mxpUa6ndJLYGZKsJnIVEQSD8zcTbyILz7I0HcnBCRA==", + "license": "MIT" }, "node_modules/react-floater/node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -47776,12 +49386,14 @@ "node_modules/react-floater/node_modules/is-lite": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/is-lite/-/is-lite-0.8.2.tgz", - "integrity": "sha512-JZfH47qTsslwaAsqbMI3Q6HNNjUuq6Cmzzww50TdP5Esb6e1y2sK2UAaZZuzfAzpoI2AkxoPQapZdlDuP6Vlsw==" + "integrity": "sha512-JZfH47qTsslwaAsqbMI3Q6HNNjUuq6Cmzzww50TdP5Esb6e1y2sK2UAaZZuzfAzpoI2AkxoPQapZdlDuP6Vlsw==", + "license": "MIT" }, "node_modules/react-floater/node_modules/tree-changes": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/tree-changes/-/tree-changes-0.9.3.tgz", "integrity": "sha512-vvvS+O6kEeGRzMglTKbc19ltLWNtmNt1cpBoSYLj/iEcPVvpJasemKOlxBrmZaCtDJoF+4bwv3m01UKYi8mukQ==", + "license": "MIT", "dependencies": { "@gilbarbara/deep-equal": "^0.1.1", "is-lite": "^0.8.2" @@ -47791,6 +49403,7 @@ "version": "2.13.2", "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.13.2.tgz", "integrity": "sha512-T/7bsofxYqnod2xadvuwjGKHOoL5GH7/EIPI5UyEvaU/c2CcphvGI371opFtuY/SYdbMsNiuF4HsHQ50nA/TKQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "focus-lock": "^1.3.5", @@ -47813,6 +49426,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.3.5.tgz", "integrity": "sha512-QFaHbhv9WPUeLYBDe/PAuLKJ4Dd9OPvKs9xZBr3yLXnUrDNaVXKu2baDBXe3naPY30hgHYSsf2JW4jzas2mDEQ==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" }, @@ -47824,6 +49438,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.12.5", "invariant": "^2.2.4", @@ -47839,12 +49454,14 @@ "node_modules/react-helmet-async/node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" }, "node_modules/react-i18next": { "version": "11.18.6", "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.18.6.tgz", "integrity": "sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.14.5", "html-parse-stringify": "^3.0.1" @@ -47866,6 +49483,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/react-innertext/-/react-innertext-1.1.5.tgz", "integrity": "sha512-PWAqdqhxhHIv80dT9znP2KvS+hfkbRovFp4zFYHFFlOoQLRiawIic81gKb3U1wEyJZgMwgs3JoLtwryASRWP3Q==", + "license": "MIT", "peerDependencies": { "@types/react": ">=0.0.0 <=99", "react": ">=0.0.0 <=99" @@ -47875,6 +49493,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz", "integrity": "sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==", + "license": "MIT", "dependencies": { "prop-types": "^15.5.8" }, @@ -47886,6 +49505,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.1.1.tgz", "integrity": "sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "is-dom": "^1.0.0", @@ -47904,6 +49524,7 @@ "version": "2.9.2", "resolved": "https://registry.npmjs.org/react-joyride/-/react-joyride-2.9.2.tgz", "integrity": "sha512-DQ3m3W/GeoASv4UE9ZaadFp3ACJusV0kjjBe7zTpPwWuHpvEoofc+2TCJkru0lbA+G9l39+vPVttcJA/p1XeSA==", + "license": "MIT", "dependencies": { "@gilbarbara/deep-equal": "^0.3.1", "deep-diff": "^1.0.2", @@ -47926,6 +49547,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -47934,6 +49556,7 @@ "version": "4.26.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -47944,12 +49567,14 @@ "node_modules/react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" }, "node_modules/react-loadable": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz", "integrity": "sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg==", + "license": "MIT", "dependencies": { "prop-types": "^15.5.0" }, @@ -47961,6 +49586,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz", "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" @@ -47970,6 +49596,7 @@ "version": "5.4.2", "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.2.tgz", "integrity": "sha512-cg//jVdS49PYDgmcYoBnMMHl4XNTMuV723ZnHD2aXYtWWWqbVF3hjQ8iB+UZEuXapLbeA8P8H+1o6ZB1lcw3vg==", + "license": "MIT", "peerDependencies": { "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" @@ -47979,6 +49606,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "license": "MIT", "dependencies": { "react-fast-compare": "^3.0.1", "warning": "^4.0.2" @@ -47992,17 +49620,20 @@ "node_modules/react-popper/node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" }, "node_modules/react-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", - "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==" + "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==", + "license": "MIT" }, "node_modules/react-qrcode": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/react-qrcode/-/react-qrcode-0.3.6.tgz", "integrity": "sha512-F905AAyNu/gyhsp321FW21WDLwQ/di3qBsqolCwiuRnj8VXewanhp1YtHMiEi/h/1F6GkYd0lj+g/Vc64L6ihQ==", + "license": "MIT", "funding": { "url": "https://opencollective.com/rxts" }, @@ -48015,6 +49646,7 @@ "version": "7.2.9", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -48038,65 +49670,23 @@ "node_modules/react-redux/node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", - "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.6", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-router": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -48116,6 +49706,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -48133,6 +49724,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -48146,6 +49738,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -48158,12 +49751,14 @@ "node_modules/react-router/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, "node_modules/react-router/node_modules/path-to-regexp": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -48172,6 +49767,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.2.0.tgz", "integrity": "sha512-B/q3TnCZXEKItO0fFN/I0tWOX3WJvi/X2wtdffmwSQVRwg5BpValScTO1vdic9AxlUgmeSzib2hAZAwIUQUZGQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.4.4", "@emotion/cache": "^10.0.9", @@ -48191,6 +49787,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/react-share/-/react-share-5.1.0.tgz", "integrity": "sha512-OvyfMtj/0UzH1wi90OdHhZVJ6WUC/+IeWvBwppeZozwIGyAjQgyR0QXlHOrxVHVECqnGvcpBaFTXVrqouTieaw==", + "license": "MIT", "dependencies": { "classnames": "^2.3.2", "jsonp": "^0.2.1" @@ -48203,6 +49800,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/react-simple-star-rating/-/react-simple-star-rating-4.0.4.tgz", "integrity": "sha512-Hba5PQGm3J9bgM+aGdB8xjpp4XXJS1VvfCsTd9ZmQOmeoSc5vlhE9lGeuUA6d2/tfwxnRP1kBwy1xaW/f/V0WA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -48211,32 +49809,11 @@ "react-dom": ">=16.8.0" } }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-svg-core": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/react-svg-core/-/react-svg-core-3.0.3.tgz", "integrity": "sha512-Ws3eM3xCAwcaYeqm4Ajcz3zxBYNI6BeTWWhFR0cpOT+pWuVtozgHYK9xUM0S/ilapZgYMQDe49XgOxpvooFq4w==", + "license": "MIT", "dependencies": { "@babel/core": "^7.4.5", "@babel/plugin-syntax-jsx": "^7.2.0", @@ -48254,6 +49831,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^3.2.1", @@ -48265,6 +49843,7 @@ "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.4", "source-map": "^0.6.1" @@ -48277,6 +49856,7 @@ "version": "3.4.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -48287,12 +49867,14 @@ "node_modules/react-svg-core/node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "license": "CC0-1.0" }, "node_modules/react-svg-core/node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -48304,6 +49886,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "~1.0.0" } @@ -48313,6 +49896,7 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "license": "MIT", "dependencies": { "chalk": "^2.4.1", "coa": "^2.0.2", @@ -48339,6 +49923,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/react-svg-loader/-/react-svg-loader-3.0.3.tgz", "integrity": "sha512-V1KnIUtvWVvc4xCig34n+f+/74ylMMugB2FbuAF/yq+QRi+WLi2hUYp9Ze3VylhA1D7ZgRygBh3Ojj8S3TPhJA==", + "license": "MIT", "dependencies": { "loader-utils": "^1.2.3", "react-svg-core": "^3.0.3" @@ -48351,6 +49936,7 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/react-swipeable/-/react-swipeable-6.2.2.tgz", "integrity": "sha512-Oz7nSFrssvq2yvy05aNL3F+yBUqSvLsK6x1mu+rQFOpMdQVnt4izKt1vyjvvTb70q6GQOaSpaB6qniROW2MAzQ==", + "license": "MIT", "peerDependencies": { "react": "^16.8.3 || ^17 || ^18" } @@ -48359,6 +49945,7 @@ "version": "11.0.3", "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-11.0.3.tgz", "integrity": "sha512-0v0ET2qn9oAam4K/Te9Q/2jtS4R2d6wUFqgk5VcxrCBm+4MB5BE+oQf2CA0RanUHbYaYFuagt/AugICU87ufxQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.3.1", "highlight.js": "~9.18.2", @@ -48374,6 +49961,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-4.3.0.tgz", "integrity": "sha512-2GfoG+f41kiBIIyd3gF+/GRCCYtamC8/2zlAcD8cqQmqI9Q+YVz7fJLHMmU9pXDVYYHpJeCgUSBJju85vu5q8Q==", + "license": "MIT", "dependencies": { "clsx": "^1.1.0", "prop-types": "^15.5.0" @@ -48386,6 +49974,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -48394,6 +49983,7 @@ "version": "7.2.4", "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-7.2.4.tgz", "integrity": "sha512-T7ZSwXcUtPXCog3Bux9+TjoTvUeMi/+zI0Yv/TkIznZCWUg0XTt2797G0IiT5mTVeJeLivUzdOmKA1hOQdMfOQ==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" @@ -48423,6 +50013,7 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -48438,6 +50029,7 @@ "version": "9.22.5", "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.5.tgz", "integrity": "sha512-YqQMRzlVANBv1L/7r63OHa2b0ZsAaDp1UhVNEdUaXI8A5u6hTpA5NYtUueLH2rFuY/27mTGIBl7ZhqFKzw18YQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.7.2", "clsx": "^1.0.4", @@ -48455,6 +50047,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -48463,6 +50056,7 @@ "version": "1.8.10", "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz", "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "memoize-one": ">=3.1.1 <6" @@ -48619,6 +50213,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "license": "MIT", "dependencies": { "find-up-simple": "^1.0.0", "read-pkg": "^9.0.0", @@ -48635,6 +50230,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, @@ -48645,12 +50241,14 @@ "node_modules/read-package-up/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/read-package-up/node_modules/normalize-package-data": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", "semver": "^7.3.5", @@ -48664,6 +50262,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "index-to-position": "^0.1.2", @@ -48680,6 +50279,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", @@ -48698,6 +50298,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -48709,6 +50310,7 @@ "version": "4.26.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -48974,6 +50576,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.9.2" } @@ -48982,6 +50585,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "license": "MIT", "peerDependencies": { "redux": "^4" } @@ -48990,6 +50594,7 @@ "version": "2.10.1", "resolved": "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz", "integrity": "sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw==", + "license": "MIT", "dependencies": { "hastscript": "^5.0.0", "parse-entities": "^1.1.2", @@ -49004,6 +50609,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", + "license": "MIT", "dependencies": { "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", @@ -49019,6 +50625,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "license": "MIT", "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", @@ -49032,6 +50639,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz", "integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==", + "license": "MIT", "optionalDependencies": { "clipboard": "^2.0.0" } @@ -49075,7 +50683,8 @@ "node_modules/regex-parser": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", @@ -49123,6 +50732,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -49154,6 +50764,7 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -49176,6 +50787,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==", + "license": "MIT", "dependencies": { "extend": "^3.0.0", "is-absolute-url": "^3.0.0", @@ -49192,6 +50804,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -49201,6 +50814,7 @@ "version": "1.6.22", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "license": "MIT", "dependencies": { "@babel/core": "7.12.9", "@babel/helper-plugin-utils": "7.10.4", @@ -49220,6 +50834,7 @@ "version": "7.12.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.5", @@ -49249,13 +50864,15 @@ "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "license": "MIT" }, "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", @@ -49269,6 +50886,7 @@ "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -49280,6 +50898,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -49288,6 +50907,7 @@ "version": "8.0.3", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "license": "MIT", "dependencies": { "ccount": "^1.0.0", "collapse-white-space": "^1.0.2", @@ -49315,6 +50935,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -49323,6 +50944,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -49331,6 +50953,7 @@ "version": "9.2.0", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "license": "MIT", "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -49360,6 +50983,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==", + "license": "MIT", "dependencies": { "github-slugger": "^1.0.0", "mdast-util-to-string": "^1.0.0", @@ -49374,6 +50998,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -49383,6 +51008,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "license": "MIT", "dependencies": { "mdast-squeeze-paragraphs": "^4.0.0" }, @@ -49407,6 +51033,7 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/remove/-/remove-0.1.5.tgz", "integrity": "sha512-AJMA9oWvJzdTjwIGwSQZsjGQiRx73YTmiOWmfCp1fpLa/D4n7jKcpoA+CZiVLJqKcEKUuh1Suq80c5wF+L/qVQ==", + "license": "MIT", "dependencies": { "seq": ">= 0.3.5" } @@ -49414,7 +51041,8 @@ "node_modules/remove-accents": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", - "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "license": "MIT" }, "node_modules/remove-trailing-separator": { "version": "1.1.0", @@ -49424,6 +51052,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -49436,6 +51065,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -49454,12 +51084,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/renderkid/node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -49474,6 +51106,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -49487,6 +51120,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -49502,6 +51136,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -49527,6 +51162,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "license": "MIT", "dependencies": { "is-finite": "^1.0.0" }, @@ -49534,14 +51170,6 @@ "node": ">=0.10.0" } }, - "node_modules/replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/require-directory": { "version": "2.1.1", "license": "MIT", @@ -49576,7 +51204,8 @@ "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", @@ -49625,7 +51254,8 @@ "node_modules/resolve-pathname": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" }, "node_modules/resolve-url": { "version": "0.2.1", @@ -49635,6 +51265,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.5.tgz", "integrity": "sha512-mgFMCmrV/tA4738EsFmPFE5/MaqSgUMe8LK971kVEKA/RrNVb7+VqFsg/qmKyythf34eyq476qIobP/gfFBGSQ==", + "license": "MIT", "dependencies": { "adjust-sourcemap-loader": "3.0.0", "camelcase": "5.3.1", @@ -49655,6 +51286,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.1" } @@ -49663,6 +51295,7 @@ "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "license": "MIT", "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -49679,12 +51312,14 @@ "node_modules/resolve-url-loader/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/resolve-url-loader/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -49747,12 +51382,14 @@ "node_modules/rework-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha512-W6V2fix7nCLUYX1v6eGPrBOZlc03/faqzP4sUxMAJMBMOPYhfV/RyLegTufn5gJKaOITyi+gvf0LXDZ9NzkHnQ==" + "integrity": "sha512-W6V2fix7nCLUYX1v6eGPrBOZlc03/faqzP4sUxMAJMBMOPYhfV/RyLegTufn5gJKaOITyi+gvf0LXDZ9NzkHnQ==", + "license": "MIT" }, "node_modules/rework/node_modules/convert-source-map": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg==" + "integrity": "sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg==", + "license": "MIT" }, "node_modules/rfdc": { "version": "1.3.0", @@ -49776,6 +51413,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -49784,12 +51422,14 @@ "node_modules/robust-websocket": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/robust-websocket/-/robust-websocket-1.0.0.tgz", - "integrity": "sha512-zpd1mXL2kPd2NexxKRBRC3appEhxRZVuiqfckI1kLaNM7tRBJ9l4dqOD1FPoNpOZ2PPNAySR3beVAVd4OYl4tg==" + "integrity": "sha512-zpd1mXL2kPd2NexxKRBRC3appEhxRZVuiqfckI1kLaNM7tRBJ9l4dqOD1FPoNpOZ2PPNAySR3beVAVd4OYl4tg==", + "license": "ISC" }, "node_modules/rollup": { "version": "2.79.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -49805,6 +51445,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", @@ -49819,6 +51460,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -49826,7 +51468,8 @@ "node_modules/rrweb-cssom": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "license": "MIT" }, "node_modules/rsvp": { "version": "4.8.5", @@ -49839,6 +51482,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.1.tgz", "integrity": "sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==", + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0", @@ -49885,6 +51529,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "license": "ISC", "dependencies": { "aproba": "^1.1.1" } @@ -49892,7 +51537,8 @@ "node_modules/run-queue/node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "license": "ISC" }, "node_modules/rxjs": { "version": "7.8.1", @@ -50218,10 +51864,12 @@ } }, "node_modules/sass": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.4.tgz", - "integrity": "sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==", + "version": "1.79.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.5.tgz", + "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==", + "license": "MIT", "dependencies": { + "@parcel/watcher": "^2.4.1", "chokidar": "^4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" @@ -50237,6 +51885,7 @@ "version": "12.6.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "license": "MIT", "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" @@ -50274,6 +51923,7 @@ "version": "2.2.5", "resolved": "https://registry.npmjs.org/sass-resources-loader/-/sass-resources-loader-2.2.5.tgz", "integrity": "sha512-po8rfETH9cOQACWxubT/1CCu77KjxwRtCDm6QAXZH99aUHBydwSoxdIjC40SGp/dcS/FkSNJl0j1VEojGZqlvQ==", + "license": "MIT", "dependencies": { "async": "^3.2.3", "chalk": "^4.1.0", @@ -50285,6 +51935,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -50299,6 +51950,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -50314,6 +51966,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -50324,12 +51977,14 @@ "node_modules/sass-resources-loader/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/sass-resources-loader/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -50338,6 +51993,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -50351,6 +52007,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -50358,10 +52015,44 @@ "node": ">=8" } }, + "node_modules/sass/node_modules/@parcel/watcher": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" + } + }, "node_modules/sass/node_modules/chokidar": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "license": "MIT", "dependencies": { "readdirp": "^4.0.1" }, @@ -50375,12 +52066,20 @@ "node_modules/sass/node_modules/immutable": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==" + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "license": "MIT" + }, + "node_modules/sass/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" }, "node_modules/sass/node_modules/readdirp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", - "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "license": "MIT", "engines": { "node": ">= 14.16.0" }, @@ -50392,12 +52091,14 @@ "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "license": "ISC" }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -50409,6 +52110,7 @@ "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -50458,28 +52160,33 @@ "node_modules/scroll": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scroll/-/scroll-3.0.1.tgz", - "integrity": "sha512-pz7y517OVls1maEzlirKO5nPYle9AXsFzTMNJrRGmT951mzpIBy7sNHOg5o/0MQd/NqliCiWnAi0kZneMPFLcg==" + "integrity": "sha512-pz7y517OVls1maEzlirKO5nPYle9AXsFzTMNJrRGmT951mzpIBy7sNHOg5o/0MQd/NqliCiWnAi0kZneMPFLcg==", + "license": "MIT" }, "node_modules/scrollparent": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.1.0.tgz", - "integrity": "sha512-bnnvJL28/Rtz/kz2+4wpBjHzWoEzXhVg/TE8BeVGJHUqE8THNIRnDxDWMktwM+qahvlRdvlLdsQfYe+cuqfZeA==" + "integrity": "sha512-bnnvJL28/Rtz/kz2+4wpBjHzWoEzXhVg/TE8BeVGJHUqE8THNIRnDxDWMktwM+qahvlRdvlLdsQfYe+cuqfZeA==", + "license": "ISC" }, "node_modules/select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", + "license": "MIT", "optional": true }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" }, "node_modules/selfsigned": { "version": "1.10.14", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "license": "MIT", "dependencies": { "node-forge": "^0.10.0" } @@ -50488,6 +52195,7 @@ "version": "24.1.2", "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.1.2.tgz", "integrity": "sha512-hvEJ7yI97pzJuLsDZCYzJgmRxF8kiEJvNZhf0oiZQcexw+Ycjy4wbdsn/sVMURgNCu8rwbAXJdBRyIxM4pe32g==", + "license": "MIT", "peer": true, "dependencies": { "@semantic-release/commit-analyzer": "^13.0.0-beta.1", @@ -50531,6 +52239,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", + "license": "MIT", "peer": true, "engines": { "node": ">= 18" @@ -50540,6 +52249,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/auth-token": "^5.0.0", @@ -50558,6 +52268,7 @@ "version": "10.1.1", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/types": "^13.0.0", @@ -50571,6 +52282,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/request": "^9.0.0", @@ -50585,12 +52297,14 @@ "version": "22.2.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "license": "MIT", "peer": true }, "node_modules/semantic-release/node_modules/@octokit/plugin-paginate-rest": { "version": "11.3.5", "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.5.tgz", "integrity": "sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/types": "^13.6.0" @@ -50606,6 +52320,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz", "integrity": "sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/request-error": "^6.0.0", @@ -50620,9 +52335,10 @@ } }, "node_modules/semantic-release/node_modules/@octokit/plugin-throttling": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz", - "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.2.tgz", + "integrity": "sha512-FqpvcTpIWFpMMwIeSoypoJXysSAQ3R+ALJhXXSG1HTP3YZOIeLmcNcimKaXxTcws+Sh6yoRl13SJ5r8sXc1Fhw==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/types": "^13.0.0", @@ -50639,6 +52355,7 @@ "version": "9.1.3", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/endpoint": "^10.0.0", @@ -50654,6 +52371,7 @@ "version": "6.1.5", "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.5.tgz", "integrity": "sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/types": "^13.0.0" @@ -50663,9 +52381,10 @@ } }, "node_modules/semantic-release/node_modules/@octokit/types": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.0.tgz", - "integrity": "sha512-CrooV/vKCXqwLa+osmHLIMUb87brpgUqlqkPGc6iE2wCkUvTrHiXFMhAKoDDaAAYJrtKtrFTgSQTg5nObBEaew==", + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", + "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/openapi-types": "^22.2.0" @@ -50675,6 +52394,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -50684,6 +52404,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-11.0.0.tgz", "integrity": "sha512-Uon6G6gJD8U1JNvPm7X0j46yxNRJ8Ui6SgK4Zw5Ktu8RgjEft3BGn+l/RX1TTzhhO3/uUcKuqM+/9/ETFxWS/Q==", + "license": "MIT", "peer": true, "dependencies": { "@octokit/core": "^6.0.0", @@ -50710,10 +52431,49 @@ "semantic-release": ">=24.1.0" } }, + "node_modules/semantic-release/node_modules/@semantic-release/release-notes-generator": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", + "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", + "license": "MIT", + "peer": true, + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", + "debug": "^4.0.0", + "get-stream": "^7.0.0", + "import-from-esm": "^1.0.3", + "into-stream": "^7.0.0", + "lodash-es": "^4.17.21", + "read-package-up": "^11.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/semantic-release/node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", + "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/semantic-release/node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", "peer": true, "dependencies": { "debug": "^4.3.4" @@ -50726,6 +52486,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "license": "MIT", "peer": true, "dependencies": { "clean-stack": "^5.2.0", @@ -50742,6 +52503,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "license": "MIT", "peer": true, "dependencies": { "environment": "^1.0.0" @@ -50757,18 +52519,21 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0", "peer": true }, "node_modules/semantic-release/node_modules/before-after-hook": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", + "license": "Apache-2.0", "peer": true }, "node_modules/semantic-release/node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", "peer": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -50781,6 +52546,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "license": "MIT", "peer": true, "dependencies": { "escape-string-regexp": "5.0.0" @@ -50792,10 +52558,70 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/semantic-release/node_modules/conventional-changelog-angular": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "license": "ISC", + "peer": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/semantic-release/node_modules/conventional-changelog-writer": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", + "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/semver": "^7.5.5", + "conventional-commits-filter": "^5.0.0", + "handlebars": "^4.7.7", + "meow": "^13.0.0", + "semver": "^7.5.2" + }, + "bin": { + "conventional-changelog-writer": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/semantic-release/node_modules/conventional-commits-filter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/semantic-release/node_modules/conventional-commits-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", + "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "license": "MIT", + "peer": true, + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/semantic-release/node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", "peer": true, "dependencies": { "env-paths": "^2.2.1", @@ -50822,6 +52648,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -50834,6 +52661,7 @@ "version": "9.4.0", "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", + "license": "MIT", "peer": true, "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", @@ -50860,6 +52688,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -50872,6 +52701,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", "peer": true, "dependencies": { "@sec-ant/readable-stream": "^0.4.1", @@ -50888,6 +52718,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "license": "MIT", "peer": true, "dependencies": { "is-unicode-supported": "^2.0.0" @@ -50903,6 +52734,7 @@ "version": "14.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "license": "MIT", "peer": true, "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", @@ -50923,6 +52755,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -50932,6 +52765,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", + "license": "ISC", "peer": true, "dependencies": { "lru-cache": "^10.0.1" @@ -50944,6 +52778,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", "peer": true, "dependencies": { "agent-base": "^7.1.0", @@ -50957,6 +52792,7 @@ "version": "7.0.5", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", "peer": true, "dependencies": { "agent-base": "^7.0.2", @@ -50970,6 +52806,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "license": "Apache-2.0", "peer": true, "engines": { "node": ">=18.18.0" @@ -50979,6 +52816,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -50991,6 +52829,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -51003,6 +52842,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -51015,6 +52855,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -51027,6 +52868,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -51039,12 +52881,14 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC", "peer": true }, "node_modules/semantic-release/node_modules/marked": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "license": "MIT", "peer": true, "bin": { "marked": "bin/marked.js" @@ -51057,6 +52901,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.1.0.tgz", "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==", + "license": "MIT", "peer": true, "dependencies": { "ansi-escapes": "^7.0.0", @@ -51073,10 +52918,24 @@ "marked": ">=1 <14" } }, + "node_modules/semantic-release/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/semantic-release/node_modules/npm-run-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "license": "MIT", "peer": true, "dependencies": { "path-key": "^4.0.0", @@ -51093,6 +52952,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -51105,6 +52965,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -51117,6 +52978,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -51129,6 +52991,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -51141,6 +53004,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -51153,6 +53017,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver.js" @@ -51165,6 +53030,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "peer": true, "engines": { "node": ">=14" @@ -51177,6 +53043,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", "peer": true, "engines": { "node": ">=14.16" @@ -51189,6 +53056,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -51201,6 +53069,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -51213,6 +53082,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0", @@ -51226,9 +53096,10 @@ } }, "node_modules/semantic-release/node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "license": "Apache-2.0", "optional": true, "peer": true, "bin": { @@ -51243,6 +53114,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", + "license": "ISC", "peer": true }, "node_modules/semver": { @@ -51261,6 +53133,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", "peer": true, "dependencies": { "semver": "^7.3.5" @@ -51276,6 +53149,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver.js" @@ -51288,6 +53162,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -51300,6 +53175,7 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -51323,6 +53199,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -51330,12 +53207,14 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/send/node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -51344,6 +53223,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -51352,6 +53232,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -51362,12 +53243,14 @@ "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/seq": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz", "integrity": "sha512-sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==", + "license": "MIT/X11", "dependencies": { "chainsaw": ">=0.0.7 <0.1", "hashish": ">=0.0.2 <0.1" @@ -51388,6 +53271,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", "integrity": "sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==", + "license": "MIT", "dependencies": { "etag": "~1.8.1", "fresh": "0.5.2", @@ -51402,17 +53286,20 @@ "node_modules/serve-favicon/node_modules/ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "license": "MIT" }, "node_modules/serve-favicon/node_modules/safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "license": "MIT" }, "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -51430,6 +53317,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -51438,6 +53326,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -51451,22 +53340,26 @@ "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -51475,6 +53368,7 @@ "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -51561,17 +53455,20 @@ "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -51593,12 +53490,14 @@ "node_modules/shallow-equal": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==", + "license": "MIT" }, "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", @@ -51621,6 +53520,7 @@ "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -51643,6 +53543,7 @@ "version": "0.3.4", "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "license": "MIT", "dependencies": { "minimist": "^1.2.3", "shelljs": "^0.8.5" @@ -51679,6 +53580,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", + "license": "MIT", "peer": true, "dependencies": { "chalk": "^2.3.2", @@ -51693,6 +53595,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "license": "MIT", "peer": true, "dependencies": { "escape-string-regexp": "^1.0.5" @@ -51705,6 +53608,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz", "integrity": "sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g==", + "license": "MIT", "dependencies": { "can-use-dom": "^0.1.0", "core-js": "^3.0.1", @@ -51719,6 +53623,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -51728,6 +53633,7 @@ "version": "19.0.2", "resolved": "https://registry.npmjs.org/sinon/-/sinon-19.0.2.tgz", "integrity": "sha512-euuToqM+PjO4UgXeLETsfQiuoyPXlqFezr6YZDFwHR3t4qaX0fZUe1MfPMznTL5f8BWrVS89KduLdMUsxFCO6g==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.1", @@ -51746,6 +53652,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz", "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==", + "license": "(BSD-2-Clause OR WTFPL)", "peerDependencies": { "chai": "^4.0.0", "sinon": ">=4.0.0" @@ -51755,6 +53662,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "type-detect": "4.0.8" @@ -51764,6 +53672,7 @@ "version": "13.0.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.2.tgz", "integrity": "sha512-4Bb+oqXZTSTZ1q27Izly9lv8B9dlV61CROxPiVtywwzv5SnytJqhvYe6FclHYuXml4cd1VHPo1zd5PmTeJozvA==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.1" @@ -51773,6 +53682,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -51782,6 +53692,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -51794,6 +53705,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -51811,6 +53723,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", "peer": true, "dependencies": { "unicode-emoji-modifier-base": "^1.0.0" @@ -52053,6 +53966,7 @@ "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -52063,6 +53977,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz", "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", + "license": "MIT", "dependencies": { "debug": "^3.2.7", "eventsource": "^2.0.2", @@ -52081,6 +53996,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -52089,6 +54005,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -52144,7 +54061,8 @@ "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" }, "node_modules/source-map": { "version": "0.6.1", @@ -52165,6 +54083,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.3.tgz", "integrity": "sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==", + "license": "MIT", "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.2", @@ -52188,6 +54107,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -52199,6 +54119,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -52211,7 +54132,8 @@ "node_modules/source-map-loader/node_modules/whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "license": "MIT" }, "node_modules/source-map-resolve": { "version": "0.5.3", @@ -52240,12 +54162,14 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" }, "node_modules/space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -52260,6 +54184,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", + "license": "MIT", "peer": true }, "node_modules/spdx-correct": { @@ -52290,6 +54215,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -52305,6 +54231,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -52370,7 +54297,8 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" }, "node_modules/stack-utils": { "version": "2.0.6", @@ -52394,12 +54322,14 @@ "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" }, "node_modules/state-toggle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -52493,6 +54423,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -52500,12 +54431,14 @@ "node_modules/store2": { "version": "2.14.3", "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.3.tgz", - "integrity": "sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg==" + "integrity": "sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg==", + "license": "MIT" }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "license": "MIT", "dependencies": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -52514,12 +54447,14 @@ "node_modules/stream-browserify/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/stream-browserify/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -52533,12 +54468,14 @@ "node_modules/stream-browserify/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/stream-browserify/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -52547,6 +54484,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "license": "MIT", "peer": true, "dependencies": { "duplexer2": "~0.1.0", @@ -52557,6 +54495,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "readable-stream": "^2.0.2" @@ -52566,12 +54505,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT", "peer": true }, "node_modules/stream-combiner2/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -52587,12 +54528,14 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT", "peer": true }, "node_modules/stream-combiner2/node_modules/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==", + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -52602,6 +54545,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -52611,6 +54555,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "license": "MIT", "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -52622,12 +54567,14 @@ "node_modules/stream-http/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/stream-http/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -52641,12 +54588,14 @@ "node_modules/stream-http/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/stream-http/node_modules/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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -52654,12 +54603,14 @@ "node_modules/stream-shift": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" }, "node_modules/strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -52708,6 +54659,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -52738,6 +54690,7 @@ "version": "3.1.6", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -52755,6 +54708,7 @@ "version": "3.1.6", "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.6.tgz", "integrity": "sha512-1y15lz7otgfRTAVK5qbp3eHIga+w8j7+jIH+7HpUrOfnLVl6n0hbspi4EXf4tR+PNOpBjPstltemkx0SvViOCg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -52848,6 +54802,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -52867,6 +54822,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -52909,6 +54865,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.2" }, @@ -52936,6 +54893,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^2.7.0" @@ -52955,6 +54913,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -52970,6 +54929,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -52977,12 +54937,14 @@ "node_modules/style-loader/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/style-loader/node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -52996,6 +54958,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", @@ -53018,6 +54981,7 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.12.tgz", "integrity": "sha512-tv+/FkgNYHI2fvCoBMsqPHh5xovwiw+C3X0Gfnss/Syau0Nr3IqGOJ9XiOYXoPnToHVbllKFf5qCNFJGwFg5mg==", + "license": "MIT", "dependencies": { "style-to-object": "1.0.6" } @@ -53025,12 +54989,14 @@ "node_modules/style-to-js/node_modules/inline-style-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" + "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==", + "license": "MIT" }, "node_modules/style-to-js/node_modules/style-to-object": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", + "license": "MIT", "dependencies": { "inline-style-parser": "0.2.3" } @@ -53039,6 +55005,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "license": "MIT", "dependencies": { "inline-style-parser": "0.1.1" } @@ -53047,6 +55014,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", + "license": "MIT", "dependencies": { "hey-listen": "^1.0.8", "tslib": "^2.1.0" @@ -53056,6 +55024,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" @@ -53504,6 +55473,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz", "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==", + "license": "MIT", "peer": true, "dependencies": { "function-timeout": "^1.0.1", @@ -53520,6 +55490,7 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/superjson/-/superjson-1.13.3.tgz", "integrity": "sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==", + "license": "MIT", "dependencies": { "copy-anything": "^3.0.2" }, @@ -53579,6 +55550,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/svg-baker/-/svg-baker-1.7.0.tgz", "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==", + "license": "MIT", "dependencies": { "bluebird": "^3.5.0", "clone": "^2.1.1", @@ -53599,6 +55571,7 @@ "version": "1.4.7", "resolved": "https://registry.npmjs.org/svg-baker-runtime/-/svg-baker-runtime-1.4.7.tgz", "integrity": "sha512-Zorfwwj5+lWjk/oxwSMsRdS2sPQQdTmmsvaSpzU+i9ZWi3zugHLt6VckWfnswphQP0LmOel3nggpF5nETbt6xw==", + "license": "MIT", "dependencies": { "deepmerge": "1.3.2", "mitt": "1.1.2", @@ -53609,19 +55582,16 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", "integrity": "sha512-qjMjTrk+RKv/sp4RPDpV5CnKhxjFI9p+GkLBOls5A8EEElldYWCWA9zceAkmfd0xIo2aU1nxiaLFoiya2sb6Cg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/svg-baker-runtime/node_modules/mitt": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.2.tgz", - "integrity": "sha512-3btxP0O9iGADGWAkteQ8mzDtEspZqu4I32y4GZYCV5BrwtzdcRpF4dQgNdJadCrbBx7Lu6Sq9AVrerMHR0Hkmw==" - }, "node_modules/svg-baker/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -53630,6 +55600,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -53638,6 +55609,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -53658,6 +55630,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -53673,6 +55646,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -53681,6 +55655,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", "engines": { "node": ">=0.8" } @@ -53689,6 +55664,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -53700,6 +55676,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -53711,6 +55688,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -53725,6 +55703,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -53732,12 +55711,14 @@ "node_modules/svg-baker/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/svg-baker/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -53746,6 +55727,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -53757,6 +55739,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -53768,6 +55751,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -53776,6 +55760,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz", "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -53799,6 +55784,7 @@ "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "license": "MIT", "dependencies": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -53813,6 +55799,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -53821,6 +55808,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -53832,6 +55820,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "license": "MIT", "dependencies": { "has-flag": "^1.0.0" }, @@ -53843,6 +55832,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -53855,6 +55845,7 @@ "version": "6.0.11", "resolved": "https://registry.npmjs.org/svg-sprite-loader/-/svg-sprite-loader-6.0.11.tgz", "integrity": "sha512-TedsTf8wsHH6HgdwKjUveDZRC6q5gPloYV8A8/zZaRWP929J7x6TzQ6MvZFl+YYDJuJ0Akyuu/vNVJ+fbPuYXg==", + "license": "MIT", "dependencies": { "bluebird": "^3.5.0", "deepmerge": "1.3.2", @@ -53873,6 +55864,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", "integrity": "sha512-qjMjTrk+RKv/sp4RPDpV5CnKhxjFI9p+GkLBOls5A8EEElldYWCWA9zceAkmfd0xIo2aU1nxiaLFoiya2sb6Cg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -53885,6 +55877,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -53905,6 +55898,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/svgo-loader/-/svgo-loader-3.0.3.tgz", "integrity": "sha512-6YdWYge3h0aCb8xHvPhGP4hofIU1OWfZm0I8bteab7hddeRN4fl3aIkN8Z/ZB/ji9QrMOd6C8wT8F1p31GUwuQ==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.3", "svgo": "^2.8.0" @@ -53914,6 +55908,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -53927,6 +55922,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -53939,6 +55935,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.6.tgz", "integrity": "sha512-VgVgtEabORsQtmuindtO7v8fF+bsKxUkvEMFj+ecBK6bomrwv5JUSWdMoC3ypa9+Jaqp/wOzkWk4f6I+p5GzyA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -53956,12 +55953,8 @@ "node_modules/synchronous-promise": { "version": "2.0.17", "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", - "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==" - }, - "node_modules/tabbable": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", - "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" + "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==", + "license": "BSD-3-Clause" }, "node_modules/table": { "version": "6.8.1", @@ -54023,6 +56016,7 @@ "version": "1.14.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", + "license": "MIT", "peer": true, "funding": { "type": "github", @@ -54070,6 +56064,7 @@ "version": "6.0.8", "resolved": "https://registry.npmjs.org/telejson/-/telejson-6.0.8.tgz", "integrity": "sha512-nerNXi+j8NK1QEfBHtZUN/aLdDcyupA//9kAboYLrtzZlPLpUfqbVGWb9zz91f/mIjRbAYhbgtnJHY8I1b5MBg==", + "license": "MIT", "dependencies": { "@types/is-function": "^1.0.0", "global": "^4.4.0", @@ -54085,6 +56080,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -54101,6 +56097,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", + "license": "MIT", "dependencies": { "is-stream": "^3.0.0", "temp-dir": "^3.0.0", @@ -54118,6 +56115,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -54129,6 +56127,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "license": "MIT", "engines": { "node": ">=14.16" } @@ -54137,6 +56136,7 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -54279,6 +56279,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", "dependencies": { "utrie": "^1.0.2" } @@ -54292,6 +56293,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", "peer": true, "dependencies": { "any-promise": "^1.0.0" @@ -54301,6 +56303,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", "peer": true, "dependencies": { "thenify": ">= 3.1.0 < 4" @@ -54329,12 +56332,14 @@ "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" }, "node_modules/time-span": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "license": "MIT", "peer": true, "dependencies": { "convert-hrtime": "^5.0.0" @@ -54350,6 +56355,7 @@ "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "license": "MIT", "dependencies": { "setimmediate": "^1.0.4" }, @@ -54361,17 +56367,20 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "license": "MIT", "optional": true }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" }, "node_modules/tmp": { "version": "0.0.33", @@ -54391,7 +56400,8 @@ "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "license": "MIT" }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -54450,12 +56460,14 @@ "node_modules/toggle-selection": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -54463,12 +56475,14 @@ "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -54497,6 +56511,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "license": "MIT", "dependencies": { "punycode": "^2.3.0" }, @@ -54508,6 +56523,7 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -54519,6 +56535,7 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/tree-changes/-/tree-changes-0.11.2.tgz", "integrity": "sha512-4gXlUthrl+RabZw6lLvcCDl6KfJOCmrC16BC5CRdut1EAH509Omgg0BfKLY+ViRlzrvYOTWR0FMS2SQTwzumrw==", + "license": "MIT", "dependencies": { "@gilbarbara/deep-equal": "^0.3.1", "is-lite": "^1.2.0" @@ -54528,6 +56545,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "license": "MIT", "bin": { "tree-kill": "cli.js" } @@ -54558,6 +56576,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.2" }, @@ -54569,6 +56588,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -54577,6 +56597,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -54594,6 +56615,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", "engines": { "node": ">=6.10" } @@ -54731,6 +56753,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -54740,11 +56763,6 @@ } } }, - "node_modules/ts-toolbelt": { - "version": "6.15.5", - "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz", - "integrity": "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==" - }, "node_modules/tsconfig-paths": { "version": "3.14.1", "license": "MIT", @@ -54798,12 +56816,14 @@ "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "license": "MIT" }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", - "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==" + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", @@ -54837,6 +56857,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -54917,7 +56938,8 @@ "node_modules/typed-styles": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", - "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==" + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==", + "license": "MIT" }, "node_modules/typedarray": { "version": "0.0.6", @@ -54959,6 +56981,7 @@ "url": "https://github.com/sponsors/faisalman" } ], + "license": "MIT", "bin": { "ua-parser-js": "script/cli.js" }, @@ -54991,14 +57014,16 @@ } }, "node_modules/unfetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-2.1.2.tgz", - "integrity": "sha512-tkfHUEvx1WEOsaR8dPqvMa3nnv76P19fdfVvXDHVZN9Lqu5RIhO/bted4DkNdtx+KeDYGAGN2EXo87pw+jrWBw==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", + "license": "MIT" }, "node_modules/unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.0", "xtend": "^4.0.0" @@ -55019,6 +57044,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -55053,6 +57079,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -55139,6 +57166,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -55153,6 +57181,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -55174,6 +57203,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -55191,6 +57221,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -55200,6 +57231,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "license": "MIT", "dependencies": { "unist-util-is": "^4.0.0" }, @@ -55212,6 +57244,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "license": "MIT", "dependencies": { "unist-util-visit": "^2.0.0" }, @@ -55235,6 +57268,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", @@ -55249,6 +57283,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" @@ -55274,6 +57309,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -55281,7 +57317,8 @@ "node_modules/unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" }, "node_modules/unset-value": { "version": "1.0.0", @@ -55331,6 +57368,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", "integrity": "sha512-sJjbDp2GodvkB0FZZcn7k6afVisqX5BZD7Yq3xp4nN2O15BBK0cLm3Vwn2vQaF7UDS0UUsrQMkkplmDI5fskig==", + "license": "MIT", "optional": true, "dependencies": { "os-homedir": "^1.0.0" @@ -55392,6 +57430,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "license": "MIT", "dependencies": { "punycode": "^1.4.1", "qs": "^6.12.3" @@ -55404,6 +57443,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -55412,6 +57452,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", @@ -55438,6 +57479,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -55458,12 +57500,14 @@ "node_modules/url-search-params-polyfill": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/url-search-params-polyfill/-/url-search-params-polyfill-7.0.1.tgz", - "integrity": "sha512-bAw7L2E+jn9XHG5P9zrPnHdO0yJub4U+yXJOdpcpkr7OBd9T8oll4lUos0iSGRcDvfZoLUKfx9a6aNmIhJ4+mQ==" + "integrity": "sha512-bAw7L2E+jn9XHG5P9zrPnHdO0yJub4U+yXJOdpcpkr7OBd9T8oll4lUos0iSGRcDvfZoLUKfx9a6aNmIhJ4+mQ==", + "license": "MIT" }, "node_modules/url-slug": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/url-slug/-/url-slug-2.0.0.tgz", "integrity": "sha512-aiNmSsVgrjCiJ2+KWPferjT46YFKoE8i0YX04BlMVDue022Xwhg/zYlnZ6V9/mP3p8Wj7LEp0myiTkC/p6sxew==", + "license": "MIT", "dependencies": { "unidecode": "0.1.8" } @@ -55471,7 +57515,8 @@ "node_modules/url/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "license": "MIT" }, "node_modules/use": { "version": "3.1.1", @@ -55484,6 +57529,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -55504,6 +57550,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -55512,6 +57559,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -55533,6 +57581,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -55541,6 +57590,7 @@ "version": "2.16.0", "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-2.16.0.tgz", "integrity": "sha512-bez95WqYujxp6hFdM/CpRDiVPirZPxlMzOH2QB8yopoKQMXpscyZoxOjpEdaxvV+CAWUDSM62cWnqHE0E/MZ7w==", + "license": "MIT", "dependencies": { "lodash.debounce": "^4.0.8" }, @@ -55555,6 +57605,7 @@ "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "license": "MIT", "dependencies": { "inherits": "2.0.3" } @@ -55567,6 +57618,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "license": "MIT", "dependencies": { "define-properties": "^1.1.2", "object.getownpropertydescriptors": "^2.0.3" @@ -55575,17 +57627,20 @@ "node_modules/util/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -55594,6 +57649,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", "dependencies": { "base64-arraybuffer": "^1.0.2" } @@ -55606,6 +57662,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -55614,7 +57671,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid-browser/-/uuid-browser-3.1.0.tgz", "integrity": "sha512-dsNgbLaTrd6l3MMxTtouOCFw4CBFc/3a+GgYA2YyrJvyQ1u6q4pcu3ktLoUZ/VN/Aw9WsauazbgsgdfVWgAKQg==", - "deprecated": "Package no longer supported and required. Use the uuid package or crypto.randomUUID instead" + "deprecated": "Package no longer supported and required. Use the uuid package or crypto.randomUUID instead", + "license": "MIT" }, "node_modules/v8-compile-cache": { "version": "2.3.0", @@ -55668,12 +57726,14 @@ "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -55696,6 +57756,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -55713,31 +57774,17 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", - "dependencies": { - "source-map": "^0.5.1" - } - }, - "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "license": "MIT" }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -55756,6 +57803,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "license": "MIT", "dependencies": { "xml-name-validator": "^4.0.0" }, @@ -55779,6 +57827,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } @@ -55798,6 +57847,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "license": "MIT", "optional": true, "dependencies": { "chokidar": "^2.1.8" @@ -55807,6 +57857,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "license": "ISC", "optional": true, "dependencies": { "micromatch": "^3.1.4", @@ -55817,6 +57868,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "license": "MIT", "optional": true, "dependencies": { "remove-trailing-separator": "^1.0.1" @@ -55829,6 +57881,7 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -55838,6 +57891,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "optional": true, "dependencies": { "arr-flatten": "^1.1.0", @@ -55859,6 +57913,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "optional": true, "dependencies": { "is-extendable": "^0.1.0" @@ -55871,6 +57926,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "license": "MIT", "optional": true, "dependencies": { "anymatch": "^2.0.0", @@ -55893,6 +57949,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "optional": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -55908,6 +57965,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "optional": true, "dependencies": { "is-extendable": "^0.1.0" @@ -55922,6 +57980,7 @@ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -55938,6 +57997,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "license": "ISC", "optional": true, "dependencies": { "is-glob": "^3.1.0", @@ -55948,6 +58008,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "license": "MIT", "optional": true, "dependencies": { "is-extglob": "^2.1.0" @@ -55960,6 +58021,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "license": "MIT", "optional": true, "dependencies": { "binary-extensions": "^1.0.0" @@ -55972,12 +58034,14 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT", "optional": true }, "node_modules/watchpack-chokidar2/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -55987,6 +58051,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "optional": true, "dependencies": { "kind-of": "^3.0.2" @@ -55999,6 +58064,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "optional": true, "dependencies": { "is-buffer": "^1.1.5" @@ -56011,12 +58077,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT", "optional": true }, "node_modules/watchpack-chokidar2/node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "optional": true, "dependencies": { "arr-diff": "^4.0.0", @@ -56041,6 +58109,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "optional": true, "dependencies": { "core-util-is": "~1.0.0", @@ -56056,6 +58125,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "license": "MIT", "optional": true, "dependencies": { "graceful-fs": "^4.1.11", @@ -56070,12 +58140,14 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT", "optional": true }, "node_modules/watchpack-chokidar2/node_modules/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==", + "license": "MIT", "optional": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -56085,6 +58157,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "optional": true, "dependencies": { "is-number": "^3.0.0", @@ -56098,6 +58171,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", "optional": true, "engines": { "node": ">=4", @@ -56108,6 +58182,7 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -56124,6 +58199,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -56133,6 +58209,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" } @@ -56187,6 +58264,7 @@ "version": "4.10.2", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", @@ -56212,6 +58290,7 @@ "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -56223,6 +58302,7 @@ "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", "dependencies": { "acorn": "^8.11.0" }, @@ -56234,6 +58314,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -56241,12 +58322,14 @@ "node_modules/webpack-bundle-analyzer/node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" }, "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -56258,6 +58341,7 @@ "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -56278,6 +58362,7 @@ "version": "4.10.0", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^1.2.0", @@ -56324,6 +58409,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -56332,6 +58418,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -56340,6 +58427,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "license": "MIT", "dependencies": { "resolve": "^1.9.0" }, @@ -56351,6 +58439,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", @@ -56373,6 +58462,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -56391,6 +58481,7 @@ "version": "3.11.3", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", + "license": "MIT", "dependencies": { "ansi-html-community": "0.0.8", "bonjour": "^3.5.0", @@ -56445,6 +58536,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -56460,6 +58552,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -56468,6 +58561,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -56476,6 +58570,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "license": "ISC", "dependencies": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" @@ -56485,6 +58580,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -56496,6 +58592,7 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -56504,6 +58601,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -56524,6 +58622,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -56535,6 +58634,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "license": "MIT", "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", @@ -56556,6 +58656,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "license": "ISC", "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -56566,6 +58667,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -56574,6 +58676,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -56584,12 +58687,14 @@ "node_modules/webpack-dev-server/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -56604,6 +58709,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -56615,6 +58721,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -56628,6 +58735,7 @@ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -56644,6 +58752,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "license": "ISC", "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -56653,6 +58762,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.0" }, @@ -56663,12 +58773,14 @@ "node_modules/webpack-dev-server/node_modules/html-entities": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/import-local": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "license": "MIT", "dependencies": { "pkg-dir": "^3.0.0", "resolve-cwd": "^2.0.0" @@ -56683,12 +58795,14 @@ "node_modules/webpack-dev-server/node_modules/ip": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "license": "MIT", "dependencies": { "binary-extensions": "^1.0.0" }, @@ -56699,12 +58813,14 @@ "node_modules/webpack-dev-server/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -56713,6 +58829,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "license": "MIT", "engines": { "node": ">=4" } @@ -56721,6 +58838,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -56732,6 +58850,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -56742,17 +58861,20 @@ "node_modules/webpack-dev-server/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -56765,6 +58887,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -56774,6 +58897,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -56797,6 +58921,7 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -56808,6 +58933,7 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -56819,6 +58945,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -56833,6 +58960,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -56844,6 +58972,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -56852,6 +58981,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -56863,6 +58993,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -56877,6 +59008,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -56890,6 +59022,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "license": "MIT", "dependencies": { "resolve-from": "^3.0.0" }, @@ -56901,6 +59034,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -56908,12 +59042,14 @@ "node_modules/webpack-dev-server/node_modules/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -56927,6 +59063,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -56935,6 +59072,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "license": "MIT", "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -56948,6 +59086,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -56956,6 +59095,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -56967,6 +59107,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -56978,6 +59119,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -56989,6 +59131,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -57001,6 +59144,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", "engines": { "node": ">=4", "yarn": "*" @@ -57010,6 +59154,7 @@ "version": "3.7.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "license": "MIT", "dependencies": { "memory-fs": "^0.4.1", "mime": "^2.4.4", @@ -57028,6 +59173,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -57041,6 +59187,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -57049,6 +59196,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -57060,6 +59208,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", "dependencies": { "async-limiter": "~1.0.0" } @@ -57067,12 +59216,14 @@ "node_modules/webpack-dev-server/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" }, "node_modules/webpack-dev-server/node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "license": "MIT", "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -57090,6 +59241,7 @@ "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -57099,6 +59251,7 @@ "version": "2.26.1", "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz", "integrity": "sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==", + "license": "MIT", "dependencies": { "ansi-html-community": "0.0.8", "html-entities": "^2.1.0", @@ -57109,6 +59262,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "license": "MIT", "dependencies": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" @@ -57121,6 +59275,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -57130,6 +59285,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", "bin": { "uuid": "bin/uuid" } @@ -57138,6 +59294,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "license": "MIT", "dependencies": { "tapable": "^2.0.0", "webpack-sources": "^2.2.0" @@ -57153,6 +59310,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -57161,6 +59319,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" @@ -57173,6 +59332,7 @@ "version": "5.10.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -57185,7 +59345,8 @@ "node_modules/webpack-node-externals": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz", - "integrity": "sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w==" + "integrity": "sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w==", + "license": "MIT" }, "node_modules/webpack-sources": { "version": "3.2.3", @@ -57197,7 +59358,8 @@ "node_modules/webpack-virtual-modules": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz", - "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==" + "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==", + "license": "MIT" }, "node_modules/webpack/node_modules/acorn": { "version": "8.8.1", @@ -57285,6 +59447,7 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -57298,6 +59461,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -57306,6 +59470,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -57317,6 +59482,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -57327,12 +59493,14 @@ "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "license": "MIT", "engines": { "node": ">=12" } @@ -57341,6 +59509,7 @@ "version": "12.0.1", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "license": "MIT", "dependencies": { "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" @@ -57423,6 +59592,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "license": "MIT", "dependencies": { "string-width": "^4.0.0" }, @@ -57433,7 +59603,8 @@ "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" }, "node_modules/word-wrap": { "version": "1.2.3", @@ -57450,6 +59621,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "license": "MIT", "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" @@ -57459,6 +59631,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -57467,6 +59640,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "license": "MIT", "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", @@ -57514,6 +59688,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -57522,6 +59697,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -57536,6 +59712,7 @@ "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "license": "BSD-3-Clause", "dependencies": { "whatwg-url": "^7.0.0" }, @@ -57547,6 +59724,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -57555,6 +59733,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "temp-dir": "^2.0.0", @@ -57572,6 +59751,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "license": "MIT", "dependencies": { "punycode": "^2.1.0" } @@ -57580,6 +59760,7 @@ "version": "0.16.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -57591,6 +59772,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -57602,6 +59784,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", "engines": { "node": ">=4", "yarn": "*" @@ -57610,12 +59793,14 @@ "node_modules/workbox-build/node_modules/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==" + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "license": "BSD-2-Clause" }, "node_modules/workbox-build/node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "license": "MIT", "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -57627,6 +59812,7 @@ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", "deprecated": "workbox-background-sync@6.6.0", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -57634,12 +59820,14 @@ "node_modules/workbox-core": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", - "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "license": "MIT" }, "node_modules/workbox-expiration": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" @@ -57650,6 +59838,7 @@ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "license": "MIT", "dependencies": { "workbox-background-sync": "6.6.0", "workbox-core": "6.6.0", @@ -57661,6 +59850,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -57669,6 +59859,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0", @@ -57679,6 +59870,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -57687,6 +59879,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "license": "MIT", "dependencies": { "workbox-cacheable-response": "6.6.0", "workbox-core": "6.6.0", @@ -57700,6 +59893,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -57708,6 +59902,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -57716,6 +59911,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0" @@ -57724,12 +59920,14 @@ "node_modules/workbox-sw": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", - "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "license": "MIT" }, "node_modules/workbox-webpack-plugin": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "license": "MIT", "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", @@ -57748,6 +59946,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", "engines": { "node": ">=4", "yarn": "*" @@ -57757,6 +59956,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -57766,6 +59966,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "license": "MIT", "dependencies": { "@types/trusted-types": "^2.0.2", "workbox-core": "6.6.0" @@ -57775,6 +59976,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "license": "MIT", "dependencies": { "errno": "~0.1.7" } @@ -57783,6 +59985,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "license": "MIT", "dependencies": { "microevent.ts": "~0.1.1" } @@ -57807,6 +60010,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -57823,6 +60027,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -57837,6 +60042,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -57847,7 +60053,8 @@ "node_modules/wrap-ansi-cjs/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", @@ -58015,6 +60222,7 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -58035,6 +60243,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/x-default-browser/-/x-default-browser-0.4.0.tgz", "integrity": "sha512-7LKo7RtWfoFN/rHx1UELv/2zHGMx8MkZKDq1xENmOCTkfIqZJ0zZ26NEJX8czhnPXVcqS0ARjjfJB+eJ0/5Cvw==", + "license": "MIT", "bin": { "x-default-browser": "bin/x-default-browser.js" }, @@ -58046,6 +60255,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "license": "Apache-2.0", "engines": { "node": ">=12" } @@ -58137,6 +60347,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -58148,6 +60359,7 @@ "version": "0.32.11", "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.15.4", "@types/lodash": "^4.14.175", diff --git a/packages/account/build/webpack.config.js b/packages/account/build/webpack.config.js index d2f271ec2718..3089aefb44f4 100644 --- a/packages/account/build/webpack.config.js +++ b/packages/account/build/webpack.config.js @@ -22,6 +22,7 @@ module.exports = function (env) { 'terms-of-use-config': 'Configs/terms-of-use-config', 'trading-assessment-config': 'Configs/trading-assessment-config', 'test-warning-modal': 'Components/trading-assessment/test-warning-modal', + 'employment-tax-info-config': 'Configs/employment-tax-info-config', }, mode: IS_RELEASE ? 'production' : 'development', module: { diff --git a/packages/account/package.json b/packages/account/package.json index 3278c573bd05..8c25891dd202 100644 --- a/packages/account/package.json +++ b/packages/account/package.json @@ -32,10 +32,10 @@ "@binary-com/binary-document-uploader": "^2.4.8", "@deriv-com/analytics": "1.14.0", "@deriv-com/translations": "1.3.9", - "@deriv-com/utils": "^0.0.34", - "@deriv-com/ui": "1.35.0", + "@deriv-com/utils": "^0.0.36", + "@deriv-com/ui": "1.36.4", "@deriv/api": "^1.0.0", - "@deriv-com/quill-ui": "1.16.20", + "@deriv-com/quill-ui": "1.18.0", "@deriv/components": "^1.0.0", "@deriv/hooks": "^1.0.0", "@deriv/quill-icons": "1.23.3", diff --git a/packages/account/src/Components/additional-kyc-info-modal/__test__/additional-kyc-info-form.spec.tsx b/packages/account/src/Components/additional-kyc-info-modal/__test__/additional-kyc-info-form.spec.tsx deleted file mode 100644 index f6827953f478..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/__test__/additional-kyc-info-form.spec.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import React from 'react'; -import { render, screen, waitFor } from '@testing-library/react'; -import { StoreProvider, mockStore } from '@deriv/stores'; -import { AdditionalKycInfoForm } from '../additional-kyc-info-form'; -import userEvent from '@testing-library/user-event'; -import { useSettings } from '@deriv/api'; -import { TSocketError } from '@deriv/api/types'; - -jest.mock('@deriv/api', () => ({ - ...jest.requireActual('@deriv/api'), - useSettings: jest.fn(), -})); - -const mockedUseSettings = useSettings as jest.Mock; - -type TMutation = Partial['mutation']>; - -type TMockConfig = Omit, 'mutation'> & { - mutation: TMutation; -}; - -const mock_settings: Partial = { - update: jest.fn(), - mutation: { isLoading: false, isSuccess: false, error: null, isError: false }, - data: { - tax_identification_number: '', - tax_residence: '', - place_of_birth: '', - account_opening_reason: '', - has_submitted_personal_details: false, - }, -}; - -jest.mock('@deriv/shared', () => ({ - ...jest.requireActual('@deriv/shared'), - generateValidationFunction: jest.fn(), -})); - -describe('AdditionalKycInfoForm', () => { - const setError = jest.fn(); - const mock_store = mockStore({}); - - it('should render the form fields', () => { - mockedUseSettings.mockReturnValue(mock_settings); - render( - - - - ); - - expect(screen.getByTestId('dt_place_of_birth')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tax_residence')).toBeInTheDocument(); - expect(screen.getByTestId('dt_tax_identification_number')).toBeInTheDocument(); - expect(screen.getByTestId('dt_account_opening_reason')).toBeInTheDocument(); - }); - - it('should render loading state upon fetching data', () => { - mockedUseSettings.mockReturnValue({ ...mock_settings, isLoading: true }); - render( - - - - ); - - expect(screen.getByTestId('dt_initial_loader')).toBeInTheDocument(); - }); - - it('should submit the form when all fields are valid', async () => { - mockedUseSettings.mockReturnValue(mock_settings); - render( - - - - ); - - const submit_btn = screen.getByRole('button', { name: 'Submit' }); - - userEvent.type(screen.getByTestId('dt_place_of_birth'), 'Ghana'); - userEvent.type(screen.getByTestId('dt_tax_residence'), 'Ghana'); - userEvent.type(screen.getByTestId('dt_tax_identification_number'), 'GHA-000000000-0'); - userEvent.type(screen.getByTestId('dt_account_opening_reason'), 'Speculative'); - - await waitFor(() => { - expect(submit_btn).toBeEnabled(); - }); - userEvent.click(screen.getByRole('button', { name: 'Submit' })); - - expect(mockedUseSettings).toHaveBeenCalled(); - }); - - it('should be able to submit the form without filling optional fields', async () => { - mockedUseSettings.mockReturnValue(mock_settings); - render( - - - - ); - - const submit_btn = screen.getByRole('button', { name: 'Submit' }); - - userEvent.type(screen.getByTestId('dt_place_of_birth'), 'Ghana'); - userEvent.type(screen.getByTestId('dt_account_opening_reason'), 'Speculative'); - - await waitFor(() => { - expect(submit_btn).toBeEnabled(); - }); - userEvent.click(screen.getByRole('button', { name: 'Submit' })); - - expect(mockedUseSettings).toHaveBeenCalled(); - }); - - it('should show an error message if form validation fails', async () => { - mockedUseSettings.mockReturnValue({ - ...mock_settings, - mutation: { - ...mock_settings.mutation, - isError: true, - status: 'error', - error: { - message: 'Invalid TIN format', - } as unknown as TSocketError<'set_settings'>, - }, - }); - render( - - - - ); - - const submit_btn = screen.getByRole('button', { name: 'Submit' }); - - userEvent.type(screen.getByTestId('dt_place_of_birth'), 'Ghana'); - userEvent.type(screen.getByTestId('dt_tax_residence'), 'Ghana'); - userEvent.type(screen.getByTestId('dt_tax_identification_number'), 'GHA-00000000'); - userEvent.type(screen.getByTestId('dt_account_opening_reason'), 'Speculative'); - - userEvent.click(submit_btn); - - expect(mockedUseSettings).toHaveBeenCalled(); - expect(setError).toHaveBeenCalled(); - }); -}); diff --git a/packages/account/src/Components/additional-kyc-info-modal/__test__/additional-kyc-info-modal.spec.tsx b/packages/account/src/Components/additional-kyc-info-modal/__test__/additional-kyc-info-modal.spec.tsx deleted file mode 100644 index 13decd303a3c..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/__test__/additional-kyc-info-modal.spec.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import { StoreProvider, mockStore } from '@deriv/stores'; -import { AdditionalKycInfoModal } from '../additional-kyc-info-modal'; - -jest.mock('../additional-kyc-info-form.tsx', () => jest.fn(() =>
AdditionalKycInfoForm
)); - -describe('AdditionalKycInfoModal', () => { - let modal_root_el: HTMLElement; - const mock_store = mockStore({ - ui: { - is_additional_kyc_info_modal_open: true, - toggleAdditionalKycInfoModal: jest.fn(), - }, - }); - - beforeAll(() => { - modal_root_el = document.createElement('div'); - modal_root_el.setAttribute('id', 'modal_root'); - document.body.appendChild(modal_root_el); - }); - - afterAll(() => { - document.body.removeChild(modal_root_el); - }); - - it('should render the modal when is_additional_kyc_info_modal_open is true', () => { - render( - - - - ); - expect(screen.getByText(/additional information required/i)).toBeInTheDocument(); - expect(screen.getByText(/AdditionalKycInfoForm/i)).toBeInTheDocument(); - }); -}); diff --git a/packages/account/src/Components/additional-kyc-info-modal/__test__/form-config.spec.tsx b/packages/account/src/Components/additional-kyc-info-modal/__test__/form-config.spec.tsx deleted file mode 100644 index 015cb169b86d..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/__test__/form-config.spec.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { GetSettings, ResidenceList } from '@deriv/api-types'; -import { getFormFieldsConfig, getFormConfig, TFields } from '../form-config'; - -const mockAccountSettings: GetSettings = { - immutable_fields: ['place_of_birth'], - place_of_birth: 'UK', - tax_residence: 'UK', - tax_identification_number: '12345', - account_opening_reason: 'Hedging', -}; - -const mockResidenceList: ResidenceList = [ - { value: 'UK', text: 'United Kingdom' }, - { value: 'US', text: 'United States' }, -]; - -describe('getFormFieldsConfig', () => { - it('should return the correct form fields configuration', () => { - const requiredFields: TFields[] = ['place_of_birth', 'tax_residence']; - const config = getFormFieldsConfig(mockAccountSettings, mockResidenceList, requiredFields); - - expect(config.place_of_birth.type).toBe('select'); - expect(config.place_of_birth.initial_value).toBe('United Kingdom'); - expect(config.place_of_birth.disabled).toBe(true); - expect(config.place_of_birth.required).toBe(true); - - expect(config.tax_residence.type).toBe('select'); - expect(config.tax_residence.initial_value).toBe('United Kingdom'); - expect(config.tax_residence.disabled).toBe(false); - expect(config.tax_residence.required).toBe(true); - }); -}); - -describe('getFormConfig', () => { - it('should return the correct form configuration', () => { - const requiredFields: TFields[] = ['place_of_birth', 'tax_residence']; - const formConfig = getFormConfig({ - account_settings: mockAccountSettings, - residence_list: mockResidenceList, - required_fields: requiredFields, - }); - - expect(formConfig.fields.place_of_birth.disabled).toBe(true); - expect(formConfig.fields.place_of_birth.required).toBe(true); - - expect(formConfig.fields.tax_residence.disabled).toBe(false); - expect(formConfig.fields.tax_residence.required).toBe(true); - }); - - it('should return the correct form configuration with input types', () => { - const requiredFields: TFields[] = ['place_of_birth', 'tax_residence']; - const formConfig = getFormConfig({ - account_settings: { ...mockAccountSettings, immutable_fields: ['place_of_birth', 'tax_residence'] }, - residence_list: mockResidenceList, - required_fields: requiredFields, - with_input_types: true, - }); - - expect(formConfig.fields.place_of_birth.type).toBe('select'); - expect(formConfig.fields.place_of_birth.disabled).toBe(true); - expect(formConfig.fields.place_of_birth.required).toBe(true); - - expect(formConfig.fields.tax_residence.type).toBe('select'); - expect(formConfig.fields.tax_residence.disabled).toBe(true); - expect(formConfig.fields.tax_residence.required).toBe(true); - }); -}); diff --git a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-form.tsx b/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-form.tsx deleted file mode 100644 index 3691c2f0ffff..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-form.tsx +++ /dev/null @@ -1,165 +0,0 @@ -import { Button, Loading, Modal, Text } from '@deriv/components'; -import { observer, useStore } from '@deriv/stores'; -import { Localize } from '@deriv/translations'; -import clsx from 'clsx'; -import { Form, Formik } from 'formik'; -import React from 'react'; -import { useSettings } from '@deriv/api'; -import { OECD_TIN_FORMAT_URL } from '../../Constants/external-urls'; -import FormFieldInfo from '../form-field-info'; -import { FormInputField } from '../forms/form-fields'; -import FormSelectField from '../forms/form-select-field'; -import { getFormConfig } from './form-config'; -import { TListItem } from 'Types'; -import { useDevice } from '@deriv-com/ui'; - -const FormTitle = () => { - const { isDesktop } = useDevice(); - return ( - - - - ); -}; - -type TAdditionalKycInfoFormProps = { - setError?: React.Dispatch>; -}; - -export const AdditionalKycInfoForm = observer(({ setError }: TAdditionalKycInfoFormProps) => { - const { client, ui, notifications } = useStore(); - const { residence_list, updateAccountStatus } = client; - const { - update, - mutation: { isLoading, error, status }, - data: account_settings, - isLoading: isAccountSettingsLoading, - } = useSettings(); - - const { fields, initialValues, validate } = getFormConfig({ - account_settings, - residence_list, - required_fields: ['place_of_birth', 'account_opening_reason'], - }); - - const onSubmit = (values: typeof initialValues) => { - const place_of_birth = residence_list?.find(item => item.text === values.place_of_birth)?.value; - - const payload: Record = { - place_of_birth, - account_opening_reason: values.account_opening_reason, - }; - - if (values.tax_identification_number) { - payload.tax_identification_number = values.tax_identification_number; - } - - if (values.tax_residence) { - const tax_residence = residence_list?.find(item => item.text === values.tax_residence)?.value; - payload.tax_residence = tax_residence; - } - - update(payload); - }; - - React.useEffect(() => { - if (status === 'success') { - updateAccountStatus(); - notifications.refreshNotifications(); - ui.toggleAdditionalKycInfoModal(); - ui.toggleKycInformationSubmittedModal(); - } else if (status === 'error') { - setError?.(error); - } - }, [error, notifications, setError, status, ui, updateAccountStatus]); - - if (isAccountSettingsLoading) { - return ; - } - - return ( - - {({ isValid, setFieldValue }) => ( -
- {isLoading ? ( - - ) : ( -
- -
- -
-
- - - } - /> -
-
- {/* @ts-expect-error Label type of Input field is string instead of ReactNode */} - - , -
, - ]} - /> - } - /> -
-
- { - setFieldValue('account_opening_reason', value, true); - }} - list_height='6rem' - {...fields.account_opening_reason} - /> -
-
- )} - - - - - )} -
- ); -}); - -AdditionalKycInfoForm.displayName = 'AdditionalKycInfoForm'; - -export default AdditionalKycInfoForm; diff --git a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-modal.scss b/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-modal.scss deleted file mode 100644 index bb9682d085d5..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-modal.scss +++ /dev/null @@ -1,91 +0,0 @@ -.dc-modal { - &__container { - &_additional-kyc-info { - &-header { - border-bottom: 2px solid var(--general-section-1); - } - - &-footer { - padding: 1.6rem 0 0; - margin: unset; - } - - .inline-message { - margin: 0.8rem 1.6rem; - width: calc(100% - 3.2rem); - justify-content: flex-start; - } - } - } -} - -.additional-kyc-info-modal { - &__portal-header { - padding: 2.5rem 2rem; - } - - &__form { - padding: unset; - height: 100%; - position: relative; - - @include mobile-or-tablet-screen { - width: 100%; - } - - &--header { - margin: 1.6rem 0 2.4rem; - - @include mobile-or-tablet-screen { - padding: 0; - } - } - - .dc-dropdown-list { - margin: 1rem 0; - } - - &-layout { - display: flex; - flex-direction: column; - height: 100%; - - &--fields { - display: flex; - flex-direction: column; - padding: 0 24.4rem; - - @include mobile-or-tablet-screen { - padding: 0 1.6rem; - } - } - } - - &-field { - margin-bottom: 3.2rem; - - &--info { - display: flex; - align-items: baseline; - gap: 0.8rem; - } - } - - &-action { - padding: 1.6rem 2.4rem; - - @include mobile-or-tablet-screen { - position: absolute; - bottom: 0; - width: 100%; - padding: 1.6rem; - } - - .dc-btn { - @include mobile-or-tablet-screen { - width: 100%; - } - } - } - } -} diff --git a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-modal.tsx b/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-modal.tsx deleted file mode 100644 index 6a243dbbe01d..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/additional-kyc-info-modal.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { Div100vhContainer, InlineMessage, Modal, PageOverlay, Text, UILoader } from '@deriv/components'; -import { getPlatformSettings } from '@deriv/shared'; -import { observer, useStore } from '@deriv/stores'; -import { Localize } from '@deriv/translations'; -import { useDevice } from '@deriv-com/ui'; -import React from 'react'; -import AdditionalKycInfoForm from './additional-kyc-info-form'; - -type TAdditionalKycInfoFormWithHintBox = { - error?: unknown; - setError?: React.Dispatch>; -}; - -const AdditionalKycInfoFormWithHintBox = ({ error, setError }: TAdditionalKycInfoFormWithHintBox) => { - return ( - - {!!error && ( - - )} - - - ); -}; - -export const AdditionalKycInfoModal = observer(() => { - const { - ui: { is_additional_kyc_info_modal_open: is_open, toggleAdditionalKycInfoModal }, - } = useStore(); - const { isDesktop } = useDevice(); - const [error, setError] = React.useState(''); - - const toggleModal = (e?: React.MouseEvent | React.KeyboardEvent) => { - // if e.target is anchor tag, don't close modal for link click within modal - const target = e?.target as HTMLElement; - if (target.tagName === 'A') e?.stopPropagation(); - toggleAdditionalKycInfoModal(); - }; - - const mt5_platform_settings = getPlatformSettings('mt5'); - - const ModalTitle = () => ( - - ); - - return ( - }> -
- {isDesktop ? ( - } - toggleModal={toggleModal} - className='additional-kyc-info' - width='90.4rem' - height={error ? '54.4rem' : '49.6rem'} - > - - - - - ) : ( - - - - } - onClickClose={toggleAdditionalKycInfoModal} - header_classname='additional-kyc-info-modal__portal-header' - > - - - - - )} -
-
- ); -}); - -AdditionalKycInfoModal.displayName = 'AdditionalKycInfoModal'; diff --git a/packages/account/src/Components/additional-kyc-info-modal/form-config.tsx b/packages/account/src/Components/additional-kyc-info-modal/form-config.tsx deleted file mode 100644 index 05179815ad4b..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/form-config.tsx +++ /dev/null @@ -1,248 +0,0 @@ -import React from 'react'; -import { GetSettings, ResidenceList } from '@deriv/api-types'; -import { Localize, localize } from '@deriv/translations'; -import { generateValidationFunction } from '@deriv/shared'; -import { TListItem } from 'Types'; - -export type TFields = 'place_of_birth' | 'tax_residence' | 'tax_identification_number' | 'account_opening_reason'; - -type ReqRule = ['req', React.ReactNode]; - -type LengthRule = ['length', React.ReactNode, { min: number; max: number }]; - -type RegularRule = ['regular', React.ReactNode, { regex: RegExp }]; - -type CustomValidator = ( - value: string, - /** - * The options passed to the validation function - */ - options: Record, - /** - * The values of all fields in the form - */ - values: Record -) => React.ReactNode; - -type CustomRule = [CustomValidator, React.ReactNode]; - -type Rule = ReqRule | LengthRule | RegularRule | CustomRule; - -type TInputConfig = { - label: React.ReactNode; - /** - * The type of the input field (e.g. 'text', 'password', 'select', etc.) - */ - type?: string; - initial_value: string; - required?: boolean; - disabled?: boolean; - placeholder?: string; - /** - * The list of items for the dropdown or select - */ - list_items?: TListItem[]; - /** - * The validation rules for the input field (e.g. 'req', 'length', 'regular', etc.) - */ - rules?: Array; -}; - -export type TGetField = Omit & { name: string }; - -export type TFormFieldsConfig = { - [key in TFields]: TInputConfig; -}; - -/** - * The base config for form fields with validation rules - * every field should have label, type, initial_value, disabled, required, placeholder, list_items, rules - * - * `list_items` is used for dropdowns and select - * @returns TFormFieldsConfig - */ -export const getFormFieldsConfig = ( - account_settings: GetSettings, - residence_list: ResidenceList, - required_fields: TFields[] -) => { - /** - * Check if the field is disabled based on the immutable_fields from API - */ - const isFieldDisabled = (field: string) => account_settings?.immutable_fields?.includes(field); - - /** - * Check if the field is required based on the required_fields array passed - */ - const isFieldRequired = (field: TFields) => required_fields.includes(field); - - const config: TFormFieldsConfig = { - place_of_birth: { - label: ( - - ), - type: 'select', - initial_value: - (account_settings.place_of_birth && - residence_list.find(item => item.value === account_settings.place_of_birth)?.text) ?? - '', - disabled: isFieldDisabled('place_of_birth'), - required: isFieldRequired('place_of_birth'), - list_items: residence_list as TListItem[], - rules: [['req', ]], - }, - tax_residence: { - label: ( - - ), - type: 'select', - initial_value: - (account_settings.tax_residence && - residence_list.find(item => item.value === account_settings.tax_residence)?.text) ?? - '', - disabled: isFieldDisabled('tax_residence'), - required: isFieldRequired('tax_residence'), - list_items: residence_list as TListItem[], - rules: [], - }, - tax_identification_number: { - label: ( - - ), - type: 'text', - initial_value: account_settings.tax_identification_number ?? '', - disabled: isFieldDisabled('tax_identification_number'), - required: isFieldRequired('tax_identification_number'), - rules: [ - [ - 'length', - , - { min: 0, max: 25 }, - ], - [ - // check if the TIN value is available, then perform the regex test - // else return true (to pass the test) - // this is to allow empty string to pass the test in case of optioal TIN field - (value: string) => (value ? RegExp(/^(?!^$|\s+)[A-Za-z0-9./\s-]{0,25}$/).test(value) : true), - localize('Letters, numbers, spaces, periods, hyphens and forward slashes only.'), - ], - [ - (value, options, { tax_residence }) => { - return value ? !!tax_residence : true; - }, - , - ], - [ - (value: string, options, { tax_residence }) => { - const tin_format = residence_list.find( - res => res.text === tax_residence && res.tin_format - )?.tin_format; - return value && tin_format - ? tin_format.some(tax_regex => new RegExp(tax_regex).test(value)) - : true; - }, - , - ], - ], - }, - account_opening_reason: { - label: ( - - ), - type: 'select', - initial_value: account_settings.account_opening_reason ?? '', - disabled: isFieldDisabled('account_opening_reason'), - required: isFieldRequired('account_opening_reason'), - list_items: [ - { - text: localize('Hedging'), - value: 'Hedging', - }, - { - text: localize('Income Earning'), - value: 'Income Earning', - }, - { - text: localize('Speculative'), - value: 'Speculative', - }, - ], - rules: [ - [ - 'req', - , - ], - ], - }, - }; - return config; -}; - -/** - * Generate initial values for form fields - */ -const generateInitialValues = (fields: ReturnType) => { - const initial_values: Record = {} as Record; - (Object.keys(fields) as TFields[]).forEach(field => { - initial_values[field] = fields[field].initial_value; - }); - return initial_values; -}; - -/** - * This function is used to transform form fields config to the format that is used in Formik or Formik Field - */ -const getField = (fields: TFormFieldsConfig, name: TFields, with_input_types: boolean): TGetField => { - const { label, placeholder, required, disabled, type, list_items } = fields[name]; - - return { - name, - label, - required, - disabled, - ...(with_input_types ? { type } : {}), - ...(placeholder ? { placeholder } : {}), - ...(list_items ? { list_items } : {}), - }; -}; - -/** - * Function to transform and return form config that can be used within the component that renders the form - */ -export const getFormConfig = (options: { - account_settings: GetSettings; - residence_list: ResidenceList; - required_fields: TFields[]; - with_input_types?: boolean; -}) => { - const { account_settings, residence_list, required_fields, with_input_types = false } = options; - const fields_config = getFormFieldsConfig(account_settings, residence_list, required_fields); - const inputs: Record = {} as Record; - Object.keys(fields_config).forEach(field_key => { - // @ts-expect-error `field_key` is always a key of `fields_config`, Hence can ignore the TS error. - inputs[field_key] = getField(fields_config, field_key, with_input_types); - }); - return { - fields: inputs, - /** typing fields_config as any as this current config has different structure - * and generateValidationFunction should have generic types - * */ - validate: generateValidationFunction('', fields_config as any), - initialValues: generateInitialValues(fields_config), - }; -}; diff --git a/packages/account/src/Components/additional-kyc-info-modal/index.ts b/packages/account/src/Components/additional-kyc-info-modal/index.ts deleted file mode 100644 index 8d987c7f7f09..000000000000 --- a/packages/account/src/Components/additional-kyc-info-modal/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { AdditionalKycInfoModal } from './additional-kyc-info-modal'; -import './additional-kyc-info-modal.scss'; - -export default AdditionalKycInfoModal; diff --git a/packages/account/src/Components/forms/__tests__/personal-details-form.spec.tsx b/packages/account/src/Components/forms/__tests__/personal-details-form.spec.tsx index 7722a6cba755..32c2a1008774 100644 --- a/packages/account/src/Components/forms/__tests__/personal-details-form.spec.tsx +++ b/packages/account/src/Components/forms/__tests__/personal-details-form.spec.tsx @@ -1,10 +1,10 @@ import React from 'react'; import { Formik } from 'formik'; - -import { fireEvent, render, screen } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import PersonalDetailsForm from '../personal-details-form'; +import { APIProvider } from '@deriv/api'; jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), @@ -22,9 +22,11 @@ describe('PersonalDetailsForm', () => { const renderComponent = () => { render( - - - + + + + + ); }; @@ -52,22 +54,4 @@ describe('PersonalDetailsForm', () => { expect(mr_radio_input).not.toBeChecked(); expect(ms_radio_input).toBeChecked(); }); - - it('should display crs confirmation checkbox if tax residence & tin fields are filled', () => { - render( - - - - ); - - fireEvent.change(screen.getByTestId('tax_residence'), { target: { value: 'Afghanistan' } }); - fireEvent.change(screen.getByTestId('tax_identification_number'), { target: { value: '1234567890' } }); - - expect( - screen.queryByLabelText(/i confirm that my tax information is accurate and complete/i) - ).toBeInTheDocument(); - }); }); diff --git a/packages/account/src/Components/forms/form-fields/__tests__/tax-identification-number.spec.tsx b/packages/account/src/Components/forms/form-fields/__tests__/tax-identification-number.spec.tsx new file mode 100644 index 000000000000..abd90cec4990 --- /dev/null +++ b/packages/account/src/Components/forms/form-fields/__tests__/tax-identification-number.spec.tsx @@ -0,0 +1,59 @@ +import React from 'react'; +import { Formik } from 'formik'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import TaxIdentificationNumber from '../tax-indentification-number'; + +describe('Testing component', () => { + const renderFunction = (props: React.ComponentProps) => + render( + + + + ); + + it('should render TIN Field component', () => { + const props: React.ComponentProps = { + required: true, + disabled: false, + is_tin_popover_open: true, + setIsTinPopoverOpen: jest.fn(), + setIsTaxResidencePopoverOpen: jest.fn(), + }; + + renderFunction(props); + + expect(screen.getByText(/Tax identification number*/)).toBeInTheDocument; + }); + + it('should render TIN Field component without required', () => { + const props: React.ComponentProps = { + required: false, + disabled: false, + is_tin_popover_open: true, + setIsTinPopoverOpen: jest.fn(), + setIsTaxResidencePopoverOpen: jest.fn(), + }; + + renderFunction(props); + + expect(screen.getByText(/Tax identification number/)).toBeInTheDocument; + }); + + it('should open popover dialog when hovered', () => { + const props: React.ComponentProps = { + required: false, + disabled: false, + is_tin_popover_open: true, + setIsTinPopoverOpen: jest.fn(), + setIsTaxResidencePopoverOpen: jest.fn(), + }; + + renderFunction(props); + + const popover = screen.getByTestId('tax_identification_number_pop_over'); + userEvent.click(popover); + expect(props.setIsTaxResidencePopoverOpen).toBeCalledWith(false); + expect(props.setIsTinPopoverOpen).toBeCalledWith(true); + }); +}); diff --git a/packages/account/src/Components/forms/form-fields/account-opening-reason.tsx b/packages/account/src/Components/forms/form-fields/account-opening-reason.tsx new file mode 100644 index 000000000000..90f28c2733d1 --- /dev/null +++ b/packages/account/src/Components/forms/form-fields/account-opening-reason.tsx @@ -0,0 +1,75 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +//@ts-nocheck [TODO] - Need to fix typescript errors in Autocomplete & SelectNative components +import React from 'react'; +import { useDevice } from '@deriv-com/ui'; +import { SelectNative, Dropdown } from '@deriv/components'; +import { useTranslations } from '@deriv-com/translations'; +import { Field, FieldProps } from 'formik'; +import clsx from 'clsx'; + +type TAccountOpeningReasonFieldProps = { + required: boolean; + account_opening_reason_list: { text: string; value: string }[]; + setFieldValue: (field: string, value: string, should_validate?: boolean) => void; + disabled: boolean; + fieldFocused?: boolean; + is_modal?: boolean; +}; + +const AccountOpeningReasonField = ({ + required, + account_opening_reason_list, + setFieldValue, + disabled, + fieldFocused, + is_modal, +}: TAccountOpeningReasonFieldProps) => { + const { isDesktop } = useDevice(); + const { localize } = useTranslations(); + + return ( + + + {({ field, meta }: FieldProps) => ( +
+ {isDesktop ? ( + + ) : ( + { + field.onChange(e); + setFieldValue('account_opening_reason', e.target.value, true); + }} + required + data_testid='account_opening_reason_mobile' + disabled={disabled} + className={clsx({ 'focus-field': fieldFocused })} + /> + )} +
+ )} +
+
+ ); +}; + +export default AccountOpeningReasonField; diff --git a/packages/account/src/Components/forms/form-fields/employment-status.tsx b/packages/account/src/Components/forms/form-fields/employment-status.tsx new file mode 100644 index 000000000000..bcec4f8cc013 --- /dev/null +++ b/packages/account/src/Components/forms/form-fields/employment-status.tsx @@ -0,0 +1,65 @@ +import React from 'react'; +import { Field, FieldProps } from 'formik'; +import { Dropdown, SelectNative } from '@deriv/components'; +import { useTranslations } from '@deriv-com/translations'; +import { getEmploymentStatusList } from '../../../Constants/financial-information-list'; +import { useDevice } from '@deriv-com/ui'; +import clsx from 'clsx'; + +type TEmploymentStatusFieldProps = { + required: boolean; + is_disabled: boolean; + fieldFocused?: boolean; +}; + +const EmploymentStatusField = ({ required, is_disabled, fieldFocused }: TEmploymentStatusFieldProps) => { + const { isDesktop } = useDevice(); + const { localize } = useTranslations(); + + return ( + + {({ field, form: { setFieldValue, setFieldTouched, handleBlur, handleChange }, meta }: FieldProps) => ( +
+ {isDesktop ? ( + { + setFieldValue('tin_skipped', 0, true); + setFieldValue(field.name, e.target?.value, true); + handleChange(e); + }} + handleBlur={handleBlur} + error={meta.touched ? meta.error : undefined} + disabled={is_disabled} + className={clsx('dropdown-field', { 'focus-field': fieldFocused })} + /> + ) : ( + ) => { + setFieldValue('tin_skipped', 0, true); + setFieldTouched('employment_status', true); + handleChange(e); + }} + disabled={is_disabled} + className={clsx({ 'focus-field': fieldFocused })} + /> + )} +
+ )} +
+ ); +}; + +export default EmploymentStatusField; diff --git a/packages/account/src/Components/forms/form-fields/index.ts b/packages/account/src/Components/forms/form-fields/index.ts index 8ecb3a2bce22..335408a2e547 100644 --- a/packages/account/src/Components/forms/form-fields/index.ts +++ b/packages/account/src/Components/forms/form-fields/index.ts @@ -1,4 +1,7 @@ import FormInputField from './form-input-field'; import DateOfBirthField from './date-of-birth-field'; +import EmploymentStatusField from './employment-status'; +import TaxResidenceField from './tax-residence'; +import TaxIdentificationNumberField from './tax-indentification-number'; -export { FormInputField, DateOfBirthField }; +export { FormInputField, DateOfBirthField, EmploymentStatusField, TaxResidenceField, TaxIdentificationNumberField }; diff --git a/packages/account/src/Components/forms/form-fields/tax-indentification-number.tsx b/packages/account/src/Components/forms/form-fields/tax-indentification-number.tsx new file mode 100644 index 000000000000..6f2366b1786a --- /dev/null +++ b/packages/account/src/Components/forms/form-fields/tax-indentification-number.tsx @@ -0,0 +1,76 @@ +import { Localize, useTranslations } from '@deriv-com/translations'; +import FormInputField from './form-input-field'; +import { Popover } from '@deriv/components'; +import { OECD_TIN_FORMAT_URL } from '../../../Constants/external-urls'; +import { useDevice } from '@deriv-com/ui'; +import clsx from 'clsx'; + +type TTaxIdentificationNumberFieldProps = { + required?: boolean; + disabled: boolean; + is_tin_popover_open: boolean; + setIsTinPopoverOpen: (is_open: boolean) => void; + setIsTaxResidencePopoverOpen: (is_open: boolean) => void; + fieldFocused?: boolean; +}; + +const TaxIdentificationNumberField = ({ + required = false, + is_tin_popover_open, + setIsTinPopoverOpen, + setIsTaxResidencePopoverOpen, + disabled, + fieldFocused, +}: TTaxIdentificationNumberFieldProps) => { + const { localize } = useTranslations(); + + const { isDesktop } = useDevice(); + + return ( +
+ +
{ + setIsTaxResidencePopoverOpen(false); + setIsTinPopoverOpen(true); + if ((e.target as HTMLElement).tagName !== 'A') e.stopPropagation(); + }} + > + here to learn more." + } + components={[ + , + ]} + /> + } + zIndex='9998' + disable_message_icon + /> +
+
+ ); +}; + +export default TaxIdentificationNumberField; diff --git a/packages/account/src/Components/forms/form-fields/tax-residence.tsx b/packages/account/src/Components/forms/form-fields/tax-residence.tsx new file mode 100644 index 000000000000..5f20f4e03c84 --- /dev/null +++ b/packages/account/src/Components/forms/form-fields/tax-residence.tsx @@ -0,0 +1,104 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +//@ts-nocheck [TODO] - Need to fix typescript errors in Autocomplete & SelectNative components + +import { ChangeEvent } from 'react'; +import { Field, FieldProps } from 'formik'; +import { ResidenceList } from '@deriv/api-types'; +import { Autocomplete, SelectNative, Popover } from '@deriv/components'; +import { useResidenceList } from '@deriv/hooks'; +import { TItem } from '@deriv/components/src/components/dropdown-list'; +import { useTranslations } from '@deriv-com/translations'; +import { useDevice } from '@deriv-com/ui'; +import clsx from 'clsx'; + +type TTaxResidenceFieldProps = { + required?: boolean; + setIsTaxResidencePopoverOpen: (is_open: boolean) => void; + setIsTinPopoverOpen: (is_open: boolean) => void; + is_tax_residence_popover_open: boolean; + disabled: boolean; + fieldFocused?: boolean; +}; + +const TaxResidenceField = ({ + required = false, + setIsTaxResidencePopoverOpen, + setIsTinPopoverOpen, + is_tax_residence_popover_open, + disabled, + fieldFocused, +}: TTaxResidenceFieldProps) => { + const { data: residence_list } = useResidenceList(); + const { isDesktop } = useDevice(); + const { localize } = useTranslations(); + + return ( + + {({ field, form: { setFieldValue }, meta }: FieldProps) => ( +
+ {isDesktop ? ( + { + setFieldValue( + 'tax_residence', + (item as ResidenceList[0]).value ? (item as ResidenceList[0]).text : '', + true + ); + }} + data-testid='tax_residence' + disabled={disabled} + required={required} + className={clsx({ 'focus-field': fieldFocused })} + /> + ) : ( + ) => { + field.onChange(e); + setFieldValue('tax_residence', e.target.value, true); + }} + required={required} + data_testid='tax_residence_mobile' + disabled={disabled} + className={clsx({ 'focus-field': fieldFocused })} + /> + )} +
{ + setIsTaxResidencePopoverOpen(true); + setIsTinPopoverOpen(false); + e.stopPropagation(); + }} + > + +
+
+ )} +
+ ); +}; + +export default TaxResidenceField; diff --git a/packages/account/src/Components/forms/form-select-field.tsx b/packages/account/src/Components/forms/form-select-field.tsx index 5d12b7b02a02..486d83f809be 100644 --- a/packages/account/src/Components/forms/form-select-field.tsx +++ b/packages/account/src/Components/forms/form-select-field.tsx @@ -1,8 +1,7 @@ import { FC, Fragment } from 'react'; import { Autocomplete, SelectNative } from '@deriv/components'; import { Field, FieldProps, FormikErrors } from 'formik'; -import { TGetField } from '../additional-kyc-info-modal/form-config'; -import { TListItem } from 'Types'; +import { TListItem, TGetField } from '../../Types'; import { useDevice } from '@deriv-com/ui'; type TFormSelectField = TGetField & { @@ -40,9 +39,9 @@ const FormSelectField: FC = ({ {!isDesktop ? ( = ({ // @ts-expect-error This needs to fixed in AutoComplete component onItemSelection={onItemSelection ?? onSelect(field.name, setFieldValue)} data-testid={`dt_${field.name}`} - // @ts-expect-error This needs to fixed in AutoComplete component - list_height={list_height} + list_height={list_height as string} /> )} diff --git a/packages/account/src/Components/forms/personal-details-form.jsx b/packages/account/src/Components/forms/personal-details-form.jsx index 81c659067656..a0172b31607b 100644 --- a/packages/account/src/Components/forms/personal-details-form.jsx +++ b/packages/account/src/Components/forms/personal-details-form.jsx @@ -2,26 +2,17 @@ import React from 'react'; import { Link } from 'react-router-dom'; import clsx from 'clsx'; import { Field, useFormikContext } from 'formik'; -import { - Autocomplete, - Checkbox, - Dropdown, - InlineMessage, - Popover, - RadioGroup, - SelectNative, - Text, -} from '@deriv/components'; -import { getLegalEntityName, routes, validPhone } from '@deriv/shared'; +import { Autocomplete, Checkbox, InlineMessage, RadioGroup, SelectNative, Text } from '@deriv/components'; +import { routes, validPhone } from '@deriv/shared'; import { Localize, localize } from '@deriv/translations'; import { isFieldImmutable, verifyFields } from '../../Helpers/utils'; -import { getEmploymentStatusList } from '../../Sections/Assessment/FinancialAssessment/financial-information-list'; import FormBodySection from '../form-body-section'; import { DateOfBirthField, FormInputField } from './form-fields'; import FormSubHeader from '../form-sub-header'; import InlineNoteWithIcon from '../inline-note-with-icon'; +import { useResidenceList } from '@deriv/hooks'; import { useDevice } from '@deriv-com/ui'; -import { OECD_TIN_FORMAT_URL } from '../../Constants/external-urls'; +import AccountOpeningReasonField from './form-fields/account-opening-reason'; const PersonalDetailsForm = props => { const { isDesktop } = useDevice(); @@ -33,15 +24,12 @@ const PersonalDetailsForm = props => { is_rendered_for_idv, editable_fields = [], has_real_account, - residence_list, is_fully_authenticated, account_opening_reason_list, closeRealAccountSignup, salutation_list, is_rendered_for_onfido, is_qualified_for_poa, - should_close_tooltip, - setShouldCloseTooltip, class_name, states_list, side_note, @@ -52,26 +40,9 @@ const PersonalDetailsForm = props => { // need to put this check related to DIEL clients const is_svg_only = is_svg && !is_eu_user; - const [is_tax_residence_popover_open, setIsTaxResidencePopoverOpen] = React.useState(false); - const [is_tin_popover_open, setIsTinPopoverOpen] = React.useState(false); + const { errors, touched, values, setFieldValue, handleChange, handleBlur } = useFormikContext(); - const { errors, touched, values, setFieldValue, handleChange, handleBlur, setFieldTouched } = useFormikContext(); - - const handleToolTipStatus = React.useCallback(() => { - if (is_tax_residence_popover_open) { - setIsTaxResidencePopoverOpen(false); - } - if (is_tin_popover_open) { - setIsTinPopoverOpen(false); - } - }, [is_tax_residence_popover_open, is_tin_popover_open]); - - React.useEffect(() => { - if (should_close_tooltip) { - handleToolTipStatus(); - setShouldCloseTooltip(false); - } - }, [should_close_tooltip, handleToolTipStatus, setShouldCloseTooltip]); + const { data: residence_list } = useResidenceList(); const getNameAndDobLabels = () => { const is_asterisk_needed = is_svg || is_eu_user || is_rendered_for_onfido || is_rendered_for_idv; @@ -416,100 +387,6 @@ const PersonalDetailsForm = props => { required /> )} - {!is_svg_only && ('tax_residence' in values || 'tax_identification_number' in values) && ( - - - {'tax_residence' in values && ( - - )} - {'tax_identification_number' in values && ( - - )} - {'employment_status' in values && ( -
- {isDesktop ? ( - { - setFieldValue('occupation', '', true); - handleChange(e); - }} - handleBlur={handleBlur} - error={touched.employment_status && errors.employment_status} - disabled={isFieldImmutable('employment_status', editable_fields)} - /> - ) : ( - { - setFieldTouched('employment_status', true); - setFieldValue('occupation', '', true); - handleChange(e); - }} - disabled={isFieldImmutable('employment_status', editable_fields)} - /> - )} -
- )} - {'tax_identification_confirm' in values && ( - - setFieldValue( - 'tax_identification_confirm', - !values.tax_identification_confirm, - true - ) - } - value={values.tax_identification_confirm} - label={localize( - 'I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.', - { - legal_entity_name: getLegalEntityName('maltainvest'), - } - )} - withTabIndex={0} - data-testid='tax_identification_confirm' - has_error={ - !!(touched.tax_identification_confirm && errors.tax_identification_confirm) - } - /> - )} -
- )} {!is_svg_only && 'account_opening_reason' in values && ( { required /> )} - {'tax_residence' in values && ( - - )} - {'tax_identification_number' in values && ( - - )} {'account_opening_reason' in values && ( { (values?.account_opening_reason && has_real_account) } required - /> - )} - {values?.tax_residence && values?.tax_identification_number && ( - - } - label_font_size={isDesktop ? 'xs' : 'xxs'} - onChange={e => { - setFieldValue('crs_confirmation', e.target.checked, true); - setFieldTouched('crs_confirmation', true); - }} - has_error={!!(touched?.crs_confirmation && errors?.crs_confirmation)} + is_modal /> )} @@ -676,180 +520,3 @@ const PlaceOfBirthField = ({ handleChange, setFieldValue, disabled, residence_li ); }; - -const TaxResidenceField = ({ - setFieldValue, - residence_list, - required = false, - setIsTaxResidencePopoverOpen, - setIsTinPopoverOpen, - is_tax_residence_popover_open, - disabled, -}) => { - const { isDesktop } = useDevice(); - return ( - - {({ field, meta }) => ( -
- {isDesktop ? ( - - setFieldValue('tax_residence', value ? text : '', true) - } - list_portal_id='modal_root' - data-testid='tax_residence' - disabled={disabled} - required={required} - /> - ) : ( - { - field.onChange(e); - setFieldValue('tax_residence', e.target.value, true); - }} - {...field} - required={required} - data_testid='tax_residence_mobile' - disabled={disabled} - /> - )} -
{ - setIsTaxResidencePopoverOpen(true); - setIsTinPopoverOpen(false); - e.stopPropagation(); - }} - > - -
-
- )} -
- ); -}; - -const TaxIdentificationNumberField = ({ - is_tin_popover_open, - setIsTinPopoverOpen, - setIsTaxResidencePopoverOpen, - disabled, - required = false, -}) => { - const { isDesktop } = useDevice(); - return ( -
- ); -}; - -const AccountOpeningReasonField = ({ no_header, required, account_opening_reason_list, setFieldValue, disabled }) => { - const { isDesktop } = useDevice(); - return ( - - {!no_header && } - - {({ field, meta }) => ( - - {isDesktop ? ( - - ) : ( - { - field.onChange(e); - setFieldValue('account_opening_reason', e.target.value, true); - }} - {...field} - required - data_testid='account_opening_reason_mobile' - disabled={disabled} - /> - )} - - )} - - - ); -}; diff --git a/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx b/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx index a5453cec53c5..23d4f9a0d8be 100644 --- a/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx +++ b/packages/account/src/Components/personal-details/__tests__/personal-details.spec.tsx @@ -1,14 +1,15 @@ import React, { ComponentProps, ReactNode } from 'react'; import { BrowserRouter } from 'react-router-dom'; -import { fireEvent, render, screen, waitFor, within } from '@testing-library/react'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { splitValidationResultTypes } from '../../real-account-signup/helpers/utils'; import PersonalDetails from '../personal-details'; -import { shouldShowIdentityInformation, isDocumentTypeValid, isAdditionalDocumentValid } from '../../../Helpers/utils'; +import { shouldShowIdentityInformation } from '../../../Helpers/utils'; import { StoreProvider, mockStore } from '@deriv/stores'; import { Analytics } from '@deriv-com/analytics'; import { FormikErrors } from 'formik'; +import { getIDVFormValidationSchema } from '../../../Configs/kyc-validation-config'; import { useDevice } from '@deriv-com/ui'; +import { APIProvider } from '@deriv/api'; jest.mock('@deriv-com/ui', () => ({ ...jest.requireActual('@deriv-com/ui'), @@ -25,13 +26,6 @@ jest.mock('@deriv/components', () => ({ Popover: jest.fn(props => props.is_open && {props.message}), })); -jest.mock('../../real-account-signup/helpers/utils.ts', () => ({ - splitValidationResultTypes: jest.fn(() => ({ - warnings: mock_warnings, - errors: mock_errors, - })), -})); - jest.mock('react-dom', () => ({ ...jest.requireActual('react-dom'), createPortal: (node: ReactNode) => node, @@ -76,8 +70,6 @@ const runCommonFormfieldsTests = (is_svg: boolean) => { expect(screen.queryByTestId('citizenship')).toBeInTheDocument(); expect(screen.queryByTestId('citizenship_mobile')).not.toBeInTheDocument(); expect(screen.queryByTestId('phone')).toBeInTheDocument(); - expect(screen.queryByTestId('tax_residence')).toBeInTheDocument(); - expect(screen.queryByTestId('tax_residence_mobile')).not.toBeInTheDocument(); if (is_svg) { expect(screen.getByText(/your first name as in your identity document/i)).toBeInTheDocument(); @@ -99,24 +91,6 @@ const runCommonFormfieldsTests = (is_svg: boolean) => { ).toBeInTheDocument(); } - const tax_residence_pop_over = screen.queryByTestId('tax_residence_pop_over'); - if (tax_residence_pop_over) { - fireEvent.click(tax_residence_pop_over); - } - - expect(screen.getByText(tax_residence_pop_over_text)).toBeInTheDocument(); - - expect(screen.getByLabelText(/tax identification number/i)).toBeInTheDocument(); - const tax_identification_number_pop_over = screen.queryByTestId('tax_identification_number_pop_over'); - expect(tax_identification_number_pop_over).toBeInTheDocument(); - - if (tax_identification_number_pop_over) { - fireEvent.click(tax_identification_number_pop_over); - } - - expect(screen.getByText(tin_pop_over_text)).toBeInTheDocument(); - expect(screen.getByRole('link', { name: 'here' })).toBeInTheDocument(); - if (is_svg) expect( screen.getByRole('heading', { @@ -270,9 +244,6 @@ describe('', () => { place_of_birth: '', citizen: '', phone: '+34', - tax_residence: '', - tax_identification_number: '', - tax_identification_confirm: false, }, onSubmit: jest.fn(), getCurrentStep: jest.fn(() => 1), @@ -297,11 +268,13 @@ describe('', () => { const renderwithRouter = ({ props = mock_props, store = mock_store }) => { render( - - - - - + + + + + + + ); }; @@ -311,9 +284,10 @@ describe('', () => { }); it('should have validation errors on form fields', async () => { - const new_props = { ...mock_props, is_svg: false }; + const new_props = { ...mock_props, is_svg: false, real_account_signup_target: 'maltainvest' }; + const store_config = mockStore({ ui: { is_desktop: true } }); - renderwithRouter({ props: new_props }); + renderwithRouter({ props: new_props, store: store_config }); const first_name = screen.getByTestId('first_name'); const last_name = screen.getByTestId('last_name'); @@ -321,79 +295,29 @@ describe('', () => { const place_of_birth = screen.getByTestId('place_of_birth'); const citizenship = screen.getByTestId('citizenship'); const phone = screen.getByTestId('phone'); - const tax_residence = screen.getByTestId('tax_residence'); - const tax_identification_number = screen.getByTestId('tax_identification_number'); - fireEvent.blur(first_name); - fireEvent.blur(last_name); + userEvent.clear(first_name); fireEvent.blur(date_of_birth); + userEvent.clear(last_name); fireEvent.blur(place_of_birth); fireEvent.blur(citizenship); fireEvent.blur(phone); - fireEvent.blur(tax_residence); - fireEvent.blur(tax_identification_number); expect(await screen.findByText(/first name is required\./i)).toBeInTheDocument(); - expect(await screen.findByText(/last name is required\./i)).toBeInTheDocument(); expect(await screen.findByText(/date of birth is required\./i)).toBeInTheDocument(); expect(await screen.findByText(/place of birth is required\./i)).toBeInTheDocument(); expect(await screen.findByText(/citizenship is required/i)).toBeInTheDocument(); - expect(await screen.findByText(/phone is required\./i)).toBeInTheDocument(); - expect(await screen.findByText(/tax residence is required\./i)).toBeInTheDocument(); - expect(await screen.findByText(/tax identification number is required\./i)).toBeInTheDocument(); - (splitValidationResultTypes as jest.Mock).mockReturnValue({ - ...mock_warnings, - errors: { - ...mock_errors, - first_name: 'letters, spaces, periods, hyphens, apostrophes only', - last_name: 'last name should be between 2 and 50 characters.', - date_of_birth: 'You must be 18 years old and above.', - tax_identification_number: "Tax Identification Number can't be longer than 25 characters.", - }, - }); + expect(await screen.findByText(/You should enter 9-20 numbers./i)).toBeInTheDocument(); + fireEvent.change(first_name, { target: { value: '123' } }); - fireEvent.change(last_name, { target: { value: 'a' } }); + fireEvent.change(last_name, { target: { value: 'abcd' } }); fireEvent.change(date_of_birth, { target: { value: '2021-04-13' } }); - fireEvent.change(tax_identification_number, { target: { value: '123456789012345678901234567890' } }); expect(await screen.findByText(/letters, spaces, periods, hyphens, apostrophes only/i)).toBeInTheDocument(); - expect(await screen.findByText(/last name should be between 2 and 50 characters/i)).toBeInTheDocument(); expect(await screen.findByText(/you must be 18 years old and above\./i)).toBeInTheDocument(); - expect( - await screen.findByText(/tax Identification Number can't be longer than 25 characters\./i) - ).toBeInTheDocument(); - }); - - it('submit button should be enabled if TIN or tax_residence is optional in case of CR accounts', () => { - const new_props = { - ...mock_props, - is_svg: true, - value: { - first_name: '', - last_name: '', - date_of_birth: '', - place_of_birth: '', - phone: '+34', - tax_residence: '', - tax_identification_number: '', - }, - }; - renderwithRouter({ props: new_props }); - - const first_name = screen.getByTestId('first_name'); - const last_name = screen.getByTestId('last_name'); - const date_of_birth = screen.getByTestId('date_of_birth'); - const phone = screen.getByTestId('phone'); - - userEvent.type(first_name, 'test firstname'); - userEvent.type(last_name, 'test lastname'); - userEvent.type(date_of_birth, '2000-12-12'); - userEvent.type(phone, '+49123456789012'); - expect(screen.getByRole('button', { name: /next/i })).toBeEnabled(); }); it('should not display confirmation checkbox if opt-out of IDV', async () => { - (splitValidationResultTypes as jest.Mock).mockReturnValue({ warnings: {}, errors: {} }); const new_props = { ...mock_props, value: { @@ -401,8 +325,13 @@ describe('', () => { last_name: '', date_of_birth: '', phone: '+93', - account_opening_reason: '', - place_of_birth: '', + account_opening_reason: 'Hedging', + place_of_birth: 'Aland Islands', + document_type: { + id: 'none', + text: 'I want to do this later', + value: 'none', + }, }, }; @@ -415,8 +344,8 @@ describe('', () => { userEvent.type(first_name, 'test firstname'); userEvent.type(last_name, 'test lastname'); - userEvent.type(date_of_birth, '2000-12-12'); - userEvent.type(phone, '+49123456789012'); + fireEvent.change(date_of_birth, { target: { value: '2000-12-12' } }); + fireEvent.change(phone, { target: { value: '+931234567890' } }); const previous_btn = screen.getByRole('button', { name: /previous/i }); const next_btn = screen.getByRole('button', { name: /next/i }); @@ -435,23 +364,6 @@ describe('', () => { }); }); - it('should autopopulate tax_residence for MF clients', () => { - const new_props = { - ...mock_props, - is_svg: false, - value: { - ...mock_props.value, - tax_residence: 'Malta', - }, - }; - renderwithRouter({ props: new_props }); - expect( - screen.getByRole('textbox', { - name: /tax residence\*/i, - }) - ).toHaveValue('Malta'); - }); - it('should render PersonalDetails component', () => { renderwithRouter({}); expect(screen.getByTestId('personal_details_form')).toBeInTheDocument(); @@ -483,20 +395,6 @@ describe('', () => { expect(mock_props.closeRealAccountSignup).toHaveBeenCalledTimes(1); }); - it('should disable tax_residence field if it is immutable from BE', () => { - const new_props = { - ...mock_props, - value: { - ...mock_props.value, - ...idv_document_data, - tax_residence: 'France', - }, - disabled_items: ['salutation', 'first_name', 'last_name', 'date_of_birth', 'tax_residence'], - }; - renderwithRouter({ props: new_props }); - expect(screen.getByTestId('tax_residence')).toBeDisabled(); - }); - it('should show title and Name label when salutation is passed', () => { const mock_store = mockStore({ traders_hub: { @@ -590,7 +488,7 @@ describe('', () => { expect(screen.getByTestId('last_name')).toBeDisabled(); expect(screen.getByTestId('date_of_birth')).toBeDisabled(); expect(screen.getByTestId('place_of_birth')).toBeEnabled(); - expect(screen.getByTestId('citizenship')).toBeEnabled(); // citizenship value is not disabled by BE, so enable the field + expect(screen.getByTestId('citizenship')).toBeEnabled(); }); it('should disable citizen field if the client is_fully_authenticated', () => { @@ -608,8 +506,6 @@ describe('', () => { }); it('should display proper data in mobile mode', () => { - // [TODO] - Remove this when PersonalDetailsForm is migrated to TSX - (useDevice as jest.Mock).mockReturnValue({ isDesktop: false }); const new_props = { ...mock_props, is_svg: false }; @@ -625,54 +521,13 @@ describe('', () => { expect(screen.queryByTestId('citizenship_mobile')).toBeInTheDocument(); expect(screen.queryByTestId('citizenship')).not.toBeInTheDocument(); expect(screen.queryByTestId('phone')).toBeInTheDocument(); - expect(screen.queryByTestId('tax_residence_mobile')).toBeInTheDocument(); - expect(screen.queryByTestId('tax_residence')).not.toBeInTheDocument(); - expect(screen.getByText(/tax identification number/i)).toBeInTheDocument(); - expect(screen.getByLabelText(/tax identification number/i)).toBeInTheDocument(); - expect(screen.getByRole('heading', { name: /account opening reason/i })).toBeInTheDocument(); expect(screen.queryByTestId('dt_dropdown_display')).not.toBeInTheDocument(); expect(screen.queryByTestId('account_opening_reason_mobile')).toBeInTheDocument(); expect(screen.getByRole('button', { name: /previous/i })).toBeInTheDocument(); expect(screen.getByRole('button', { name: /next/i })).toBeInTheDocument(); }); - it('should select correct dropdown options in mobile mode', () => { - (useDevice as jest.Mock).mockReturnValueOnce({ isDesktop: false }); - - const new_props = { ...mock_props, is_svg: false }; - - renderwithRouter({ props: new_props }); - const place_of_birth_mobile = screen.queryByTestId('place_of_birth_mobile'); - - expect(place_of_birth_mobile).toBeInTheDocument(); - - if (place_of_birth_mobile) { - fireEvent.change(place_of_birth_mobile, { target: { value: 'Afghanistan' } }); - } - - const { getByText } = within(screen.getAllByTestId('selected_value')[0]); - expect(getByText('Afghanistan')).toBeInTheDocument(); - }); - - it('should show error for invalid TIN', async () => { - const newvalidate = { - errors: { - ...mock_errors, - tax_identification_number: 'Tax Identification Number is not properly formatted.', - }, - }; - (splitValidationResultTypes as jest.Mock).mockReturnValue(newvalidate); - renderwithRouter({}); - const tax_identification_number = screen.getByTestId('tax_identification_number'); - - fireEvent.blur(tax_identification_number); - fireEvent.change(tax_identification_number, { target: { value: '123456789012345678901234567890' } }); - - expect(await screen.findByText(/tax identification number is not properly formatted/i)).toBeInTheDocument(); - }); - it('should submit the form if there is no validation error on desktop', async () => { - (splitValidationResultTypes as jest.Mock).mockReturnValue({ warnings: {}, errors: {} }); const new_props = { ...mock_props, value: { @@ -680,6 +535,8 @@ describe('', () => { last_name: '', date_of_birth: '', phone: '+93', + account_opening_reason: 'Hedging', + place_of_birth: 'Aland Islands', }, }; @@ -713,25 +570,20 @@ describe('', () => { }); it('should submit the form if there is no validation error on mobile', async () => { - // [TODO] - Remove this when PersonalDetailsForm is migrated to TSX (useDevice as jest.Mock).mockReturnValueOnce({ isDesktop: false }); - (splitValidationResultTypes as jest.Mock).mockReturnValue({ warnings: {}, errors: {} }); const new_props = { ...mock_props, is_svg: false, value: { - account_opening_reason: '', - citizen: '', + account_opening_reason: 'Income Earning', + citizen: 'Albania', date_of_birth: '', first_name: '', last_name: '', phone: '+49', - place_of_birth: '', + place_of_birth: 'Albania', salutation: '', - tax_identification_confirm: false, - tax_identification_number: '', - tax_residence: '', }, }; @@ -741,13 +593,7 @@ describe('', () => { const first_name = screen.getByTestId('first_name'); const last_name = screen.getByTestId('last_name'); const date_of_birth = screen.getByTestId('date_of_birth'); - const place_of_birth_mobile = screen.getByTestId('place_of_birth_mobile'); - const citizenship = screen.getByTestId('citizenship_mobile'); const phone = screen.getByTestId('phone'); - const tax_residence_mobile = screen.getByTestId('tax_residence_mobile'); - const tax_identification_number = screen.getByTestId('tax_identification_number'); - const tax_identification_confirm = screen.getByTestId('tax_identification_confirm'); - const account_opening_reason_mobile = screen.getByTestId('account_opening_reason_mobile'); const checkbox = screen.queryByLabelText( /i confirm that the name and date of birth above match my chosen identity document/i @@ -758,13 +604,7 @@ describe('', () => { fireEvent.change(first_name, { target: { value: 'test firstname' } }); fireEvent.change(last_name, { target: { value: 'test lastname' } }); fireEvent.change(date_of_birth, { target: { value: '2000-12-12' } }); - fireEvent.change(place_of_birth_mobile, { target: { value: 'Albania' } }); - fireEvent.change(citizenship, { target: { value: 'Albania' } }); fireEvent.change(phone, { target: { value: '+49123456789012' } }); - fireEvent.change(tax_residence_mobile, { target: { value: 'Afghanistan' } }); - fireEvent.change(tax_identification_number, { target: { value: '123123123123' } }); - fireEvent.change(tax_identification_confirm, { target: { value: true } }); - fireEvent.change(account_opening_reason_mobile, { target: { value: 'Income Earning' } }); expect(mr_radio_btn.checked).toEqual(true); const next_btn = screen.getByRole('button', { name: /next/i }); @@ -778,7 +618,6 @@ describe('', () => { }); it('should save filled date when cancel button is clicked ', async () => { - (splitValidationResultTypes as jest.Mock).mockReturnValue({ warnings: {}, errors: {} }); const new_props = { ...mock_props, value: { @@ -804,71 +643,6 @@ describe('', () => { }); }); - it('should close tax_residence pop-over when clicked outside', () => { - const new_props = { ...mock_props, is_svg: false }; - renderwithRouter({ props: new_props }); - - const tax_residence_pop_over = screen.getByTestId('tax_residence_pop_over'); - expect(tax_residence_pop_over).toBeInTheDocument(); - - fireEvent.click(tax_residence_pop_over); - expect(screen.getByText(tax_residence_pop_over_text)).toBeInTheDocument(); - - fireEvent.click(screen.getByRole('heading', { name: /account opening reason/i })); - - expect(screen.queryByText(tax_residence_pop_over_text)).not.toBeInTheDocument(); - }); - - it('should close tax_identification_number_pop_over when clicked outside', () => { - const new_props = { ...mock_props, is_svg: false }; - renderwithRouter({ props: new_props }); - - const tin_pop_over = screen.getByTestId('tax_identification_number_pop_over'); - expect(tin_pop_over).toBeInTheDocument(); - fireEvent.click(tin_pop_over); - - expect(screen.getByText(tin_pop_over_text)).toBeInTheDocument(); - expect(screen.getByRole('link', { name: 'here' })).toBeInTheDocument(); - - fireEvent.click(screen.getByRole('heading', { name: /account opening reason/i })); - - expect(screen.queryByText(tin_pop_over_text)).not.toBeInTheDocument(); - expect(screen.queryByRole('link', { name: 'here' })).not.toBeInTheDocument(); - }); - - it('should close tax_residence pop-over when scrolled', () => { - renderwithRouter({}); - - const tax_residence_pop_over = screen.getByTestId('tax_residence_pop_over'); - expect(tax_residence_pop_over).toBeInTheDocument(); - fireEvent.click(tax_residence_pop_over); - - expect(screen.getByText(tax_residence_pop_over_text)).toBeInTheDocument(); - - fireEvent.scroll(screen.getByTestId('dt_personal_details_container'), { - target: { scrollY: 100 }, - }); - - expect(screen.queryByText(tax_residence_pop_over_text)).not.toBeInTheDocument(); - }); - - it('should close tax_identification_number_pop_over when scrolled', () => { - renderwithRouter({}); - - const tax_identification_number_pop_over = screen.getByTestId('tax_identification_number_pop_over'); - expect(tax_identification_number_pop_over).toBeInTheDocument(); - fireEvent.click(tax_identification_number_pop_over); - expect(screen.getByText(tin_pop_over_text)).toBeInTheDocument(); - expect(screen.getByRole('link', { name: 'here' })).toBeInTheDocument(); - - fireEvent.scroll(screen.getByTestId('dt_personal_details_container'), { - target: { scrollY: 100 }, - }); - - expect(screen.queryByText(tax_residence_pop_over_text)).not.toBeInTheDocument(); - expect(screen.queryByRole('link', { name: 'here' })).not.toBeInTheDocument(); - }); - it('should validate idv values when a document type is selected', async () => { (shouldShowIdentityInformation as jest.Mock).mockReturnValue(true); const new_props = { @@ -879,11 +653,17 @@ describe('', () => { }, residence_list: default_residence_details as any, }; + + const idvSchema = getIDVFormValidationSchema(); + renderwithRouter({ props: new_props }); await waitFor(() => { - expect(isDocumentTypeValid).toHaveBeenCalled(); - expect(isAdditionalDocumentValid).not.toHaveBeenCalled(); + try { + idvSchema.validateSync(idv_document_data); + } catch (e) { + expect((e as any).errors[0]).toMatch(/Please enter the correct format./i); + } }); }); @@ -891,12 +671,19 @@ describe('', () => { (shouldShowIdentityInformation as jest.Mock).mockReturnValue(true); const new_document_data = { - ...idv_document_data, + document_number: 'A1234562', + + document_additional: 'AB1', document_type: { - ...idv_document_data.document_type, + id: 'passport', + text: 'Passport', additional: { - display_name: '12345', + display_name: 'File Number', + format: '^.{15}$', + example_format: 'AB1234567890123', }, + value: '^.{8}$', + example_format: 'A1234567', }, }; @@ -908,10 +695,16 @@ describe('', () => { }, residence_list: default_residence_details, }; + + const idvSchema = getIDVFormValidationSchema(); renderwithRouter({ props: new_props }); await waitFor(() => { - expect(isAdditionalDocumentValid).toHaveBeenCalled(); + try { + idvSchema.validateSync(new_document_data); + } catch (e) { + expect((e as any).errors[0]).toEqual('Please enter the correct format. Example: AB1234567890123'); + } }); }); }); diff --git a/packages/account/src/Components/personal-details/personal-details.tsx b/packages/account/src/Components/personal-details/personal-details.tsx index af6bbc6e3b56..93a02aa4d8c3 100644 --- a/packages/account/src/Components/personal-details/personal-details.tsx +++ b/packages/account/src/Components/personal-details/personal-details.tsx @@ -1,26 +1,22 @@ -import { useState, Fragment, useCallback, useMemo, useEffect } from 'react'; +import { Fragment, useCallback, useMemo, useEffect } from 'react'; import clsx from 'clsx'; -import { Form, Formik, FormikErrors } from 'formik'; +import { Form, Formik } from 'formik'; import { Analytics, TEvents } from '@deriv-com/analytics'; import { AutoHeightWrapper, Div100vhContainer, FormSubmitButton, Modal, ThemedScrollbars } from '@deriv/components'; +import { getIDVNotApplicableOption } from '@deriv/shared'; import { useDevice } from '@deriv-com/ui'; -import { getIDVNotApplicableOption, removeEmptyPropertiesFromObject } from '@deriv/shared'; import { Localize, localize } from '@deriv/translations'; import { useStore, observer } from '@deriv/stores'; -import { - isAdditionalDocumentValid, - isDocumentNumberValid, - isDocumentTypeValid, - shouldShowIdentityInformation, -} from '../../Helpers/utils'; +import { shouldShowIdentityInformation } from '../../Helpers/utils'; import { DerivLightNameDobPoiIcon } from '@deriv/quill-icons'; import FormSubHeader from '../form-sub-header'; import IDVForm from '../forms/idv-form'; import PersonalDetailsForm from '../forms/personal-details-form'; -import { splitValidationResultTypes } from '../real-account-signup/helpers/utils'; import ScrollToFieldWithError from '../forms/scroll-to-field-with-error'; import { TIDVFormValues, TListItem, TPersonalDetailsBaseForm } from '../../Types'; import { GetAccountStatus, GetSettings, ResidenceList } from '@deriv/api-types'; +import { getPersonalDetailsBaseValidationSchema } from '../../Configs/user-profile-validation-config'; +import { getIDVFormValidationSchema } from '../../Configs/kyc-validation-config'; type TPersonalDetailsSectionForm = Partial & { confirmation_checkbox?: boolean; @@ -82,8 +78,6 @@ const PersonalDetails = observer( traders_hub: { is_eu_user }, } = useStore(); const { account_status, account_settings, residence, real_account_signup_target } = props; - const [should_close_tooltip, setShouldCloseTooltip] = useState(false); - const [no_confirmation_needed, setNoConfirmationNeeded] = useState(false); const { isDesktop } = useDevice(); const handleCancel = (values: TPersonalDetailsSectionForm) => { @@ -127,43 +121,15 @@ const PersonalDetails = observer( const IDV_NOT_APPLICABLE_OPTION = useMemo(() => getIDVNotApplicableOption(), []); - const validateIDV = (values: TPersonalDetailsSectionForm) => { - const errors: FormikErrors = {}; - const { document_type, document_number, document_additional } = values; - if (document_type?.id === IDV_NOT_APPLICABLE_OPTION.id) return errors; - /* eslint-disable @typescript-eslint/ban-ts-comment */ - // @ts-expect-error Error is tring but Formik value was an object - errors.document_type = isDocumentTypeValid(document_type); - - const needs_additional_document = !!document_type?.additional; - - if (needs_additional_document) { - errors.document_additional = isAdditionalDocumentValid(document_type, document_additional); - } - - errors.document_number = isDocumentNumberValid(document_number, document_type); - - if (document_type?.id !== IDV_NOT_APPLICABLE_OPTION.id && !values?.confirmation_checkbox) { - errors.confirmation_checkbox = 'error'; - } - return removeEmptyPropertiesFromObject(errors); - }; - - const handleValidate = (values: TPersonalDetailsSectionForm) => { - const current_step = getCurrentStep() - 1; - onSave(current_step, values); - - setNoConfirmationNeeded(values?.document_type?.id === IDV_NOT_APPLICABLE_OPTION.id); - let idv_error = {}; - if (is_rendered_for_idv) { - idv_error = validateIDV(values); - } - const { errors } = splitValidationResultTypes(validate(values)); - const error_data = { ...idv_error, ...errors }; - return error_data; - }; - - const closeToolTip = () => setShouldCloseTooltip(true); + const schema = useMemo( + () => + is_rendered_for_idv + ? getPersonalDetailsBaseValidationSchema(real_account_signup_target).concat( + getIDVFormValidationSchema() + ) + : getPersonalDetailsBaseValidationSchema(real_account_signup_target), + [is_rendered_for_idv, real_account_signup_target] + ); /* In most modern browsers, setting autocomplete to "off" will not prevent a password manager from asking the user if they would like to save username and password information, or from automatically filling in those values in a site's login form. @@ -188,14 +154,16 @@ const PersonalDetails = observer( return ( { trackEvent({ action: 'save', user_choice: JSON.stringify(values), }); - onSubmit(getCurrentStep() - 1, values, actions.setSubmitting, goToNextStep); + const current_step = getCurrentStep() - 1; + onSave(current_step, values); + onSubmit(current_step, values, actions.setSubmitting, goToNextStep); }} > {({ handleSubmit, isSubmitting, values }) => ( @@ -206,7 +174,6 @@ const PersonalDetails = observer( ref={setRef} onSubmit={handleSubmit} autoComplete='off' - onClick={closeToolTip} data-testid='personal_details_form' > - +
{is_rendered_for_idv && ( @@ -246,7 +209,7 @@ const PersonalDetails = observer( is_virtual={is_virtual} is_svg={is_svg} is_eu_user={is_eu_user} - side_note={} + side_note={} is_rendered_for_idv={is_rendered_for_idv} editable_fields={getEditableFields( values?.confirmation_checkbox, @@ -258,15 +221,15 @@ const PersonalDetails = observer( closeRealAccountSignup={closeRealAccountSignup} salutation_list={salutation_list} account_opening_reason_list={account_opening_reason_list} - should_close_tooltip={should_close_tooltip} - setShouldCloseTooltip={setShouldCloseTooltip} inline_note_text={ ]} /> } - no_confirmation_needed={no_confirmation_needed} + no_confirmation_needed={ + values?.document_type?.id === IDV_NOT_APPLICABLE_OPTION.id + } />
diff --git a/packages/account/src/Components/poi/idv-document-submit/__tests__/idv-document-submit.spec.tsx b/packages/account/src/Components/poi/idv-document-submit/__tests__/idv-document-submit.spec.tsx index 6d853a7155f5..a85d4cde1d12 100644 --- a/packages/account/src/Components/poi/idv-document-submit/__tests__/idv-document-submit.spec.tsx +++ b/packages/account/src/Components/poi/idv-document-submit/__tests__/idv-document-submit.spec.tsx @@ -5,6 +5,7 @@ import { StoreProvider, mockStore } from '@deriv/stores'; import { isDocumentNumberValid } from 'Helpers/utils'; import IdvDocumentSubmit from '../idv-document-submit'; import { useDevice } from '@deriv-com/ui'; +import { APIProvider } from '@deriv/api'; const mock_store = mockStore({ client: { @@ -93,9 +94,11 @@ describe('', () => { const renderComponent = () => { render( - - - + + + + + ); }; diff --git a/packages/account/src/Components/poi/idv-status/idv-failed/idv-failed.tsx b/packages/account/src/Components/poi/idv-status/idv-failed/idv-failed.tsx index d28e25df3e1c..c17b889bf5ca 100644 --- a/packages/account/src/Components/poi/idv-status/idv-failed/idv-failed.tsx +++ b/packages/account/src/Components/poi/idv-status/idv-failed/idv-failed.tsx @@ -127,7 +127,7 @@ const IdvFailed = ({ React.useEffect(() => { const initializeFormValues = async (required_fields: string[]) => { - await WS.wait('get_settings'); + await WS?.wait('get_settings'); const form_data = filterObjProperties(account_settings, required_fields); if (form_data.date_of_birth) { form_data.date_of_birth = toMoment(form_data.date_of_birth).format('YYYY-MM-DD'); diff --git a/packages/account/src/Components/poi/poi-confirm-with-example-form-container/__tests__/poi-confirm-with-example-form-container.spec.tsx b/packages/account/src/Components/poi/poi-confirm-with-example-form-container/__tests__/poi-confirm-with-example-form-container.spec.tsx index cabd6f440b1f..0b50d02ebc77 100644 --- a/packages/account/src/Components/poi/poi-confirm-with-example-form-container/__tests__/poi-confirm-with-example-form-container.spec.tsx +++ b/packages/account/src/Components/poi/poi-confirm-with-example-form-container/__tests__/poi-confirm-with-example-form-container.spec.tsx @@ -3,6 +3,7 @@ import ReactDOM from 'react-dom'; import { act, render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import PoiConfirmWithExampleFormContainer from '../poi-confirm-with-example-form-container'; +import { APIProvider } from '@deriv/api'; jest.mock('@deriv/quill-icons', () => ({ ...jest.requireActual('@deriv/quill-icons'), @@ -55,9 +56,17 @@ describe('', () => { getChangeableFields: jest.fn(() => ['first_name', 'last_name', 'date_of_birth']), onFormConfirm: jest.fn(), }; + + const renderComponent = ({ props = mock_props }) => + render( + + + + ); + const clarification_message = /To avoid delays, enter your/; it('should render PersonalDetailsForm with image and checkbox', async () => { - render(); + renderComponent({}); expect(await screen.findByText('DerivLightNameDobPoiIcon')).toBeInTheDocument(); expect(screen.getByText(clarification_message)).toBeInTheDocument(); @@ -72,7 +81,7 @@ describe('', () => { }); it('should change fields and trigger submit', async () => { jest.useFakeTimers(); - render(); + renderComponent({}); const checkbox_el: HTMLInputElement = await screen.findByRole('checkbox'); expect(checkbox_el.checked).toBeFalsy(); diff --git a/packages/account/src/Components/poi/poi-confirm-with-example-form-container/poi-confirm-with-example-form-container.tsx b/packages/account/src/Components/poi/poi-confirm-with-example-form-container/poi-confirm-with-example-form-container.tsx index 9e85b11a72fc..524dad401091 100644 --- a/packages/account/src/Components/poi/poi-confirm-with-example-form-container/poi-confirm-with-example-form-container.tsx +++ b/packages/account/src/Components/poi/poi-confirm-with-example-form-container/poi-confirm-with-example-form-container.tsx @@ -54,8 +54,9 @@ const PoiConfirmWithExampleFormContainer = ({ const side_note_image = ; React.useEffect(() => { - const initializeFormValues = () => { - WS.wait('get_settings').then(() => { + const initializeFormValues = async () => { + try { + await WS?.wait('get_settings'); const visible_settings = ['first_name', 'last_name', 'date_of_birth']; const form_initial_values = filterObjProperties(account_settings, visible_settings); if (form_initial_values.date_of_birth) { @@ -69,7 +70,10 @@ const PoiConfirmWithExampleFormContainer = ({ form_initial_values, }); setIsLoading(false); - }); + } catch (e) { + // eslint-disable-next-line no-console + console.error(e); + } }; initializeFormValues(); diff --git a/packages/account/src/Components/poi/status/limited/__tests__/limited.spec.tsx b/packages/account/src/Components/poi/status/limited/__tests__/limited.spec.tsx index 78ab8b14356a..0d8ab423a778 100644 --- a/packages/account/src/Components/poi/status/limited/__tests__/limited.spec.tsx +++ b/packages/account/src/Components/poi/status/limited/__tests__/limited.spec.tsx @@ -2,9 +2,11 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import { POILimited } from '../limited'; -window.LC_API = { - open_chat_window: jest.fn(), - on_chat_ended: jest.fn(), +window.LiveChatWidget = { + call: jest.fn(), + get: jest.fn(), + init: jest.fn(), + on: jest.fn(), }; describe('', () => { @@ -16,6 +18,7 @@ describe('', () => { const live_chat_text = screen.getByText(/live chat/i); expect(live_chat_text).toBeInTheDocument(); fireEvent.click(live_chat_text); - expect(window.LC_API.open_chat_window).toHaveBeenCalledTimes(1); + expect(window.LiveChatWidget.call).toHaveBeenCalledTimes(1); + expect(window.LiveChatWidget.call).toHaveBeenCalledWith('maximize'); }); }); diff --git a/packages/account/src/Components/poi/status/limited/limited.tsx b/packages/account/src/Components/poi/status/limited/limited.tsx index e6391537c2a8..8a00dbaa05ba 100644 --- a/packages/account/src/Components/poi/status/limited/limited.tsx +++ b/packages/account/src/Components/poi/status/limited/limited.tsx @@ -10,7 +10,11 @@ export const POILimited = () => ( window.LC_API.open_chat_window()} />, + window.LiveChatWidget?.call('maximize')} + />, ]} /> } diff --git a/packages/account/src/Components/poi/status/verified/__tests__/verified.spec.tsx b/packages/account/src/Components/poi/status/verified/__tests__/verified.spec.tsx index 75038f36a5a3..2f0dfb689b7d 100644 --- a/packages/account/src/Components/poi/status/verified/__tests__/verified.spec.tsx +++ b/packages/account/src/Components/poi/status/verified/__tests__/verified.spec.tsx @@ -3,6 +3,7 @@ import { render, screen } from '@testing-library/react'; import { Button } from '@deriv/components'; import React from 'react'; import { Verified } from '../verified'; +import { MemoryRouter } from 'react-router'; jest.mock('Components/poa/poa-button', () => jest.fn(() =>
)); @@ -12,12 +13,20 @@ describe('', () => { const needs_poa_msg = 'To continue trading, you must also submit a proof of address.'; it('should render Verified component', () => { - render(); + render( + + + + ); expect(screen.getByText(message)).toBeInTheDocument(); }); it('should show icon with message if needs_poa is false', () => { - render(); + render( + + + + ); expect(screen.getByTestId('dt_IcPoaVerified')).toBeInTheDocument(); expect(screen.getByText(message)).toBeInTheDocument(); @@ -28,13 +37,21 @@ describe('', () => { expect(screen.getByRole('button')).toBeInTheDocument(); }); - it('should not show redirect button if redirect_button is not passed', () => { - render(); - expect(screen.queryByRole('button')).not.toBeInTheDocument(); + it('should show continue trading button if redirect_button is not passed', () => { + render( + + + + ); + expect(screen.getByText('Continue trading')).toBeInTheDocument(); }); it('should show poa buttons and the message if needs_poa is true and is_from_external is false ', () => { - render(); + render( + + + + ); expect(screen.getByTestId('poa-button')).toBeInTheDocument(); expect(screen.getByText(needs_poa_msg)).toBeInTheDocument(); }); diff --git a/packages/account/src/Components/poi/status/verified/verified.tsx b/packages/account/src/Components/poi/status/verified/verified.tsx index f175be3e1d22..2dc14e85d0e9 100644 --- a/packages/account/src/Components/poi/status/verified/verified.tsx +++ b/packages/account/src/Components/poi/status/verified/verified.tsx @@ -4,9 +4,14 @@ import { localize } from '@deriv/translations'; import { TPOIStatus } from 'Types'; import IconMessageContent from '../../../icon-message-content'; import PoaButton from '../../../poa/poa-button'; +import { service_code } from '../../../../Sections/Verification/ProofOfIdentity/proof-of-identity-utils'; +import ContinueTradingButton from '../../../poa/continue-trading-button'; -export const Verified = ({ needs_poa, redirect_button, is_from_external }: TPOIStatus) => { - const message = localize('Your proof of identity is verified'); +export const Verified = ({ needs_poa, redirect_button, is_from_external, service }: TPOIStatus) => { + const message = + service === service_code.idv + ? localize('ID verification passed') + : localize('Your proof of identity is verified'); if (!needs_poa) { return ( @@ -15,7 +20,7 @@ export const Verified = ({ needs_poa, redirect_button, is_from_external }: TPOIS icon={} className='account-management-dashboard' > - {!is_from_external && redirect_button} + {!is_from_external && (redirect_button || )} ); } diff --git a/packages/account/src/Components/terms-of-use/terms-of-use-messages.tsx b/packages/account/src/Components/terms-of-use/terms-of-use-messages.tsx index 3afdb6899cf9..b27f3fe89c40 100644 --- a/packages/account/src/Components/terms-of-use/terms-of-use-messages.tsx +++ b/packages/account/src/Components/terms-of-use/terms-of-use-messages.tsx @@ -50,17 +50,6 @@ export const BrokerSpecificMessage = ({ target }: { target: TBrokerCodes }) => { - {target === Jurisdiction.MALTA_INVEST && ( - -
- - - - - - -
- )} ); }; diff --git a/packages/account/src/Configs/__test__/kyc-validation-config.spec.ts b/packages/account/src/Configs/__test__/kyc-validation-config.spec.ts new file mode 100644 index 000000000000..366ceaf59e80 --- /dev/null +++ b/packages/account/src/Configs/__test__/kyc-validation-config.spec.ts @@ -0,0 +1,41 @@ +import { getIDVFormValidationSchema } from '../kyc-validation-config'; + +describe('getIDVFormValidationSchema', () => { + it('should return return true when data matches schema', async () => { + const schema = getIDVFormValidationSchema(); + + const result = await schema.isValid({ + document_additional: 'hompl7358z', + document_number: '123456789011', + document_type: { + additional: { + displayName: 'PAN Card', + exampleFormat: 'ABCDE1234F', + format: '^[a-zA-Z]{5}\\d{4}[a-zA-Z]{1}$', + }, + exampleFormat: '123456789012', + id: 'aadhaar', + text: 'Aadhaar Card', + value: '^[0-9]{12}$', + }, + }); + + expect(result).toBeTruthy(); + }); + + it('should return false when data fails to match schema', async () => { + const schema = getIDVFormValidationSchema(); + + const result = await schema.isValid({ + document_number: 'Abc123456', + document_type: { + exampleFormat: 'ABC1234567', + id: 'epic', + text: 'Voter ID', + value: '^[a-zA-Z]{3}[0-9]{7}$', + }, + }); + + expect(result).toBeFalsy(); + }); +}); diff --git a/packages/account/src/Configs/__test__/personal-details-config.spec.ts b/packages/account/src/Configs/__test__/personal-details-config.spec.ts deleted file mode 100644 index bb0a2a74cfbe..000000000000 --- a/packages/account/src/Configs/__test__/personal-details-config.spec.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { personal_details_config } from '../personal-details-config'; - -jest.mock('@deriv/shared', () => ({ - ...jest.requireActual('@deriv/shared'), - getErrorMessages: jest.fn().mockReturnValue({ - name: jest.fn(), - password: jest.fn(), - }), - generateValidationFunction: jest.fn(), - getDefaultFields: jest.fn(), - toMoment: jest.fn(), - validLength: jest.fn(), -})); - -describe('personal-details-config', () => { - const mock_props: Parameters[0] = { - residence_list: [ - { - phone_idd: '62', - text: 'Indonesia', - value: 'is', - tin_format: [], - disabled: '1', - identity: { - services: { - idv: { - documents_supported: {}, - has_visual_sample: 0, - is_country_supported: 0, - }, - onfido: { - documents_supported: { - driving_licence: { - display_name: 'Driving Licence', - }, - national_identity_card: { - display_name: 'National Identity Card', - }, - passport: { - display_name: 'Passport', - }, - residence_permit: { - display_name: 'Residence Permit', - }, - }, - is_country_supported: 1, - }, - }, - }, - }, - ], - account_settings: { - tax_residence: 'id', - residence: 'Indonesia', - document_type: '', - document_number: '', - }, - real_account_signup_target: 'maltainvest', - account_status: { - p2p_poa_required: 0, - cashier_validation: ['system_maintenance'], - currency_config: { - USD: { - is_deposit_suspended: 0, - is_withdrawal_suspended: 0, - }, - }, - p2p_status: 'active', - prompt_client_to_authenticate: 0, - risk_classification: '', - status: [''], - }, - residence: 'af', - }; - - it('should return account tax residence as default value if it is already set', () => { - const personal_details = personal_details_config(mock_props); - expect(personal_details.tax_residence.default_value).toEqual('Indonesia'); - }); - - it('should return residence as the default value for MF clients, If the account tax residence is not set', () => { - const new_props = { - ...mock_props, - account_settings: { - ...mock_props.account_settings, - tax_residence: '', - }, - }; - const personal_details = personal_details_config(new_props); - expect(personal_details.tax_residence.default_value).toEqual(new_props.account_settings.residence); - }); - - it('should not set default value for CR clients, If the account tax residence is not set', () => { - const new_props = { - ...mock_props, - real_account_signup_target: 'svg', - account_settings: { - ...mock_props.account_settings, - tax_residence: '', - }, - }; - const personal_details = personal_details_config(new_props); - expect(personal_details.tax_residence.default_value).toEqual(''); - }); - - it('should include svg in additional fields if client is not high risk for mt5', () => { - const new_props = { - ...mock_props, - real_account_signup_target: 'svg', - }; - const personal_details = personal_details_config(new_props); - const additional_fields = [ - 'place_of_birth', - 'tax_residence', - 'tax_identification_number', - 'account_opening_reason', - ]; - additional_fields.forEach(field => { - expect(personal_details[field].supported_in).toContain('svg'); - }); - }); -}); diff --git a/packages/account/src/Configs/__test__/user-profile-validation.spec.ts b/packages/account/src/Configs/__test__/user-profile-validation.spec.ts new file mode 100644 index 000000000000..4f115088eb77 --- /dev/null +++ b/packages/account/src/Configs/__test__/user-profile-validation.spec.ts @@ -0,0 +1,330 @@ +import * as Yup from 'yup'; +import { + getAddressDetailValidationSchema, + getEmploymentAndTaxValidationSchema, + getPersonalDetailsBaseValidationSchema, +} from '../user-profile-validation-config'; +import { TinValidations } from '@deriv/api/types'; +import { ValidationConstants } from '@deriv-com/utils'; + +describe('getPersonalDetailsBaseValidationSchema', () => { + let validation_schema: ReturnType; + + it('should validate a valid set of personal details for non-eu clients', () => { + validation_schema = getPersonalDetailsBaseValidationSchema('svg'); + const valid_values = { + first_name: 'John', + last_name: 'Doe', + phone: '+1234567890', + account_opening_reason: 'Investment', + date_of_birth: '1990-01-01', + place_of_birth: 'Germany', + }; + + expect(validation_schema.isValidSync(valid_values)).toBeTruthy(); + }); + + it('should validate a valid set of personal details for eu clients', () => { + validation_schema = getPersonalDetailsBaseValidationSchema('maltainvest'); + const valid_values = { + salutation: 'Mr', + first_name: 'John', + last_name: 'Doe', + phone: '+1234567890', + account_opening_reason: 'Investment', + date_of_birth: '1990-01-01', + place_of_birth: 'Germany', + citizen: 'Germany', + }; + + expect(validation_schema.isValidSync(valid_values)).toBeTruthy(); + }); + + it('should throw an error if salutation is not provided for maltainvest clients', () => { + validation_schema = getPersonalDetailsBaseValidationSchema('maltainvest'); + const invalid_values = { + first_name: 'John', + last_name: 'Doe', + phone: '+1234567890', + account_opening_reason: 'Investment', + date_of_birth: '1990-01-01', + place_of_birth: 'Germany', + citizen: 'Germany', + }; + + try { + validation_schema.validateSync(invalid_values); + } catch (error: unknown) { + expect((error as Yup.ValidationError).message).toBe('Salutation is required.'); + } + }); + + it('should throw an error if first name is invalid', async () => { + const { first_name } = getPersonalDetailsBaseValidationSchema('svg').fields; + + await expect(first_name.validate('John')).resolves.toBe('John'); + await expect(first_name.validate('')).rejects.toThrow('First name is required.'); + await expect(first_name.validate('A1')).rejects.toThrow('Letters, spaces, periods, hyphens, apostrophes only.'); + await expect( + first_name.validate('ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL') + ).rejects.toThrow('Enter no more than 50 characters.'); + }); + + it('should throw an error if last name is invalid', async () => { + const { last_name } = getPersonalDetailsBaseValidationSchema('maltainvest').fields; + + await expect(last_name.validate('Doe')).resolves.toBe('Doe'); + await expect(last_name.validate('')).rejects.toThrow('Last name is required.'); + await expect(last_name.validate('A2')).rejects.toThrow('Letters, spaces, periods, hyphens, apostrophes only.'); + await expect( + last_name.validate('ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL') + ).rejects.toThrow('Enter no more than 50 characters.'); + }); + + it('should throw an error if date of birth is invalid', async () => { + const { date_of_birth } = getPersonalDetailsBaseValidationSchema('svg').fields; + + await expect(date_of_birth.validate('1990-01-01')).resolves.toBe('1990-01-01'); + await expect(date_of_birth.validate('')).rejects.toThrow('Date of birth is required.'); + await expect(date_of_birth.validate('2021-01-01')).rejects.toThrow('You must be 18 years old and above.'); + }); + + it('should throw an error if phone number is invalid', async () => { + const { phone } = getPersonalDetailsBaseValidationSchema('svg').fields; + + await expect(phone.validate('+1234567890')).resolves.toBe('+1234567890'); + await expect(phone.validate('')).rejects.toThrow('Phone is required.'); + await expect(phone.validate('1234567890')).rejects.toThrow( + 'Please enter a valid phone number (e.g. +15417541234).' + ); + await expect(phone.validate('1234567890'.repeat(4))).rejects.toThrow('You should enter 9-20 numbers.'); + }); + + it('should throw an error if place of birth is invalid', async () => { + const { place_of_birth } = getPersonalDetailsBaseValidationSchema('svg').fields; + + await expect(place_of_birth.validate('Germany')).resolves.toBe('Germany'); + await expect(place_of_birth.validate('')).rejects.toThrow('Place of birth is required.'); + }); + + it('should throw an error if account opening reason is invalid', async () => { + const { account_opening_reason } = getPersonalDetailsBaseValidationSchema('svg').fields; + + await expect(account_opening_reason.validate('Investment')).resolves.toBe('Investment'); + await expect(account_opening_reason.validate('')).rejects.toThrow('Account opening reason is required.'); + }); + + it('should throw an error if citizen is invalid', async () => { + const { citizen } = getPersonalDetailsBaseValidationSchema('maltainvest').fields; + + await expect(citizen.validate('Germany')).resolves.toBe('Germany'); + await expect(citizen.validate('')).rejects.toThrow('Citizenship is required.'); + }); +}); + +describe('getEmploymentAndTaxValidationSchema', () => { + let validation_schema: ReturnType; + + const tin_config: TinValidations = { + tin_employment_status_bypass: ['Student'], + tin_format: ['^\\d{5}$'], + is_tin_mandatory: false, + }; + + beforeAll(() => { + validation_schema = getEmploymentAndTaxValidationSchema({ tin_config }); + }); + + it('should validate employment and tax details when valid values are provided', () => { + const valid_values = { + employment_status: 'Employed', + tax_residence: 'Germany', + tin_skipped: 0, + tax_identification_confirm: true, + tax_identification_number: '12345', + }; + + expect(validation_schema.isValidSync(valid_values)).toBeTruthy(); + }); + + it('should throw employment status required error when employment status is not provided', () => { + const invalid_values = { + tax_residence: 'Germany', + tin_skipped: 0, + tax_identification_confirm: true, + tax_identification_number: '12345', + }; + + try { + validation_schema.validateSync(invalid_values); + } catch (error: unknown) { + expect(error).toBeInstanceOf(Yup.ValidationError); + expect((error as Yup.ValidationError).message).toBe('Employment status is required.'); + } + }); + + it('should ensure tax details are confirmed when tax identification number and tax residence is provided', () => { + const invalid_values = { + employment_status: 'Employed', + tax_residence: 'Germany', + tin_skipped: 0, + tax_identification_confirm: false, + tax_identification_number: '12345', + }; + + try { + validation_schema.validateSync(invalid_values); + } catch (error: unknown) { + expect(error).toBeInstanceOf(Yup.ValidationError); + expect((error as Yup.ValidationError).message).toBe( + 'tax_identification_confirm must be one of the following values: true' + ); + } + }); + + it('should ensure tax identification number is not longer than 25 characters', () => { + const invalid_values = { + employment_status: 'Employed', + tax_residence: 'Germany', + tin_skipped: 0, + tax_identification_confirm: true, + tax_identification_number: '12345678901234567890123456', + }; + + try { + validation_schema.validateSync(invalid_values); + } catch (error: unknown) { + expect((error as Yup.ValidationError).message).toBe( + "Tax identification number can't be longer than 25 characters." + ); + } + }); + + it('should ensure tax identification number is properly formatted', () => { + const invalid_values = { + employment_status: 'Employed', + tax_residence: 'Germany', + tin_skipped: 0, + tax_identification_confirm: true, + tax_identification_number: '1234', + }; + + try { + validation_schema.validateSync(invalid_values); + } catch (error: unknown) { + expect((error as Yup.ValidationError).message).toBe('Tax identification number is not properly formatted.'); + } + }); + + it('should ensure tax identification number starts with a letter or number', () => { + const invalid_values = { + employment_status: 'Employed', + tax_residence: 'Germany', + tin_skipped: 0, + tax_identification_confirm: true, + tax_identification_number: '-1234', + }; + + try { + validation_schema.validateSync(invalid_values); + } catch (error: unknown) { + expect((error as Yup.ValidationError).message).toBe('Tax identification number is not properly formatted.'); + } + }); + + it('should ensure tax residence is provided when tax identification number is provided', () => { + const invalid_values = { + employment_status: 'Employed', + tax_residence: '', + tin_skipped: 0, + tax_identification_confirm: true, + tax_identification_number: '1234', + }; + + try { + validation_schema.validateSync(invalid_values); + } catch (error: unknown) { + expect((error as Yup.ValidationError).message).toBe('Please fill in tax residence.'); + } + }); + + it('should not validate tax details when tin_skipped is true', () => { + const valid_values = { + employment_status: 'Student', + tin_skipped: 1, + tax_residence: 'Germany', + }; + expect(validation_schema.isValidSync(valid_values)).toBeTruthy(); + }); +}); + +describe('getAddressDetailValidationSchema', () => { + const maxCharsMessage = 'Only 70 characters, please.'; + const { addressPermittedSpecialCharacters } = ValidationConstants.messagesHints; + + it('validates address_line_1 correctly without svg flag', async () => { + const { address_line_1 } = getAddressDetailValidationSchema(false).fields; + + await expect(address_line_1.validate('123 Main St')).resolves.toBe('123 Main St'); + await expect(address_line_1.validate('')).rejects.toThrow('First line of address is required'); + await expect(address_line_1.validate('a$^&')).rejects.toThrow( + `Use only the following special characters: ${addressPermittedSpecialCharacters}` + ); + await expect(address_line_1.validate('a'.repeat(71))).rejects.toThrow(maxCharsMessage); + await expect(address_line_1.validate('P.O. Box 121')).resolves.toBe('P.O. Box 121'); + }); + + it("PO box shouldn't exist for SVG ", async () => { + const { address_line_1 } = getAddressDetailValidationSchema(true).fields; + await expect(address_line_1.validate('P.O. Box 123')).rejects.toThrow('P.O. Box is not accepted in address'); + }); + + it('validates address_line_2 correctly', async () => { + const { address_line_2 } = getAddressDetailValidationSchema(false).fields; + + await expect(address_line_2.validate('Apt 4B')).resolves.toBe('Apt 4B'); + await expect(address_line_2.validate('a$^&')).rejects.toThrow( + `Use only the following special characters: ${addressPermittedSpecialCharacters}` + ); + await expect(address_line_2.validate('a'.repeat(71))).rejects.toThrow(maxCharsMessage); + await expect(address_line_2.validate('P.O. Box 120')).resolves.toBe('P.O. Box 120'); + }); + + it('validates address_line_2 correctly with svg flag', async () => { + const { address_line_2 } = getAddressDetailValidationSchema(true).fields; + + await expect(address_line_2.validate('P.O. Box 122')).rejects.toThrow('P.O. Box is not accepted in address'); + }); + + it('validates address_postcode correctly with country id', async () => { + const { address_postcode } = getAddressDetailValidationSchema(false).fields; + await expect(address_postcode.validate('12345')).resolves.toBe('12345'); + await expect(address_postcode.validate('$%&')).rejects.toThrow( + 'Only letters, numbers, space and hyphen are allowed.' + ); + await expect(address_postcode.validate('a'.repeat(21))).rejects.toThrow( + 'Please enter a postal/ZIP code under 20 characters.' + ); + await expect(address_postcode.validate('JE1 1AA')).resolves.toBe('JE1 1AA'); + }); + + it('validates address_state correctly', async () => { + const { address_state } = getAddressDetailValidationSchema(false).fields; + + await expect(address_state.validate('NY')).resolves.toBe('NY'); + await expect(address_state.validate('a'.repeat(102))).rejects.toThrow('State is not in a proper format'); + + await expect(address_state.validate('%_ASD')).rejects.toThrow('State is not in a proper format'); + }); + + it('validates address_city correctly', async () => { + const { address_city } = getAddressDetailValidationSchema(false).fields; + + await expect(address_city.validate('New York')).resolves.toBe('New York'); + await expect(address_city.validate('')).rejects.toThrow('City is required'); + await expect(address_city.validate('a'.repeat(102))).rejects.toThrow('Only 99 characters, please.'); + await expect(address_city.validate('%_ASD')).rejects.toThrow( + 'Only letters, periods, hyphens, apostrophes, and spaces, please.' + ); + }); +}); diff --git a/packages/account/src/Configs/employment-tax-info-config.ts b/packages/account/src/Configs/employment-tax-info-config.ts new file mode 100644 index 000000000000..71b025fb3dad --- /dev/null +++ b/packages/account/src/Configs/employment-tax-info-config.ts @@ -0,0 +1,63 @@ +import { localize } from '@deriv-com/translations'; +import { GetSettings, ResidenceList } from '@deriv/api-types'; +import { TSchema, getDefaultFields } from '@deriv/shared'; + +type TEmploymentTaxInfoConfigProps = { + account_settings: GetSettings; + residence_list: ResidenceList; +}; + +const generateEmploymentTaxInfoFormValues = ({ + account_settings, + residence_list, +}: TEmploymentTaxInfoConfigProps): TSchema => ({ + employment_status: { + supported_in: ['svg', 'maltainvest'], + default_value: account_settings.employment_status ?? '', + }, + tax_residence: { + supported_in: ['svg', 'maltainvest'], + default_value: + (account_settings?.tax_residence + ? residence_list.find(item => item.value === account_settings?.tax_residence)?.text + : account_settings?.residence) || '', + }, + tax_identification_number: { + supported_in: ['svg', 'maltainvest'], + default_value: account_settings.tax_identification_number ?? '', + }, + tax_identification_confirm: { + default_value: false, + supported_in: ['svg', 'maltainvest'], + }, + tin_skipped: { + default_value: 0, + supported_in: ['svg', 'maltainvest'], + }, +}); + +const getEmploymentTaxIfoConfig = ( + { + account_settings, + residence_list, + real_account_signup_target, + }: TEmploymentTaxInfoConfigProps & { real_account_signup_target: string }, + component: React.Component +) => { + const config = generateEmploymentTaxInfoFormValues({ account_settings, residence_list }); + return { + header: { + active_title: localize('Complete your employment and tax information details'), + title: localize('Employment and tax information'), + }, + body: component, + form_value: getDefaultFields(real_account_signup_target, config), + props: { + disabled_items: account_settings?.immutable_fields, + real_account_signup_target, + }, + passthrough: ['residence_list'], + }; +}; + +export default getEmploymentTaxIfoConfig; diff --git a/packages/account/src/Configs/kyc-validation-config.ts b/packages/account/src/Configs/kyc-validation-config.ts new file mode 100644 index 000000000000..3175bf4e6468 --- /dev/null +++ b/packages/account/src/Configs/kyc-validation-config.ts @@ -0,0 +1,65 @@ +import { localize } from '@deriv-com/translations'; +import * as Yup from 'yup'; +import { AnyObject } from 'yup/lib/types'; +import { isAdditionalDocumentValid, isDocumentNumberValid } from '../Helpers/utils'; +import { TDocument } from 'Types'; +import { getIDVNotApplicableOption } from '@deriv/shared'; + +const validateDocumentNumber = (documentNumber: string, context: Yup.TestContext) => { + const result = isDocumentNumberValid(documentNumber, context.parent.document_type); + + if (result) { + return context.createError({ message: result }); + } + return true; +}; + +const validateAdditionalDocumentNumber = (additional_document_number: string, context: Yup.TestContext) => { + const result = isAdditionalDocumentValid(context.parent.document_type, additional_document_number); + if (result) { + return context.createError({ message: result }); + } + return true; +}; + +export const getIDVFormValidationSchema = () => { + const IDV_NOT_APPLICABLE_OPTION = getIDVNotApplicableOption(); + return Yup.object({ + document_additional: Yup.string() + .test({ + name: 'testAdditionalDocumentNumber', + test: (value, context) => { + if ( + context.parent.document_type.id === IDV_NOT_APPLICABLE_OPTION.id || + !context.parent.document_type?.additional + ) { + return true; + } + return validateAdditionalDocumentNumber(value as string, context); + }, + }) + .default(''), + document_number: Yup.string() + .test({ + name: 'testDocumentNumber', + test: (value, context) => { + if (context.parent.document_type.id === IDV_NOT_APPLICABLE_OPTION.id) { + return true; + } + return validateDocumentNumber(value as string, context); + }, + }) + .default(''), + document_type: Yup.mixed().test({ + name: 'validate-document-type', + test: (input, context) => { + if (input?.value) { + return true; + } + return context.createError({ + message: localize('Please select a document type.'), + }); + }, + }), + }); +}; diff --git a/packages/account/src/Configs/personal-details-config.ts b/packages/account/src/Configs/personal-details-config.ts index b6889e8df665..80d3f3cfe20e 100644 --- a/packages/account/src/Configs/personal-details-config.ts +++ b/packages/account/src/Configs/personal-details-config.ts @@ -1,16 +1,7 @@ import { GetAccountStatus, GetSettings, ResidenceList } from '@deriv/api-types'; -import { - TSchema, - generateValidationFunction, - getDefaultFields, - getErrorMessages, - toMoment, - validLength, -} from '@deriv/shared'; +import { TSchema, getDefaultFields, toMoment } from '@deriv/shared'; import { localize } from '@deriv/translations'; -import { shouldShowIdentityInformation } from 'Helpers/utils'; import { TUpgradeInfo } from 'Types'; -import { PHONE_NUMBER_LENGTH } from 'Constants/personal-details'; type TPersonalDetailsConfig = { upgrade_info?: TUpgradeInfo; @@ -33,49 +24,28 @@ export const personal_details_config = ({ return {}; } - const default_residence = (real_account_signup_target === 'maltainvest' && account_settings?.residence) || ''; - const config = { account_opening_reason: { supported_in: ['maltainvest'], default_value: account_settings.account_opening_reason ?? '', - rules: [['req', localize('Account opening reason is required.')]], }, salutation: { supported_in: ['maltainvest'], default_value: account_settings.salutation ?? '', - rules: [['req', localize('Salutation is required.')]], }, first_name: { supported_in: ['svg', 'maltainvest'], default_value: account_settings.first_name ?? '', - rules: [ - ['req', localize('First name is required.')], - ['length', localize('Enter no more than 50 characters.'), { min: 1, max: 50 }], - ['name', getErrorMessages().name()], - ], }, last_name: { supported_in: ['svg', 'maltainvest'], default_value: account_settings.last_name ?? '', - rules: [ - ['req', localize('Last name is required.')], - ['length', localize('Enter no more than 50 characters.'), { min: 1, max: 50 }], - ['name', getErrorMessages().name()], - ], }, date_of_birth: { supported_in: ['svg', 'maltainvest'], default_value: account_settings.date_of_birth ? toMoment(account_settings.date_of_birth).format('YYYY-MM-DD') : '', - rules: [ - ['req', localize('Date of birth is required.')], - [ - (v: string) => toMoment(v).isValid() && toMoment(v).isBefore(toMoment().subtract(18, 'years')), - localize('You must be 18 years old and above.'), - ], - ], }, place_of_birth: { supported_in: ['maltainvest'], @@ -83,7 +53,6 @@ export const personal_details_config = ({ (account_settings.place_of_birth && residence_list.find(item => item.value === account_settings.place_of_birth)?.text) || '', - rules: [['req', localize('Place of birth is required.')]], }, citizen: { supported_in: ['maltainvest'], @@ -91,79 +60,10 @@ export const personal_details_config = ({ (account_settings.citizen && residence_list.find(item => item.value === account_settings.citizen)?.text) || '', - rules: [['req', localize('Citizenship is required')]], }, phone: { supported_in: ['svg', 'maltainvest'], default_value: account_settings.phone ?? '', - rules: [ - ['req', localize('Phone is required.')], - ['phone', localize('Phone is not in a proper format.')], - [ - (value: string) => { - return validLength(value, { min: PHONE_NUMBER_LENGTH.MIN, max: PHONE_NUMBER_LENGTH.MAX }); - }, - localize('You should enter {{min}}-{{max}} characters.', { - min: PHONE_NUMBER_LENGTH.MIN, - max: PHONE_NUMBER_LENGTH.MAX, - }), - ], - ], - }, - tax_residence: { - //if tax_residence is already set, we will use it as default value else for mf clients we will use residence as default value - default_value: - (account_settings?.tax_residence && - residence_list.find(item => item.value === account_settings?.tax_residence)?.text) || - default_residence, - supported_in: ['maltainvest'], - rules: [['req', localize('Tax residence is required.')]], - }, - tax_identification_number: { - default_value: account_settings.tax_identification_number ?? '', - supported_in: ['maltainvest'], - rules: [ - ['req', localize('Tax Identification Number is required.')], - [ - 'length', - localize("Tax Identification Number can't be longer than 25 characters."), - { min: 0, max: 25 }, - ], - [ - // check if the TIN value is available, then perform the regex test - // else return true (to pass the test) - // this is to allow empty string to pass the test in case of optioal TIN field - (value: string) => (value ? RegExp(/^(?!^$|\s+)[A-Za-z0-9./\s-]{0,25}$/).test(value) : true), - localize('Letters, numbers, spaces, periods, hyphens and forward slashes only.'), - ], - [ - (value: string, options: Record, { tax_residence }: { tax_residence: string }) => { - // check if TIN value is available, - // only then ask client to fill in tax residence - return value ? !!tax_residence : true; - }, - localize('Please fill in Tax residence.'), - ], - [ - (value: string, options: Record, { tax_residence }: { tax_residence: string }) => { - const tin_format = residence_list.find( - res => res.text === tax_residence && res.tin_format - )?.tin_format; - return value && tin_format ? tin_format.some(regex => new RegExp(regex).test(value)) : true; - }, - localize('Tax Identification Number is not properly formatted.'), - ], - ], - }, - employment_status: { - default_value: account_settings.employment_status ?? '', - supported_in: ['maltainvest'], - rules: [['req', localize('Employment status is required.')]], - }, - tax_identification_confirm: { - default_value: false, - supported_in: ['maltainvest'], - rules: [['confirm', localize('Please confirm your tax information.')]], }, document_type: { default_value: account_settings.document_type ?? { @@ -173,52 +73,22 @@ export const personal_details_config = ({ example_format: '', }, supported_in: ['svg'], - rules: [], }, document_number: { default_value: account_settings.document_number ?? '', supported_in: ['svg'], - rules: [], }, confirmation_checkbox: { default_value: false, supported_in: ['svg'], - rules: [], - }, - crs_confirmation: { - default_value: false, - supported_in: ['svg'], - rules: [ - [ - ( - value: string, - options: Record, - { tax_identification_number }: { tax_identification_number: string } - ) => { - // need the confirmation in case of both Tax residence and TIN are available - // only checking for TIN as we already have a rule for Tax residence to be filled if TIN field is filled - return tax_identification_number ? value : true; - }, - localize('CRS confirmation is required.'), - ], - ], }, }; if (real_account_signup_target !== 'maltainvest') { - const properties_to_update: (keyof typeof config)[] = [ - 'place_of_birth', - 'tax_residence', - 'tax_identification_number', - 'account_opening_reason', - ]; + const properties_to_update: (keyof typeof config)[] = ['place_of_birth', 'account_opening_reason']; properties_to_update.forEach(key => { config[key].supported_in.push('svg'); - // Remove required rule for TIN and Tax residence from the config to make the fields optional - if (key === 'tax_identification_number' || key === 'tax_residence') { - config[key].rules = config[key].rules.filter(rule => rule[0] !== 'req'); - } }); } @@ -252,16 +122,6 @@ const personalDetailsConfig = ( body: PersonalDetails, form_value: getDefaultFields(real_account_signup_target, config), props: { - validate: generateValidationFunction( - real_account_signup_target, - transformConfig(config, { - real_account_signup_target, - residence_list, - account_settings, - account_status, - residence, - }) - ), is_svg: upgrade_info?.can_upgrade_to === 'svg', account_opening_reason_list: [ { @@ -299,23 +159,4 @@ const personalDetailsConfig = ( }; }; -const transformConfig = ( - config: TSchema, - { real_account_signup_target, residence_list, account_status, residence }: TPersonalDetailsConfig -) => { - // Remove IDV for non supporting SVG countries - if ( - !shouldShowIdentityInformation({ - account_status, - citizen: residence, - residence_list, - real_account_signup_target, - }) - ) { - delete config.document_type; - delete config.document_number; - } - return config; -}; - export default personalDetailsConfig; diff --git a/packages/account/src/Configs/poi-error-config.tsx b/packages/account/src/Configs/poi-error-config.tsx index a66c02e66737..5de8fdf86989 100644 --- a/packages/account/src/Configs/poi-error-config.tsx +++ b/packages/account/src/Configs/poi-error-config.tsx @@ -5,7 +5,7 @@ import { Localize } from '@deriv/translations'; import { DerivLightNameDobPoiIcon, DerivLightDobPoiIcon, DerivLightNamePoiIcon } from '@deriv/quill-icons'; import { getIDVDocumentType } from '../Helpers/utils'; -const handleOnClick = () => window.LC_API.open_chat_window(); +const handleOnClick = () => window.LiveChatWidget?.call('maximize'); export const GENERIC_ERROR_MESSAGE = ( diff --git a/packages/account/src/Configs/user-profile-validation-config.ts b/packages/account/src/Configs/user-profile-validation-config.ts new file mode 100644 index 000000000000..b149bee6f759 --- /dev/null +++ b/packages/account/src/Configs/user-profile-validation-config.ts @@ -0,0 +1,193 @@ +import { localize } from '@deriv-com/translations'; +import * as Yup from 'yup'; +import { ValidationConstants } from '@deriv-com/utils'; +import dayjs from 'dayjs'; +import { TinValidations } from '@deriv/api/types'; +import { TEmployeeDetailsTinValidationConfig } from '../Types'; + +const { + taxIdentificationNumber, + address, + addressCity, + addressState, + postalCode, + phoneNumber, + name, + postalOfficeBoxNumber, +} = ValidationConstants.patterns; +const { addressPermittedSpecialCharacters } = ValidationConstants.messagesHints; + +type TINDepdendents = { + is_mf?: boolean; + is_real?: boolean; + tin_skipped?: boolean; + /** + * This flag indicates that tin was skipped before and was set by BE + */ + is_tin_auto_set?: boolean; +}; + +Yup.addMethod(Yup.string, 'validatePhoneNumberLength', function (message) { + return this.test('is-valid-phone-number-length', message || localize('You should enter 9-20 numbers.'), value => { + if (typeof value === 'string') { + // Remove the leading '+' symbol before validation + const phoneNumber = value.startsWith('+') ? value.slice(1) : value; + return /^[0-9]{9,20}$/.test(phoneNumber); + } + return false; + }); +}); + +const makeTinOptional = ({ is_mf, is_real, tin_skipped, is_tin_auto_set }: TINDepdendents) => { + const check_if_tin_skipped = tin_skipped && !is_tin_auto_set; + if (is_real) { + return check_if_tin_skipped; + } + // Check For Virtual account + if (is_mf) { + return check_if_tin_skipped; + } + return true; +}; + +export const getEmploymentAndTaxValidationSchema = ({ + tin_config, + is_mf = false, + is_real = false, + is_tin_auto_set = false, + is_duplicate_account = false, +}: TEmployeeDetailsTinValidationConfig) => { + return Yup.object({ + employment_status: Yup.string().required(localize('Employment status is required.')), + tax_residence: Yup.string().when('is_mf', { + is: () => is_mf, + then: Yup.string().required(localize('Tax residence is required.')), + otherwise: Yup.string().notRequired(), + }), + tin_skipped: Yup.number().oneOf([0, 1]).default(0), + tax_identification_confirm: Yup.bool().when(['tax_identification_number', 'tax_residence', 'tin_skipped'], { + is: (tax_identification_number: string, tax_residence: string, tin_skipped: boolean) => + tax_identification_number && tax_residence && !tin_skipped && !is_duplicate_account, + then: Yup.bool().required().oneOf([true]), + otherwise: Yup.bool().notRequired(), + }), + tax_identification_number: Yup.string() + .when(['tin_skipped'], { + is: (tin_skipped: boolean) => makeTinOptional({ is_mf, is_real, tin_skipped, is_tin_auto_set }), + then: Yup.string().notRequired(), + otherwise: Yup.string().required(localize('Tax identification number is required.')), + }) + .max(25, localize("Tax identification number can't be longer than 25 characters.")) + .matches(taxIdentificationNumber, { + excludeEmptyString: true, + message: localize('Only letters, numbers, space, hyphen, period, and forward slash are allowed.'), + }) + .test({ + name: 'validate-tin', + test: (value, context) => { + const { tax_residence } = context.parent; + if (value && !tax_residence) { + return context.createError({ message: localize('Please fill in tax residence.') }); + } + + if ( + value && + tin_config?.tin_format?.length && + !tin_config?.tin_format?.some(tax_regex => new RegExp(tax_regex).test(value as string)) + ) { + return context.createError({ + message: localize('Tax identification number is not properly formatted.'), + }); + } + + if ( + value && + tin_config?.invalid_patterns?.length && + tin_config?.invalid_patterns?.some(invalid_pattern => + new RegExp(invalid_pattern).test(value as string) + ) + ) { + return context.createError({ + message: localize('Tax identification number is not properly formatted.'), + }); + } + return true; + }, + }), + }); +}; + +export const getAddressDetailValidationSchema = (is_svg: boolean) => + Yup.object({ + address_city: Yup.string() + .required(localize('City is required')) + .max(99, localize('Only 99 characters, please.')) + .matches(addressCity, localize('Only letters, periods, hyphens, apostrophes, and spaces, please.')), + address_line_1: Yup.string() + .required(localize('First line of address is required')) + .max(70, localize('Only 70 characters, please.')) + .matches( + address, + `${localize('Use only the following special characters:')} ${addressPermittedSpecialCharacters}` + ) + .when({ + is: () => is_svg, + then: Yup.string().test( + 'po_box', + localize('P.O. Box is not accepted in address'), + value => !postalOfficeBoxNumber.test(value ?? '') + ), + }), + address_line_2: Yup.string() + .max(70, localize('Only 70 characters, please.')) + .matches( + address, + `${localize('Use only the following special characters:')} ${addressPermittedSpecialCharacters}` + ) + .when({ + is: () => is_svg, + then: Yup.string().test( + 'po_box', + localize('P.O. Box is not accepted in address'), + value => !postalOfficeBoxNumber.test(value ?? '') + ), + }), + address_postcode: Yup.string() + .max(20, localize('Please enter a postal/ZIP code under 20 characters.')) + .matches(postalCode, localize('Only letters, numbers, space and hyphen are allowed.')), + address_state: Yup.string().matches(addressState, localize('State is not in a proper format')), + }); + +export const getPersonalDetailsBaseValidationSchema = (broker_code?: string) => + Yup.object({ + salutation: Yup.string().when({ + is: () => broker_code === 'maltainvest', + then: Yup.string().required(localize('Salutation is required.')), + }), + account_opening_reason: Yup.string().required(localize('Account opening reason is required.')), + first_name: Yup.string() + .required(localize('First name is required.')) + .max(50, localize('Enter no more than 50 characters.')) + .matches(name, localize('Letters, spaces, periods, hyphens, apostrophes only.')), + last_name: Yup.string() + .required(localize('Last name is required.')) + .max(50, localize('Enter no more than 50 characters.')) + .matches(name, localize('Letters, spaces, periods, hyphens, apostrophes only.')), + date_of_birth: Yup.string() + .required('Date of birth is required.') + .test({ + name: 'validate_dob', + test: value => dayjs(value).isValid() && dayjs(value).isBefore(dayjs().subtract(18, 'years')), + message: localize('You must be 18 years old and above.'), + }), + phone: Yup.string() + .required(localize('Phone is required.')) + // @ts-expect-error yup validation giving type error + .validatePhoneNumberLength(localize('You should enter 9-20 numbers.')) + .matches(phoneNumber, localize('Please enter a valid phone number (e.g. +15417541234).')), + place_of_birth: Yup.string().required(localize('Place of birth is required.')), + citizen: Yup.string().when({ + is: () => broker_code === 'maltainvest', + then: Yup.string().required(localize('Citizenship is required.')), + }), + }); diff --git a/packages/account/src/Sections/Assessment/FinancialAssessment/financial-information-list.ts b/packages/account/src/Constants/financial-information-list.ts similarity index 100% rename from packages/account/src/Sections/Assessment/FinancialAssessment/financial-information-list.ts rename to packages/account/src/Constants/financial-information-list.ts diff --git a/packages/account/src/Constants/personal-details.ts b/packages/account/src/Constants/personal-details.ts deleted file mode 100644 index 465fdeb533cd..000000000000 --- a/packages/account/src/Constants/personal-details.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const PHONE_NUMBER_LENGTH = { - MIN: 9, - MAX: 20, -}; diff --git a/packages/account/src/Containers/employment-tax-details-container/__tests__/employment-tax-details-container.spec.tsx b/packages/account/src/Containers/employment-tax-details-container/__tests__/employment-tax-details-container.spec.tsx new file mode 100644 index 000000000000..b169dbdcb19c --- /dev/null +++ b/packages/account/src/Containers/employment-tax-details-container/__tests__/employment-tax-details-container.spec.tsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { Formik } from 'formik'; +import { render, screen } from '@testing-library/react'; +import { APIProvider } from '@deriv/api'; +import EmploymentTaxDetailsContainer from '../employment-tax-details-container'; +import { mockStore, StoreProvider } from '@deriv/stores'; + +describe('Testing component', () => { + const store = mockStore({}); + + it('should render EmploymentTaxDetailsContainer component', () => { + const props: React.ComponentProps = { + editable_fields: [], + parent_ref: { current: document.createElement('div') }, + handleChange: jest.fn(), + tin_validation_config: { + is_tin_mandatory: false, + tin_employment_status_bypass: [], + }, + }; + + render( + + + + + + + + ); + + expect(screen.getByText(/Employment status/)).toBeInTheDocument; + expect(screen.getByText(/Tax residence/)).toBeInTheDocument; + expect(screen.getByText(/Tax identification number/)).toBeInTheDocument; + expect(screen.getByText(/I confirm that my tax information is accurate and complete./)).toBeInTheDocument; + }); +}); diff --git a/packages/account/src/Containers/employment-tax-details-container/employment-tax-details-container.scss b/packages/account/src/Containers/employment-tax-details-container/employment-tax-details-container.scss new file mode 100644 index 000000000000..5b32c1d2e2d8 --- /dev/null +++ b/packages/account/src/Containers/employment-tax-details-container/employment-tax-details-container.scss @@ -0,0 +1,16 @@ +.employment_tax_detail_field { + &-checkbox { + align-items: flex-start; + margin: 1.6rem auto; + &__box { + align-self: baseline; + } + + &__label { + text-align: justify; + } + .dc-checkbox__box { + margin-inline-start: unset; + } + } +} diff --git a/packages/account/src/Containers/employment-tax-details-container/employment-tax-details-container.tsx b/packages/account/src/Containers/employment-tax-details-container/employment-tax-details-container.tsx new file mode 100644 index 000000000000..ad06305ab640 --- /dev/null +++ b/packages/account/src/Containers/employment-tax-details-container/employment-tax-details-container.tsx @@ -0,0 +1,238 @@ +import { useEffect, useMemo, useRef, useState } from 'react'; +import { FormikValues, useFormikContext } from 'formik'; +import { + EmploymentStatusField, + TaxIdentificationNumberField, + TaxResidenceField, +} from '../../Components/forms/form-fields'; +import { isFieldImmutable } from '../../Helpers/utils'; +import { Checkbox, useOnClickOutside } from '@deriv/components'; +import { Localize } from '@deriv-com/translations'; +import { getLegalEntityName } from '@deriv/shared'; +import { useDevice } from '@deriv-com/ui'; +import { useResidenceList } from '@deriv/hooks'; +import './employment-tax-details-container.scss'; +import { TinValidations } from '@deriv/api/types'; +import { observer, useStore } from '@deriv/stores'; + +type TEmploymentTaxDetailsContainerProps = { + editable_fields: string[]; + parent_ref: React.RefObject; + should_display_long_message?: boolean; + handleChange: (value: string) => void; + tin_validation_config: TinValidations; + id?: string; + should_focus_fields?: boolean; +}; + +const EmploymentTaxDetailsContainer = observer( + ({ + editable_fields, + parent_ref, + should_display_long_message, + tin_validation_config, + handleChange, + should_focus_fields, + }: TEmploymentTaxDetailsContainerProps) => { + const { values, setFieldValue, touched, errors, setValues } = useFormikContext(); + const { isDesktop } = useDevice(); + const { data: residence_list } = useResidenceList(); + const { client } = useStore(); + + const { is_virtual, account_settings } = client; + + const { tin_employment_status_bypass } = tin_validation_config; + + const is_tin_required = !is_virtual && !tin_employment_status_bypass?.includes(values.employment_status); + + const [is_tax_residence_popover_open, setIsTaxResidencePopoverOpen] = useState(false); + const [is_tin_popover_open, setIsTinPopoverOpen] = useState(false); + + const tax_residence_ref = useRef(null); + const tin_ref = useRef(null); + + const validateClickOutside = (event: MouseEvent) => { + const target = event?.target as HTMLElement; + if (target.tagName === 'A') { + event?.stopPropagation(); + return false; + } + return !tax_residence_ref.current?.contains(target) && !tin_ref.current?.contains(target); + }; + + const closeToolTips = () => { + setIsTaxResidencePopoverOpen(false); + setIsTinPopoverOpen(false); + }; + + useEffect(() => { + if (values.tax_residence) { + const tax_residence = residence_list.find(item => item.text === values.tax_residence)?.value; + if (tax_residence) { + handleChange(tax_residence); + } + } + }, [handleChange, values.tax_residence, residence_list]); + + useEffect(() => { + if (!values.tax_residence || !values.tax_identification_number) { + setFieldValue('tax_identification_confirm', false, true); + } + }, [values.tax_residence, values.tax_identification_number, setFieldValue]); + + useEffect(() => { + const parent_element = parent_ref?.current; + + if (parent_element) { + parent_element.addEventListener('scroll', closeToolTips); + } + + return () => { + if (parent_element) { + parent_element.removeEventListener('scroll', closeToolTips); + } + setIsTaxResidencePopoverOpen(false); + setIsTinPopoverOpen(false); + }; + }, [parent_ref]); + + useEffect(() => { + if (tin_validation_config) { + // This is to trigger re-validation of TIN field when the validation config changes + setFieldValue('tax_identification_number', values.tax_identification_number, true); + } + }, [tin_validation_config, setFieldValue, values.tax_identification_number]); + + useEffect(() => { + if (touched.tax_identification_number && values.tax_identification_number) { + setFieldValue('tin_skipped', 0, true); + } + }, [values.tax_identification_number, setFieldValue, touched.tax_identification_number]); + + const is_tax_details_confirm_disabled = useMemo( + () => + (isFieldImmutable('tax_identification_number', editable_fields) && + isFieldImmutable('tax_residence', editable_fields)) || + !values.tax_identification_number || + !values.tax_residence || + !!values.tin_skipped, + [editable_fields, values.tax_identification_number, values.tax_residence, values.tin_skipped] + ); + + useOnClickOutside(tax_residence_ref, () => setIsTaxResidencePopoverOpen(false), validateClickOutside); + + useOnClickOutside(tin_ref, () => setIsTinPopoverOpen(false), validateClickOutside); + + const should_show_no_tax_details_checkbox = + (tin_employment_status_bypass?.includes(values.employment_status) && !!values.tax_residence) || + Boolean(values.tin_skipped); + + const should_show_tax_confirm_checkbox = + !account_settings.tax_identification_number || touched.tax_identification_number; + + const isFieldDisabled = (field_name: string) => isFieldImmutable(field_name, editable_fields); + + // [TODO] - This should come from BE + const should_disable_employment_status = + isFieldDisabled('employment_status') || Boolean(is_virtual && client.account_settings.employment_status); + + return ( +
+ + + {!account_settings.tax_identification_number && should_show_no_tax_details_checkbox && ( + { + const confirm_no_tax_details = values.tin_skipped ? 0 : 1; + setValues( + { + ...values, + tin_skipped: confirm_no_tax_details, + tax_identification_number: '', + tax_identification_confirm: false, + }, + true + ); + }} + value={values.tin_skipped} + label={} + withTabIndex={0} + data-testid='tin_skipped' + label_font_size={!isDesktop ? 'xxs' : 'xs'} + label_line_height='m' + /> + )} +
+ +
+
+ +
+ {should_show_tax_confirm_checkbox && ( + + setFieldValue('tax_identification_confirm', !values.tax_identification_confirm, true) + } + value={values.tax_identification_confirm} + label={ + should_display_long_message ? ( + + ) : ( + + ) + } + withTabIndex={0} + data-testid='tax_identification_confirm' + has_error={!!(touched.tax_identification_confirm && errors.tax_identification_confirm)} + label_font_size={!isDesktop ? 'xxs' : 'xs'} + label_line_height='m' + disabled={is_tax_details_confirm_disabled} + /> + )} +
+ ); + } +); + +export default EmploymentTaxDetailsContainer; diff --git a/packages/account/src/Containers/employment-tax-details-container/index.ts b/packages/account/src/Containers/employment-tax-details-container/index.ts new file mode 100644 index 000000000000..567d84cb9d18 --- /dev/null +++ b/packages/account/src/Containers/employment-tax-details-container/index.ts @@ -0,0 +1,3 @@ +import EmploymentTaxDetailsContainer from './employment-tax-details-container'; + +export default EmploymentTaxDetailsContainer; diff --git a/packages/account/src/Containers/employment-tax-info/employment-tax-info.scss b/packages/account/src/Containers/employment-tax-info/employment-tax-info.scss new file mode 100644 index 000000000000..69659155a22d --- /dev/null +++ b/packages/account/src/Containers/employment-tax-info/employment-tax-info.scss @@ -0,0 +1,18 @@ +.employment-tax-info { + &__form { + padding: 0 16rem; + + .account-form__fieldset:first-child { + margin-top: 1rem; + } + } + + &__layout { + display: flex; + flex-direction: column; + + .details-form { + display: flex; + } + } +} diff --git a/packages/account/src/Containers/employment-tax-info/employment-tax-info.tsx b/packages/account/src/Containers/employment-tax-info/employment-tax-info.tsx new file mode 100644 index 000000000000..bba318b6e101 --- /dev/null +++ b/packages/account/src/Containers/employment-tax-info/employment-tax-info.tsx @@ -0,0 +1,127 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +//@ts-nocheck [TODO] - Need to fix typescript errors in Autocomplete & SelectNative components + +import { useMemo, useRef } from 'react'; +import { Form, Formik, FormikValues } from 'formik'; +import clsx from 'clsx'; +import { localize } from '@deriv-com/translations'; +import { useDevice } from '@deriv-com/ui'; +import EmploymentTaxDetailsContainer from '../employment-tax-details-container'; +import { getEmploymentAndTaxValidationSchema } from '../../Configs/user-profile-validation-config'; +import ScrollToFieldWithError from '../../Components/forms/scroll-to-field-with-error'; +import { Div100vhContainer, FormSubmitButton, Modal, ThemedScrollbars } from '@deriv/components'; +import { useTinValidations } from '@deriv/hooks'; +import { observer, useStore } from '@deriv/stores'; +import './employment-tax-info.scss'; + +type TEmploymentTaxInfoProps = { + disabled_items: string[]; + getCurrentStep: () => number; + onSave: (current_step: number, values: FormikValues) => void; + onCancel: (current_step: number, goToPreviousStep: () => void) => void; + onSubmit: ( + current_step: number, + values: FormikValues, + setSubmitting: (is_submitting: boolean) => void, + goToNextStep: () => void + ) => void; + goToPreviousStep: () => void; + goToNextStep: () => void; + real_account_signup_target: string; + value: FormikValues; +}; + +const EmploymentTaxInfo = observer( + ({ + disabled_items, + value, + getCurrentStep, + onSave, + onCancel, + onSubmit, + goToPreviousStep, + goToNextStep, + real_account_signup_target, + }: TEmploymentTaxInfoProps) => { + const { isMobile, isDesktop } = useDevice(); + const scroll_div_ref = useRef(null); + const { tin_validation_config, mutate } = useTinValidations(); + const { client } = useStore(); + + const editable_fields = useMemo( + () => + ['employment_status', 'tax_residence', 'tax_identification_number'].filter( + field => !disabled_items.includes(field) + ) || [], + [disabled_items] + ); + + const is_eu = real_account_signup_target === 'maltainvest'; + + const schema = getEmploymentAndTaxValidationSchema({ + tin_config: tin_validation_config, + is_mf: is_eu, + is_real: !client.is_virtual, + is_duplicate_account: + client.account_settings.immutable_fields?.includes('tax_identification_number') || + client.account_settings.immutable_fields?.includes('tax_residence'), + }); + + const handleCancel = (values: FormikValues) => { + const current_step = (getCurrentStep?.() || 1) - 1; + onSave(current_step, values); + onCancel(current_step, goToPreviousStep); + }; + + return ( + { + const current_step = getCurrentStep() - 1; + onSave(current_step, values); + onSubmit(current_step, values, actions.setSubmitting, goToNextStep); + }} + > + {({ handleSubmit, isSubmitting, values }) => { + return ( +
+ + + + + + + + handleCancel(values)} + /> + + + ); + }} +
+ ); + } +); + +export default EmploymentTaxInfo; diff --git a/packages/account/src/Helpers/utils.tsx b/packages/account/src/Helpers/utils.tsx index 1fea91cf93e5..cd0bb3c5e9a3 100644 --- a/packages/account/src/Helpers/utils.tsx +++ b/packages/account/src/Helpers/utils.tsx @@ -158,7 +158,7 @@ export const isDocumentTypeValid = (document_type: FormikValues) => { export const isAdditionalDocumentValid = (document_type: FormikValues, additional_document_value?: string) => { const error_message = documentAdditionalError(additional_document_value, document_type?.additional); if (error_message) { - return localize(error_message) + getExampleFormat(document_type.additional?.example_format); + return error_message + getExampleFormat(document_type?.additional?.example_format); } return undefined; }; diff --git a/packages/account/src/Sections/Assessment/FinancialAssessment/NavigateToPersonalDetails.tsx b/packages/account/src/Sections/Assessment/FinancialAssessment/NavigateToPersonalDetails.tsx new file mode 100644 index 000000000000..b2322d3171d3 --- /dev/null +++ b/packages/account/src/Sections/Assessment/FinancialAssessment/NavigateToPersonalDetails.tsx @@ -0,0 +1,74 @@ +import { Button, Text, Icon } from '@deriv/components'; +import { Localize, useTranslations } from '@deriv-com/translations'; +import { useDevice } from '@deriv-com/ui'; +import { useHistory } from 'react-router'; +import { routes } from '@deriv/shared'; +import FormFooter from '../../../Components/form-footer'; +import { observer, useStore } from '@deriv/stores'; +import './navigate-to-personal-details.scss'; + +const NavigateToPersonalDetails = observer(() => { + const { localize } = useTranslations(); + const { isDesktop } = useDevice(); + const { ui, client } = useStore(); + const history = useHistory(); + + const { account_settings } = client; + + const handleOnclick = () => { + let field_to_scroll; + + if (!account_settings.account_opening_reason) { + field_to_scroll = 'account-opening-reason'; + } else { + field_to_scroll = 'employment-tax-section'; + } + + ui.setFieldRefToFocus(field_to_scroll); + history.push(routes.personal_details); + }; + + const icon_size = isDesktop ? { height: '200px', width: '200px' } : { height: '124px', width: '124px' }; + + return ( +
+
+ {/* [TODO] This will be replaced by icon from Quiull icons */} + + + + +
+ {isDesktop ? ( +
+
+ ) : ( + +
+ ); +}); + +export default NavigateToPersonalDetails; diff --git a/packages/account/src/Sections/Assessment/FinancialAssessment/__tests__/financial-assessment.spec.tsx b/packages/account/src/Sections/Assessment/FinancialAssessment/__tests__/financial-assessment.spec.tsx index 2472ef04ba55..27431471d270 100644 --- a/packages/account/src/Sections/Assessment/FinancialAssessment/__tests__/financial-assessment.spec.tsx +++ b/packages/account/src/Sections/Assessment/FinancialAssessment/__tests__/financial-assessment.spec.tsx @@ -44,20 +44,27 @@ jest.mock('@deriv/components', () => { }; }); describe('', () => { - const mock = mockStore({}); - const rendercomponent = () => { - const wrapper = ({ children }: { children: JSX.Element }) => ( - {children} - ); + const mock = mockStore({ + client: { + account_settings: { + account_opening_reason: 'Hedging', + tax_residence: 'Germany', + tax_identification_number: '123456789', + employment_status: 'Employed', + }, + }, + }); + const renderComponent = (store_config = mock) => render( - - , - { wrapper } + + + + ); - }; + it('should render FinancialAssessment component', async () => { - rendercomponent(); + renderComponent(); await waitFor(() => { expect(screen.getByText('Financial information')).toBeInTheDocument(); expect(screen.getByText('Source of income')).toBeInTheDocument(); @@ -93,7 +100,7 @@ describe('', () => { }, }) ); - rendercomponent(); + renderComponent(); await waitFor(() => { expect(screen.getByText('Employment status')).toBeInTheDocument(); expect(screen.getByText('Industry of employment')).toBeInTheDocument(); @@ -121,7 +128,7 @@ describe('', () => { }, }) ); - rendercomponent(); + renderComponent(); await waitFor(() => { expect(screen.getByText('Employment status')).toBeInTheDocument(); expect(screen.getByText('Industry of employment')).toBeInTheDocument(); diff --git a/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx b/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx index 9ad301c02125..74c0ac36235d 100644 --- a/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx +++ b/packages/account/src/Sections/Assessment/FinancialAssessment/financial-assessment.tsx @@ -21,7 +21,6 @@ import { getAccountTurnoverList, getEducationLevelList, getEmploymentIndustryList, - getEmploymentStatusList, getEstimatedWorthList, getIncomeSourceList, getNetIncomeList, @@ -34,12 +33,14 @@ import { getForexTradingFrequencyList, getOtherInstrumentsTradingExperienceList, getOtherInstrumentsTradingFrequencyList, -} from './financial-information-list'; +} from '../../../Constants/financial-information-list'; import type { TCoreStores } from '@deriv/stores/types'; import { GetFinancialAssessment, GetFinancialAssessmentResponse } from '@deriv/api-types'; import { getFormattedOccupationList } from 'Configs/financial-details-config'; import { TFinancialInformationForm } from 'Types'; +import { EmploymentStatusField } from 'Components/forms/form-fields'; import { useDevice } from '@deriv-com/ui'; +import NavigateToPersonalDetails from './NavigateToPersonalDetails'; type TConfirmationPage = { toggleModal: (prop: boolean) => void; @@ -194,6 +195,7 @@ const FinancialAssessment = observer(() => { updateAccountStatus, is_authentication_needed, is_financial_information_incomplete, + account_settings, } = client; const { isMobile, isTablet, isDesktop } = useDevice(); const { platform, routeBackInApp } = common; @@ -237,8 +239,9 @@ const FinancialAssessment = observer(() => { setIsLoading(false); history.push(routes.personal_details); } else { - WS.authorized.storage.getFinancialAssessment().then((data: GetFinancialAssessmentResponse) => { - WS.wait('get_account_status').then(() => { + WS.authorized.storage.getFinancialAssessment().then(async (data: GetFinancialAssessmentResponse) => { + try { + await WS.wait('get_account_status'); setHasTradingExperience( (is_financial_account || is_trading_experience_incomplete) && !is_svg && !is_mf ); @@ -255,7 +258,10 @@ const FinancialAssessment = observer(() => { } if (data?.get_financial_assessment) setInitialFormValues(data.get_financial_assessment); setIsLoading(false); - }); + } catch (e) { + // eslint-disable-next-line no-console + console.error(e); + } }); } @@ -390,6 +396,15 @@ const FinancialAssessment = observer(() => { return form_data; }; + if ( + !employment_status || + !account_settings.account_opening_reason || + !account_settings.tax_residence || + !account_settings.tax_identification_number + ) { + return ; + } + return ( {({ @@ -475,45 +490,7 @@ const FinancialAssessment = observer(() => { {!is_mf && (
- {isDesktop ? ( - { - handleChange(e); - setFieldValue( - 'occupation', - '', - !shouldHideOccupationField(e.target.value) - ); - }} - handleBlur={handleBlur} - error={touched.employment_status && errors.employment_status} - /> - ) : ( - { - setFieldTouched('employment_status', true); - setFieldValue( - 'occupation', - '', - !shouldHideOccupationField(e.target.value) - ); - handleChange(e); - }} - /> - )} +
)}
diff --git a/packages/account/src/Sections/Assessment/FinancialAssessment/navigate-to-personal-details.scss b/packages/account/src/Sections/Assessment/FinancialAssessment/navigate-to-personal-details.scss new file mode 100644 index 000000000000..64ae30a15339 --- /dev/null +++ b/packages/account/src/Sections/Assessment/FinancialAssessment/navigate-to-personal-details.scss @@ -0,0 +1,53 @@ +.navigate-to-personal-details { + display: flex; + flex-direction: column; + + @include desktop-screen { + position: relative; + top: 10%; + row-gap: 2.6rem; + width: 50%; + height: 100%; + align-self: center; + } + + &__body { + display: flex; + flex-direction: column; + align-items: center; + + @include mobile-or-tablet-screen { + margin-top: 45%; + } + + &--text { + @include desktop-screen { + line-height: 3rem; + } + + @include mobile-or-tablet-screen { + line-height: 2.4rem; + padding: 0 3.2rem; + } + } + + @include desktop-screen { + row-gap: 2.6rem; + } + + @include mobile-or-tablet-screen { + row-gap: 1.6rem; + flex-grow: 1; + } + } + + &__footer { + width: 100%; + display: flex; + justify-content: center; + + &--layout { + padding: 1.6rem; + } + } +} diff --git a/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details-form.spec.tsx b/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details-form.spec.tsx index 8aa4b8541e11..8aaffc8a6cc2 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details-form.spec.tsx +++ b/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details-form.spec.tsx @@ -106,21 +106,12 @@ describe('', () => { }); }); - it('should display error for up to 50 characters length validation, for last name when entered characters are more than 50', async () => { - renderComponent(); - await waitFor(async () => { - const last_name = screen.getByTestId('dt_last_name'); - await userEvent.type(last_name, 'ABCDEFGHIJKLMNOP.QRSTU VWXYZabcdefghi-jklmnopqrstuvwxyzh-shs'); - expect(screen.getByText(/Enter no more than 50 characters./)).toBeInTheDocument(); - }); - }); - it('should display error for the regex validation, for First name when unacceptable characters are entered', async () => { renderComponent(); - await waitFor(async () => { + await waitFor(() => { const first_name = screen.getByTestId('dt_first_name'); - await userEvent.type(first_name, 'test 3'); + userEvent.type(first_name, 'test 3'); expect(screen.getByText('Letters, spaces, periods, hyphens, apostrophes only.')).toBeInTheDocument(); }); }); diff --git a/packages/account/src/Sections/Profile/PersonalDetails/__tests__/validation.spec.tsx b/packages/account/src/Sections/Profile/PersonalDetails/__tests__/validation.spec.tsx index 5892e1cb2ccd..756413b210d5 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/__tests__/validation.spec.tsx +++ b/packages/account/src/Sections/Profile/PersonalDetails/__tests__/validation.spec.tsx @@ -5,15 +5,7 @@ import { } from '../validation'; describe('getPersonalDetailsValidationSchema', () => { - const non_eu_valid_data = { - first_name: 'John', - last_name: 'Doe', - phone: '+123456789', - address_line_1: 'Kuala Lumpur', - address_city: 'Kuala Lumpur', - citizen: 'Malaysian', - }; - const eu_valid_data = { + const valid_data = { first_name: 'John', last_name: 'Doe', phone: '+123456789', @@ -23,8 +15,11 @@ describe('getPersonalDetailsValidationSchema', () => { tax_identification_number: '123123123', tax_residence: 'Germany', employment_status: 'Employed', + date_of_birth: '1990-01-01', + tax_identification_confirm: true, }; - const non_eu_invalid_data = { + + const invalid_data = { first_name: 'John', last_name: 'Doe123', phone: 'wrong', @@ -32,19 +27,17 @@ describe('getPersonalDetailsValidationSchema', () => { address_city: '', citizen: '', }; - const non_eu = false; - const is_eu = true; it('should validate a valid input for non-eu users', async () => { - const validationSchema = getPersonalDetailsValidationSchema(non_eu); - const isValid = await validationSchema.isValid(non_eu_valid_data); + const validationSchema = getPersonalDetailsValidationSchema(); + const isValid = await validationSchema.isValid(valid_data); expect(isValid).toBe(true); }); it('should not validate an invalid input for non-eu users', async () => { - const validationSchema = getPersonalDetailsValidationSchema(non_eu); + const validationSchema = getPersonalDetailsValidationSchema(); try { - await validationSchema.isValid(non_eu_invalid_data); + await validationSchema.isValid(invalid_data); } catch (error) { // @ts-expect-error [TODO]: Fix type for error expect(error.errors.length).toBeGreaterThan(0); @@ -52,19 +45,13 @@ describe('getPersonalDetailsValidationSchema', () => { }); it('should validate a valid input for eu users', async () => { - const validationSchema = getPersonalDetailsValidationSchema(is_eu); - const isValid = await validationSchema.isValid(eu_valid_data); + const validationSchema = getPersonalDetailsValidationSchema(); + const isValid = await validationSchema.isValid(valid_data); expect(isValid).toBe(true); }); - it('should not validate a non-eu input for eu users', async () => { - const validationSchema = getPersonalDetailsValidationSchema(is_eu); - const isValid = await validationSchema.isValid(non_eu_valid_data); - expect(isValid).toBe(false); - }); - it('should return empty object for virtual account', () => { - const validationSchema = getPersonalDetailsValidationSchema(false, true); + const validationSchema = getPersonalDetailsValidationSchema(true); expect(validationSchema.fields).toEqual({}); }); }); diff --git a/packages/account/src/Sections/Profile/PersonalDetails/personal-details-form.scss b/packages/account/src/Sections/Profile/PersonalDetails/personal-details-form.scss new file mode 100644 index 000000000000..0086f5618c83 --- /dev/null +++ b/packages/account/src/Sections/Profile/PersonalDetails/personal-details-form.scss @@ -0,0 +1,5 @@ +.employment-tin-section { + @include desktop-screen { + margin: 2.4rem 0; + } +} diff --git a/packages/account/src/Sections/Profile/PersonalDetails/personal-details-form.tsx b/packages/account/src/Sections/Profile/PersonalDetails/personal-details-form.tsx index 67ea9e2d0d8d..1095fd73b1b8 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/personal-details-form.tsx +++ b/packages/account/src/Sections/Profile/PersonalDetails/personal-details-form.tsx @@ -1,4 +1,4 @@ -import { useState, useRef, useEffect, Fragment, ChangeEvent } from 'react'; +import { useState, useRef, useEffect, Fragment, ChangeEvent, useMemo, useLayoutEffect } from 'react'; import clsx from 'clsx'; import { Formik, Form, FormikHelpers } from 'formik'; import { useHistory } from 'react-router'; @@ -6,39 +6,43 @@ import { useDevice } from '@deriv-com/ui'; import { Button, Checkbox, - Dropdown, FormSubmitErrorMessage, HintBox, Input, Loading, OpenLiveChatLink, - SelectNative, Text, } from '@deriv/components'; -import { GetSettings } from '@deriv/api-types'; import { AUTH_STATUS_CODES, WS, getBrandWebsiteName, routes } from '@deriv/shared'; import { Localize, localize } from '@deriv/translations'; import { observer, useStore } from '@deriv/stores'; -import LeaveConfirm from 'Components/leave-confirm'; -import FormFooter from 'Components/form-footer'; -import FormBody from 'Components/form-body'; -import { DateOfBirthField } from 'Components/forms/form-fields'; -import FormSubHeader from 'Components/form-sub-header'; -import LoadErrorMessage from 'Components/load-error-message'; -import POAAddressMismatchHintBox from 'Components/poa-address-mismatch-hint-box'; -import { getEmploymentStatusList } from 'Sections/Assessment/FinancialAssessment/financial-information-list'; +import LeaveConfirm from '../../../Components/leave-confirm'; +import FormFooter from '../../../Components/form-footer'; +import FormBody from '../../../Components/form-body'; +import { DateOfBirthField } from '../../../Components/forms/form-fields'; +import FormSubHeader from '../../../Components/form-sub-header'; +import LoadErrorMessage from '../../../Components/load-error-message'; +import POAAddressMismatchHintBox from '../../../Components/poa-address-mismatch-hint-box'; import InputGroup from './input-group'; import { getPersonalDetailsInitialValues, getPersonalDetailsValidationSchema, makeSettingsRequest } from './validation'; -import FormSelectField from 'Components/forms/form-select-field'; +import FormSelectField from '../../../Components/forms/form-select-field'; import { VerifyButton } from './verify-button'; import { useInvalidateQuery } from '@deriv/api'; +import EmploymentTaxDetailsContainer from '../../../Containers/employment-tax-details-container'; +import { isFieldImmutable } from '../../../Helpers/utils'; +import { PersonalDetailsValueTypes } from '../../../Types'; +import AccountOpeningReasonField from '../../../Components/forms/form-fields/account-opening-reason'; +import { account_opening_reason_list } from './constants'; +import { useScrollElementToTop } from '../../../hooks'; import { useStatesList, useResidenceList, useGrowthbookGetFeatureValue, usePhoneNumberVerificationSetTimer, useIsPhoneNumberVerified, + useTinValidations, } from '@deriv/hooks'; +import './personal-details-form.scss'; type TRestState = { show_form: boolean; @@ -57,8 +61,13 @@ const PersonalDetailsForm = observer(() => { }); const { next_email_otp_request_timer, is_email_otp_timer_loading } = usePhoneNumberVerificationSetTimer(); + const { tin_validation_config, mutate } = useTinValidations(); + + const scrollToTop = useScrollElementToTop(); + const { client, + ui, notifications, common: { is_language_changing }, } = useStore(); @@ -68,13 +77,17 @@ const PersonalDetailsForm = observer(() => { account_settings, account_status, authentication_status, - is_eu, is_virtual, current_landing_company, updateAccountStatus, + fetchAccountSettings, residence, + is_svg, + is_mf_account, } = client; + const { field_ref_to_focus, setFieldRefToFocus } = ui; + const { data: residence_list, isLoading: is_loading_residence_list } = useResidenceList(); const { data: states_list, isLoading: is_loading_state_list } = useStatesList(residence); @@ -91,6 +104,7 @@ const PersonalDetailsForm = observer(() => { }); const notification_timeout = useRef(); + const scroll_div_ref = useRef(null); const [start_on_submit_timeout, setStartOnSubmitTimeout] = useState<{ is_timeout_started: boolean; @@ -100,6 +114,12 @@ const PersonalDetailsForm = observer(() => { timeout_callback: () => null, }); + useEffect(() => { + fetchAccountSettings(); + }, [fetchAccountSettings]); + + const should_show_loader = is_loading_state_list || is_loading || is_loading_residence_list; + useEffect(() => { const init = async () => { try { @@ -138,8 +158,11 @@ const PersonalDetailsForm = observer(() => { } }; - const onSubmit = async (values: GetSettings, { setStatus, setSubmitting }: FormikHelpers) => { - setStatus({ msg: '', code: '' }); + const onSubmit = async ( + values: PersonalDetailsValueTypes, + { setStatus, setSubmitting }: FormikHelpers + ) => { + setStatus({ msg: '' }); const request = makeSettingsRequest({ ...values }, residence_list, states_list, is_virtual); setIsBtnLoading(true); const data = await WS.authorized.setSettings(request); @@ -210,11 +233,51 @@ const PersonalDetailsForm = observer(() => { return !!account_settings?.immutable_fields?.includes(name); }; + const employment_tax_editable_fields = useMemo(() => { + const fields_to_disable = ['employment_status', 'tax_identification_number'].filter(field => + isFieldImmutable(field, account_settings?.immutable_fields) + ); + /* + [TODO]: Will be removed once BE enables tax_residence in immutable_fields + If Tax_residence value is present in response, then it must not be editable + */ + if (!account_settings?.tax_residence) { + fields_to_disable.push('tax_residence'); + } + return fields_to_disable; + }, [account_settings?.immutable_fields, account_settings?.tax_residence]); + const { api_error, show_form } = rest_state; + const loadTimer = useRef(); + + // To facilitate scrolling to the field that is to be focused + useLayoutEffect(() => { + if (field_ref_to_focus && !should_show_loader && !api_error) { + loadTimer.current = setTimeout(() => { + const parentRef = isDesktop + ? document.querySelector('.account-form__personal-details .dc-themed-scrollbars') + : document.querySelector('.account__scrollbars_container--grid-layout'); + const targetRef = document.getElementById(field_ref_to_focus) as HTMLElement; + const offset = 24; // 24 is the padding of the container + scrollToTop(parentRef as HTMLElement, targetRef, offset); + }, 0); + } + return () => { + if (field_ref_to_focus) { + clearTimeout(loadTimer.current); + } + }; + }, [field_ref_to_focus, isDesktop, should_show_loader, api_error, scrollToTop, setFieldRefToFocus]); + + useEffect(() => { + return () => { + setFieldRefToFocus(null); + }; + }, [setFieldRefToFocus]); if (api_error) return ; - if (is_loading_state_list || is_loading || is_loading_residence_list) { + if (should_show_loader) { return ; } @@ -235,7 +298,16 @@ const PersonalDetailsForm = observer(() => { return undefined; }; - const displayErrorMessage = (status: any) => { + const is_tin_auto_set = Boolean(account_settings?.tin_skipped); + + const PersonalDetailSchema = getPersonalDetailsValidationSchema( + is_virtual, + is_svg, + tin_validation_config, + is_tin_auto_set, + account_settings?.immutable_fields + ); + const displayErrorMessage = (status: { code: string; msg: string }) => { if (status?.code === 'PhoneNumberTaken') { return ( { return ; }; - const PersonalDetailSchema = getPersonalDetailsValidationSchema(is_eu, is_virtual); - const initialValues = getPersonalDetailsInitialValues(account_settings, residence_list, states_list, is_virtual); return ( @@ -269,7 +339,6 @@ const PersonalDetailsForm = observer(() => { errors, setStatus, status, - touched, handleChange, handleBlur, handleSubmit, @@ -408,221 +477,179 @@ const PersonalDetailsForm = observer(() => { />
{!is_virtual && ( -
- ) => { - let phone_number = e.target.value.replace(/\D/g, ''); - phone_number = phone_number.length === 0 ? '+' : `+${phone_number}`; - setFieldValue('phone', phone_number, true); - setStatus(''); - }} - onBlur={handleBlur} - required - error={errors.phone} - disabled={ - isFieldDisabled('phone') || - !!next_email_otp_request_timer || - is_email_otp_timer_loading - } - data-testid='dt_phone' - /> - {isPhoneNumberVerificationEnabled && ( - - )} -
- )} - - {'tax_residence' in values && ( - - - {'tax_residence' in values && ( -
- -
- )} - {'tax_identification_number' in values && ( -
+ +
+
+
-
- )} - {'employment_status' in values && ( -
- {isDesktop ? ( - - ) : ( - { - setFieldTouched('employment_status', true); - handleChange(e); - }} - /> - )} -
- )} -
- )} - {!is_virtual && ( - - {has_poa_address_mismatch && } - -
-
- ) => { + let phone_number = e.target.value.replace(/\D/g, ''); + phone_number = + phone_number.length === 0 ? '+' : `+${phone_number}`; + setFieldValue('phone', phone_number, true); + setStatus(''); + }} onBlur={handleBlur} - error={errors.address_line_1} required - disabled={isFieldDisabled('address_line_1')} - data-testid='dt_address_line_1' + error={errors.phone} + disabled={ + isFieldDisabled('phone') || + !!next_email_otp_request_timer || + is_email_otp_timer_loading + } + data-testid='dt_phone' /> -
-
- + {isPhoneNumberVerificationEnabled && ( + -
-
- +
+ + + )} + {!is_virtual && ( +
+ + + {has_poa_address_mismatch && } + +
+
+ +
+
+ +
+
+ +
+
+ {states_list.length ? ( + -
-
- {states_list.length ? ( - - ) : ( - - )} -
-
+ ) : ( -
-
- - )} - + )} +
+
+ +
+
+ + )} {!!current_landing_company?.support_professional_client && (
diff --git a/packages/account/src/Sections/Profile/PersonalDetails/validation.ts b/packages/account/src/Sections/Profile/PersonalDetails/validation.ts index cb6c4cf78c97..3e93de1394f1 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/validation.ts +++ b/packages/account/src/Sections/Profile/PersonalDetails/validation.ts @@ -1,82 +1,21 @@ -import { localize } from '@deriv/translations'; import * as Yup from 'yup'; -import { address_permitted_special_characters_message, getLocation, toMoment } from '@deriv/shared'; +import { formatDate, getLocation, toMoment } from '@deriv/shared'; import { GetSettings, ResidenceList, StatesList } from '@deriv/api-types'; - -Yup.addMethod(Yup.string, 'validatePhoneNumberLength', function (message) { - return this.test('is-valid-phone-number-length', message || localize('You should enter 9-20 numbers.'), value => { - if (typeof value === 'string') { - // Remove the leading '+' symbol before validation - const phoneNumber = value.startsWith('+') ? value.slice(1) : value; - return /^[0-9]{9,20}$/.test(phoneNumber); - } - return false; - }); -}); - -const getBaseSchema = () => - Yup.object().shape({ - first_name: Yup.string() - .required(localize('First name is required.')) - .min(1, localize('Enter no more than 50 characters.')) - .max(50, localize('Enter no more than 50 characters.')) - .matches( - /^(?!.*\s{2,})[\p{L}\s'.-]{1,50}$/u, - localize('Letters, spaces, periods, hyphens, apostrophes only.') - ), - last_name: Yup.string() - .required(localize('Last name is required.')) - .min(1, localize('Enter no more than 50 characters.')) - .max(50, localize('Enter no more than 50 characters.')) - .matches( - /^(?!.*\s{2,})[\p{L}\s'.-]{1,50}$/u, - localize('Letters, spaces, periods, hyphens, apostrophes only.') - ), - phone: Yup.string() - //@ts-expect-error yup validation giving type error - .validatePhoneNumberLength(localize('You should enter 9-20 numbers.')) - .required(localize('Phone is required.')) - .matches(/^\+?([0-9-]+\s)*[0-9-]+$/, localize('Enter a valid phone number (e.g. +15417541234).')), - address_line_1: Yup.string() - .trim() - .required(localize('First line of address is required.')) - .max(70, localize('Should be less than 70.')) - .matches( - /^[\p{L}\p{Nd}\s'.,:;()\u00b0@#/-]{0,70}$/u, - localize('Use only the following special characters: {{permitted_characters}}', { - permitted_characters: address_permitted_special_characters_message, - interpolation: { escapeValue: false }, - }) - ), - address_line_2: Yup.string() - .trim() - .max(70, localize('Should be less than 70.')) - .matches( - /^[\p{L}\p{Nd}\s'.,:;()\u00b0@#/-]{0,70}$/u, - localize('Use only the following special characters: {{permitted_characters}}', { - permitted_characters: address_permitted_special_characters_message, - interpolation: { escapeValue: false }, - }) - ), - address_city: Yup.string() - .required(localize('Town/City is required.')) - .max(70, localize('Should be less than 70.')) - .matches( - /^[A-Za-z]+(?:[.' -]*[A-Za-z]+){1,70}$/, - localize('Only letters, space, hyphen, period, and apostrophe are allowed.') - ), - address_postcode: Yup.string() - .max(20, localize('Please enter a Postal/ZIP code under 20 characters.')) - .matches(/^[A-Za-z0-9][A-Za-z0-9\s-]*$/, localize('Only letters, numbers, space, and hyphen are allowed.')), - }); +import { + getAddressDetailValidationSchema, + getPersonalDetailsBaseValidationSchema, + getEmploymentAndTaxValidationSchema, +} from 'Configs/user-profile-validation-config'; +import { TinValidations } from '@deriv/api/types'; +import { PersonalDetailsValueTypes } from 'Types'; export const getPersonalDetailsInitialValues = ( - account_settings: GetSettings, + account_settings: GetSettings & { tin_skipped?: 0 | 1 }, residence_list: ResidenceList, states_list: StatesList, is_virtual?: boolean -): GetSettings => { - const virtualAccountInitialValues: GetSettings = { +): PersonalDetailsValueTypes => { + const virtualAccountInitialValues: PersonalDetailsValueTypes = { email_consent: account_settings.email_consent ?? 0, residence: account_settings.residence, }; @@ -89,11 +28,16 @@ export const getPersonalDetailsInitialValues = ( address_line_2: account_settings.address_line_2 ?? '', address_postcode: account_settings.address_postcode ?? '', address_state: '', - date_of_birth: account_settings.date_of_birth, + date_of_birth: formatDate(account_settings.date_of_birth, 'YYYY-MM-DD'), first_name: account_settings.first_name, last_name: account_settings.last_name, phone: `+${account_settings.phone?.replace(/\D/g, '')}`, - tax_identification_number: account_settings.tax_identification_number ?? '', + account_opening_reason: account_settings.account_opening_reason, + employment_status: account_settings?.employment_status, + tax_residence: + (account_settings?.tax_residence + ? residence_list.find(item => item.value === account_settings?.tax_residence)?.text + : account_settings?.residence) || '', }; const isGetSettingsKey = (value: string): value is keyof GetSettings => @@ -108,25 +52,35 @@ export const getPersonalDetailsInitialValues = ( } }); + if (account_settings?.tin_skipped) { + initialValues.tin_skipped = account_settings.tin_skipped; + initialValues.tax_identification_number = ''; + } else { + initialValues.tax_identification_number = account_settings.tax_identification_number ?? ''; + } + if (account_settings.address_state) { initialValues.address_state = states_list.length ? getLocation(states_list, account_settings.address_state, 'text') : account_settings.address_state; } - if (account_settings.employment_status) { - initialValues.employment_status = account_settings.employment_status; - } - if (account_settings.request_professional_status) { initialValues.request_professional_status = account_settings.request_professional_status; } + // Setting default value of `I confirm that my tax information is accurate and complete.` checkbox + if (account_settings.tax_residence && account_settings.tax_identification_number && !account_settings.tin_skipped) { + initialValues.tax_identification_confirm = true; + } else { + initialValues.tax_identification_confirm = false; + } + return initialValues; }; export const makeSettingsRequest = ( - settings: GetSettings, + settings: PersonalDetailsValueTypes, residence_list: ResidenceList, states_list: StatesList, is_virtual: boolean @@ -143,7 +97,6 @@ export const makeSettingsRequest = ( request.last_name = request.last_name.trim(); } if (request.date_of_birth) { - // @ts-expect-error need to fix the type for date_of_birth in GetSettings because it should be string not number request.date_of_birth = toMoment(request.date_of_birth).format('YYYY-MM-DD'); } @@ -170,28 +123,38 @@ export const makeSettingsRequest = ( ? getLocation(states_list, request.address_state, 'value') : request.address_state; } + delete request.tax_identification_confirm; return request; }; -export const getPersonalDetailsValidationSchema = (is_eu: boolean, is_virtual?: boolean) => { +export const getPersonalDetailsValidationSchema = ( + is_virtual?: boolean, + is_svg?: boolean, + tin_validation_config?: TinValidations, + is_tin_auto_set?: boolean, + immutable_fields?: string[] +) => { if (is_virtual) return Yup.object(); - if (!is_eu) return getBaseSchema(); - return getBaseSchema().concat( - Yup.object().shape({ - tax_identification_number: Yup.string() - .required(localize('TIN is required.')) - .max(25, localize("Tax Identification Number can't be longer than 25 characters.")) - .matches( - /^(?!^$|\s+)[A-Za-z0-9./\s-]{0,25}$/, - localize('Only letters, numbers, space, hyphen, period, and forward slash are allowed.') - ) - .matches( - /^[a-zA-Z0-9].*$/, - localize('Should start with letter or number and may contain a hyphen, period and slash.') - ), - tax_residence: Yup.string().required(localize('Tax residence is required.')), - employment_status: Yup.string().required(localize('Employment status is required.')), - }) - ); + + const personal_details_schema = getPersonalDetailsBaseValidationSchema().pick([ + 'first_name', + 'last_name', + 'phone', + 'date_of_birth', + 'citizen', + ]); + + const address_detail_schema = getAddressDetailValidationSchema(is_svg ?? false); + + const employment_tin_schema = getEmploymentAndTaxValidationSchema({ + tin_config: tin_validation_config as TinValidations, + is_mf: !is_svg, + is_real: !is_virtual, + is_tin_auto_set, + is_duplicate_account: + immutable_fields?.includes('tax_identification_number') || immutable_fields?.includes('tax_residence'), + }); + + return personal_details_schema.concat(address_detail_schema).concat(employment_tin_schema); }; diff --git a/packages/account/src/Sections/Profile/PersonalDetails/verify-button.scss b/packages/account/src/Sections/Profile/PersonalDetails/verify-button.scss index d15f65b61ed5..7796badfa4e1 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/verify-button.scss +++ b/packages/account/src/Sections/Profile/PersonalDetails/verify-button.scss @@ -1,7 +1,4 @@ .phone-verification-button { - position: absolute; - inset-inline-end: 0; - top: 0; border-end-start-radius: 0; border-start-start-radius: 0; } diff --git a/packages/account/src/Sections/Profile/PersonalDetails/verify-button.tsx b/packages/account/src/Sections/Profile/PersonalDetails/verify-button.tsx index 4cf7782dca0e..46e341b7e50e 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/verify-button.tsx +++ b/packages/account/src/Sections/Profile/PersonalDetails/verify-button.tsx @@ -56,10 +56,12 @@ export const VerifyButton = observer( const redirectToPhoneVerification = (e: React.MouseEvent) => { e.preventDefault(); + localStorage.setItem('routes_from_notification_to_pnv', routes.personal_details); setVerificationCode('', 'phone_number_verification'); setShouldShowPhoneNumberOTP(false); + // @ts-expect-error GetSettings types doesn't match updated set_settings payload types const request = makeSettingsRequest({ ...values }, residence_list, states_list, is_virtual); - //@ts-expect-error GetSettings types doesn't match updated set_settings payload types + // @ts-expect-error GetSettings types doesn't match updated set_settings payload types updateSettings({ payload: request }) .then(() => { sendPhoneNumberVerifyEmail(); diff --git a/packages/account/src/Sections/Profile/PhoneVerification/__test__/session-timeout-modal.spec.tsx b/packages/account/src/Sections/Profile/PhoneVerification/__test__/session-timeout-modal.spec.tsx index e03c83957722..10158214fa54 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/__test__/session-timeout-modal.spec.tsx +++ b/packages/account/src/Sections/Profile/PhoneVerification/__test__/session-timeout-modal.spec.tsx @@ -26,7 +26,7 @@ describe('SessionTimeoutModal', () => { const renderComponent = () => { render( - + ); }; diff --git a/packages/account/src/Sections/Profile/PhoneVerification/confirm-phone-number.tsx b/packages/account/src/Sections/Profile/PhoneVerification/confirm-phone-number.tsx index 99fb1be02e61..8358d69fdd36 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/confirm-phone-number.tsx +++ b/packages/account/src/Sections/Profile/PhoneVerification/confirm-phone-number.tsx @@ -9,7 +9,6 @@ import { VERIFICATION_SERVICES } from '@deriv/shared'; import { observer, useStore } from '@deriv/stores'; import { Button, Snackbar, Text, TextFieldAddon } from '@deriv-com/quill-ui'; import { Localize, useTranslations } from '@deriv-com/translations'; -import PhoneVerificationCard from './phone-verification-card'; import { validatePhoneNumber } from './validation'; type TConfirmPhoneNumber = { @@ -54,6 +53,12 @@ const ConfirmPhoneNumber = observer(({ show_confirm_phone_number, setOtpVerifica useEffect(() => { if (email_otp_error) { + trackPhoneVerificationEvents({ + action: 'error', + subform_name: 'verify_phone_screen', + //@ts-expect-error will fix this later + error_code: email_otp_error.code, + }); invalidate('get_settings').then(() => setIsButtonLoading(false)); } if (is_email_verified) { @@ -61,7 +66,7 @@ const ConfirmPhoneNumber = observer(({ show_confirm_phone_number, setOtpVerifica setOtpVerification({ show_otp_verification: true, phone_verification_type }); setShouldShowPhoneNumberOTP(true); } - }, [is_email_verified, email_otp_error, invalidate]); + }, [is_email_verified, email_otp_error, invalidate, trackPhoneVerificationEvents]); const handleOnChangePhoneNumber = (e: ChangeEvent) => { setPhoneNumber(e.target.value); @@ -123,6 +128,7 @@ const ConfirmPhoneNumber = observer(({ show_confirm_phone_number, setOtpVerifica value={phone_number} status={error_message ? 'error' : 'neutral'} message={error_message} + className='phone-verification__card--inputfield__phone-number-input' onChange={handleOnChangePhoneNumber} addonLabel='+' /> diff --git a/packages/account/src/Sections/Profile/PhoneVerification/otp-verification.tsx b/packages/account/src/Sections/Profile/PhoneVerification/otp-verification.tsx index 78bfd0ee2a6b..b597eaa58593 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/otp-verification.tsx +++ b/packages/account/src/Sections/Profile/PhoneVerification/otp-verification.tsx @@ -61,6 +61,17 @@ const OTPVerification = observer(({ phone_verification_type, setOtpVerification }); }, [invalidate]); + useEffect(() => { + if (email_otp_error) { + trackPhoneVerificationEvents({ + action: 'error', + subform_name: should_show_phone_number_otp ? 'verify_phone_otp_screen' : 'verify_email_screen', + // @ts-expect-error will remove once solved + error_code: email_otp_error.code, + }); + } + }, [email_otp_error, trackPhoneVerificationEvents, should_show_phone_number_otp]); + useEffect(() => { if (should_show_phone_number_otp) { trackPhoneVerificationEvents({ @@ -156,7 +167,7 @@ const OTPVerification = observer(({ phone_verification_type, setOtpVerification {should_show_phone_number_otp ? ( , + , ]} /> diff --git a/packages/account/src/Sections/Profile/PhoneVerification/phone-number-verified-modal.tsx b/packages/account/src/Sections/Profile/PhoneVerification/phone-number-verified-modal.tsx index c317fdea0d50..f21e90028f6f 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/phone-number-verified-modal.tsx +++ b/packages/account/src/Sections/Profile/PhoneVerification/phone-number-verified-modal.tsx @@ -15,8 +15,7 @@ const PhoneNumberVerifiedModal = observer(({ should_show_phone_number_verified_m const history = useHistory(); const previous_route = localStorage.getItem('routes_from_notification_to_pnv'); const should_route_back_to_previous = - !!previous_route && - (previous_route !== routes.personal_details || previous_route !== routes.phone_verification); + previous_route !== routes.personal_details && previous_route !== routes.phone_verification && !!previous_route; const handleDoneButton = () => { localStorage.removeItem('routes_from_notification_to_pnv'); @@ -31,7 +30,7 @@ const PhoneNumberVerifiedModal = observer(({ should_show_phone_number_verified_m account_settings: { phone }, }, } = useStore(); - const { setIsPhoneVerificationCompleted } = ui; + const { setIsPhoneVerificationCompleted, setShouldShowPhoneNumberOTP } = ui; const { trackPhoneVerificationEvents } = usePhoneVerificationAnalytics(); useEffect(() => { @@ -40,6 +39,7 @@ const PhoneNumberVerifiedModal = observer(({ should_show_phone_number_verified_m action: 'open', subform_name: 'verification_successful', }); + setShouldShowPhoneNumberOTP(false); setIsPhoneVerificationCompleted(true); } }, [should_show_phone_number_verified_modal, trackPhoneVerificationEvents]); @@ -59,12 +59,15 @@ const PhoneNumberVerifiedModal = observer(({ should_show_phone_number_verified_m } />
- - - +
+
+ {phone} +
+   + + + +
diff --git a/packages/account/src/Sections/Profile/PhoneVerification/phone-verification-page.tsx b/packages/account/src/Sections/Profile/PhoneVerification/phone-verification-page.tsx index 814b7a7ca403..2b5207050977 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/phone-verification-page.tsx +++ b/packages/account/src/Sections/Profile/PhoneVerification/phone-verification-page.tsx @@ -101,7 +101,9 @@ const PhoneVerificationPage = observer(() => { should_show_verification_link_expired_modal={should_show_verification_link_expired_modal} setShouldShowVerificationLinkExpiredModal={setShouldShowVerificationLinkExpiredModal} /> - {!should_show_verification_link_expired_modal && } + {!should_show_verification_link_expired_modal && ( + + )} {isDesktop && (
diff --git a/packages/account/src/Sections/Profile/PhoneVerification/phone-verification.scss b/packages/account/src/Sections/Profile/PhoneVerification/phone-verification.scss index 87bfbe546c18..6fa163a08d7b 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/phone-verification.scss +++ b/packages/account/src/Sections/Profile/PhoneVerification/phone-verification.scss @@ -14,6 +14,15 @@ gap: 0.8rem; margin-top: 2.4rem; } + &__phone-number-container { + display: flex; + + &__phone-number { + @include rtl { + direction: ltr; + } + } + } } } @@ -72,6 +81,15 @@ @include mobile-screen { width: 100%; } + &__phone-number-input { + @include rtl { + direction: ltr; + + .label { + direction: rtl; + } + } + } &__livechat { color: var(--core-color-solid-red-900, $color-red-12); @@ -104,6 +122,12 @@ display: flex; flex-direction: column; text-align: center; + + &__phone-number { + @include rtl { + direction: ltr; + } + } } &-otp-container { diff --git a/packages/account/src/Sections/Profile/PhoneVerification/session-timeout-modal.tsx b/packages/account/src/Sections/Profile/PhoneVerification/session-timeout-modal.tsx index 37040b4c56dd..66cfcbdc834d 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/session-timeout-modal.tsx +++ b/packages/account/src/Sections/Profile/PhoneVerification/session-timeout-modal.tsx @@ -1,5 +1,5 @@ import { useHistory } from 'react-router'; -import { usePhoneNumberVerificationSessionTimer } from '@deriv/hooks'; +import { usePhoneNumberVerificationSessionTimer, usePhoneVerificationAnalytics } from '@deriv/hooks'; import { routes } from '@deriv/shared'; import { Modal, Text } from '@deriv-com/quill-ui'; import { Localize, useTranslations } from '@deriv-com/translations'; @@ -7,19 +7,36 @@ import { useDevice } from '@deriv-com/ui'; import { observer, useStore } from '@deriv/stores'; import { useEffect } from 'react'; -const SessionTimeoutModal = observer(() => { +const SessionTimeoutModal = observer(({ is_at_otp_verification }: { is_at_otp_verification: boolean }) => { const { isMobile } = useDevice(); const history = useHistory(); const { localize } = useTranslations(); const { should_show_session_timeout_modal } = usePhoneNumberVerificationSessionTimer(); const { ui } = useStore(); - const { is_phone_verification_completed, setShouldShowPhoneNumberOTP, setIsForcedToExitPnv } = ui; + const { + is_phone_verification_completed, + setShouldShowPhoneNumberOTP, + setIsForcedToExitPnv, + should_show_phone_number_otp, + } = ui; + const { trackPhoneVerificationEvents } = usePhoneVerificationAnalytics(); + + const getSubformName = () => { + if (is_at_otp_verification) { + return should_show_phone_number_otp ? 'verify_phone_otp_screen' : 'verify_email_screen'; + } + return 'verify_phone_screen'; + }; useEffect(() => { if (should_show_session_timeout_modal) { setIsForcedToExitPnv(true); + trackPhoneVerificationEvents({ + action: 'open_session_expired_popup', + subform_name: getSubformName(), + }); } - }, [should_show_session_timeout_modal]); + }, [should_show_session_timeout_modal, trackPhoneVerificationEvents]); const redirectBackToPersonalDetails = () => { setIsForcedToExitPnv(false); diff --git a/packages/account/src/Sections/Profile/PhoneVerification/verification-link-expired-modal.tsx b/packages/account/src/Sections/Profile/PhoneVerification/verification-link-expired-modal.tsx index 1006af277cf8..e623556e1e82 100644 --- a/packages/account/src/Sections/Profile/PhoneVerification/verification-link-expired-modal.tsx +++ b/packages/account/src/Sections/Profile/PhoneVerification/verification-link-expired-modal.tsx @@ -63,8 +63,10 @@ const VerificationLinkExpiredModal = observer( isOpened={should_show_verification_link_expired_modal} isPrimaryButtonDisabled={!!next_email_otp_request_timer || is_email_otp_timer_loading} buttonColor='coral' + showCrossIcon={false} + showHandleBar={false} + disableCloseOnOverlay isNonExpandable - shouldCloseModalOnSwipeDown primaryButtonCallback={handleSendNewLinkButton} primaryButtonLabel={ (
-
{message}
+
+ {message} +
+
+ +
+
+ ); +}); + +export default DepositNowBanner; diff --git a/packages/appstore/src/components/banners/deposit-now-banner/index.ts b/packages/appstore/src/components/banners/deposit-now-banner/index.ts new file mode 100644 index 000000000000..f6943660daee --- /dev/null +++ b/packages/appstore/src/components/banners/deposit-now-banner/index.ts @@ -0,0 +1,3 @@ +import DepositNowBanner from './deposit-now-banner'; + +export default DepositNowBanner; diff --git a/packages/appstore/src/components/get-started-trading-banner/get-started-trading-banner.scss b/packages/appstore/src/components/banners/get-started-trading-banner/get-started-trading-banner.scss similarity index 87% rename from packages/appstore/src/components/get-started-trading-banner/get-started-trading-banner.scss rename to packages/appstore/src/components/banners/get-started-trading-banner/get-started-trading-banner.scss index e44fcf86cf70..d9c641b53c85 100644 --- a/packages/appstore/src/components/get-started-trading-banner/get-started-trading-banner.scss +++ b/packages/appstore/src/components/banners/get-started-trading-banner/get-started-trading-banner.scss @@ -10,12 +10,12 @@ border-radius: $BORDER_RADIUS * 4 $BORDER_RADIUS * 4 0 0; background: var(--traders-hub-logged-out-banner-bg-color); height: 18rem; - background-image: url('./../../public/images/traders-hub-logged-out-banner-bg-desktop.svg'); + background-image: url('./../../../public/images/traders-hub-logged-out-banner-bg-desktop.svg'); background-repeat: no-repeat; @include mobile-or-tablet-screen { height: 14.4rem; - background-image: url('./../../public/images/traders-hub-logged-out-banner-bg-responsive.svg'); + background-image: url('./../../../public/images/traders-hub-logged-out-banner-bg-responsive.svg'); background-repeat: no-repeat; } } diff --git a/packages/appstore/src/components/get-started-trading-banner/get-started-trading-banner.tsx b/packages/appstore/src/components/banners/get-started-trading-banner/get-started-trading-banner.tsx similarity index 100% rename from packages/appstore/src/components/get-started-trading-banner/get-started-trading-banner.tsx rename to packages/appstore/src/components/banners/get-started-trading-banner/get-started-trading-banner.tsx diff --git a/packages/appstore/src/components/get-started-trading-banner/index.ts b/packages/appstore/src/components/banners/get-started-trading-banner/index.ts similarity index 100% rename from packages/appstore/src/components/get-started-trading-banner/index.ts rename to packages/appstore/src/components/banners/get-started-trading-banner/index.ts diff --git a/packages/appstore/src/components/real-account-creation-banner/__tests__/real-account-creation-banner.spec.tsx b/packages/appstore/src/components/banners/real-account-creation-banner/__tests__/real-account-creation-banner.spec.tsx similarity index 100% rename from packages/appstore/src/components/real-account-creation-banner/__tests__/real-account-creation-banner.spec.tsx rename to packages/appstore/src/components/banners/real-account-creation-banner/__tests__/real-account-creation-banner.spec.tsx diff --git a/packages/appstore/src/components/real-account-creation-banner/index.tsx b/packages/appstore/src/components/banners/real-account-creation-banner/index.tsx similarity index 100% rename from packages/appstore/src/components/real-account-creation-banner/index.tsx rename to packages/appstore/src/components/banners/real-account-creation-banner/index.tsx diff --git a/packages/appstore/src/components/real-account-creation-banner/real-account-creation-banner.scss b/packages/appstore/src/components/banners/real-account-creation-banner/real-account-creation-banner.scss similarity index 100% rename from packages/appstore/src/components/real-account-creation-banner/real-account-creation-banner.scss rename to packages/appstore/src/components/banners/real-account-creation-banner/real-account-creation-banner.scss diff --git a/packages/appstore/src/components/real-account-creation-banner/real-account-creation-banner.tsx b/packages/appstore/src/components/banners/real-account-creation-banner/real-account-creation-banner.tsx similarity index 100% rename from packages/appstore/src/components/real-account-creation-banner/real-account-creation-banner.tsx rename to packages/appstore/src/components/banners/real-account-creation-banner/real-account-creation-banner.tsx diff --git a/packages/appstore/src/components/banners/traders-hub-banners/index.ts b/packages/appstore/src/components/banners/traders-hub-banners/index.ts new file mode 100644 index 000000000000..2e5973b1ae8b --- /dev/null +++ b/packages/appstore/src/components/banners/traders-hub-banners/index.ts @@ -0,0 +1,3 @@ +import TradersHubBanners from './traders-hub-banners'; + +export default TradersHubBanners; diff --git a/packages/appstore/src/components/banners/traders-hub-banners/traders-hub-banners.tsx b/packages/appstore/src/components/banners/traders-hub-banners/traders-hub-banners.tsx new file mode 100644 index 000000000000..aed249ce2075 --- /dev/null +++ b/packages/appstore/src/components/banners/traders-hub-banners/traders-hub-banners.tsx @@ -0,0 +1,71 @@ +import React from 'react'; +import { Loading } from '@deriv/components'; +import { useStore, observer } from '@deriv/stores'; +import { makeLazyLoader, moduleLoader } from '@deriv/shared'; +import { useContentFlag, useGrowthbookGetFeatureValue, useStoreHasAccountDeposited } from '@deriv/hooks'; +import BookBanner from 'Components/banners/book-banner'; +import WalletsBanner from 'Components/banners/wallets-banner'; + +const RealAccountCreationBanner = makeLazyLoader( + () => + moduleLoader( + () => + import( + /* webpackChunkName: "Components_banners_real-account-creation-banner" */ 'Components/banners/real-account-creation-banner' + ) + ), + () => +)(); + +const DepositNowBanner = makeLazyLoader( + () => + moduleLoader( + () => + import( + /* webpackChunkName: "Components_banners_deposit-now-banner" */ 'Components/banners/deposit-now-banner' + ) + ), + () => +)(); + +const TradersHubBanners = observer(() => { + const { client, traders_hub } = useStore(); + const { is_landing_company_loaded, has_any_real_account, is_eu, has_maltainvest_account, is_low_risk } = client; + const { is_real } = traders_hub; + const { hasDeposited, hasTransferred, isLoaded } = useStoreHasAccountDeposited(); + + const [ff_real_account_creation_banner] = useGrowthbookGetFeatureValue({ + featureFlag: 'traders-hub-real-account-banner', + defaultValue: false, + }); + + const [ff_deposit_now_banner] = useGrowthbookGetFeatureValue({ + featureFlag: 'traders_hub_first_deposit_banner', + defaultValue: false, + }); + + const should_add_empty_div_for_get_started_trading_banner_clever_tap = has_any_real_account; + const should_show_real_account_creation_banner = + ff_real_account_creation_banner && !has_any_real_account && !is_eu && is_landing_company_loaded; + const should_show_deposit_now_banner = + ff_deposit_now_banner && + is_real && + !(is_low_risk && has_maltainvest_account) && + isLoaded && + !hasDeposited && + !hasTransferred; + + return ( + + {should_add_empty_div_for_get_started_trading_banner_clever_tap && ( +
+ )} + {should_show_real_account_creation_banner && } + {should_show_deposit_now_banner && } + + + + ); +}); + +export default TradersHubBanners; diff --git a/packages/appstore/src/components/banners/wallets-banner/wallets-banner.tsx b/packages/appstore/src/components/banners/wallets-banner/wallets-banner.tsx index 89c0d5a8cbba..be4ba9fcb5b0 100644 --- a/packages/appstore/src/components/banners/wallets-banner/wallets-banner.tsx +++ b/packages/appstore/src/components/banners/wallets-banner/wallets-banner.tsx @@ -1,11 +1,28 @@ import React from 'react'; import { observer } from '@deriv/stores'; +import { Loading } from '@deriv/components'; import { useWalletMigration } from '@deriv/hooks'; -import WalletsBannerUpgrade from './wallets-banner-upgrade'; -import WalletsBannerUpgrading from './wallets-banner-upgrading'; -import WalletsBannerUnsuccessful from './wallets-banner-unsuccessful'; +import { makeLazyLoader, moduleLoader } from '@deriv/shared'; import './wallets-banner.scss'; +const WalletsBannerUpgrade = makeLazyLoader( + () => moduleLoader(() => import(/* webpackChunkName: "wallets-banner-upgrade" */ './wallets-banner-upgrade')), + () => +)(); + +const WalletsBannerUpgrading = makeLazyLoader( + () => moduleLoader(() => import(/* webpackChunkName: "wallets-banner-upgrading" */ './wallets-banner-upgrading')), + () => +)(); + +const WalletsBannerUnsuccessful = makeLazyLoader( + () => + moduleLoader( + () => import(/* webpackChunkName: "wallets-banner-unsuccessful" */ './wallets-banner-unsuccessful') + ), + () => +)(); + const WalletsBanner = observer(() => { const { is_eligible, is_failed, is_in_progress, is_migrating } = useWalletMigration(); diff --git a/packages/appstore/src/components/disclaimer/disclaimer.tsx b/packages/appstore/src/components/disclaimer/disclaimer.tsx index e8895bdcba95..f825d7a9c75f 100644 --- a/packages/appstore/src/components/disclaimer/disclaimer.tsx +++ b/packages/appstore/src/components/disclaimer/disclaimer.tsx @@ -10,7 +10,7 @@ const Disclaimer = () => { return (
- +
diff --git a/packages/appstore/src/components/main-title-bar/index.tsx b/packages/appstore/src/components/main-title-bar/index.tsx index 5ca964d0c0e8..6d67503631e9 100644 --- a/packages/appstore/src/components/main-title-bar/index.tsx +++ b/packages/appstore/src/components/main-title-bar/index.tsx @@ -4,9 +4,7 @@ import { ContentFlag, makeLazyLoader, moduleLoader } from '@deriv/shared'; import { observer, useStore } from '@deriv/stores'; import { Localize, localize } from '@deriv/translations'; import { useDevice } from '@deriv-com/ui'; -import { useWalletMigration } from '@deriv/hooks'; import RegulationsSwitcherLoader from 'Components/pre-loader/regulations-switcher-loader'; -import BookBanner from 'Components/banners/book-banner'; import AccountTypeDropdown from './account-type-dropdown'; import AssetSummary from './asset-summary'; import RegulatorSwitcher from './regulators-switcher'; @@ -24,16 +22,10 @@ const MainTitleBar = () => { const { isDesktop } = useDevice(); const { traders_hub, client } = useStore(); const { is_landing_company_loaded, is_switching, has_maltainvest_account } = client; - const { state: wallet_migration_state } = useWalletMigration(); const { selected_region, handleTabItemClick, toggleRegulatorsCompareModal, content_flag } = traders_hub; const is_low_risk_cr_real_account = content_flag === ContentFlag.LOW_RISK_CR_NON_EU || content_flag === ContentFlag.LOW_RISK_CR_EU; - const show_wallets_banner = - wallet_migration_state === 'eligible' || - wallet_migration_state === 'in_progress' || - wallet_migration_state === 'migrated' || - wallet_migration_state === 'failed'; const [active_index, setActiveIndex] = React.useState(0); React.useEffect(() => { @@ -42,8 +34,6 @@ const MainTitleBar = () => { return ( - - {show_wallets_banner && } {isDesktop ? (
diff --git a/packages/appstore/src/components/modals/wallets-migration-failed/wallets-migration-failed.tsx b/packages/appstore/src/components/modals/wallets-migration-failed/wallets-migration-failed.tsx index df05b33c88ad..3128265a566a 100644 --- a/packages/appstore/src/components/modals/wallets-migration-failed/wallets-migration-failed.tsx +++ b/packages/appstore/src/components/modals/wallets-migration-failed/wallets-migration-failed.tsx @@ -16,7 +16,7 @@ const WalletsMigrationFailed = observer(() => { }; const handleLivechatButtonClick = () => { - window.LC_API?.open_chat_window(); + window.LiveChatWidget?.call('maximize'); setWalletsMigrationFailedPopup(false); }; diff --git a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss index 63430e807a10..500d137b3187 100644 --- a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss +++ b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.scss @@ -1,5 +1,5 @@ .traders-hub-logged-out { - max-width: 120rem; + max-width: 128rem; display: flex; flex-direction: column; gap: 2.4rem; diff --git a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx index 47ddc5944c4d..7989c9654c87 100644 --- a/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx +++ b/packages/appstore/src/modules/traders-hub-logged-out/traders-hub-logged-out.tsx @@ -7,7 +7,7 @@ import { isEuCountry } from '@deriv/shared'; import { Localize } from '@deriv/translations'; import Disclaimer from 'Components/disclaimer'; import OrderedPlatformSections from 'Components/ordered-platform-sections'; -import GetStartedTradingBanner from 'Components/get-started-trading-banner'; +import GetStartedTradingBanner from 'Components/banners/get-started-trading-banner'; import TabsOrTitle from 'Components/tabs-or-title'; import './traders-hub-logged-out.scss'; diff --git a/packages/appstore/src/modules/traders-hub/index.tsx b/packages/appstore/src/modules/traders-hub/index.tsx index c4f3a6437557..372ca27a8891 100644 --- a/packages/appstore/src/modules/traders-hub/index.tsx +++ b/packages/appstore/src/modules/traders-hub/index.tsx @@ -1,8 +1,9 @@ -import React, { lazy, Suspense } from 'react'; +import React from 'react'; import { ButtonToggle, Div100vhContainer, Text } from '@deriv/components'; import { routes, checkServerMaintenance, startPerformanceEventTimer } from '@deriv/shared'; import { observer, useStore } from '@deriv/stores'; import { Localize, localize } from '@deriv/translations'; +import { useContentFlag } from '@deriv/hooks'; import { useDevice } from '@deriv-com/ui'; import CFDsListing from 'Components/cfds-listing'; import ModalManager from 'Components/modals/modal-manager'; @@ -11,13 +12,11 @@ import OptionsAndMultipliersListing from 'Components/options-multipliers-listing import ButtonToggleLoader from 'Components/pre-loader/button-toggle-loader'; import AfterSignupFlow from 'Components/after-signup-flow'; import Disclaimer from 'Components/disclaimer'; +import TradersHubBanners from 'Components/banners/traders-hub-banners'; import BusinessClosureBanner from 'Components/banners/business-closure-banner'; -import { useContentFlag, useGrowthbookGetFeatureValue } from '@deriv/hooks'; import classNames from 'classnames'; import './traders-hub.scss'; -const RealAccountCreationBanner = lazy(() => import('Components/real-account-creation-banner')); - type OrderedPlatformSectionsProps = { is_cfd_visible?: boolean; is_options_and_multipliers_visible?: boolean; @@ -55,8 +54,6 @@ const TradersHub = observer(() => { is_account_setting_loaded, is_mt5_allowed, website_status, - has_any_real_account, - is_eu, } = client; const { is_eu_demo, is_eu_real } = useContentFlag(); @@ -81,11 +78,6 @@ const TradersHub = observer(() => { startPerformanceEventTimer('option_multiplier_section_loading_time'); }, []); - const [should_show_banner] = useGrowthbookGetFeatureValue({ - featureFlag: 'traders-hub-real-account-banner', - defaultValue: false, - }); - const eu_title = is_eu_demo || is_eu_real || is_eu_user; const getPlatformToggleOptions = () => [ { text: eu_title ? localize('Multipliers') : localize('Options'), value: 'options' }, @@ -164,13 +156,7 @@ const TradersHub = observer(() => { })} ref={traders_hub_ref} > - {has_any_real_account &&
} - {should_show_banner && !has_any_real_account && !is_eu && is_landing_company_loaded && ( - }> - - - )} - + {isDesktop ? desktopContent : mobileTabletContent} diff --git a/packages/appstore/src/modules/traders-hub/traders-hub.scss b/packages/appstore/src/modules/traders-hub/traders-hub.scss index f86f8c24f7df..dbb80034c4e8 100644 --- a/packages/appstore/src/modules/traders-hub/traders-hub.scss +++ b/packages/appstore/src/modules/traders-hub/traders-hub.scss @@ -1,7 +1,7 @@ .traders-hub { - max-width: 123.2rem; + max-width: 128rem; margin: auto; - padding: 5rem 0; + padding: 4rem; &:has(.wallets-banner__container) { padding-top: 0; diff --git a/packages/bot-skeleton/package.json b/packages/bot-skeleton/package.json index 1d10b703fdde..fc1b3d96db36 100644 --- a/packages/bot-skeleton/package.json +++ b/packages/bot-skeleton/package.json @@ -35,13 +35,12 @@ "typescript": "^4.6.3" }, "dependencies": { - "blockly": "^10.4.3", "@deriv/deriv-api": "^1.0.15", "@deriv/indicators": "^1.0.0", "@deriv/js-interpreter": "^3.0.0", "@deriv/shared": "^1.0.0", "@deriv/translations": "^1.0.0", - "binary-utils": "^4.23.0", + "blockly": "^10.4.3", "file-saver": "^2.0.2", "immutable": "^3.8.2", "localforage": "^1.9.0", diff --git a/packages/bot-skeleton/src/services/api/binary-utils.js b/packages/bot-skeleton/src/services/api/binary-utils.js new file mode 100644 index 000000000000..5bf8cf3d3ef6 --- /dev/null +++ b/packages/bot-skeleton/src/services/api/binary-utils.js @@ -0,0 +1,43 @@ +export const historyToTicks = history => + history.times.map((t, idx) => ({ + epoch: +t, + quote: +history.prices[idx], + })); + +export const getLast = arr => arr && (arr.length === 0 ? undefined : arr[arr.length - 1]); + +export const parseTick = tick => ({ + epoch: +tick.epoch, + quote: +tick.quote, +}); + +export const parseOhlc = ohlc => ({ + open: +ohlc.open, + high: +ohlc.high, + low: +ohlc.low, + close: +ohlc.close, + epoch: +(ohlc.open_time || ohlc.epoch), +}); + +export const parseCandles = candles => candles.map(t => parseOhlc(t)); + +export const updateTicks = (ticks, newTick) => + getLast(ticks).epoch >= newTick.epoch ? ticks : [...ticks.slice(1), newTick]; + +export const updateCandles = (candles, ohlc) => { + const lastCandle = getLast(candles); + if ( + (lastCandle.open === ohlc.open && + lastCandle.high === ohlc.high && + lastCandle.low === ohlc.low && + lastCandle.close === ohlc.close && + lastCandle.epoch === ohlc.epoch) || + lastCandle.epoch > ohlc.epoch + ) { + return candles; + } + const prevCandles = lastCandle.epoch === ohlc.epoch ? candles.slice(0, -1) : candles.slice(1); + return [...prevCandles, ohlc]; +}; + +export const getType = isCandle => (isCandle ? 'candles' : 'ticks'); diff --git a/packages/bot-skeleton/src/services/api/ticks_service.js b/packages/bot-skeleton/src/services/api/ticks_service.js index 597bd399124f..1afe4b9a0cd9 100644 --- a/packages/bot-skeleton/src/services/api/ticks_service.js +++ b/packages/bot-skeleton/src/services/api/ticks_service.js @@ -1,43 +1,16 @@ import { Map } from 'immutable'; -import { historyToTicks, getLast } from 'binary-utils'; import { doUntilDone, getUUID } from '../tradeEngine/utils/helpers'; import { observer as globalObserver } from '../../utils/observer'; import { api_base } from './api-base'; - -const parseTick = tick => ({ - epoch: +tick.epoch, - quote: +tick.quote, -}); - -const parseOhlc = ohlc => ({ - open: +ohlc.open, - high: +ohlc.high, - low: +ohlc.low, - close: +ohlc.close, - epoch: +(ohlc.open_time || ohlc.epoch), -}); - -const parseCandles = candles => candles.map(t => parseOhlc(t)); - -const updateTicks = (ticks, newTick) => (getLast(ticks).epoch >= newTick.epoch ? ticks : [...ticks.slice(1), newTick]); - -const updateCandles = (candles, ohlc) => { - const lastCandle = getLast(candles); - if ( - (lastCandle.open === ohlc.open && - lastCandle.high === ohlc.high && - lastCandle.low === ohlc.low && - lastCandle.close === ohlc.close && - lastCandle.epoch === ohlc.epoch) || - lastCandle.epoch > ohlc.epoch - ) { - return candles; - } - const prevCandles = lastCandle.epoch === ohlc.epoch ? candles.slice(0, -1) : candles.slice(1); - return [...prevCandles, ohlc]; -}; - -const getType = isCandle => (isCandle ? 'candles' : 'ticks'); +import { + historyToTicks, + parseTick, + parseOhlc, + parseCandles, + updateTicks, + updateCandles, + getType, +} from './binary-utils'; export default class TicksService { constructor() { diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Ticks.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Ticks.js index a414d19d7e7e..50285137843a 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Ticks.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Ticks.js @@ -1,4 +1,3 @@ -import { getLast } from 'binary-utils'; import { localize } from '@deriv/translations'; import * as constants from './state/constants'; import { getDirection, getLastDigit } from '../utils/helpers'; @@ -6,6 +5,7 @@ import { expectPositiveInteger } from '../utils/sanitize'; import { observer as globalObserver } from '../../../utils/observer'; import { api_base } from '../../api/api-base'; import debounce from 'lodash.debounce'; +import { getLast } from '../../api/binary-utils'; let tickListenerKey; diff --git a/packages/bot-web-ui/package.json b/packages/bot-web-ui/package.json index 83f199d630d6..bc01cb97b9e9 100644 --- a/packages/bot-web-ui/package.json +++ b/packages/bot-web-ui/package.json @@ -71,7 +71,7 @@ "webpack-cli": "^4.7.2" }, "dependencies": { - "@deriv-com/ui": "1.35.0", + "@deriv-com/ui": "1.36.4", "@deriv/api": "^1.0.0", "@deriv/api-types": "1.0.172", "@deriv/bot-skeleton": "^1.0.0", diff --git a/packages/bot-web-ui/src/analytics/constants.ts b/packages/bot-web-ui/src/analytics/constants.ts index 16be0653402a..0063b6e3af96 100644 --- a/packages/bot-web-ui/src/analytics/constants.ts +++ b/packages/bot-web-ui/src/analytics/constants.ts @@ -18,6 +18,8 @@ export enum ACTION { GOOGLE_DRIVE_CONNECT = 'google_drive_connect', GOOGLE_DRIVE_DISCONNECT = 'google_drive_disconnect', SWITCH_LOAD_STRATEGY_TAB = 'switch_load_strategy_tab', + ANNOUNCEMENT_CLICK = 'announcement_click', + ANNOUNCEMENT_ACTION = 'announcement_action', } export type TFormStrategy = { diff --git a/packages/bot-web-ui/src/analytics/rudderstack-common-events.ts b/packages/bot-web-ui/src/analytics/rudderstack-common-events.ts index 7a58c1d82b45..f57600bfb22a 100644 --- a/packages/bot-web-ui/src/analytics/rudderstack-common-events.ts +++ b/packages/bot-web-ui/src/analytics/rudderstack-common-events.ts @@ -23,6 +23,7 @@ export const rudderStackSendCloseEvent = ({ quick_strategy_tab, selected_strategy, load_strategy_tab, + announcement_name, }: TEvents['ce_bot_form'] & TFormStrategy) => { Analytics.trackEvent('ce_bot_form', { action: ACTION.CLOSE, @@ -31,6 +32,7 @@ export const rudderStackSendCloseEvent = ({ quick_strategy_tab, strategy_name: getRsStrategyType(selected_strategy), load_strategy_tab, + announcement_name, }); }; diff --git a/packages/bot-web-ui/src/analytics/rudderstack-dashboard.ts b/packages/bot-web-ui/src/analytics/rudderstack-dashboard.ts index 840df02185de..513d8dd84984 100644 --- a/packages/bot-web-ui/src/analytics/rudderstack-dashboard.ts +++ b/packages/bot-web-ui/src/analytics/rudderstack-dashboard.ts @@ -9,3 +9,27 @@ export const rudderStackSendDashboardClickEvent = ({ dashboard_click_name, subpa dashboard_click_name, }); }; + +export const rudderStackSendAnnouncementClickEvent = ({ announcement_name }: TEvents['ce_bot_form']) => { + Analytics.trackEvent('ce_bot_form', { + action: ACTION.ANNOUNCEMENT_CLICK, + form_name, + subform_name: 'announcements', + subform_source: 'dashboard', + announcement_name, + }); +}; + +export const rudderStackSendAnnouncementActionEvent = ({ + announcement_name, + announcement_action, +}: TEvents['ce_bot_form']) => { + Analytics.trackEvent('ce_bot_form', { + action: ACTION.ANNOUNCEMENT_ACTION, + form_name, + subform_name: 'announcements', + subform_source: 'dashboard', + announcement_name, + announcement_action, + }); +}; diff --git a/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement-dialog.spec.tsx b/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement-dialog.spec.tsx index 1cfd3d050364..f9269b88a1b8 100644 --- a/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement-dialog.spec.tsx +++ b/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement-dialog.spec.tsx @@ -1,10 +1,10 @@ import React from 'react'; import { mockStore, StoreProvider } from '@deriv/stores'; import { render, screen, waitFor } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { mock_ws } from 'Utils/mock'; import RootStore from 'Stores/index'; import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore'; -import userEvent from '@testing-library/user-event'; import AnnouncementDialog from '../announcement-dialog'; import { ANNOUNCEMENTS } from '../config'; diff --git a/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement.spec.tsx b/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement.spec.tsx index b56f68a0e158..7a6c28e22749 100644 --- a/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement.spec.tsx +++ b/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcement.spec.tsx @@ -1,11 +1,11 @@ import React from 'react'; import { mockStore, StoreProvider } from '@deriv/stores'; +import { Notifications as Announcement } from '@deriv-com/ui'; import { render, screen, waitFor } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { mock_ws } from 'Utils/mock'; import RootStore from 'Stores/index'; import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore'; -import { Notifications as Announcement } from '@deriv-com/ui'; -import userEvent from '@testing-library/user-event'; jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => jest.fn()); diff --git a/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcements.spec.tsx b/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcements.spec.tsx index 53ee20721529..b6fd20aa9fd2 100644 --- a/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcements.spec.tsx +++ b/packages/bot-web-ui/src/pages/dashboard/announcements/__tests__/announcements.spec.tsx @@ -1,12 +1,12 @@ import React from 'react'; import { mockStore, StoreProvider } from '@deriv/stores'; import { render, screen, waitFor } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { DBOT_TABS } from 'Constants/bot-contents'; import { mock_ws } from 'Utils/mock'; import RootStore from 'Stores/index'; import { DBotStoreProvider, mockDBotStore } from 'Stores/useDBotStore'; import Announcements from '../announcements'; -import userEvent from '@testing-library/user-event'; -import { DBOT_TABS } from 'Constants/bot-contents'; import { BOT_ANNOUNCEMENTS_LIST } from '../config'; jest.mock('@deriv/bot-skeleton/src/scratch/dbot', () => jest.fn()); diff --git a/packages/bot-web-ui/src/pages/dashboard/announcements/announcement-dialog.tsx b/packages/bot-web-ui/src/pages/dashboard/announcements/announcement-dialog.tsx index 9711d62793e3..18cd082c3d94 100644 --- a/packages/bot-web-ui/src/pages/dashboard/announcements/announcement-dialog.tsx +++ b/packages/bot-web-ui/src/pages/dashboard/announcements/announcement-dialog.tsx @@ -1,9 +1,10 @@ import React from 'react'; import { Dialog, Text } from '@deriv/components'; import { LabelPairedCheckCaptionFillIcon } from '@deriv/quill-icons'; -import './announcement-dialog.scss'; -import { TAnnounce, TContentItem } from './config'; +import { rudderStackSendCloseEvent } from '../../../analytics/rudderstack-common-events'; import { IconAnnounceModal } from './announcement-components'; +import { TAnnounce, TContentItem } from './config'; +import './announcement-dialog.scss'; type TAccumulatorAnnouncementDialog = { announcement: TAnnounce; @@ -44,7 +45,13 @@ const AnnouncementDialog = ({ onCancel={handleOnCancel} is_mobile_full_width has_close_icon - onClose={() => setIsAnnounceDialogOpen(false)} + onClose={() => { + setIsAnnounceDialogOpen(false); + rudderStackSendCloseEvent({ + subform_name: 'announcements', + announcement_name: main_title, + }); + }} className={is_tablet ? `${base_classname} ${base_classname}--tablet` : base_classname} >
diff --git a/packages/bot-web-ui/src/pages/dashboard/announcements/announcements.tsx b/packages/bot-web-ui/src/pages/dashboard/announcements/announcements.tsx index e24e9d748163..6cce1e704dfb 100644 --- a/packages/bot-web-ui/src/pages/dashboard/announcements/announcements.tsx +++ b/packages/bot-web-ui/src/pages/dashboard/announcements/announcements.tsx @@ -1,17 +1,23 @@ import React from 'react'; -import { observer } from '@deriv/stores'; +import classNames from 'classnames'; +import { useHistory } from 'react-router-dom'; import { Text } from '@deriv/components'; -import { Notifications as Announcement } from '@deriv-com/ui'; import { StandaloneBullhornRegularIcon } from '@deriv/quill-icons'; -import { useHistory } from 'react-router-dom'; -import classNames from 'classnames'; +import { observer } from '@deriv/stores'; import { localize } from '@deriv/translations'; +import { Notifications as Announcement } from '@deriv-com/ui'; +import { useDBotStore } from 'Stores/useDBotStore'; +import { rudderStackSendOpenEvent } from '../../../analytics/rudderstack-common-events'; +import { + rudderStackSendAnnouncementActionEvent, + rudderStackSendAnnouncementClickEvent, +} from '../../../analytics/rudderstack-dashboard'; +import { guide_content } from '../../tutorials/constants'; +import { performButtonAction } from './utils/accumulator-helper-functions'; +import { MessageAnnounce, TitleAnnounce } from './announcement-components'; import AnnouncementDialog from './announcement-dialog'; import { BOT_ANNOUNCEMENTS_LIST, TAnnouncement, TNotifications } from './config'; import './announcements.scss'; -import { MessageAnnounce, TitleAnnounce } from './announcement-components'; -import { performButtonAction } from './utils/accumulator-helper-functions'; -import { useDBotStore } from 'Stores/useDBotStore'; type TAnnouncements = { is_mobile?: boolean; @@ -22,6 +28,7 @@ type TAnnouncements = { const Announcements = observer(({ is_mobile, is_tablet, handleTabChange }: TAnnouncements) => { const { load_modal: { toggleLoadModal }, + dashboard: { showVideoDialog }, } = useDBotStore(); const [is_announce_dialog_open, setIsAnnounceDialogOpen] = React.useState(false); const [is_open_announce_list, setIsOpenAnnounceList] = React.useState(false); @@ -40,6 +47,7 @@ const Announcements = observer(({ is_mobile, is_tablet, handleTabChange }: TAnno setSelectedAnnouncement(announcement); setIsAnnounceDialogOpen(true); setIsOpenAnnounceList(prev => !prev); + rudderStackSendAnnouncementClickEvent({ announcement_name: announcement.announcement.main_title }); let data: Record | null = null; data = JSON.parse(localStorage.getItem('bot-announcements') ?? '{}'); @@ -92,15 +100,33 @@ const Announcements = observer(({ is_mobile, is_tablet, handleTabChange }: TAnno // eslint-disable-next-line react-hooks/exhaustive-deps }, [read_announcements_map]); + const openAccumulatorsVideo = () => { + const accumulators_video = guide_content.find(guide_content => guide_content.id === 4); + if (accumulators_video) { + showVideoDialog({ url: accumulators_video.url, type: 'url' }); + } + }; + const handleOnCancel = () => { + rudderStackSendAnnouncementActionEvent({ + announcement_name: selected_announcement?.announcement.main_title, + announcement_action: selected_announcement?.announcement.cancel_button_text, + }); if (selected_announcement?.switch_tab_on_cancel) { handleTabChange(selected_announcement.switch_tab_on_cancel); + if (selected_announcement.announcement.id === 'ACCUMULATOR_ANNOUNCE') { + openAccumulatorsVideo(); + } } selected_announcement?.onCancel?.(); setSelectedAnnouncement(null); }; const handleOnConfirm = () => { + rudderStackSendAnnouncementActionEvent({ + announcement_name: selected_announcement?.announcement.main_title, + announcement_action: selected_announcement?.announcement.confirm_button_text, + }); if (selected_announcement?.switch_tab_on_confirm) { handleTabChange(selected_announcement.switch_tab_on_confirm); } @@ -124,7 +150,15 @@ const Announcements = observer(({ is_mobile, is_tablet, handleTabChange }: TAnno
- + + ); @@ -29,72 +37,95 @@ const mock_props = { }; describe('Carousel', () => { - it('should render all passed pages', () => { + it('renders all passed pages', () => { render(); expect(screen.getAllByTestId(data_test_id)).toHaveLength(mock_pages.length); }); - it('should set index to 1 if user clicks on "Next"', async () => { + it('renders without passed header component', () => { + render(); + expect(screen.getAllByTestId(data_test_id)).toHaveLength(mock_pages.length); + }); + + it('calls useSwipeable returned function if is_swipeable === true', () => { + const onMouseDown = jest.fn(); + (useSwipeable as jest.Mock).mockReturnValueOnce({ onMouseDown }); + render(); + + // there is no mouseDown event in userEvent, hence using fireEvent + fireEvent.mouseDown(screen.getByTestId('dt_carousel')); + expect(onMouseDown).toBeCalled(); + }); + + it('sets index to 1 if user clicks on "Next"', async () => { render(); - userEvent.click(screen.getByText('Next')); + userEvent.click(screen.getByText(next_button)); await screen.findByText('Current Index: 1'); }); - it('should set index to 0 if user clicks on "Previous"', async () => { + it('sets index to 0 if user clicks on "Previous"', async () => { render(); - userEvent.click(screen.getByText('Next')); - userEvent.click(screen.getByText('Previous')); + userEvent.click(screen.getByText(next_button)); + userEvent.click(screen.getByText(prev_button)); await screen.findByText('Current Index: 0'); }); - it('should handle controlled component behavior', () => { + it('handles controlled component behavior', () => { const setCurrentIndex = jest.fn(); render(); - userEvent.click(screen.getByText('Next')); + userEvent.click(screen.getByText(next_button)); expect(setCurrentIndex).toHaveBeenCalledWith(1); - userEvent.click(screen.getByText('Previous')); + userEvent.click(screen.getByText(prev_button)); expect(setCurrentIndex).toHaveBeenCalledWith(mock_pages.length - 1); }); - it('should cycle through pages correctly', async () => { - render(); + it('cycles through pages correctly if is_infinite_loop === true', async () => { + render(); - userEvent.click(screen.getByText('Next')); + const next = screen.getByText(next_button); + userEvent.click(next); await screen.findByText('Current Index: 1'); - userEvent.click(screen.getByText('Next')); + userEvent.click(next); await screen.findByText('Current Index: 0'); - userEvent.click(screen.getByText('Previous')); + userEvent.click(screen.getByText(prev_button)); await screen.findByText('Current Index: 1'); }); - it('should call setCurrentIndex if provided on next click', () => { + it('cycles through pages correctly if is_infinite_loop !== true', async () => { + render(); + + const next = screen.getByText(next_button); + userEvent.click(next); + await screen.findByText('Current Index: 1'); + + userEvent.click(next); + await screen.findByText('Current Index: 1'); + + userEvent.click(screen.getByText(prev_button)); + await screen.findByText('Current Index: 0'); + }); + + it('calls setCurrentIndex if provided on next click', () => { const setCurrentIndex = jest.fn(); render(); - userEvent.click(screen.getByText('Next')); + userEvent.click(screen.getByText(next_button)); expect(setCurrentIndex).toHaveBeenCalledWith(1); }); - it('should call setCurrentIndex if provided on previous click', () => { + it('calls setCurrentIndex if provided on previous click', () => { const setCurrentIndex = jest.fn(); render(); - userEvent.click(screen.getByText('Previous')); + userEvent.click(screen.getByText(prev_button)); expect(setCurrentIndex).toHaveBeenCalledWith(0); }); - it('should wrap around to the first page when clicking next on the last page', async () => { - render(); - userEvent.click(screen.getByText('Next')); - userEvent.click(screen.getByText('Next')); - expect(screen.getByText('Current Index: 0')).toBeInTheDocument(); - }); - - it('should wrap around to the last page when clicking previous on the first page', async () => { + it('wraps around to the last page when clicking previous on the first page', () => { render(); - userEvent.click(screen.getByText('Previous')); + userEvent.click(screen.getByText(next_button)); expect(screen.getByText('Current Index: 1')).toBeInTheDocument(); }); }); diff --git a/packages/trader/src/AppV2/Components/Carousel/carousel.tsx b/packages/trader/src/AppV2/Components/Carousel/carousel.tsx index 8b13d55dfda4..c444db6fbbb3 100644 --- a/packages/trader/src/AppV2/Components/Carousel/carousel.tsx +++ b/packages/trader/src/AppV2/Components/Carousel/carousel.tsx @@ -1,17 +1,29 @@ import React from 'react'; import CarouselHeader from './carousel-header'; +import { useSwipeable } from 'react-swipeable'; import clsx from 'clsx'; type TCarousel = { classname?: string; - header: typeof CarouselHeader; + current_index?: number; + header?: typeof CarouselHeader; + is_swipeable?: boolean; + is_infinite_loop?: boolean; pages: { id: number; component: JSX.Element }[]; title?: React.ReactNode; - current_index?: number; setCurrentIndex?: (arg: number) => void; }; -const Carousel = ({ classname, header, pages, current_index, setCurrentIndex, title }: TCarousel) => { +const Carousel = ({ + classname, + current_index, + header, + is_swipeable, + is_infinite_loop, + pages, + setCurrentIndex, + title, +}: TCarousel) => { const [internalIndex, setInternalIndex] = React.useState(0); const HeaderComponent = header; @@ -20,24 +32,37 @@ const Carousel = ({ classname, header, pages, current_index, setCurrentIndex, ti const index = isControlled ? current_index : internalIndex; const handleNextClick = () => { + if (!is_infinite_loop && index + 1 >= pages.length) return; const newIndex = (index + 1) % pages.length; isControlled ? setCurrentIndex?.(newIndex) : setInternalIndex(newIndex); }; const handlePrevClick = () => { + if (!is_infinite_loop && index - 1 < 0) return; const newIndex = (index - 1 + pages.length) % pages.length; isControlled ? setCurrentIndex?.(newIndex) : setInternalIndex(newIndex); }; + const swipe_handlers = useSwipeable({ + onSwipedLeft: handleNextClick, + onSwipedRight: handlePrevClick, + }); + return ( - -
    + {HeaderComponent && ( + + )} +
      {pages.map(({ component, id }) => (
    • {component} diff --git a/packages/trader/src/AppV2/Components/DraggableList/draggable-list-item.tsx b/packages/trader/src/AppV2/Components/DraggableList/draggable-list-item.tsx index 003fab70aca6..2ca87e480b99 100644 --- a/packages/trader/src/AppV2/Components/DraggableList/draggable-list-item.tsx +++ b/packages/trader/src/AppV2/Components/DraggableList/draggable-list-item.tsx @@ -51,7 +51,7 @@ const DraggableListItem: React.FC = ({ if (!is_moved) setIsMoved(true); }} onTouchEnd={() => { - if (!is_moved && onRightIconClick) { + if (!is_moved && onRightIconClick && !disabled) { onRightIconClick(); } setIsMoved(false); diff --git a/packages/trader/src/AppV2/Components/Guide/guide.scss b/packages/trader/src/AppV2/Components/Guide/guide.scss index 781e29e68141..5ec7059fae86 100644 --- a/packages/trader/src/AppV2/Components/Guide/guide.scss +++ b/packages/trader/src/AppV2/Components/Guide/guide.scss @@ -188,6 +188,7 @@ &__wrapper { width: 32rem; height: 18rem; + background-color: var(--general-section-1); .player__controls__wrapper { bottom: -1px; diff --git a/packages/trader/src/AppV2/Components/TakeProfitHistory/__tests__/take-profit-history.spec.tsx b/packages/trader/src/AppV2/Components/TakeProfitHistory/__tests__/take-profit-history.spec.tsx index a479beacad3a..70ad3b8ad79d 100644 --- a/packages/trader/src/AppV2/Components/TakeProfitHistory/__tests__/take-profit-history.spec.tsx +++ b/packages/trader/src/AppV2/Components/TakeProfitHistory/__tests__/take-profit-history.spec.tsx @@ -24,26 +24,21 @@ describe('TakeProfitHistory component', () => { (formatMoney as jest.Mock).mockImplementation((currency, amount) => `${amount}`); }); - it('renders without crashing', () => { + it('does not render without if history was not passed', () => { const { container } = render(); - expect(container).not.toBeEmptyDOMElement(); + expect(container).toBeEmptyDOMElement(); }); - it('renders correct History title for both TP and Sl', () => { - render(); + it('renders correct History title for both TP and Sl if is_multiplier === true', () => { + render(); expect(screen.getByText('TP & SL history')).toBeInTheDocument(); }); - it('renders correct History title for TP', () => { + it('renders correct History title for TP if is_multiplier !== true ', () => { render(); expect(screen.getByText('TP history')).toBeInTheDocument(); }); - it('renders correct History title for SL', () => { - render(); - expect(screen.getByText('SL history')).toBeInTheDocument(); - }); - it('renders the correct number of history items', () => { render(); expect(screen.getAllByText(/Test Item/)).toHaveLength(4); diff --git a/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.scss b/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.scss index c47807a0c4a7..1d5f0d6b5a40 100644 --- a/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.scss +++ b/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.scss @@ -41,4 +41,11 @@ justify-content: start; } } + + &__carousel { + .carousel__item { + width: calc(100vw - var(--core-spacing-2400)); + min-width: calc(100vw - var(--core-spacing-2400)); + } + } } diff --git a/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.tsx b/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.tsx index 546b4c3c99ee..f88ddc17bf78 100644 --- a/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.tsx +++ b/packages/trader/src/AppV2/Components/TakeProfitHistory/take-profit-history.tsx @@ -1,13 +1,17 @@ import { Text, CaptionText, Pagination } from '@deriv-com/quill-ui'; import { formatDate, formatMoney, formatTime, TContractStore } from '@deriv/shared'; import CardWrapper from '../CardWrapper'; +import Carousel from 'AppV2/Components/Carousel'; import React, { useState } from 'react'; import clsx from 'classnames'; import { localize, Localize } from '@deriv/translations'; +type THistory = TContractStore['contract_update_history']; + type TContractHistory = { currency?: string; - history?: [] | TContractStore['contract_update_history']; + history?: [] | THistory; + is_multiplier?: boolean; }; type TPagination = { @@ -15,32 +19,32 @@ type TPagination = { totalPageCount: number; }; -const TakeProfitHistory = ({ history = [], currency }: TContractHistory) => { - const [currentPage, setCurrentPage] = useState(0); - const itemsPerPage = 4; - const totalPages = Math.ceil(history.length / itemsPerPage); - const currentItems = history.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage); - const has_tp = currentItems.some(item => item.order_type === 'take_profit' || item.display_name === 'Take profit'); - const has_sl = currentItems.some(item => item.order_type === 'stop_loss' || item.display_name === 'Stop loss'); - - const getHistoryTitle = () => { - if (has_tp && has_sl) return ; - if (has_tp) return ; - if (has_sl) return ; - }; +const TakeProfitHistory = ({ history = [], currency, is_multiplier }: TContractHistory) => { + const [current_page, setCurrentPage] = useState(0); + const items_per_page = 4; + const total_pages = Math.ceil(history.length / items_per_page); - const handlePageChange = (pagination: TPagination) => { + const handlePageChange = React.useCallback((pagination: TPagination) => { setCurrentPage(pagination.currentPage - 1); - }; + }, []); - return ( - -
      itemsPerPage, - })} - > - {currentItems.map((item, index) => ( + const getHistoryTitle = () => + is_multiplier ? : ; + + if (!history.length) return null; + + const pages_config = (history as THistory).reduce((result: THistory[], _item: typeof history[0], index: number) => { + if (!(index % items_per_page)) { + result.push(history.slice(index, index + items_per_page)); + } + return result; + }, []); + + const pages = pages_config.map((array, index) => ({ + id: index, + component: ( + + {array.map((item, index) => (
      {
      ))} +
      + ), + })); + + return ( + +
      items_per_page, + })} + > +
      - {totalPages > 1 && ( + {total_pages > 1 && ( ({ observe: jest.fn(), @@ -14,23 +15,63 @@ global.ResizeObserver = jest.fn().mockImplementation(() => ({ global.ResizeObserver = ResizeObserver; +jest.mock('@deriv-com/quill-ui', () => ({ + ...jest.requireActual('@deriv-com/quill-ui'), + useSnackbar: jest.fn(), +})); + +jest.mock('AppV2/Hooks/useActiveSymbols', () => ({ + __esModule: true, + default: jest.fn(() => ({ + activeSymbols: [ + { symbol: 'EURUSD', display_name: 'EUR/USD', exchange_is_open: 1 }, + { symbol: 'GBPUSD', display_name: 'GBP/USD', exchange_is_open: 0 }, + { symbol: 'CADAUD', display_name: 'CAD/AUD', exchange_is_open: 0 }, + ], + })), +})); + +jest.mock('@deriv/shared', () => ({ + ...jest.requireActual('@deriv/shared'), + toMoment: jest.fn(() => ({ + clone: jest.fn(), + isSame: jest.fn(), + })), +})); + describe('Duration', () => { - let default_trade_store: TCoreStores; + let default_trade_store: TCoreStores, mockOnChangeMultiple: jest.Mock; beforeEach(() => { + mockOnChangeMultiple = jest.fn(); default_trade_store = mockStore({ modules: { trade: { onChange: jest.fn(), - validation_errors: { barrier_1: [] }, + validation_errors: { duration: [] }, duration: 30, duration_unit: 'm', expiry_type: 'duration', + expiry_time: '', + proposal_info: {}, + onChangeMultiple: mockOnChangeMultiple, + duration_min_max: { + tick: { min: 1, max: 10 }, + intraday: { min: 60, max: 3600 }, + daily: { min: 86400, max: 172800 }, + }, + start_time: null, + symbol: 'EURUSD', }, }, }); }); + const mockAddSnackbar = jest.fn(); + + beforeAll(() => { + (useSnackbar as jest.Mock).mockReturnValue({ addSnackbar: mockAddSnackbar }); + }); const mockDuration = () => { render( @@ -52,6 +93,18 @@ describe('Duration', () => { expect(screen.getByDisplayValue('2 hours 5 minutes')).toBeInTheDocument(); }); + it('should render the correct value for duration in end time', () => { + default_trade_store.modules.trade.duration = 1; + default_trade_store.modules.trade.expiry_time = '23:55'; + default_trade_store.modules.trade.expiry_type = 'endtime'; + const RealDate = Date; + global.Date = jest.fn(() => new RealDate(2024, 0, 1)) as any; + mockDuration(); + expect(screen.getByLabelText('Duration')).toBeInTheDocument(); + expect(screen.getByDisplayValue('Ends on 1 Jan 2024 23:55 GMT')).toBeInTheDocument(); + global.Date = RealDate; + }); + it('should open the ActionSheet when the text field is clicked', () => { default_trade_store.modules.trade.expiry_time = '12:30'; mockDuration(); @@ -62,10 +115,75 @@ describe('Duration', () => { expect(screen.getByRole('dialog')).toBeInTheDocument(); }); - it('should display expiry time in GMT when expiry_type is "time"', () => { - default_trade_store.modules.trade.expiry_type = 'end time'; - default_trade_store.modules.trade.expiry_time = '12:30'; + it('should display a validation error message if there is a duration error', async () => { + default_trade_store.modules.trade.validation_errors.duration = [ + { message: 'Invalid duration', error_field: 'duration' }, + ]; + mockDuration(); + await expect(mockAddSnackbar).toHaveBeenCalled(); + }); + + it('should display the market closed message when the market is closed', () => { + default_trade_store.modules.trade.symbol = 'GBPUSD'; + mockDuration(); + expect(screen.getByText(/duration/i)).toBeInTheDocument(); + expect(screen.getByRole('textbox')).toBeDisabled(); + }); + + it('should set the correct end date when duration is set in days', () => { + default_trade_store.modules.trade.duration = 3; + default_trade_store.modules.trade.duration_unit = 'd'; + mockDuration(); + expect(screen.getByDisplayValue(/ends on/i)).toBeInTheDocument(); + }); + + it('should calculate the correct duration based on the smallest unit from the store', () => { mockDuration(); - expect(screen.getByDisplayValue('Ends at 12:30 GMT')).toBeInTheDocument(); + const smallest_duration = screen.getByDisplayValue('30 minutes'); + expect(smallest_duration).toBeInTheDocument(); + }); + + it('should display duration in seconds if provided', () => { + default_trade_store.modules.trade.duration = 45; + default_trade_store.modules.trade.duration_unit = 's'; + mockDuration(); + expect(screen.getByDisplayValue('45 seconds')).toBeInTheDocument(); + }); + + it('should display correct duration in ticks when tick duration is selected', () => { + default_trade_store.modules.trade.duration = 5; + default_trade_store.modules.trade.duration_unit = 't'; + mockDuration(); + expect(screen.getByDisplayValue('5 ticks')).toBeInTheDocument(); + }); + + it('should update the selected hour and unit when the component is opened', () => { + default_trade_store.modules.trade.duration_unit = 'm'; + default_trade_store.modules.trade.duration = 125; + mockDuration(); + + const textField = screen.getByLabelText('Duration'); + userEvent.click(textField); + + expect(screen.getByDisplayValue('2 hours 5 minutes')).toBeInTheDocument(); + }); + + it('should update the selected unit and time when expiry_time is set', () => { + const mockDate = new Date('2024-10-08T08:00:00Z'); + jest.spyOn(global.Date.prototype, 'getTime').mockReturnValue(mockDate.getTime()); + jest.spyOn(global.Date.prototype, 'toLocaleDateString').mockReturnValue('8 Oct 2024'); + jest.spyOn(global.Date.prototype, 'toISOString').mockReturnValue('2024-10-08T08:00:00Z'); + + default_trade_store.modules.trade.expiry_time = '14:00'; + default_trade_store.modules.trade.expiry_type = 'endtime'; + + mockDuration(); + + const textField = screen.getByLabelText('Duration'); + userEvent.click(textField); + + expect(screen.getByDisplayValue('Ends on 8 Oct 2024 14:00 GMT')).toBeInTheDocument(); + + jest.restoreAllMocks(); }); }); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Duration/__tests__/duration_container.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Duration/__tests__/duration_container.spec.tsx index 64ab49185cab..bbf985c93bca 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/Duration/__tests__/duration_container.spec.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/Duration/__tests__/duration_container.spec.tsx @@ -1,10 +1,11 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import DurationActionSheetContainer from '../container'; import { mockStore } from '@deriv/stores'; import { TCoreStores } from '@deriv/stores/types'; import TraderProviders from '../../../../../trader-providers'; import userEvent from '@testing-library/user-event'; +import { ContractType } from 'Stores/Modules/Trading/Helpers/contract-type'; global.ResizeObserver = jest.fn().mockImplementation(() => ({ observe: jest.fn(), @@ -15,11 +16,17 @@ global.ResizeObserver = jest.fn().mockImplementation(() => ({ global.ResizeObserver = ResizeObserver; global.HTMLElement.prototype.scrollIntoView = jest.fn(); -jest.mock('@deriv/quill-icons', () => ({ - ...jest.requireActual('@deriv/quill-icons'), - LabelPairedCalendarSmBoldIcon: jest.fn(({ onClick }) => ( - - )), +jest.mock('Stores/Modules/Trading/Helpers/contract-type', () => ({ + ContractType: { + getTradingEvents: jest.fn(), + }, +})); + +jest.mock('AppV2/Hooks/useActiveSymbols', () => ({ + __esModule: true, + default: jest.fn(() => ({ + activeSymbols: [{ symbol: '1HZ100V', display_name: '"Volatility 100 (1s) Index"', exchange_is_open: 1 }], + })), })); jest.mock('@deriv-com/quill-ui', () => ({ @@ -28,7 +35,7 @@ jest.mock('@deriv-com/quill-ui', () => ({
      - {!!display_percentage && ( + {display_percentage ? ( {display_percentage}% + ) : ( + )}
      ); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx index 036ecd1658a4..2786b068977d 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/LastDigitPrediction/last-digit-prediction.tsx @@ -2,7 +2,6 @@ import React from 'react'; import { observer } from 'mobx-react'; import clsx from 'clsx'; import { ActionSheet, CaptionText, TextField } from '@deriv-com/quill-ui'; -import { Skeleton } from '@deriv/components'; import { Localize } from '@deriv/translations'; import { useTraderStore } from 'Stores/useTraderStores'; import LastDigitSelector from './last-digit-selector'; @@ -71,7 +70,7 @@ const LastDigitPrediction = observer(({ is_minimized }: TLastDigitSelectorProps) ); - if (!digit_stats.length) return ; + return (
      diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Stake/__tests__/stake.spec.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Stake/__tests__/stake.spec.tsx index 7021a2b084cb..0893f71a77a7 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/Stake/__tests__/stake.spec.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/Stake/__tests__/stake.spec.tsx @@ -11,6 +11,25 @@ const stake_param_label = 'Stake'; const input_placeholder = 'Amount'; const save_button_label = 'Save'; +jest.mock('AppV2/Hooks/useContractsForCompany', () => ({ + __esModule: true, + default: jest.fn(() => ({ + available_contract_types: { + vanillalongcall: { + title: 'Call/Put', + trade_types: ['VANILLALONGCALL'], + basis: ['stake'], + components: ['duration', 'strike', 'amount', 'trade_type_tabs'], + barrier_count: 1, + config: { + barrier_category: 'euro_non_atm', + default_stake: 10, + }, + }, + }, + })), +})); + describe('Stake', () => { let default_mock_store: ReturnType; @@ -255,4 +274,11 @@ describe('Stake', () => { expect(screen.queryByText(error_text_rise)).not.toBeInTheDocument(); }); + + it('should set default stake if available_contract_types object contains it ', () => { + default_mock_store.modules.trade.contract_type = TRADE_TYPES.VANILLA.CALL; + render(); + + expect(default_mock_store.modules.trade.setDefaultStake).toHaveBeenCalledWith(10); + }); }); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx b/packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx index 1bb5db14f10d..41997c076906 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/Stake/stake.tsx @@ -3,10 +3,11 @@ import clsx from 'clsx'; import { observer } from 'mobx-react'; import { ActionSheet, TextField, TextFieldWithSteppers, useSnackbar } from '@deriv-com/quill-ui'; import { localize, Localize } from '@deriv/translations'; -import { formatMoney, getCurrencyDisplayCode, getDecimalPlaces } from '@deriv/shared'; +import { formatMoney, getCurrencyDisplayCode, getDecimalPlaces, isCryptocurrency } from '@deriv/shared'; import { useTraderStore } from 'Stores/useTraderStores'; import { getDisplayedContractTypes } from 'AppV2/Utils/trade-types-utils'; import StakeDetails from './stake-details'; +import useContractsForCompany from 'AppV2/Hooks/useContractsForCompany'; type TStakeProps = { is_minimized?: boolean; @@ -27,6 +28,7 @@ const Stake = observer(({ is_minimized }: TStakeProps) => { onChange, proposal_info, setV2ParamsInitialValues, + setDefaultStake, stop_out, trade_type_tab, trade_types, @@ -38,6 +40,14 @@ const Stake = observer(({ is_minimized }: TStakeProps) => { const { addSnackbar } = useSnackbar(); const [is_open, setIsOpen] = React.useState(false); const [should_show_error, setShouldShowError] = React.useState(true); + const { available_contract_types } = useContractsForCompany(); + + // default_stake resetting data + const is_crypto = isCryptocurrency(currency ?? ''); + const default_stake = is_crypto + ? Number(v2_params_initial_values.stake) + : available_contract_types?.[contract_type]?.config?.default_stake; + const displayed_error = React.useRef(false); const contract_types = getDisplayedContractTypes(trade_types, contract_type, trade_type_tab); // first contract type data: @@ -114,6 +124,11 @@ const Stake = observer(({ is_minimized }: TStakeProps) => { displayed_error.current = false; }, [contract_type, symbol]); + React.useEffect(() => { + if (default_stake) setDefaultStake(default_stake); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [default_stake]); + React.useEffect(() => { const initial_stake = v2_params_initial_values?.stake; if (initial_stake && amount !== initial_stake) { diff --git a/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx index 70102566b101..162564ee9ac6 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx +++ b/packages/trader/src/AppV2/Components/TradeParameters/TradeTypeTabs/trade-type-tabs.tsx @@ -12,9 +12,20 @@ type TTradeTypeTabsProps = { const TradeTypeTabs = observer(({ is_minimized }: TTradeTypeTabsProps) => { const { contract_type, onChange, trade_type_tab, setTradeTypeTab } = useTraderStore(); const tab_list = getTradeTypeTabsList(contract_type); - const initial_index = tab_list.findIndex(tab => - trade_type_tab ? tab.contract_type === trade_type_tab : tab.value === contract_type - ); + let initial_index = 0; + + // If the trade type tab is VANILLALONGPUT or TURBOSSHORT, keep the first tab + if ( + !( + (trade_type_tab === 'VANILLALONGPUT' && contract_type === 'vanillalongcall') || + (trade_type_tab === 'TURBOSSHORT' && contract_type === 'turboslong') + ) + ) { + initial_index = tab_list.findIndex(tab => + trade_type_tab ? tab.contract_type === trade_type_tab : tab.value === contract_type + ); + } + const initial_tab_index = initial_index < 0 ? 0 : initial_index; const [tab_index, setTabIndex] = React.useState(initial_tab_index); diff --git a/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss index 03f380a7c1ac..129c779226f9 100644 --- a/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss +++ b/packages/trader/src/AppV2/Components/TradeParameters/trade-parameters.scss @@ -68,6 +68,11 @@ &--minimized { min-height: var(--core-size-3600); width: 100%; + padding-bottom: 6.4rem; + + &:has(.trade-params__options__wrapper--horizontal:only-child) { + padding-bottom: 0; + } } } diff --git a/packages/trader/src/AppV2/Containers/Chart/__tests__/trade-chart.spec.tsx b/packages/trader/src/AppV2/Containers/Chart/__tests__/trade-chart.spec.tsx new file mode 100644 index 000000000000..7aa966099019 --- /dev/null +++ b/packages/trader/src/AppV2/Containers/Chart/__tests__/trade-chart.spec.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import { mockStore } from '@deriv/stores'; +import useActiveSymbols from 'AppV2/Hooks/useActiveSymbols'; +import useDefaultSymbol from 'AppV2/Hooks/useDefaultSymbol'; +import TraderProviders from '../../../../trader-providers'; +import TradeChart from '../trade-chart'; + +const mock_chart = 'Mocked Chart'; + +jest.mock('Modules/SmartChart', () => ({ + SmartChart: () => { + return
      {mock_chart}
      ; + }, +})); +jest.mock('react-router-dom', () => ({ + useLocation: jest.fn(() => ({ + pathname: '/', + })), + withRouter: jest.fn(children =>
      {children}
      ), +})); +jest.mock('@deriv-com/ui', () => ({ + ...jest.requireActual('@deriv-com/ui'), + useDevice: jest.fn(() => ({ isDesktop: true })), +})); +jest.mock('AppV2/Hooks/useActiveSymbols', () => ({ + ...jest.requireActual('AppV2/Hooks/useActiveSymbols'), + __esModule: true, + default: jest.fn(() => ({ + activeSymbols: [{ symbol: 'EURUSD', display_name: 'EUR/USD', exchange_is_open: 1 }], + })), +})); +jest.mock('AppV2/Hooks/useDefaultSymbol', () => ({ + ...jest.requireActual('AppV2/Hooks/useDefaultSymbol'), + __esModule: true, + default: jest.fn(() => ({ + symbol: 'EURUSD', + })), +})); + +describe('TradeChart', () => { + const mockedTradeChart = () => { + render( + + + + ); + }; + + it('does not render the chart if active_symbols array is empty', () => { + (useActiveSymbols as jest.Mock).mockReturnValueOnce({ + activeSymbols: [], + }); + mockedTradeChart(); + + expect(screen.queryByText(mock_chart)).not.toBeInTheDocument(); + }); + + it('does not render the chart if there is no symbol', () => { + (useDefaultSymbol as jest.Mock).mockReturnValueOnce({ + symbol: '', + }); + mockedTradeChart(); + + expect(screen.queryByText(mock_chart)).not.toBeInTheDocument(); + }); + + it('renders the chart', () => { + mockedTradeChart(); + + expect(screen.getByText(mock_chart)).toBeInTheDocument(); + }); +}); diff --git a/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx b/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx index 0f8b6b43f8aa..d28b97b68f76 100644 --- a/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx +++ b/packages/trader/src/AppV2/Containers/Chart/trade-chart.tsx @@ -9,18 +9,15 @@ import AccumulatorsChartElements from 'Modules/SmartChart/Components/Markers/acc import ToolbarWidgets from 'Modules/SmartChart/Components/toolbar-widgets'; import useActiveSymbols from 'AppV2/Hooks/useActiveSymbols'; import useDefaultSymbol from 'AppV2/Hooks/useDefaultSymbol'; -import { isDigitTradeType } from 'Modules/Trading/Helpers/digits'; type TBottomWidgetsParams = { digits: number[]; tick: TickSpotData | null; }; -type TBottomWidgetsMobile = TBottomWidgetsParams & { - setDigitStats: (digits: number[]) => void; - setTickData: (tick: TickSpotData | null) => void; -}; -const BottomWidgetsMobile = ({ digits, tick, setTickData, setDigitStats }: TBottomWidgetsMobile) => { +const BottomWidgetsMobile = observer(({ digits, tick }: TBottomWidgetsParams) => { + const { setDigitStats, setTickData } = useTraderStore(); + // Using bottom widgets in V2 to get tick data for all trade types and to get digit stats for Digit trade types React.useEffect(() => { setTickData(tick); @@ -29,12 +26,14 @@ const BottomWidgetsMobile = ({ digits, tick, setTickData, setDigitStats }: TBott React.useEffect(() => { setDigitStats(digits); + // For digits array, which is coming from SmartChart, reference is not always changing. + // As it is the same, this useEffect was not triggered on every array update. // eslint-disable-next-line react-hooks/exhaustive-deps - }, [digits]); + }, [digits.join('-')]); // render no bottom widgets on chart return null; -}; +}); const TradeChart = observer(() => { const { ui, common, contract_trade, portfolio } = useStore(); @@ -65,8 +64,6 @@ const TradeChart = observer(() => { has_barrier, main_barrier_flattened: main_barrier, setChartStatus, - setDigitStats, - setTickData, show_digits_stats, onChange, prev_contract_type, @@ -75,7 +72,6 @@ const TradeChart = observer(() => { wsSendRequest, wsSubscribe, } = useTraderStore(); - const is_digit_trade_type = isDigitTradeType(contract_type); const is_accumulator = isAccumulatorContract(contract_type); const settings = { countdown: is_chart_countdown_visible, @@ -89,19 +85,6 @@ const TradeChart = observer(() => { const { current_spot, current_spot_time } = accumulator_barriers_data || {}; - const bottomWidgets = React.useCallback(({ digits, tick }: TBottomWidgetsParams) => { - return ( - - ); - }, []); - - const chartKey = React.useMemo(() => { - if (is_digit_trade_type) { - return symbol; - } - return null; - }, [symbol, is_digit_trade_type]); - React.useEffect(() => { if ((is_accumulator || show_digits_stats) && ref.current?.hasPredictionIndicators()) { const cancelCallback = () => onChange({ target: { name: 'contract_type', value: prev_contract_type } }); @@ -133,11 +116,10 @@ const TradeChart = observer(() => { if (!symbol || !active_symbols.length) return null; return ( { {isTpHistoryVisible && update_history.length > 0 && ( - + )}
      {shouldShowSell && } diff --git a/packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx b/packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx index 4308f767c56a..f557f5d82bbf 100644 --- a/packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx +++ b/packages/trader/src/AppV2/Containers/Trade/__tests__/trade.spec.tsx @@ -66,7 +66,6 @@ jest.mock('AppV2/Components/OnboardingGuide/GuideForPages', () => jest.fn(() => jest.mock('AppV2/Hooks/useContractsForCompany', () => ({ __esModule: true, default: jest.fn(() => ({ - contracts_for_company: mock_contract_data, is_fetching_ref: { current: false }, trade_types: mock_contract_data.contracts_for_company.available, })), diff --git a/packages/trader/src/AppV2/Containers/Trade/trade.scss b/packages/trader/src/AppV2/Containers/Trade/trade.scss index 022267d3af1e..0526576f8c1d 100644 --- a/packages/trader/src/AppV2/Containers/Trade/trade.scss +++ b/packages/trader/src/AppV2/Containers/Trade/trade.scss @@ -67,10 +67,6 @@ &--with-button { min-height: 13.6rem; - - &:has(.trade-params__options__wrapper--horizontal:not(:only-child)) { - min-height: 16.8rem; - } } } } diff --git a/packages/trader/src/AppV2/Hooks/useContractsForCompany.ts b/packages/trader/src/AppV2/Hooks/useContractsForCompany.ts index ae5f8227e558..8926d2ff1a3b 100644 --- a/packages/trader/src/AppV2/Hooks/useContractsForCompany.ts +++ b/packages/trader/src/AppV2/Hooks/useContractsForCompany.ts @@ -149,6 +149,7 @@ const useContractsForCompany = () => { contract_types[type].barrier_count === 0 ? 'euro_atm' : (contract.barrier_category as TConfig['barrier_category']); + config.default_stake = contract.default_stake; available_contract_types[type].config = config; }); diff --git a/packages/trader/src/AppV2/Hooks/useOrderDetails.ts b/packages/trader/src/AppV2/Hooks/useOrderDetails.ts index 76aa2d04aa13..004691f546be 100644 --- a/packages/trader/src/AppV2/Hooks/useOrderDetails.ts +++ b/packages/trader/src/AppV2/Hooks/useOrderDetails.ts @@ -22,7 +22,7 @@ import { isCancellationExpired } from 'Stores/Modules/Trading/Helpers/logic'; import { Localize } from '@deriv/translations'; import React from 'react'; -const CARD_LABELS = getCardLabelsV2(); +type TCardLabels = ReturnType; const formatTimestampToDateTime = (timestamp: number) => { const date = new Date(timestamp * 1000); @@ -40,7 +40,7 @@ const formatTimestampToDateTime = (timestamp: number) => { return [formattedDate, formattedTime]; }; -const getDealCancelFee = (data: TContractInfo) => { +const getDealCancelFee = (data: TContractInfo, CARD_LABELS: TCardLabels) => { if (!data.cancellation?.ask_price || !data.currency) return undefined; let status; @@ -56,7 +56,7 @@ const getDealCancelFee = (data: TContractInfo) => { }; // Contains all key values that are used more than once in different transform objects -const getCommonFields = (data: TContractInfo) => { +const getCommonFields = (data: TContractInfo, CARD_LABELS: TCardLabels) => { const { tick_count, tick_passed, contract_type } = data; const ticks_label = Number(tick_count) < 2 ? CARD_LABELS.TICK : CARD_LABELS.TICKS; const ticks_duration_text = isAccumulatorContract(contract_type) @@ -65,8 +65,8 @@ const getCommonFields = (data: TContractInfo) => { return { [CARD_LABELS.REFERENCE_ID]: [ - data.transaction_ids?.buy ? `${data.transaction_ids.buy} (Buy)` : '', - data.transaction_ids?.sell ? `${data.transaction_ids.sell} (Sell)` : '', + data.transaction_ids?.buy ? `${data.transaction_ids.buy} (${CARD_LABELS.BUY})` : '', + data.transaction_ids?.sell ? `${data.transaction_ids.sell} (${CARD_LABELS.SELL})` : '', ], [CARD_LABELS.STAKE]: data.buy_price && data.currency @@ -81,9 +81,9 @@ const getCommonFields = (data: TContractInfo) => { }; }; // For Multiplier -const transformMultiplierData = (data: TContractInfo) => { - const commonFields = getCommonFields(data); - const dealCancelFee = getDealCancelFee(data); +const transformMultiplierData = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); + const dealCancelFee = getDealCancelFee(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], @@ -109,14 +109,14 @@ const transformMultiplierData = (data: TContractInfo) => { }; // For Rise -const transformCallPutData = (data: TContractInfo) => { +const transformCallPutData = (data: TContractInfo, CARD_LABELS: TCardLabels) => { const { barrier, purchase_time, shortcode } = data; const is_forward_starting = isForwardStarting(shortcode ?? '', purchase_time); const start_time = getStartTime(shortcode ?? ''); const has_forward_contract_started = hasForwardContractStarted(shortcode ?? ''); const show_barrier_placeholder = is_forward_starting && !!start_time && !has_forward_contract_started; - const commonFields = getCommonFields(data); + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], [CARD_LABELS.DURATION]: commonFields[CARD_LABELS.DURATION], @@ -127,8 +127,8 @@ const transformCallPutData = (data: TContractInfo) => { }; // For Turbos -const transformTurbosData = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformTurbosData = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], [CARD_LABELS.DURATION]: commonFields[CARD_LABELS.DURATION], @@ -143,8 +143,8 @@ const transformTurbosData = (data: TContractInfo) => { }; // For Digits -const transformDigitsData = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformDigitsData = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); const duration_time = getDurationTime(data) ?? ''; return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], @@ -158,8 +158,8 @@ const transformDigitsData = (data: TContractInfo) => { }; // For Accumulators -const transformAccumulatorData = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformAccumulatorData = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], ...{ @@ -183,8 +183,8 @@ const transformAccumulatorData = (data: TContractInfo) => { }; // For Vanillas -const transformVanillaData = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformVanillaData = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[`${CARD_LABELS.REFERENCE_ID}`], [CARD_LABELS.DURATION]: `${getDurationTime(data) ?? ''} ${getDurationUnitText(getDurationPeriod(data)) ?? ''}`, @@ -196,8 +196,8 @@ const transformVanillaData = (data: TContractInfo) => { }; }; -const transformEndsBetween = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformEndsBetween = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[`${CARD_LABELS.REFERENCE_ID}`], [CARD_LABELS.DURATION]: `${getDurationTime(data) ?? ''} ${getDurationUnitText(getDurationPeriod(data)) ?? ''}`, @@ -209,8 +209,8 @@ const transformEndsBetween = (data: TContractInfo) => { }; }; -const transformAsian = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformAsian = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], [CARD_LABELS.DURATION]: commonFields[CARD_LABELS.DURATION], @@ -221,8 +221,8 @@ const transformAsian = (data: TContractInfo) => { }; }; -const transformLooksback = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformLooksback = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); const is_call_contract = data.contract_type == CONTRACT_TYPES.LB_CALL; let spot_key; @@ -241,8 +241,8 @@ const transformLooksback = (data: TContractInfo) => { }; }; -const transformHighLowLookback = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformHighLowLookback = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], [CARD_LABELS.DURATION]: commonFields[CARD_LABELS.DURATION], @@ -257,8 +257,8 @@ const transformHighLowLookback = (data: TContractInfo) => { }; }; -const transformReset = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformReset = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], @@ -288,8 +288,8 @@ const transformReset = (data: TContractInfo) => { }; }; -const transformRunHigh = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformRunHigh = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], [CARD_LABELS.DURATION]: commonFields[CARD_LABELS.DURATION], @@ -298,8 +298,8 @@ const transformRunHigh = (data: TContractInfo) => { data.payout && data.currency ? `${formatMoney(data.currency, data.payout, true)} ${data.currency}` : '', }; }; -const transformHighLow = (data: TContractInfo) => { - const commonFields = getCommonFields(data); +const transformHighLow = (data: TContractInfo, CARD_LABELS: TCardLabels) => { + const commonFields = getCommonFields(data, CARD_LABELS); return { [CARD_LABELS.REFERENCE_ID]: commonFields[CARD_LABELS.REFERENCE_ID], [CARD_LABELS.DURATION]: commonFields[CARD_LABELS.DURATION], @@ -311,7 +311,7 @@ const transformHighLow = (data: TContractInfo) => { }; // Map of contract types to their respective transform functions -const transformFunctionMap: Record Record> = { +const transformFunctionMap: Record Record> = { [CONTRACT_TYPES.TURBOS.LONG]: transformTurbosData, [CONTRACT_TYPES.TURBOS.SHORT]: transformTurbosData, [CONTRACT_TYPES.MULTIPLIER.DOWN]: transformMultiplierData, @@ -354,7 +354,7 @@ const useOrderDetails = (contract_info: TContractInfo) => { const contractInfo = contract_info; if (!contractInfo.contract_type) return; const transformFunction = transformFunctionMap[contractInfo.contract_type]; - const details = transformFunction ? transformFunction(contractInfo) : {}; + const details = transformFunction ? transformFunction(contractInfo, getCardLabelsV2()) : {}; return { details, }; diff --git a/packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx b/packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx index ab154a19ee4b..8c1da1351983 100644 --- a/packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx +++ b/packages/trader/src/AppV2/Utils/__tests__/trade-param-utils.spec.tsx @@ -11,7 +11,12 @@ import { isDigitContractWinning, isSmallScreen, getOptionPerUnit, + getSmallestDuration, + getDatePickerStartDate, + getProposalRequestObject, } from '../trade-params-utils'; +import moment from 'moment'; +import { mockStore } from '@deriv/stores'; describe('getTradeParams', () => { it('should return correct object with keys for Rise/Fall', () => { @@ -295,7 +300,7 @@ describe('getSnackBarText', () => { }); describe('getOptionPerUnit', () => { - const renderOptions = (options: { value: number; label: ReactNode }[]) => { + const renderOptions = (options: { value: number; label: React.ReactNode }[]) => { return options.map(option => { if (React.isValidElement(option.label)) { const { container } = render(option.label as ReactElement); @@ -305,56 +310,180 @@ describe('getOptionPerUnit', () => { }); }; - test('returns correct options for minutes (m)', () => { - const result = getOptionPerUnit('m', false); - const view = renderOptions(result[0]); - expect(result).toHaveLength(1); - expect(view).toEqual([...Array(59)].map((_, i) => `${i + 1} min`)); - }); + const duration_min_max = { + intraday: { min: 900, max: 3600 }, + tick: { min: 5, max: 10 }, + daily: { min: 86400, max: 31536000 }, + }; - test('returns correct options for seconds (s)', () => { - const result = getOptionPerUnit('s', false); + test('returns correct options for minutes (m)', () => { + const result = getOptionPerUnit('m', duration_min_max); const view = renderOptions(result[0]); expect(result).toHaveLength(1); - expect(view).toEqual([...Array(45)].map((_, i) => `${i + 15} sec`)); + expect(view).toEqual([...Array(45)].map((_, i) => `${i + 15} min`)); }); test('returns correct options for days (d)', () => { - const result = getOptionPerUnit('d', false); + const result = getOptionPerUnit('d', duration_min_max); const view = renderOptions(result[0]); expect(result).toHaveLength(1); expect(view).toEqual([...Array(365)].map((_, i) => `${i + 1} days`)); }); test('returns correct options for ticks (t)', () => { - const result = getOptionPerUnit('t', false); + const result = getOptionPerUnit('t', duration_min_max); const view = renderOptions(result[0]); - expect(result).toHaveLength(1); - expect(view).toEqual([...Array(10)].map((_, i) => `${i + 1} tick`)); + expect(view).toEqual([...Array(6)].map((_, i) => `${i + 5} tick`)); }); test('returns correct options for ticks (t) when 5 ticks are required', () => { - const result = getOptionPerUnit('t', true); + const modifiedDuration = { ...duration_min_max, tick: { min: 1, max: 10 } }; + const result = getOptionPerUnit('t', modifiedDuration); const view = renderOptions(result[0]); expect(result).toHaveLength(1); - expect(view).toEqual([...Array(6)].map((_, i) => `${i + 5} tick`)); + expect(view).toEqual([...Array(10)].map((_, i) => `${i + 1} tick`)); + }); +}); + +describe('getSmallestDuration', () => { + const durationUnits = [ + { value: 's', text: 'Seconds' }, + { value: 'm', text: 'Minutes' }, + { value: 'h', text: 'Hours' }, + { value: 'd', text: 'Days' }, + { value: 't', text: 'Ticks' }, + ]; + + it('should return tick duration when "tick" exists in object', () => { + const obj = { tick: { min: 5 } }; + const result = getSmallestDuration(obj, durationUnits); + expect(result).toEqual({ value: 5, unit: 't' }); + }); + + it('should return the smallest intraday duration in minutes', () => { + const obj = { intraday: { min: 300 } }; + const result = getSmallestDuration(obj, durationUnits); + expect(result).toEqual({ value: 5, unit: 'm' }); + }); + + it('should return the smallest intraday duration in hours', () => { + const obj = { intraday: { min: 7200 } }; + const result = getSmallestDuration(obj, durationUnits); + expect(result).toEqual({ value: 2, unit: 'h' }); }); - test('returns correct options for hours (h)', () => { - const result = getOptionPerUnit('h', false); - // eslint-disable-next-line testing-library/render-result-naming-convention - const hourView = renderOptions(result[0]); - // eslint-disable-next-line testing-library/render-result-naming-convention - const minuteView = renderOptions(result[1]); + it('should return the smallest daily duration', () => { + const obj = { daily: { min: 86400 } }; + const result = getSmallestDuration(obj, durationUnits); + expect(result).toEqual({ value: 1, unit: 'd' }); + }); - expect(result).toHaveLength(2); - expect(hourView).toEqual([...Array(24)].map((_, i) => `${i + 1} h`)); - expect(minuteView).toEqual([...Array(60)].map((_, i) => `${i} min`)); + it('should return null if no valid smallest unit is found', () => { + const obj = {}; + const result = getSmallestDuration(obj, durationUnits); + expect(result).toBeNull(); }); +}); + +describe('getDatePickerStartDate', () => { + const duration_min_max = { + daily: { min: 86400, max: 172800 }, + }; + + const durationUnits = [ + { value: 'm', text: 'Minutes' }, + { value: 'h', text: 'Hours' }, + { value: 'd', text: 'Days' }, + ]; - test('returns empty array for invalid unit', () => { - const result = getOptionPerUnit('invalid', false); - expect(result).toEqual([[]]); + beforeAll(() => { + jest.spyOn(global.Date, 'now').mockImplementation(() => new Date('2024-10-08T08:00:00Z').getTime()); + }); + + afterAll(() => { + jest.restoreAllMocks(); + }); + + it('should return the minimum date considering intraday duration', () => { + const start_time = null; + const result = getDatePickerStartDate(durationUnits, moment(), start_time, duration_min_max); + expect(result).toBeInstanceOf(Date); + expect(result.toISOString()).toContain('2024-10-08'); + }); + + it('should set the correct time when a start time is provided', () => { + const start_time = '12:30:00'; + const result = getDatePickerStartDate(durationUnits, moment(), start_time, duration_min_max); + expect(result).toBeInstanceOf(Date); + expect(result.getHours()).toBe(12); + expect(result.getMinutes()).toBe(30); + }); + + it('should add min duration to the current time when no intraday duration exists', () => { + const nonIntradayUnits = [{ value: 'd', text: 'Days' }]; + const result = getDatePickerStartDate(nonIntradayUnits, moment(), null, duration_min_max); + expect(result).toBeInstanceOf(Date); + expect(result.toISOString()).toContain('2024-10-09'); + }); +}); + +describe('getProposalRequestObject', () => { + const trade = mockStore({}).modules.trade; + + const trade_store = { + ...trade, + onChange: jest.fn(), + duration: 30, + duration_unit: 'm', + expiry_type: 'duration', + symbol: 'R_100', + }; + + const new_values = { + duration: '10t', + amount: 20, + }; + + it('should merge new values into trade_store and create a proposal request object', () => { + const result = getProposalRequestObject({ + new_values, + trade_store, + trade_type: 'CALL', + }); + expect(result).toEqual( + expect.objectContaining({ + amount: 20, + barrier: 5, + basis: '', + contract_type: 'CALL', + currency: '', + duration: 10, + duration_unit: 'm', + limit_order: undefined, + proposal: 1, + symbol: 'R_100', + }) + ); + }); + + it('should include subscribe field when should_subscribe is true', () => { + const result = getProposalRequestObject({ + new_values, + should_subscribe: true, + trade_store, + trade_type: 'CALL', + }); + expect(result.subscribe).toBe(1); + }); + + it('should not include subscribe field when should_subscribe is false', () => { + const result = getProposalRequestObject({ + new_values, + should_subscribe: false, + trade_store, + trade_type: 'CALL', + }); + expect(result.subscribe).toBeUndefined(); }); }); diff --git a/packages/trader/src/AppV2/Utils/trade-params-utils.tsx b/packages/trader/src/AppV2/Utils/trade-params-utils.tsx index f1dc0dd876f7..e089bfa30bc5 100644 --- a/packages/trader/src/AppV2/Utils/trade-params-utils.tsx +++ b/packages/trader/src/AppV2/Utils/trade-params-utils.tsx @@ -1,5 +1,6 @@ import { CONTRACT_TYPES, + isTimeValid, isTouchContract, isTurbosContract, isVanillaContract, @@ -7,7 +8,10 @@ import { TRADE_TYPES, } from '@deriv/shared'; import { Localize, localize } from '@deriv/translations'; -import React, { ReactNode } from 'react'; +import { Moment } from 'moment'; +import React from 'react'; +import { createProposalRequestForContract } from 'Stores/Modules/Trading/Helpers/proposal'; +import { TTradeStore } from 'Types'; export const getTradeParams = (symbol?: string, has_cancellation?: boolean) => ({ [TRADE_TYPES.RISE_FALL]: { @@ -211,23 +215,44 @@ export const getSnackBarText = ({ return ; }; -export const getOptionPerUnit = (unit: string, show_tick_from_5: boolean): { value: number; label: ReactNode }[][] => { - const unitConfig: Record< - string, - { start: number; end: number; label: ReactNode } | (() => { value: number; label: ReactNode }[][]) - > = { - m: { start: 1, end: 59, label: }, - s: { start: 15, end: 59, label: }, - d: { start: 1, end: 365, label: }, - t: { start: show_tick_from_5 ? 5 : 1, end: 10, label: }, - h: () => { - const hour_options = generateOptions(1, 24, 'h'); - const minute_options = generateOptions(0, 59, 'min'); - return [hour_options, minute_options]; - }, +export const getClosestTimeToCurrentGMT = (interval: number): string => { + const now = new Date(); + now.setMinutes(now.getMinutes() + 5); + + const options: Intl.DateTimeFormatOptions = { + hour: '2-digit', + minute: '2-digit', + hour12: false, + timeZone: 'UTC', }; + const formattedTime = new Intl.DateTimeFormat('en-GB', options).format(now); + + const [hours, minutes] = formattedTime.split(':').map(Number); + + const date = new Date(); + date.setUTCHours(hours); + date.setUTCMinutes(minutes); - const generateOptions = (start: number, end: number, label: ReactNode) => { + const roundedMinutes = Math.ceil(date.getUTCMinutes() / interval) * interval; + + if (roundedMinutes >= 60) { + date.setUTCHours(date.getUTCHours() + 1); + date.setUTCMinutes(0); + } else { + date.setUTCMinutes(roundedMinutes); + } + + const newHours = String(date.getUTCHours()).padStart(2, '0'); + const newMinutes = String(date.getUTCMinutes()).padStart(2, '0'); + + return `${newHours}:${newMinutes}`; +}; + +export const getOptionPerUnit = ( + unit: string, + duration_min_max: Record +): { value: number; label: React.ReactNode }[][] => { + const generateOptions = (start: number, end: number, label: React.ReactNode) => { return Array.from({ length: end - start + 1 }, (_, i) => ({ value: start + i, label: ( @@ -238,6 +263,52 @@ export const getOptionPerUnit = (unit: string, show_tick_from_5: boolean): { val })); }; + const { intraday, tick, daily } = duration_min_max; + const unitConfig: Record< + string, + { start: number; end: number; label: React.ReactNode } | (() => { value: number; label: React.ReactNode }[][]) + > = { + m: { + start: Math.max(1, intraday?.min / 60), + end: Math.min(59, intraday?.max / 60), + label: , + }, + s: { + start: Math.max(15, intraday?.min), + end: Math.min(59, intraday?.max), + label: , + }, + d: { + start: Math.max(1, daily?.min / 86400), + end: Math.min(365, daily?.max / 86400), + label: , + }, + t: { + start: Math.max(1, tick?.min), + end: Math.min(10, tick?.max), + label: , + }, + h: () => { + const hour_start = Math.max(1, Math.floor(intraday?.min / 3600)); + const hour_end = Math.min(24, Math.floor(intraday?.max / 3600)); + + const hour_options = generateOptions(hour_start, hour_end, ); + + const minute_start = 0; + + let minute_end = 0; + if (intraday?.max % 3600 !== 0) { + minute_end = Math.floor((intraday?.max % 3600) / 60); + } else if (intraday?.max >= 86400) { + minute_end = 59; + } + + const minute_options = generateOptions(minute_start, minute_end, ); + + return [hour_options, minute_options]; + }, + }; + const config = unitConfig[unit]; if (typeof config === 'function') { @@ -246,8 +317,151 @@ export const getOptionPerUnit = (unit: string, show_tick_from_5: boolean): { val if (config) { const { start, end, label } = config; - return [generateOptions(start, end, label)]; + return [generateOptions(Math.ceil(start), Math.floor(end), label)]; } return [[]]; }; + +export const getSmallestDuration = ( + obj: { [x: string]: { min: number; max: number } | { min: number } }, + durationUnits: any[] +) => { + const keysPriority = ['tick', 'intraday', 'daily']; + let smallestValueInSeconds = Infinity; + let smallestUnit: 's' | 'm' | 'h' | 'd' | null = null; + + // eslint-disable-next-line no-restricted-syntax + for (const key of keysPriority) { + if (obj[key]) { + if (key === 'tick') { + const tickUnit = durationUnits.find((item: { value: string }) => item.value === 't'); + if (tickUnit) { + return { value: obj[key].min, unit: 't' }; + } + } + + if (obj[key].min < smallestValueInSeconds) { + smallestValueInSeconds = obj[key].min; + + if (key === 'intraday') { + if (smallestValueInSeconds >= 60 && smallestValueInSeconds < 3600) { + smallestUnit = 'm'; + } else if (smallestValueInSeconds >= 3600 && smallestValueInSeconds < 86400) { + smallestUnit = 'h'; + } + } else if (key === 'daily') { + smallestUnit = 'd'; + } + } + } + } + + if (smallestUnit) { + const validUnit = durationUnits.find((item: { value: string; text: string }) => item.value === smallestUnit); + if (validUnit) { + let convertedValue; + switch (smallestUnit) { + case 'm': + convertedValue = smallestValueInSeconds / 60; + break; + case 'h': + convertedValue = smallestValueInSeconds / 3600; + break; + case 'd': + convertedValue = smallestValueInSeconds / 86400; + break; + default: + convertedValue = 1; + } + return { value: convertedValue, unit: smallestUnit }; + } + } + + return null; +}; + +export const getDatePickerStartDate = ( + duration_units_list: { value: string }[], + server_time: Moment, + start_time: string | null, + duration_min_max: Record +) => { + const hasIntradayDurationUnit = (duration_units_list: { value: string }[]) => { + return duration_units_list.some((unit: { value: string }) => ['m', 'h'].indexOf(unit.value) !== -1); + }; + + const setMinTime = (dateObj: Date, time?: string) => { + const [hour, minute, second] = time ? time.split(':') : [0, 0, 0]; + dateObj?.setHours(Number(hour)); + dateObj?.setMinutes(Number(minute) || 0); + dateObj?.setSeconds(Number(second) || 0); + return dateObj; + }; + + const toDate = (value: string | number | Date | Moment): Date => { + if (!value) return new Date(); + + if (value instanceof Date && !isNaN(value.getTime())) { + return value; + } + + if (typeof value === 'number') { + return new Date(value * 1000); + } + + const parsedDate = new Date(value as Date); + if (isNaN(parsedDate.getTime())) { + const today = new Date(); + const daysInMonth = new Date(today.getUTCFullYear(), today.getUTCMonth() + 1, 0).getDate(); + const valueAsNumber = Date.parse(value as string) / (1000 * 60 * 60 * 24); + return valueAsNumber > daysInMonth + ? new Date(today.setUTCDate(today.getUTCDate() + Number(value))) + : new Date(value as Date); + } + + return parsedDate; + }; + + const getMinDuration = (server_time: string | number | Date | Moment, duration_units_list: { value: string }[]) => { + const server_date = toDate(server_time); + return hasIntradayDurationUnit(duration_units_list) + ? new Date(server_date) + : new Date(server_date.getTime() + (duration_min_max?.daily?.min || 0) * 1000); + }; + + const getMomentContractStartDateTime = () => { + const minDurationDate = getMinDuration(server_time, duration_units_list); + const time = isTimeValid(start_time ?? '') ? start_time : server_time?.toISOString().substr(11, 8) ?? ''; + return setMinTime(minDurationDate, time ?? ''); + }; + + const min_date = new Date(getMomentContractStartDateTime()); + return min_date; +}; + +export const getProposalRequestObject = ({ + new_values = {}, + should_subscribe = false, + trade_store, + trade_type, +}: { + new_values: Record; + should_subscribe?: boolean; + trade_store: TTradeStore; + trade_type: string; +}) => { + const store = { + ...trade_store, + ...new_values, + }; + + const request = createProposalRequestForContract( + store as Parameters[0], + trade_type + ) as Omit, 'subscribe'> & { subscribe?: number }; + + if (!should_subscribe) delete request.subscribe; + + return request; +}; diff --git a/packages/trader/src/Stores/Modules/Trading/Helpers/proposal.ts b/packages/trader/src/Stores/Modules/Trading/Helpers/proposal.ts index 55c9717b18f3..193eac022022 100644 --- a/packages/trader/src/Stores/Modules/Trading/Helpers/proposal.ts +++ b/packages/trader/src/Stores/Modules/Trading/Helpers/proposal.ts @@ -167,7 +167,7 @@ const setProposalAccumulator = (store: TTradeStore, obj_accumulator: TObjAccum) } }; -const createProposalRequestForContract = (store: TTradeStore, type_of_contract: string) => { +export const createProposalRequestForContract = (store: TTradeStore, type_of_contract: string) => { const obj_accumulator: TObjAccum = {}; const obj_expiry: TObjExpiry = {}; const obj_multiplier: TObjMultiplier = {}; diff --git a/packages/trader/src/Stores/Modules/Trading/trade-store.ts b/packages/trader/src/Stores/Modules/Trading/trade-store.ts index 5ba901f2e6e0..2a8e7de2170f 100644 --- a/packages/trader/src/Stores/Modules/Trading/trade-store.ts +++ b/packages/trader/src/Stores/Modules/Trading/trade-store.ts @@ -1,47 +1,46 @@ import * as Symbol from './Actions/symbol'; import { - BARRIER_COLORS, - BARRIER_LINE_STYLES, + WS, ChartBarrierStore, cloneObject, - CONTRACT_TYPES, convertDurationLimit, extractInfoFromShortcode, findFirstOpenMarket, - formatMoney, getBarrierPipSize, - getCardLabelsV2, - getContractPath, - getContractSubtype, - getCurrencyDisplayCode, getMinPayout, getPlatformSettings, getPropertyValue, + getContractSubtype, getTradeNotificationMessage, - getTradeURLParams, - hasBarrier, - isAccumulatorContract, isBarrierSupported, + isAccumulatorContract, isCryptocurrency, - isDtraderV2Enabled, isEmptyObject, - isHighLow, isMarketClosed, isMultiplierContract, - isTouchContract, isTurbosContract, - isUpDownContract, - isVanillaContract, isVanillaFxContract, + isVanillaContract, pickDefaultSymbol, resetEndTimeOnVolatilityIndices, - routes, setLimitOrderBarriers, - setTradeURLParams, showDigitalOptionsUnavailableError, showUnavailableLocationError, + getCurrencyDisplayCode, + BARRIER_COLORS, + BARRIER_LINE_STYLES, TRADE_TYPES, - WS, + hasBarrier, + isHighLow, + CONTRACT_TYPES, + setTradeURLParams, + getTradeURLParams, + isTouchContract, + getCardLabelsV2, + formatMoney, + getContractPath, + routes, + isDtraderV2Enabled, } from '@deriv/shared'; import { Analytics } from '@deriv-com/analytics'; import type { TEvents } from '@deriv-com/analytics'; @@ -243,6 +242,7 @@ export default class TradeStore extends BaseStore { basis = ''; basis_list: Array = []; currency = ''; + default_stake: number | undefined; stake_boundary: Partial = {}; // Duration @@ -418,6 +418,7 @@ export default class TradeStore extends BaseStore { contract_types_list: observable, contract_types_list_v2: observable, currency: observable, + default_stake: observable, digit_stats: observable, duration_min_max: observable, duration_unit: observable, @@ -468,6 +469,7 @@ export default class TradeStore extends BaseStore { proposal_info: observable.ref, purchase_info: observable.ref, setHoveredBarrier: action.bound, + setDefaultStake: action.bound, sessions: observable, setDefaultGrowthRate: action.bound, setDigitStats: action.bound, @@ -968,6 +970,10 @@ export default class TradeStore extends BaseStore { this.hovered_barrier = hovered_value; } + setDefaultStake(default_stake?: number) { + this.default_stake = default_stake; + } + setPreviousSymbol(symbol: string) { if (this.previous_symbol !== symbol) this.previous_symbol = symbol; } @@ -1281,32 +1287,27 @@ export default class TradeStore extends BaseStore { // when accumulator is selected, we need to change chart type to mountain and granularity to 0 // and we need to restore previous chart type and granularity when accumulator is unselected const { + prev_chart_type, + prev_granularity, chart_type, - saved_chart_type, - saved_granularity, - setChartTypeAndGranularity, + granularity, + savePreviousChartMode, updateChartType, updateGranularity, } = this.root_store.contract_trade || {}; - const has_line_chart = - isAccumulatorContract(obj_new_values.contract_type) || - isDigitTradeType(obj_new_values.contract_type) || - isUpDownContract(obj_new_values.contract_type); - if (obj_new_values.contract_type) { - if (!has_line_chart && (saved_chart_type || !Number.isNaN(saved_granularity))) { - if (saved_chart_type) { - updateChartType(saved_chart_type); - } - if (!Number.isNaN(saved_granularity)) { - updateGranularity(saved_granularity); - } - } else if (has_line_chart) { - setChartTypeAndGranularity('line', 0); - setTradeURLParams({ chartType: 'line', granularity: 0 }); - } else { - setChartTypeAndGranularity('candles', 60); - setTradeURLParams({ chartType: 'candles', granularity: 60 }); - } + if (isAccumulatorContract(obj_new_values.contract_type) || isDigitTradeType(obj_new_values.contract_type)) { + savePreviousChartMode(chart_type, granularity); + updateGranularity(0); + updateChartType('line'); + } else if ( + (obj_new_values.contract_type || obj_new_values.symbol) && + prev_chart_type && + prev_granularity && + (prev_chart_type !== chart_type || prev_granularity !== granularity) + ) { + updateGranularity(prev_granularity); + updateChartType(prev_chart_type); + savePreviousChartMode('', null); } if (/\bduration\b/.test(Object.keys(obj_new_values) as unknown as string)) { // TODO: fix this in input-field.jsx @@ -1331,6 +1332,11 @@ export default class TradeStore extends BaseStore { if (has_currency_changed && should_reset_stake) { obj_new_values.amount = obj_new_values.amount || getMinPayout(obj_new_values.currency ?? ''); + if (this.is_dtrader_v2_enabled) + this.setV2ParamsInitialValues({ + value: obj_new_values.amount ?? '', + name: 'stake', + }); } this.currency = obj_new_values.currency ?? ''; } @@ -1344,6 +1350,31 @@ export default class TradeStore extends BaseStore { has_only_forward_starting_contracts = ContractType.getContractCategories().has_only_forward_starting_contracts; } + + // Set stake to default one (from contracts_for) on symbol or contract type switch. + // On contract type we also additionally reset take profit + if (this.default_stake && this.is_dtrader_v2_enabled) { + const has_symbol_changed = obj_new_values.symbol && this.symbol && this.symbol !== obj_new_values.symbol; + const has_contract_type_changed = + obj_new_values.contract_type && + obj_old_values?.contract_type && + obj_new_values.contract_type !== obj_old_values.contract_type; + + if (has_symbol_changed || has_contract_type_changed) { + const is_crypto = isCryptocurrency(this.currency ?? ''); + const default_crypto_value = getMinPayout(this.currency ?? '') ?? ''; + this.setV2ParamsInitialValues({ + value: is_crypto ? default_crypto_value : this.default_stake ?? '', + name: 'stake', + }); + obj_new_values.amount = is_crypto ? default_crypto_value : this.default_stake; + } + if (has_contract_type_changed) { + obj_new_values.has_take_profit = false; + obj_new_values.take_profit = ''; + } + } + // TODO: remove all traces of setHasOnlyForwardingContracts and has_only_forward_starting_contracts in app // once future contracts are implemented this.root_store.ui.setHasOnlyForwardingContracts(has_only_forward_starting_contracts); @@ -1807,15 +1838,31 @@ export default class TradeStore extends BaseStore { } setChartModeFromURL() { - const { chartType: chartTypeParam, granularity: granularityParam } = getTradeURLParams(); - const { chart_type, granularity, saveChartType, saveGranularity } = this.root_store.contract_trade; - if ( - (!isNaN(Number(granularityParam)) && granularityParam !== granularity) || - (chartTypeParam && chartTypeParam !== chart_type) - ) { - chartTypeParam && saveChartType(chartTypeParam); - granularityParam && saveGranularity(Number(granularityParam)); + const { chartType: chartTypeParam, granularity: granularityParam, contractType } = getTradeURLParams(); + const { chart_type, granularity, updateChartType, updateGranularity } = this.root_store.contract_trade; + + if (!isNaN(Number(granularityParam)) && granularityParam !== granularity) { + updateGranularity(Number(granularityParam)); } + if (chartTypeParam && chartTypeParam !== chart_type) { + updateChartType(chartTypeParam); + } + + const urlParams: { + chartType: string; + granularity: number; + contractType?: string; + } = { + chartType: chartTypeParam ?? chart_type, + granularity: granularityParam ?? Number(granularity), + }; + + if (contractType) { + this.contract_type = contractType ?? ''; + urlParams.contractType = contractType; + } + + setTradeURLParams(urlParams); } setChartStatus(status: boolean, isFromChart?: boolean) { @@ -1969,6 +2016,14 @@ export default class TradeStore extends BaseStore { ) { this.prepareTradeStore(false); } + if (state === STATE_TYPES.SET_CHART_MODE) { + if (!isNaN(Number(option?.granularity))) { + this.root_store.contract_trade.updateGranularity(Number(option?.granularity)); + } + if (option?.chart_type_name) { + this.root_store.contract_trade.updateChartType(option?.chart_type_name); + } + } const { data, event_type } = getChartAnalyticsData(state as keyof typeof STATE_TYPES, option) as TPayload; if (data) { Analytics.trackEvent(event_type, { diff --git a/packages/trader/src/Types/common-prop.type.ts b/packages/trader/src/Types/common-prop.type.ts index f0cf9f5c96a5..d3b1ccaa7733 100644 --- a/packages/trader/src/Types/common-prop.type.ts +++ b/packages/trader/src/Types/common-prop.type.ts @@ -154,6 +154,7 @@ export type TContractTypesList = { }; export type TConfig = ReturnType[string]['config'] & { + default_stake?: number; has_spot?: boolean; durations?: ReturnType; trade_types?: { [key: string]: string }; diff --git a/packages/translations/crowdin/messages.json b/packages/translations/crowdin/messages.json index 5adb4e085a22..0380d6c6aaf7 100644 --- a/packages/translations/crowdin/messages.json +++ b/packages/translations/crowdin/messages.json @@ -1 +1 @@ -{"1485191":"1:1000","2082741":"additional document number","2091451":"Deriv Bot - your automated trading partner","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","3420069":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your identity document.","4547840":"<0>Verify your account to transfer funds. <1>Verify now","5149403":"Learn more about trade types","7100308":"Hour must be between 0 and 23.","9488203":"Deriv Bot is a web-based strategy builder for trading digital options. It’s a platform where you can build your own automated trading bot using drag-and-drop 'blocks'.","9757544":"Please submit your proof of address","11533428":"Trade bigger positions with less capital on a wide range of global markets. <0>Learn more","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11706633":"Loss threshold: The bot will stop trading if your total loss exceeds this amount.","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","14874020":"Values cannot be negative. Provided value: {{ input_value }}.","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","23745193":"Take me to demo","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582393":"Example :","27582767":"{{amount}} {{currency}}","27731356":"Your account is temporarily disabled. Please contact us via <0>live chat to enable deposits and withdrawals again.","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","40632954":"Why is my card/e-wallet not working?","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45821474":"Proof of income","46523711":"Your proof of identity is verified","47525080":"The amount you’ll receive at expiry for every point of change below the barrier.","49404821":"If you buy a \"<0>{{trade_type}}\" option, you receive a payout at expiry if the final price is {{payout_status}} the strike price. Otherwise, your “<0>{{trade_type}}” option will expire worthless.","50717678":"Save the updated strategy for quicker re-imports.","53801223":"Hong Kong 50","53964766":"5. Hit Save to download your bot. You can choose to download your bot to your device or your Google Drive.","54185751":"Less than $100,000","54363400":"We've sent a verification code to <0>{{users_email}}.","55340304":"Keep your current contract?","55916349":"All","57362642":"Closed","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","62910715":"You already have an open position for this contract type, retrying in {{ delay }}s","63534532":"Enter the code below to verify it's you.","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66610627":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there’s enough light where you are and that your entire face is in the frame.","67923436":"No, Deriv Bot will stop running when your web browser is closed.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71180364":"Continue verification","71232823":"Manage funds","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74953206":"Customise","74963864":"Under","76635112":"To proceed, resubmit these documents","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","76925355":"Check your bot’s performance","77982950":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a \"Call\" or a \"Put\".","81009535":"Potential profit/loss","81091424":"To complete the upgrade, please log out and log in again to add more accounts and make transactions with your Wallets.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","84402478":"Where do I find the blocks I need?","84924586":"To trade options and multipliers, get a Deriv Apps account first.","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","93154671":"1. Hit Reset at the bottom of stats panel.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","99306476":"Your import failed due to an invalid file. Upload a complete file in XML format.","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","102929937":"Make sure to copy the Deriv {{currency}} account address above and paste it into your crypto wallet.","105871033":"Your age in the document you provided appears to be below 18 years. We’re only allowed to offer our services to clients above 18 years old, so we’ll need to close your account. If you have a balance in your account, contact us via live chat and we’ll help to withdraw your funds before your account is closed.","107537692":"These limits apply to your options trades only. For example, <0>maximum total loss refers to the losses on all your trades on options trading platforms.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113091401":"Acceptable range: {{min_stake}} to {{max_stake}} {{currency}}","113378532":"ETH/USD","115032488":"Buy price and P/L","116005488":"Indicators","117056711":"We’re updating our site","117318539":"Password should have lower and uppercase English letters with numbers.","117366356":"Turbo options allow you to predict the direction of the underlying asset’s movements.","118727646":"{{new_account_title}}","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","122617359":"View tutorial","122993457":"This is to confirm that it's you making the withdrawal request.","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125354367":"An example of D’Alembert's Grind strategy","125443840":"6. Restart last trade on error","125842960":"{{name}} is required.","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","129005644":"The idea is that successful trades may recoup previous losses. However, it is crucial to exercise caution as the risk can quickly increase with this strategy. With Deriv Bot, you can minimise your risk by setting a maximum stake. This is an optional risk management feature. Let’s say a maximum stake of 3 USD. If your stake for the next trade is set to exceed 3 USD, your stake will reset to the initial stake of 1 USD. If you didn't set a maximum stake, it would have increased beyond 3 USD.","129137937":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or resume trading after a 24-hour cooling-off period. If you don’t want to set a specific limit, leave the field empty.","129729742":"Tax Identification Number*","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","133655768":"Note: If you wish to learn more about the Bot Builder, you can proceed to the <0>Tutorials tab.","134126193":"Try searching for markets or keywords","135698857":"<0>Follow these steps to smoothly transfer your strategies:","136790425":"Try changing or removing filters to view available positions.","137589354":"To assess your trading experience and if our products are suitable for you. Please provide accurate and complete answers, as they may affect the outcome of this assessment.","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145511192":"s is the initial stake.","145633981":"Unavailable as your documents are still under review","145736466":"Take a selfie","147091073":"This block gives you the Current Stat value.","147327552":"No favourites","150156106":"Save changes","150486954":"Token name","151279367":"2. Set the Purchase conditions. In this example, your bot will purchase a Rise contract when it starts and after a contract closes.","151646545":"Unable to read file {{name}}","152120783":"Attention: tUSDT deposit address change","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","153485708":"Zero Spread - BVI","154274415":"The payout at expiry is equal to the payout per point multiplied by the distance between the final price and the barrier.","157593038":"random integer from {{ start_number }} to {{ end_number }}","157871994":"Link expired","158355408":"Some services may be temporarily unavailable.","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","167094229":"• Current stake: Use this variable to store the stake amount. You can assign any amount you want, but it must be a positive number.","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","174793462":"Strike","176078831":"Added","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","177467242":"Define your trade options such as accumulator and stake. This block can only be used with the accumulator trade type. If you select another trade type, this block will be replaced with the Trade options block.","179083332":"Date","181346014":"Notes ","181881956":"Contract Type: {{ contract_type }}","182630355":"Thank you for submitting your information.","184024288":"lower case","189111473":"Mark all as read","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","190834737":"Guide","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195136585":"Trading View Chart","195972178":"Get character","196810983":"If the duration is more than 24 hours, the Cut-off time and Expiry date will apply instead.","197190401":"Expiry date","201016731":"<0>View more","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","203297887":"The Quick Strategy you just created will be loaded to the workspace.","203337807":"<0>Utility bill: Electricity, water, gas, or landline phone bill.","203924654":"Hit the <0>Start button to begin and follow the tutorial.","204797764":"Transfer to client","204863103":"Exit time","207521645":"Reset Time","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","210872733":"The verification status is not available, provider says: Malformed JSON.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211487193":"Document number (e.g. identity card, passport, driver's license)","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216114973":"Stocks & indices","216650710":"You are using a demo account","217377529":"5. If the next trades are profitable, the stake for the following trade will be reduced by 2 USD. This can be shown above where the stake of 3 USD is reduced to 1 USD. See A3.","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","221261209":"A Deriv account will allow you to fund (and withdraw from) your CFDs account(s).","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","233500222":"- High: the highest price","235244966":"Return to Trader's Hub","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","235994721":"Forex (standard/exotic) and cryptocurrencies","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","242028165":"Pay a small fee to prioritise your withdrawal, this fee will be deducted from the withdrawal amount.","243537306":"1. Under the Blocks menu, go to Utility > Variables.","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","246428134":"Step-by-step guides","248153700":"Reset your password","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","250271709":"Due to business changes, client accounts in Senegal are to be closed. Withdraw your funds by {{date}}.","251134918":"Account Information","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","253388913":"We'll close accounts with no open positions after 60 days.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","260393332":"You cannot make further deposits as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","261074187":"4. Once the blocks are loaded onto the workspace, tweak the parameters if you want, or hit Run to start trading.","261250441":"Drag the <0>Trade again block and add it into the <0>do part of the <0>Repeat until block.","262095250":"If you select <0>\"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","266455247":"Standard Vanuatu","267992618":"The platforms lack key features or functionality.","268254263":"Open a real account now","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270396691":"<0>Your Wallets are ready!","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","271637055":"Download is unavailable while your bot is running.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","276770377":"New MT5 account(s) under the {{to_account}} jurisdiction will be created for new trades.","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","280021988":"Use these shortcuts","281110034":"Effective trading with the D'Alembert system requires careful consideration of its stake progression and risk management. Traders can automate this approach using Deriv Bot, setting profit and loss thresholds to ensure balanced and controlled trading. However, it is crucial for traders to assess their risk appetite, test strategies on a demo account, and align with their own trading style before transitioning to real money trading. This optimization process helps strike a balance between potential gains and losses while managing risk prudently.","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","284527272":"antimode","284772879":"Contract","284809500":"Financial Demo","287934290":"Are you sure you want to cancel this transaction?","289731075":"Get Started","291344459":"The table illustrates this principle in the second session. After a trade resulting in loss in round 4 followed by a successful trade in round 5, the stake will increase to 2 USD for round 6. This is in line with the strategy's rule of raising the stake only after a loss is followed by a successful trade.","291744889":"<0>1. Trade parameters:<0>","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","293200481":"{{ stack_input }} Run after {{ number }} tick(s)","293250845":"Are you sure you want to continue?","294043810":"I confirm that my tax information is accurate and complete.","294305803":"Manage account settings","294335229":"Sell at market price","296017162":"Back to Bot","299867329":"For more info,
      check out this blog post on the basics of building a trading bot.","301315130":"The amount you choose to receive at expiry for every point of change between the final price and the barrier.","301441673":"Select your citizenship/nationality as it appears on your passport or other government-issued ID.","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","304506198":"Total balance:","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","315516003":"Distance to spot","316694303":"Is candle black?","318705408":"Demo Zero Spread","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","320094260":"Trade Accumulators to build up potential profits with a structured approach.","321457615":"Oops, something went wrong!","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","323360883":"Baskets","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329353047":"Malta Financial Services Authority (MFSA) (licence no. IS/70156)","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","330384187":"Enable trading with your first transfer.","333456603":"Withdrawal limits","333807745":"Click on the block you want to remove and press Delete on your keyboard.","334942497":"Buy time","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343194622":"The amount you’ll receive at expiry for every point of change above the barrier","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345171716":"Enter your address","345320063":"Invalid timestamp","345818851":"Sorry, an internal error occurred. Hit the above checkbox to try again.","346070861":"Zero Spread","346843343":"CFDs on financial and derived instruments with copy trading.","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","350602311":"Stats show the history of consecutive tick counts, i.e. the number of ticks the price remained within range continuously.","351744408":"Tests if a given text string is empty","353731490":"Job done","354945172":"Submit document","355647475":"Current spot","357477280":"No face found","357672069":"Income verification failed","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","360773403":"Bot Builder","361784996":"Manage your trade types","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","367801124":"Total assets in your Deriv accounts.","367978153":"Removed from favourites","368160866":"in list","369035361":"<0>•Your account number","369409629":"We have updated our Blockly system in Deriv Bot from <0>version 3 to version 10. This brings:","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","377225569":"<0>Do not honour: Please contact your bank for further assistance.","377538732":"Key parameters","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","380606668":"tick","380694312":"Maximum consecutive trades","381972464":"Your document has expired.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","384707870":"CRS confirmation","386278304":"Install the {{platform_name_trader}} web app","388162708":"You can view your open and closed positions here. Tap an item for more details.","389923099":"Zoom in","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","393789743":"Letters, spaces, periods, hyphens, apostrophes only.","396418990":"Offline","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","401345454":"Head to the Tutorials tab to do so.","403456289":"The formula for SMA is:","403936913":"An introduction to Deriv Bot","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","415677940":"Faster performance.","417864079":"You’ll not be able to change currency once you have made a deposit.","419485005":"Spot","419496000":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the multipliers trade type.","420072489":"CFD trading frequency","422055502":"From","423682863":"When your loss reaches or exceeds the set amount, your trade will be closed automatically.","424101652":"Quick strategy guides >","424272085":"We take your financial well-being seriously and want to ensure you are fully aware of the risks before trading.<0/><0/>","424668491":"expired","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428380816":"If you select “<0>Matches”, you will win the payout if the last digit of the last tick is the same as your prediction.","429505586":"If you select \"<0>Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","429970999":"To avoid delays, enter your <0>name exactly as it appears on your {{document_name}}.","431267979":"Here’s a quick guide on how to use Deriv Bot on the go.","432273174":"1:100","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433237511":"Notify Telegram %1 Access Token: %2 Chat ID: %3 Message: %4","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","436534334":"<0>We've sent you an email.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","438554418":"Time remaining: {{time_remaining}}","439398769":"This strategy is currently not compatible with Deriv Bot.","439798157":"Import strategy","441724760":"Request a new OTP after 10 minutes.","442281706":"You’ve just deleted a block.","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","447548846":"SSNIT number","447907000":"If you select \"<0>Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","452949978":"The 1-3-2-6 strategy is designed to capitalise on consecutive successful trades while minimising losses during losing streaks. The rationale behind this strategy lies in statistical probabilities, with adjustments to stake sizes based on the perceived likelihood of success. There is a higher likelihood of success in the second trade after one successful trade. Hence the stake adjusts to 3 in the second trade. In the third trade, the stake adjusts to 2 units due to a lower probability of a successful trade. If the third trade is also successful, the strategy then allocates all the previous gains (a total of 6 units of initial stake) into the fourth trade with the aim of doubling the potential profits. If the fourth trade results in a positive outcome, the strategy helps achieve a total gain of 12 units. However, it is crucial to exercise caution, as the risk can escalate quickly with this strategy, and any loss in the fourth trade forfeits all previous gains.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","454196938":"Regulation:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459612953":"Select account","459817765":"Pending","460070238":"Congratulations","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466424460":"Oscar’s Grind","466837068":"Yes, increase my limits","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","471402292":"Your bot uses a single trade type for each run.","471667879":"Cut off time:","471994882":"Your {{ currency }} account is ready.","473154195":"Settings","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","480356486":"*Boom 300 and Crash 300 Index","481276888":"Goes Outside","481564514":"If you select “<0>Up”, you’ll earn a payout if the spot price never drops below the barrier.","483279638":"Assessment Completed<0/><0/>","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","490053735":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your loss reaches or exceeds the stop loss amount. Your loss may be more than the amount you entered depending on the market price at closing.","490243056":"Multipliers amplify your potential profit if the market moves in your favour, with losses limited to your initial capital.","491603904":"Unsupported browser","492198410":"Make sure everything is clear","492566838":"Taxpayer identification number","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502007051":"Demo Swap-Free SVG","502041595":"This block gives you a specific candle from within the selected time interval.","505793554":"last letter","508390614":"Demo Financial STP","511243369":"Your passkey is successfully removed. To avoid sign-in prompts, also remove the passkey from your Google password manager.","511679687":"Accumulators allow you to express a view on the range of movement of an index and grow your stake exponentially at a fixed <0>growth rate.","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","517631043":"We’ve sent your e-book. Check your email to download it.","517833647":"Volatility 50 (1s) Index","518955798":"7. Run Once at Start","519205761":"You can no longer open new positions with this account.","520136698":"Boom 500 Index","520458365":"Last used: ","521872670":"item","522703281":"divisible by","523123321":"- 10 to the power of a given number","524459540":"How do I create variables?","527329988":"This is a top-100 common password","529056539":"Options","531114081":"3. Contract Type","531453415":"Restart your phone number verification.","531675669":"Euro","532724086":"Employment contract","533403953":"Your existing <0>{{platform}} {{type}} {{from_account}} account(s) will remain accessible.","535021574":"Run your updated strategy to check its performance.","535041346":"Max. total stake per day","536277802":"TP & SL history","537788407":"Other CFDs Platform","538017420":"0.5 pips","538042340":"Principle 2: The stake only increases when a loss trade is followed by a successful trade","538228086":"Close-Low","539352212":"Tick {{current_tick}}","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","545323805":"Filter by trade types","547029855":"If you select this feature, you can cancel your trade within a chosen time frame if the asset price moves against your favour. You will get your stake back without profit/loss. We charge a small fee for this. Take profit and stop loss are disabled when deal cancellation is active.","549479175":"Deriv Multipliers","549799607":"Go to LiveChat","551569133":"Learn more about trading limits","551958626":"Excellent","554135844":"Edit","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","555881991":"National Identity Number Slip","558866810":"Run your bot","560759471":"You'll see these details once the contract starts.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","575668969":"3. For trades that result in a profit, the stake for the next trade will be increased by 2 USD. Deriv Bot will continue to add 2 USD for every successful trade. See A1.","575702000":"Remember, selfies, pictures of houses, or non-related images will be rejected.","576355707":"Select your country and citizenship:","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","585277790":"Some currencies may not be supported by fiat onramp.","587577347":"Take Profit (Accumulator)","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","592381383":"Passkey successfully removed","592964176":"Join over 2.5 million traders","593459109":"Try a different currency","594375321":"Secure your Deriv account by verifying your phone number.","595080994":"Example: CR123456789","595377017":"Withdraw funds","596165833":"Your withdrawal will be processed internally in one business day. After that, for debit/credit cards, it takes 1-15 working days, and for e-wallets, it's 1-3 working days. If there's a delay beyond these periods, please contact us via live chat.","596748073":"View your positions","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","601772576":"We accept only the following documents as proof of address. The document must be issued within the last {{expiry_in_months}} months and include your full name and address:","602278674":"Verify identity","603849445":"Strike price","603849863":"Look for the <0>Repeat While/Until, and click the + icon to add the block to the workspace area.","603899222":"Distance to current spot","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","613418320":"<0>Setup unsuccessful","613877038":"Chart","614567861":"Edit number","615156635":"Your selfie does not match your document.","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","621829484":"{{days_passed}}d ago","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623316736":"{{ message }}, retrying in {{ delay }}s","623542160":"Exponential Moving Average Array (EMAA)","625571750":"Entry spot:","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629003252":"If your current password doesn't match these requirements, you'll need to create a new one in the next step.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","629395043":"All growth rates","632398049":"This block assigns a null value to an item or statement.","632897893":"If any of the above applies to you, select <0>Yes. Otherwise, select <0>No.","632942644":"Rental/tenancy agreement","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","634274250":"How long each trade takes to expire.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","636427296":"Need help with tax info? Let us know via <0>live chat.","636579615":"Number of unit(s) to be added to the next trade after a losing trade. One unit is equivalent to the amount of initial stake.","638482685":"SMS","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","644150241":"The number of contracts you have won since you last cleared your stats.","645902266":"EUR/NZD","646773081":"Profit threshold: The bot will stop trading if your total profit exceeds this amount.","647039329":"Proof of address required","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","650836587":"This article explores the Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","651284052":"Low Tick","651684094":"Notify","652298946":"Date of birth","654422099":"CRS confirmation is required.","654507872":"True-False","654924603":"Martingale","655733440":"Others","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","656893085":"Timestamp","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","658745169":"You may sell the contract up to 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662953503":"Your contract will be closed when the <0>stop out level is reached.","664779910":"3. If the first trade results in profit, the stake for the following trade will not reduce but remain at the initial stake. The strategy minimally trades at the initial stake of 1 USD. See A1.","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666158951":"Your contract will be closed when the <0>stop out level is reached.","666724936":"Please enter a valid ID number.","670952290":"Due to business changes, client accounts in Senegal are to be closed. Withdraw any remaining funds by {{date}}.","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","676675313":"Authy","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678031950":"Candles List with interval here 2: {{ candle_interval_type }}","679199080":"Why passkeys?","680334348":"This block was required to correctly convert your old strategy.","681108680":"Additional information required for {{platform}} account(s)","681808253":"Previous spot price","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","686387939":"How do I clear my transaction log?","687193018":"Slippage risk","687212287":"Amount is a required field.","688510664":"You've {{two_fa_status}} 2FA on this device. You'll be logged out of your account on other devices (if any). Use your password and a 2FA code to log back in.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","692354762":"Please enter your {{document_name}}. {{example_format}}","693396140":"Deal cancellation (expired)","693933036":"Exploring the Oscar’s Grind strategy in Deriv Bot","694035561":"Trade options multipliers","696157141":"Low spot","696735942":"Enter your National Identification Number (NIN)","696870196":"- Open time: the opening time stamp","698037001":"National Identity Number","698151231":"Didn't receive a code?","699159918":"1. Filing complaints","699646180":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, the funds will be lost and cannot be recovered.","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","702451070":"National ID (No Photo)","702561961":"Change theme","705262734":"Your Wallets are ready","705299518":"Next, upload the page of your passport that contains your photo.","705697927":"2. Set your preferred unit. In this example, it is 2 units or 2 USD.","705821926":"Learn about this trade type","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","706960383":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 60 seconds.","707189572":"Your email address has changed.<0/>Now, log in with your new email address.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711580196":"Why can't I use a payment agent to withdraw my funds?","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","718509613":"Maximum duration: {{ value }}","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","721271917":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724526379":"Learn more with our tutorials","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729251105":"Range: {{min}} - {{max}} {{duration_unit_text}} ","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","732828463":"Standing instructions to transfer funds to an account maintained in the United States, or directions regularly received from a US address","734298230":"Just a reminder","734390964":"Insufficient balance","734881840":"false","735907651":"A US residence address or a US correspondence address (including a US PO box)","737640807":"View available markets here.","737751617":"<0>Explore our website to see what’s available.","739126643":"Indicative high spot","742469109":"Reset Balance","743623600":"Reference","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","747054281":"For a Call option, you receive a payout if the final price is higher than the strike price.","747279775":"Current Stat","749336930":"Secure alternative to passwords.","750886728":"Switch to your real account to submit your documents","751468800":"Start now","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755138488":"We’re unable to verify the document you provided because it contains markings or text that should not be on your document. Please provide a clear photo or a scan of your original identity document.","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","758492962":"210+","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762926186":"A quick strategy is a ready-made strategy that you can use in Deriv Bot. There are 3 quick strategies you can choose from: Martingale, D'Alembert, and Oscar's Grind.","764366329":"Trading limits","766317539":"Language","768301339":"Delete Blocks","771570279":"Filter by time","772520934":"You may sell the contract up to 24 hours before expiry. If you do, we’ll pay you the <0>contract value.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","775706054":"Do you sell trading bots?","776085955":"Strategies","776432808":"Select the country where you currently live.","778172770":"Deriv CFDs","780009485":"About D'Alembert","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787727156":"Barrier","788005234":"NA","789013690":"This is the corresponding price level based on the payout per point you’ve selected. If this barrier is ever breached, your contract would be terminated.","792164271":"This is when your contract will expire based on the Duration or End time you’ve selected.","792622364":"Negative balance protection","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794629751":"Step 400 Index","794682658":"Copy the link to your phone","794778483":"Deposit later","795859446":"Password saved","795992899":"The amount you choose to receive at expiry for every point of change between the final price and the barrier. ","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","806165583":"Australia 200","807499069":"Financial commission complaints procedure","808131992":"Returns the Current Stat","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811255505":"Favourites","812430133":"Spot price on the previous tick.","815925952":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open Deriv Bot.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820517828":"Submit your document","820877027":"Please verify your proof of identity","821163626":"Server maintenance occurs every first Saturday of the month from 7 to 10 GMT time. You may experience service disruption during this time.","822011242":"Please review our updated <0>terms and conditions.","823186089":"A block that can contain text.","823279888":"The {{block_type}} block is missing.","824797920":"Is list empty?","825042307":"Let’s try again","825179913":"This document number was already submitted for a different account. It seems you have an account with us that doesn't need further verification. Please contact us via <0>live chat if you need help.","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","829970143":"If you've hit the deposit limit, please wait 1-2 hours before trying again. Check that your browser is up to date and use incognito mode. If you still have problems, please contact us via <0>live chat.","830164967":"Last name","830703311":"My profile","830993327":"No current transactions available","831344594":"If you select “<0>Lower”, you win the payout if the exit spot is strictly lower than the barrier.","832053636":"Document submission","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835336137":"View Detail","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839158849":"4. If the second trade results in a loss, the Deriv Bot will automatically increase your stake for the next trade by 2 USD. Deriv Bot will continue to add 2 USD to the previous round’s stake after every losing trade. See A2.","839805709":"To smoothly verify you, we need a better photo","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845106422":"Last digit prediction","845304111":"Slow EMA Period {{ input_number }}","846973078":"Number already exists in our system. Enter a new one or contact us via <0>live chat for help.","847209411":"{{formatted_opening_time}} (GMT), {{opening_date}}","848083350":"Your payout is equal to the <0>payout per point multiplied by the difference between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","848203102":"Request a new verification link via email.","849248327":"Barrier set above spot price.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852527030":"Step 2","852583045":"Tick List String","852627184":"document number","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863023016":"For instance, if a trader has a loss threshold (B) of 100 USD, with an initial stake (s) of 1 USD and 2 units of increment (f), the calculation would be as follows:","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864655280":"You can continue to hold your current open positions in your existing MT5 account(s).","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869068127":"The cashier is temporarily down due to maintenance. It will be available as soon as the maintenance is complete.","869823595":"Function","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872721776":"2. Select your XML file and hit Select.","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","873387641":"If you have open positions","874461655":"Scan the QR code with your phone","874472715":"Your funds will remain in your existing MT5 account(s).","874484887":"Take profit must be a positive number.","875101277":"If I close my web browser, will Deriv Bot continue to run?","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","876826584":"Enter a valid phone number, including the country code (e.g. +15417541234).","879014472":"Reached maximum number of decimals","879647892":"You may sell the contract up until 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","880552407":"Official residence declaration or affidavit","881963105":"(XAUUSD, XAGUSD)","882423592":"The amount that you stake for the first trade. Note that this is the minimum stake amount.","885065431":"Get a Deriv account","888274063":"Town/City","888924866":"We don’t accept the following inputs for:","890299833":"Go to Reports","891337947":"Select country","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","896790627":"A US birthplace","897597439":"Changes saved.","898457777":"You have added a Deriv Financial account.","898904393":"Barrier:","899342595":"NIN","900646972":"page.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","903702825":"DC has been turned off.","904696726":"API token","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","906789729":"Your verification documents were already used for another account.","907680782":"Proof of ownership verification failed","907734435":"This contract starts on","909272635":"Financial - SVG","910888293":"Too many attempts","911048905":"(BTCUSD, ETHUSD)","912257733":"The workspace will be reset to the default strategy and any unsaved changes will be lost. <0>Note: This will not affect your running bot.","912406629":"Follow these steps:","912967164":"Import from your computer","915735109":"Back to {{platform_name}}","916579917":"Try now","918447723":"Real","920125517":"Add demo account","921857297":"Enter a value from 0 to {{ value }}.","921901739":"- your account details of the bank linked to your account","922313275":"You're back online","924046954":"Upload a document showing your name and bank account number or account details.","924912760":"Your document appears to be a digital document.","929608744":"You are unable to make withdrawals","930255747":"Please enter your {{document_name}}. ","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","936393760":"You receive a <0>payout at <1>expiry if the spot price never touches or breaches the <2>barrier during the contract period. If it does, your contract will be terminated early.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938947787":"Withdrawal {{currency}}","938988777":"High barrier","940624996":"Moving strategies to Deriv Bot","942015028":"Step 500 Index","944499219":"Max. open positions","945532698":"Contract sold","945753712":"Back to Trader’s Hub","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947602200":"Save this strategy as an XML file from Deriv Bot for faster re-imports.","947704973":"Reverse D’Alembert","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","958503488":"Search markets on ","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961266215":"140+","961327418":"My computer","961692401":"Bot","962251615":"If you want to adjust your self-exclusion limits, <0>contact us via live chat.","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","966781743":"Session Expired","968576099":"Up/Down","969858761":"Principle 1: Strategy aims to potentially make one unit of profit per session","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975608902":"To trade CFDs, get a Deriv Apps account first.","975950139":"Country of Residence","977647549":"Note: You can use this password for all your {{platform}} accounts.","977929335":"Go to my account settings","979713491":"Zero Spread BVI","980050614":"Update now","981138557":"Redirect","981568830":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via <0>live chat.","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","983295075":"Why can't I see the funds on my card/e-wallet balance after I've made a withdrawal?","983423404":"<0>Step {{step}}/2:  {{title}}","983451828":"2. Select the asset and trade type.","984175243":"Expand Blocks","986565137":"We've received your proof of income","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","988064913":"4. Come back to Deriv Bot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","989840364":"You’re under legal age.","990739582":"170+","992294492":"Your postal code is invalid","992677950":"Logging out on other devices","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","997276809":"I confirm that the name and date of birth above match my chosen identity document","997311089":"Change my password","999008199":"text","1001160515":"Sell","1002989598":"iOS: iCloud keychain.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006069082":"The objective of Martingale strategy is to take advantage of consecutive successful trades and maximise potential profits from them. This strategy is beneficial only if there are consecutive successful trades. Therefore, it is important to set a maximum stake to secure all the potential profits gained from a number of consecutive successful trades, or you could lose all the profits you have accumulated, including your initial stake. For example, if your goal is to maximise profits within 2 consecutive successful trades, you set a maximum stake of 2 USD, given your initial stake is 1 USD. Similarly, if your goal is to maximise profits within 3 consecutive successful trades, you set a maximum stake of 4 USD, given your initial stake is 1 USD.","1006458411":"Errors","1006664890":"Silent","1008151470":"Unit: The number of units that are added in the event of successful trades or the number of units removed in the event of losing trades. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1011424042":"{{text}}. stake<0/>","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1014469655":"Send new link{{next_email_attempt_timestamp}}","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1017081936":"If you select “<0>Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1021090237":"Upgrade your <0>{{account_1}} <1/>and <0>{{account_2}} {{platform}} account(s)","1021679446":"Multipliers only","1022923711":"Invalid code. Try again.","1022934784":"1 minute","1022971288":"Payout per pip","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1024740916":"0.2 pips","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1026289179":"Trade on the go","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1029641567":"{{label}} must be less than 30 characters.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1033253221":"Confirm your identity to make a withdrawal.","1035893169":"Delete","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039428638":"EU regulation","1039476188":"The size used to multiply the stake after a losing trade for the next trade.","1039755542":"Use a few words, avoid common phrases","1040472990":"1. Go to Bot Builder.","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1047644783":"Enable screen lock on your device.","1047881477":"Unfortunately, your browser does not support the video.","1048687543":"Labuan Financial Services Authority","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050063303":"Videos on Deriv Bot","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050433789":"Enter a valid phone number (e.g. +15417541234).","1050844889":"Reports","1052779010":"You are on your demo account","1052921318":"{{currency}} Wallet","1053153674":"Jump 50 Index","1053159279":"Level of education","1053556481":"Once you submit your complaint, we will send you an acknowledgement email to confirm that we have received it.","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057519018":"4. If a trade ends in a profit, the stake for the following trade will be reset to the initial stake amount of 1 USD.","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1058804653":"Expiry","1058905535":"Tutorial","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1062423382":"Explore the video guides and FAQs to build your bot in the tutorials tab.","1062536855":"Equals","1062569830":"The <0>name on your identity document doesn't match your profile.","1065498209":"Iterate (1)","1065766135":"You have {{remaining_transfers}} {{transfer_text}} remaining for today.","1066235879":"Transferring funds will require you to create a second account.","1066459293":"4.3. Acknowledging your complaint","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1070323991":"6. If consecutive successful trades were to happen, the stake would follow a sequence of adjustment from 1 to 3, then 2, and 6 units of initial stake. After 4 consecutive successful trades, it completes one cycle and then the strategy will repeat itself for another cycle. If any trade results in a loss, your stake will reset back to the initial stake for the next trade.","1070624871":"Check proof of address document verification status","1073261747":"Verifications","1073611269":"A copy of your identity document (e.g. identity card, passport, driver's license)","1073711308":"Trade closed","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078189922":"You can make a new deposit once the verification of your account is complete.","1078221772":"Leverage prevents you from opening large positions.","1078303105":"Stop out","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1087112394":"You must select the strike price before entering the contract.","1088031284":"Strike:","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1089436811":"Tutorials","1089687322":"Stop your current bot?","1090041864":"The {{block_type}} block is mandatory and cannot be deleted/disabled.","1090802140":"Additional Information","1091617520":"Type of document","1095295626":"<0>•The Arbiter for Financial Services will determine whether the complaint can be accepted and is in accordance with the law.","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100133959":"National ID","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109182113":"Note: Deal cancellation is only available for Volatility Indices on Multipliers.","1109217274":"Success!","1110102997":"Statement","1111743543":"Stop loss (Multiplier)","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113227831":"Yes, you can. However, there are limits on your account, such as maximum number of open positions and maximum aggregate payouts on open positions. So, just keep these limits in mind when opening multiple positions. You can find more info about these limits at Settings > Account limits.","1113292761":"Less than 8MB","1114679006":"You have successfully created your bot using a simple strategy.","1117281935":"Sell conditions (optional)","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1121050010":"Transaction fee: {{amount}} {{currency}}","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1124382808":"Please enter the expiry time in the format \"HH:MM\".","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127224297":"Sorry for the interruption","1127884488":"cTrader MacOS app","1128139358":"How many CFD trades have you placed in the past 12 months?","1128321947":"Clear All","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1133651559":"Live chat","1134879544":"Example of a document with glare","1134883120":"Use your Deriv account email and password to log in to cTrader.","1138037263":"Customise your investment period and price levels to fit your trading goals.","1138126442":"Forex: standard","1140585027":"Invalid Input {{ input_value }}.","1142023511":"Select the type of document:","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1144740912":"Cancel phone number verification?","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1150637063":"*Volatility 150 Index and Volatility 250 Index","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1155143434":"By clicking on <0>Next you agree to move your {{platform}} {{type}} {{from_account}} account(s) under <2/>Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","1155626418":"below","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163771266":"The third block is <0>optional. You may use this block if you want to sell your contract before it expires. For now, leave the block as it is. ","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166023941":"New password","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1166916934":"Demo Standard SVG","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1171765024":"Step 3","1171961126":"trade parameters","1172230903":"• Stop loss threshold: Use this variable to store your loss limit. You can assign any amount you want. Your bot will stop when your losses hits or exceeds this amount.","1172524677":"CFDs Demo","1173957529":"Go to ‘Account Settings’ on Deriv.","1174186184":"Ensure your information is correct.","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174689133":"3. Set your trade parameters and hit Run.","1174748431":"Payment channel","1175183064":"Vanuatu","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1183448523":"<0>We're setting up your Wallets","1184968647":"Close your contract now or keep it running. If you decide to keep it running, you can check and close it later on the ","1186687280":"Question {{ current }} of {{ total }}","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189249001":"4.1. What is considered a complaint?","1189368976":"Please complete your personal details before you verify your identity.","1190226567":"Standard - Vanuatu","1190440927":"Landline phone bill","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197649109":"No results for {{searchTerm}}","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1203380736":"The D’Alembert strategy is less risky than Martingale, but you can still determine how long your funds will last with this strategy before trading. Simply use this formula.","1204202371":"No open positions","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1204459171":"Your existing <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s) will remain accessible.","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1221947449":"Enter the 6-digit code sent to you via {{phone_verification_type}} at {{users_phone_number}}. <0>","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1223993374":"For entry spot, we use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers.","1225874865":"The stake adjustment: target session profit (1 USD) - current session profit (0 USD) = 1 USD","1225962809":"Low Barrier","1227074958":"random fraction","1227132397":"4. For trades that result in a loss, there are two outcomes. If it was traded at the initial stake, the next trade will remain at the same amount as the strategy trades minimally at the initial stake, see A2. If it was traded with a higher amount, the stake for the next trade would be reduced by 2 USD, see A3.","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233178579":"Our customers say","1233300532":"Payout","1233910495":"If you select \"<0>Down\", your total profit/loss will be the percentage decrease in the underlying asset price, times the multiplier and stake, minus commissions.","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1235112380":"For a Put option, you receive a payout if the final price is lower than the strike price.","1236527126":"(Transaction fee: {{transaction_fee}} {{currency_symbol}})","1237330017":"Pensioner","1238311538":"Admin","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1240688917":"Glossary","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1242288838":"Hit the checkbox above to choose your document.","1242994921":"Click here to start building your Deriv Bot.","1243064300":"Local","1243287470":"Transaction status","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250113042":"This device doesn't support passkeys.","1250495155":"Token copied!","1252669321":"Import from your Google Drive","1253531007":"Confirmed","1253636052":"MetaTrader5 web terminal","1254565203":"set {{ variable }} to create list with","1255827200":"You can also import or build your bot using any of these shortcuts.","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259145708":"Let’s try again. Choose another document and enter the corresponding details.","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1260321794":"active","1262255038":"Step 300 Index","1264096613":"Search for a given string","1265317149":"A recent utility bill (e.g. electricity, water or gas) or recent bank statement or government-issued letter with your name and address.","1265704976":"","1266728508":"Proof of income verification passed","1269296089":"Let's build a Bot!","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274380814":"Your payout is equal to the <0>payout per pip multiplied by the difference, <1>in pips, between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","1274819385":"3. Complaints and Disputes","1276660852":"Submit your proof of identity","1279937041":"<0>Note: Some complex strategies might face issues in the Bot Builder. If you have questions, contact us via <1/>.","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1283418744":"Additional features are available to manage your positions: “<0>Take profit”, “<1>Stop loss” and “<2>Deal cancellation” allow you to adjust your level of risk aversion.","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286351940":"Your {{from_account}} account will be archived after 60 days of inactivity. You can still access your trade history until the account is archived.","1286384690":"If you select “<0>Even”, you will win the payout if the last digit of the last tick is an even number (i.e. 2, 4, 6, 8, or 0).","1286507651":"Close identity verification screen","1288965214":"Passport","1289146554":"British Virgin Islands Financial Services Commission","1289650867":"The Oscar’s Grind strategy is designed to potentially gain a modest yet steady profit in each trading session. This strategy splits trades into sessions and has three principles.","1290525720":"Example: ","1291997417":"Contracts will expire at exactly 23:59:59 GMT on your selected expiry date.","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294553728":"We’re unable to verify the document you provided because it appears to be a blank image. Please try again or upload another document.","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1298254025":"Standard - BVI","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1305217290":"Upload the back of your identity card.","1306976251":"Standard SVG","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314572331":"Your document failed our verification checks.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320715220":"<0>Account closed","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324922837":"2. The new variable will appear as a block under Set variable.","1325514262":"(licence no. MB/18/0024)","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1339565304":"Deposit now to start trading","1339613797":"Regulator/External dispute resolution","1340286510":"The bot has stopped, but your trade may still be running. You can check it on the Reports page.","1341840346":"View in Journal","1341921544":"Trading accounts and funds","1344696151":"Forex, stocks, stock indices, commodities, cryptocurrencies and synthetic indices.","1346038489":"Should be less than 70.","1346204508":"Take profit","1346339408":"Managers","1346947293":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there's enough light where you are and that your entire face is in the frame.","1347071802":"{{minutePast}}m ago","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1352234202":"Last {{positionsCount}} contracts:","1352413406":"Define your trade options, such as accumulator and stake.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357213116":"Identity card","1358543466":"Not available","1358543748":"enabled","1360929368":"Add a Deriv account","1362029761":"Exploring the Reverse Martingale strategy in Deriv Bot","1362578283":"High","1363645836":"Derived FX","1363675688":"Duration is a required field.","1364879837":"The verification is passed but the personal info is not available to compare.","1364958515":"Stocks","1366244749":"Limits","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1370435892":"Verify the address on this page before each deposit to avoid losing funds. Occasionally, the address could be updated.","1370647009":"Enjoy higher daily limits","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1373949314":"The Reverse Martingale strategy involves increasing your stake after each successful trade and resets to the initial stake for every losing trade as it aims to secure potential profits from consecutive wins.","1374627690":"Max. account balance","1374902304":"Your document appears to be damaged or cropped.","1376329801":"Last 60 days","1378419333":"Ether","1380349261":"Range","1383017005":"You have switched accounts.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396217283":"{{transaction_amount}} {{currency_symbol}}","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1402224124":"Hit the button below, and we'll email you a verification link.","1402300547":"Lets get your address verified","1403085197":"Boost your trading strategy with Accumulators.","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1407191858":"DTrader","1408844944":"Click the plus icon to extend the functionality of this block.","1410016796":"Below spot:","1411373212":"Strong passwords contain at least 8 characters. combine uppercase and lowercase letters, numbers, and symbols.","1411419173":"Growth Rate: {{ accumulator }}","1412405902":"See important notes","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1414366321":"An uppercase letter","1414918420":"We'll review your proof of identity again and will give you an update as soon as possible.","1415006332":"get sub-list from first","1415513655":"Download cTrader on your phone to trade with the Deriv cTrader account","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1416521695":"Positions","1417558007":"Max. total loss over 7 days","1417907460":"No problem! Your passkey still works.","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1419330165":"Forex, stocks, stock indices, commodities, cryptocurrencies, ETFs and synthetic indices","1421046084":"Setup your account","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1423296980":"Enter your SSNIT number","1424741507":"See more","1424763981":"1-3-2-6","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1428657171":"You can only make deposits. Please contact us via <0>live chat for more information.","1430221139":"Verify now","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434767075":"Get started on Deriv Bot","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1437529196":"Payslip","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1444066971":"It seems you’ve submitted this document before. Upload a new document.","1444843056":"Corporate Affairs Commission","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1447698999":"Withdrawals can be cancelled if they're still in the 'Requested' status (you can check your status under Pending payout). Once the status changes to 'Authorised', in 'Progress', or 'Processed', cancellation isn't possible.","1449462402":"In review","1451838304":"New features for developers.","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1454406889":"Choose <0>until as the repeat option.","1454648764":"deal reference id","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1458160370":"Enter your {{platform}} password to add a {{platform_name}} {{account}} {{jurisdiction_shortcode}} account.","1459761348":"Submit proof of identity","1461323093":"Display messages in the developer’s console.","1462238858":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467880277":"3. General queries","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468508098":"Slippage happens when the asset price changes by the time it reaches our servers.","1469133110":"cTrader Windows app","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1470565177":"Article of association","1471008053":"Deriv Bot isn't quite ready for real accounts","1471070549":"Can contract be sold?","1471741480":"Severe error","1473369747":"Synthetics only","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1480915523":"Skip","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490509675":"Options accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1495294225":"Barrier set at specific price.","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503419760":"Swap-free CFDs on selected financial and derived instruments.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505927599":"Our servers hit a bump. Let’s refresh to move on.","1507554225":"Submit your proof of address","1509559328":"cTrader","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1513771077":"We're processing your withdrawal.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1518404516":"This block gives you a list of the cuurent stats of the last 1000 tick values.","1519490251":"Back to personal details","1520332426":"Net annual income","1521546070":"Download Block","1524636363":"Authentication failed","1526012495":"This could be because:","1526483456":"2. Enter a name for your variable, and hit Create. New blocks containing your new variable will appear below.","1527251898":"Unsuccessful","1527664853":"Your payout is equal to the payout per point multiplied by the difference between the final price and the strike price.","1527906715":"This block adds the given number to the selected variable.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534796105":"Gets variable value","1537192641":"Unable to process your request","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1540585098":"Decline","1541508606":"Looking for CFDs? Go to Trader's Hub","1541770236":"The 1-3-2-6 strategy aims to maximise potential profits with four consecutive successful trades. One unit is equal to the amount of the initial stake. The stake will adjust from 1 unit to 3 units after the first successful trade, then to 2 units after your second successful trade, and to 6 units after the third successful trade. The stake for the next trade will reset to the initial stake if there is a losing trade or a completion of the trade cycle.","1541969455":"Both","1542742708":"Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548185597":"Step 200 Index","1549098835":"Total withdrawn","1551172020":"AUD Basket","1551689907":"Enhance your trading experience by upgrading your <0/><1>{{platform}} {{type}} {{from_account}} account(s).","1553026987":"You receive a <0>payout at <0>expiry if the spot price never breaches the <0>barrier during the contract period. If it does, your contract will be terminated early.","1556391770":"You cannot make a withdrawal as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1560356933":"Official letter issued by the government or solicitor","1562374116":"Students","1565273609":"Accumulators is now on Deriv Bot","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1566717687":"We also provide a guide on the Tutorial tab to show you how you can build and execute a simple strategy.","1567745852":"Bot name","1569527365":"Verification failed. Resubmit your details.","1569624004":"Dismiss alert","1570484627":"Ticks list","1570495551":"For exit spot, the latest asset price when the trade closure is processed by our servers.","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1571739707":"View your positions here.","1572504270":"Rounding operation","1572982976":"Server","1573429525":"Call/Put","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1578204427":"Your payout is equal to the <0>payout per point multiplied by the distance between the <0>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","1580498808":"Multiple faces found","1582567078":"Specify your trade parameters.","1584109614":"Ticks String List","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589148299":"Start","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1589863913":"These are the trade parameters used for D’Alembert strategy in Deriv Bot.","1590400723":"Total assets in all your accounts","1591224893":"Make quick adjustments (5/6)","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1595295238":"3. Use a logic block to check if Total profit/loss is more than the Stop loss threshold amount. You can find the Total profit/loss variable under Analysis > Stats on the Blocks menu on the left. Your bot will continue to purchase new contracts until the Total profit/loss amount exceeds the Stop loss threshold amount.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1598789539":"Here are some common card/e-wallet errors and their solutions:","1599743312":"An example of Reverse Martingale strategy","1602894348":"Create a password","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1612638396":"Cancel your trade at any time within a specified timeframe.","1615897837":"Signal EMA Period {{ input_number }}","1618652381":"For instance, if a trader has a loss threshold (B) is 1000 USD, with an initial stake (s) is 1 USD, and the Martingale multiplier (m) is 2, the calculation would be as follows:","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1622944161":"Now, go to the <0>Restart trading conditions block.","1623706874":"Use this block when you want to use multipliers as your trade type.","1623723710":"<0>Boost your trading strategy with Accumulators","1628981793":"Can I trade cryptocurrencies on Deriv Bot?","1630317389":"If you select “<0>No Touch”, you win the payout if the market never touches the barrier at any time during the contract period.","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1633661992":"Tick {{current_tick}}/{{tick_count}}","1634016345":"2. If the trade is successful, this strategy will automatically adjust your stake to 3 units of your initial stake for the next trade. In this case, the stake adjustment is 3 units and the initial stake is 1 USD, hence the next trade will start at 3 USD.","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1635628424":"An envelope with your name and address.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644636153":"Transaction hash: <0>{{value}}","1644703962":"Looking for CFD accounts? Go to Trader's Hub","1644864436":"You’ll need to authenticate your account before requesting to become a professional client. <0>Authenticate my account","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1648938920":"Netherlands 25","1649239667":"2. Under the Blocks menu, you'll see a list of categories. Blocks are grouped within these categories. Choose the block you want and drag them to the workspace.","1650963565":"Introducing Wallets","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653064273":"TP history","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1653999225":"Forex: major/minor","1654365787":"Unknown","1654529197":"Purchase condition","1654721858":"Upload anyway","1655372864":"Your contract will expire on this date (in GMT), based on the end time you’ve selected.","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1659327870":"How do I cancel my withdrawal?","1659352235":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited, regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","1661126218":"Expiry date:","1665272539":"Remember: You cannot log in to your account until the selected date.","1665718170":"The document must contain a letterhead.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1669062316":"The payout at expiry is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1676549796":"Dynamic Leverage","1677027187":"Forex","1679743486":"1. Go to Quick strategy and select the strategy you want.","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1681765749":"Martingale formula 2","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683383299":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the accumulator trade type.","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1690746575":"Enhance your trading experience by upgrading your <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s).","1691335819":"To continue trading with us, please confirm who you are.","1691536201":"If you choose your duration in number of ticks, you won’t be able to terminate your contract early.","1691765860":"- Negation","1692912479":"Deriv MT5, Deriv X","1693614409":"Start time","1694517345":"Enter a new email address","1694888104":"The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 70.78% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.","1696190747":"Trading inherently involves risks, and actual profits can fluctuate due to various factors, including market volatility and other unforeseen variables. As such, exercise caution and conduct thorough research before engaging in any trading activities.","1697529334":"Important: Your <0>{{platform}} {{existing_account}} account.","1698624570":"2. Hit Ok to confirm.","1699606318":"You've reached the limit of uploading your documents.","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1702339739":"Common mistakes","1703091957":"We collect information about your employment as part of our due diligence obligations, as required by anti-money laundering legislation.","1703712522":"Your payout is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1704656659":"How much experience do you have in CFD trading?","1707264798":"Why can't I see deposited funds in my Deriv account?","1707581467":"sec","1707758392":"Step 100 Index","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1711013665":"Anticipated account turnover","1711016273":"<0>This may take up to 2 minutes. During this time, some services may be unavailable.","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1713633297":"3. If the second trade is also successful, your stake will adjust to 2 USD or 2 units of the initial stake for the next trade.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1715680813":"Your contract will expire at exactly 23:59:59 GMT +0 on your selected expiry date.","1716142274":"Send code via {{phone_verification_type}}","1717023554":"Resubmit documents","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722056905":"The document you provided is not supported for your country. Please provide a supported document for your country.","1722888575":"{{mt5_migration_error}}","1723390945":"Your demo {{deriv}} {{type}} account is ready.","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724367774":"You can make a funds transfer once the verification of your account is complete.","1724696797":"You are limited to one fiat account only.","1725873563":"Trading disabled","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732212492":"Explore trade types (1/6)","1732891201":"Sell price","1733711201":"Regulators/external dispute resolution","1734185104":"Balance: %1","1734264460":"Disclaimer","1734521537":"The document you provided appears to be two different types. Please try again or provide another document.","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738094481":"<0>Duration: Ticks 1","1738206798":"Above spot","1738611950":"About Reverse Martingale","1738681493":"Remove your glasses, if necessary","1739086943":"Wall Street 30","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1741006997":"Yesterday","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743679873":"If you select <0>\"Call\", you’ll earn a <1>payout if the <1>final price is above the <1>strike price at <1>expiry. Otherwise, you won’t receive a payout.","1743902050":"Complete your financial assessment","1744509610":"Just drag the XML file from your computer onto the workspace, and your bot will be loaded accordingly. Alternatively, you can hit Import in Bot Builder, and choose to import your bot from your computer or from your Google Drive.","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747652849":"If you select the take profit feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1753082252":"This article explores the strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as Forex, Commodities, and Derived Indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","1753183432":"We take all complaints seriously and aim to resolve them as quickly and fairly as possible. If you are unhappy with any aspect of our service, please let us know by submitting a complaint using the guidance below:","1753226544":"remove","1753975551":"Upload passport photo page","1754256229":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_ctrader }} transfers between your Deriv and {{platform_name_ctrader}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1756678453":"break out","1761038852":"Let’s continue with providing proofs of address and identity.","1761254001":"A number","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1763979823":"Please adjust your stake.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1768293340":"Contract value","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1770041368":"Experience safer logins","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772396880":"The date of birth on your document doesn’t match your profile.","1777847421":"This is a very common password","1778893716":"Click here","1779144409":"Account verification required","1779519903":"Should be a valid number.","1779801832":"Please update your password accordingly.","1779872677":"Download e-book","1780442963":"Scan the QR code to download {{ platform }}.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1780805104":"Only send {{currency_name}} ({{currency_code}}) to this address.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783526986":"How do I build a trading bot?","1783740125":"Upload your selfie","1785298924":"D’Alembert formula 1","1786644593":"Supported formats: JPEG, JPG, PNG, PDF, and GIF only","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788515547":"<0/>For more information on submitting a complaint with the Office of the Arbiter for Financial Services, please <1>see their guidance.","1788966083":"01-07-1999","1789273878":"Payout per point","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1791432284":"Search for country","1791926890":"If you select “<0>Higher”, you win the payout if the exit spot is strictly higher than the barrier.","1791971912":"Recent","1792037169":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your {{document_name}}.","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796270910":"{{days}} days ago","1796787905":"Please upload the following document(s).","1797139903":"Download your strategy in XML format and import it to Deriv Bot.","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801270786":"Ready to automate your trading strategy without writing any code? You’ve come to the right place.","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806017862":"Max. ticks","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811138041":"Enter a value from {{ value }} to 9.","1811343027":"2. Select your Martingale multiplier. In this example, it is 2.","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812006199":"Identity verification","1812582011":"Connecting to server","1813380455":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}} and {{platform_name_smarttrader}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","1813700208":"Boom 300 Index","1815034361":"alphabetic","1815905959":"DTrader, DBot, SmartTrader, and Binary Bot","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1821818748":"Enter Driver License Reference number","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1824292864":"Call","1827607208":"File not uploaded.","1828370654":"Onboarding","1828856382":"If you select “<0>Differs”, you will win the payout if the last digit of the last tick is not the same as your prediction.","1830520348":"{{platform_name_dxtrade}} Password","1831847842":"I confirm that the name and date of birth above match my chosen identity document (see below)","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1839021527":"Please enter a valid account number. Example: CR123456789","1840721160":"Deriv MT5 latest password requirements","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1843336754":"Select document","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845598565":"The second session concludes upon reaching the aim of one unit of potential profit per session, equivalent to 1 USD. If trading continues, a new session will commence again.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846588117":"Your contract will be closed automatically when your loss reaches {{stop_out_percentage}}% of your stake.","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1851052337":"Place of birth is required.","1851776924":"upper","1854480511":"Cashier is locked","1854874899":"Back to list","1854909245":"Multiplier:","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1856755117":"Pending action required","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1865160710":"Remove","1865525612":"No recent transactions.","1866244589":"The entry spot is the first tick for High/Low Ticks.","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871377550":"Do you offer pre-built trading bots on Deriv Bot?","1871664426":"Note","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874737957":"To trade multipliers, get a Deriv Apps account first.","1874756442":"BVI","1875090343":"Choose a date range","1875702561":"Load or build your bot","1876015808":"Social Security and National Insurance Trust","1876325183":"Minutes","1876333357":"Tax Identification Number is invalid.","1877225775":"Your proof of address is verified","1877832150":"# from end","1878172674":"No, we don't. However, you'll find quick strategies on Deriv Bot that'll help you build your own trading bot for free.","1878189977":"The Martingale strategy involves increasing your stake after each loss to recoup prior losses with a single successful trade.","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1879651964":"<0>Pending verification","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880227067":"Submit passport photo pages","1880377568":"An example of D’Alembert strategy","1880875522":"Create \"get %1\"","1881018702":"hour","1881142897":"Tick Delayed run","1881380263":"Total assets in your account.","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887257727":"R is the number of rounds a trader can sustain given a specific loss threshold.","1887925280":"The document must be recent and include your name and address:","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1893869876":"(lots)","1894667135":"Please verify your proof of address","1896269665":"CFDs on derived and financial instruments.","1899898605":"Maximum size: 8MB","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1904665809":"The Reverse Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","1905032541":"We're now ready to verify your identity","1905468265":"Due to business changes, Senegal client accounts are to be closed. Withdraw any remaining funds by {{date}}.","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906213000":"Our system will finish any Deriv Bot trades that are running, and Deriv Bot will not place any new trades.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907423697":"Earn more with Deriv API","1907499654":"Deriv App","1907899646":"Take profit can't be adjusted for ongoing accumulator contracts.","1908023954":"Sorry, an error occurred while processing your request.","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1910533633":"Get a real account to deposit money and start trading.","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1916129921":"Reverse Martingale","1917178459":"Bank Verification Number","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919296368":"2. Select your unit. In this example, it is 2 units or 2 USD.","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1924365090":"Maybe later","1924765698":"Place of birth*","1927316982":"Check your positions (6/6)","1928930389":"GBP/NOK","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1934450653":"For <0>Contract type, set it to Both.","1938327673":"Deriv {{platform}} <0>{{is_demo}}","1939014728":"How do I remove blocks from the workspace?","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1947826019":"OTP limit reached","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1950469083":"Due to business changes, client accounts in Senegal are to be closed. Deposits and trading are disabled. Withdraw your funds by {{date}}.","1955219734":"Town/City*","1957759876":"Upload identity document","1958788790":"This is the amount you’ll receive at expiry for every point of change in the underlying price, if the spot price never touches or breaches the barrier throughout the contract duration.","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960005187":"Follow these steps to smoothly transfer your strategies","1960240336":"first letter","1964165648":"Connection lost","1965358881":"Step 2 of 3: Confirm your phone number","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1966855430":"Account already exists","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1970060713":"You’ve successfully deleted a bot.","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973910243":"Manage your accounts","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1978218112":"Google Authenticator","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982790875":"Upgrade your <0/><1>{{account_title}} {{platform}} account(s)","1982796981":"Declarations","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983358602":"This policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","1983387308":"Preview","1983480826":"Sign in","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986322868":"When your loss reaches or exceeds this amount, your trade will be closed automatically.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991055223":"View the market price of your favourite assets.","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1997313835":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <0>previous spot price. Otherwise, you lose your stake and the trade is terminated.","1999213036":"Enhanced security is just a tap away.","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2001361785":"1. Start with the initial stake. Let’s say 1 USD.","2001717886":"Demo Standard","2004052487":"Estimating the lifespan of your trades","2007028410":"market, trade type, contract type","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2012139674":"Android: Google password manager.","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2015878683":"Need help? Contact us via <0>live chat","2017672013":"Please select the country of document issuance.","2018044371":"Multipliers let you trade with leverage and limit your risk to your stake. <0>Learn more","2018987868":"in ","2019596693":"The document was rejected by the Provider.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023546580":"Your account will be available for trading once the verification of your account is complete.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027441253":"Why do we collect this?","2027625329":"Simple Moving Average Array (SMAA)","2027638150":"Upgrade","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2031132962":"Bank statement","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037906477":"get sub-list from #","2038562422":"TIN is required.","2039198937":"Maximum stake: The maximum amount you are willing to pay to enter a single trade. The stake for your next trade will reset to the initial stake if it exceeds this value. This is an optional risk management parameter.","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2045778609":"Invalid stake","2046273837":"Last tick","2046577663":"Import or choose your bot","2048110615":"Email address*","2048134463":"File size exceeded.","2049386104":"We need you to submit these in order to get this account:","2050170533":"Tick list","2051249190":"Add funds and start trading","2051558666":"View transaction history","2051596653":"Demo Zero Spread BVI","2052022586":"To enhance your MT5 account security we have upgraded our password policy.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2056369950":"<0>To complete your Wallet setup, log out and then log in again.","2056526458":"Get real account","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2059365224":"Yes, you can get started with a pre-built bot using the Quick strategy feature. You’ll find some of the most popular trading strategies here: Martingale, D'Alembert, and Oscar's Grind. Just select the strategy, enter your trade parameters, and your bot will be created for you. You can always tweak the parameters later.","2059753381":"Why did my verification fail?","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063196399":"<0>Tenancy agreement: Valid and current agreement.","2063812316":"Text Statement","2063890788":"Cancelled","2066978677":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0 /> {{opening_date}}.","2067903936":"Driving licence","2070002739":"Don’t accept","2070345146":"When opening a leveraged CFD trade.","2070518923":"Import your bot or tap Quick Strategies to choose from the ready-to-use bot templates.","2070752475":"Regulatory Information","2070858497":"Your document appears to be a screenshot.","2071043849":"Browse","2074207096":"How to create a passkey?","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2074713563":"4.2. Submission of a complaint","2077055596":"We’re currently performing server maintenance. Service may be affected.","2079925695":"Unit: The number of units that are added in the event of a trade resulting in loss or the number of units removed in the event of a trade resulting in profit. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2081622549":"Must be a number higher than {{ min }}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086048243":"Certificate of incorporation","2086383634":"You are adding your {{platform}} {{product}} account under {{company}}, regulated by the British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114).","2086792088":"Both barriers should be relative or absolute","2087416013":"Resend code{{resendCode}}","2088344208":"Forex (standard), stock indices, commodities, cryptocurrencies, stocks, ETFs, synthetic indices, basket indices and derived FX","2088735355":"Your session and login limits","2089087110":"Basket indices","2089395053":"Unit","2089581483":"Expires on","2090650973":"The spot price may change by the time your order reaches our servers. When this happens, your payout may be affected.","2091671594":"Status","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097815211":"Number of rounds (R) = 10","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2100912278":"4. If a trade ends in a loss, the stake for the following trade will be reset to the initial stake amount of 1 USD.","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104364680":"Please switch to your demo account to run your Deriv Bot.","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2107882050":"The back of your document appears to be missing. Please include both sides of your identity document.","2109845480":"Phone number verified","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2112788361":"Analyse with charts (4/6)","2113321581":"Add a Deriv Gaming account","2114766645":"Some trade types are unavailable for {{symbol}}.","2115223095":"Loss","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117454014":"In your crypto wallet, select the <0>{{network_name}} network when transferring to Deriv. Incorrect transfers may result in the loss of funds.","2117489390":"Auto update in {{ remaining }} seconds","2118292085":"<0>Note: You’ll receive an email when your deposit starts being processed.","2119449126":"Example output of the below example will be:","2119710534":"FAQ","2121227568":"NEO/USD","2122152120":"Assets","2127564856":"Withdrawals are locked","2128250969":"Use the same address that appears on your proof of address (utility bill, bank statement, etc.).","2129807378":"Update profile","2133075559":"This means after 10 rounds of consecutive losses, this trader will lose 100 USD. This reaches the loss threshold of 100 USD, stopping the bot.","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2136480755":"Some details in your document appear to be invalid, missing, or unclear.","2137645254":"If you select “<0>Call”, you’ll earn a <1>payout if the <2>final price is above the <3>strike price at <4>expiry. Otherwise, you won’t receive a payout.","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146698770":"Pro tip: You can also click and drag out the desired block","2146751355":"We use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers for Volatility Index, Basket Indices, Jump Indices and Crash/Boom Indices.","2146892766":"Binary options trading experience","2147244655":"How do I import my own trading bot into Deriv Bot?","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-826420669":"Make sure","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-1120954663":"First name*","-1659980292":"First name","-962979523":"Your {{ field_name }} as in your identity document","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1702919018":"Second line of address (optional)","-1315410953":"State/Province","-2040322967":"Citizenship","-344715612":"Employment status*","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-946282997":"Additional information","-1315571766":"Place of birth","-789291456":"Tax residence*","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1387062433":"Account opening reason","-222283483":"Account opening reason*","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-684271315":"OK","-1292808093":"Trading Experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-816263501":"Only letters, numbers, space and hyphen are allowed.","-755626951":"Complete your address details","-1024240099":"Address","-1534917661":"Select your preferred currency","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-1030759620":"Government Officers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-654781670":"Primary","-1717373258":"Secondary","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-477761028":"Voter ID","-1466346630":"CPF","-1161338910":"First name is required.","-1629185446":"Enter no more than 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-1775687235":"You should enter {{min}}-{{max}} characters.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-212167954":"Tax Identification Number is not properly formatted.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-204765990":"Terms of use","-739367071":"Employed","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-1696856986":"You should enter 9-20 numbers.","-1995979930":"First line of address is required.","-703454156":"Please enter a Postal/ZIP code under 20 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-379642178":"Enter a valid phone number.","-1103497546":"Tax return","-700600899":"Business proof of address","-1073862586":"Memorandum","-1823328095":"Authorization letter","-397487797":"Enter your full card number","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-612752984":"These are default limits that we apply to your accounts.","-1498206510":"Account limits","-1411635770":"Learn more about account limits","-1340125291":"Done","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-173346300":"Maximum daily turnover","-138380129":"Total withdrawal allowed","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-506122621":"Please take a moment to update your information now.","-1106259572":"Don't know your tax identification number? <1 />Click <0>here to learn more.","-252665911":"Place of birth{{required}}","-859814496":"Tax residence{{required}}","-237940902":"Tax Identification number{{required}}","-919191810":"Please fill in tax residence.","-270569590":"Intended use of account{{required}}","-2120290581":"Intended use of account is required.","-594456225":"Second line of address","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-1076138910":"Trade","-1666909852":"Payments","-488597603":"Trading information","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-2087317410":"Oops, something went wrong.","-1883688868":"Select a document","-184202848":"Upload file","-863586176":"Drag and drop a file or click to browse your files.","-370334393":"Click here to browse your files.","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-1117345066":"Choose the document type","-1634507018":"Enter your {{document_name}}","-1237846864":"Verify again","-39187636":"{{index}}.","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1113902570":"Details","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-1451334536":"Continue trading","-251603364":"Your document for proof of address is expired. <0/>Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-2145244263":"This field is required","-1500958859":"Verify","-839094775":"Back","-1813671961":"Your identity verification failed because:","-2097808873":"We were unable to verify your ID with the details you provided. ","-1652371224":"Your profile is updated","-504784172":"Your document has been submitted","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-155705811":"A clear colour photo or scanned image","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-1949501500":"First, enter your {{label}}.","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-841187054":"Try Again","-856213726":"You must also submit a proof of address.","-552371330":"We were unable to verify your income. <0 /> Please check the email we've sent you for further information.","-978467455":"Limit reached","-361316523":"You have reached the maximum number of allowed attempts for submitting proof of income. <0 /> Please check the email we've sent you for further information.","-1785967427":"We'll review your documents and notify you of its status within 7 working days.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-47815161":"Please include at least 1 special character such as ( _ @ ? ! / # ) in your password.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-507633532":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character such as ( _ @ ? ! / # ).","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-996691262":"We’ve introduced these limits to encourage <0>responsible trading. They are optional, and you can adjust them anytime.","-2079276011":"These limits apply to your multipliers trades only. For example, <0>maximum total loss refers to the losses on your multipliers trades.","-2116570030":"If you want to adjust your limits, <0>contact us via live chat. We’ll make the adjustments within 24 hours.","-1389915983":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or log in to resume trading. If you don’t want to set a specific limit, leave the field empty.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-474419287":"FATCA declaration","-1101737402":"Please select*","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1035494182":"You acknowledge that, subject to the Company's discretion, applicable regulations, and internal checks being fulfilled, we will open an account for you and allow you to deposit funds during the client acceptance procedure. However, until the verification of your account is completed, you will not be able to trade, withdraw or make further deposits. If you do not provide relevant documents within 30-days, we will refund the deposited amount through the same payment method you used to deposit.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-1209644365":"I hereby confirm that my request for opening an account with Deriv Investments (Europe) Ltd is made on my own initiative.","-740157281":"Trading Experience Assessment","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-1685104463":"* This is required","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-1232613003":"<0>Verification failed. <1>Why?","-805775852":"<0>Needs verification.<1>Verify now","-1983989074":"<0>No new positions","-863479504":"<0>Server maintenance","-1113760028":"<0>Unavailable","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-818898181":"Name in document doesn’t match your Deriv profile.","-310316375":"Address in document doesn’t match address you entered above.","-485368404":"Document issued more than 6-months ago.","-91160765":"Document issued more than 12-months ago.","-367016488":"Blurry document. All information must be clear and visible.","-1957076143":"Cropped document. All information must be clear and visible.","-1576856758":"An account with these details already exists. Please make sure the details you entered are correct as only one real account is allowed per client. If this is a mistake, contact us via <0>live chat.","-1792723131":"To avoid delays, enter your <0>date of birth exactly as it appears on your {{document_name}}.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-1231402474":"Connected apps are authorised applications associated with your account through your API token or the OAuth authorisation process. They can act on your behalf within the limitations that you have set.","-506083843":"As a user, you are responsible for sharing access and for actions that occur in your account (even if they were initiated by a third-party app on your behalf).","-831752682":"Please note that only third-party apps will be displayed on this page. Official Deriv apps will not appear here.","-915844096":"US citizenship or lawful permanent resident (green card) status","-208714573":"An “in care of” address or a “hold mail” address that is the sole address with respect to the client","-1082633433":"A power of attorney or signatory authority granted to a person with a US address.","-231863107":"No","-1858215754":"The document must be up-to-date and signed by the issuance authority.","-718917527":"Invalid or incomplete documents shall be rejected.","-682267922":"<0>Financial, legal, or government document: Recent bank statement, affidavit, or government-issued letter.","-214582149":"Utility bill (electricity, water, gas)","-506510414":"Date and time","-1708927037":"IP address","-189310067":"Account closed","-378284250":"Phone number verification","-849320995":"Assessments","-773766766":"Email and passwords","-1144318594":"Passkeys","-1466827732":"Self exclusion","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-526636259":"Error 404","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-860053164":"When trading multipliers.","-1250327770":"When buying shares of a company.","-1222388581":"All of the above.","-1592318047":"See example","-1694758788":"Enter your document number","-1176889260":"Please select a document type.","-274764613":"Driver License Reference number","-1265050949":"identity document","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-1437017790":"Financial information","-70342544":"We’re legally obliged to ask for your financial information.","-39038029":"Trading experience","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-178498188":"To change your verified phone number, contact us via <0>.","-1044302070":"Number already exists in our system. Enter a new one or contact us via <0> for help","-136976514":"Country of residence*","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2068064150":"Get updates about Deriv products, services and events.","-164389553":"Verified","-1283020225":"Verify{{resendCode}}","-1060822567":"If you cancel, you'll lose all progress.","-1239477911":"second","-1603581277":"minutes","-667223033":"Get code via SMS","-211241628":"Get code via WhatsApp","-690422971":"Request new code in {{next_phone_number_attempt_timestamp}}.","-222105210":"Resend code","-1601377103":"Step 3 of 3: Verify your number","-121443071":"Step 1 of 3: Email verification needed","-652539141":"OTP code","-1124039045":"Verification code","-1487715516":"{{ phone }} is verified as your phone number.","-1184626439":"Didn't get the code?{{resendCode}}","-165489997":"Session expired","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-807767876":"Note:","-1117963487":"Name your token and click on 'Create' to generate your token.","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-2125635811":"Please withdraw your funds from the following {{platform_name}} account(s):","-577445413":"Please close your positions in the following {{platform_name}} account(s):","-1219849101":"Please select at least one reason","-9323953":"Remaining characters: {{remaining_characters}}","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-937707753":"Go Back","-771109503":"Use our powerful, flexible, and free API to build a custom trading platform for yourself or for your business.","-1815044949":"You currently don't have any third-party authorised apps associated with your account.","-1699100421":"What are connected apps?","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1468863262":"{{action}}","-727433417":"{{status}}","-1814836151":"What are passkeys?","-1275937234":"Unlock your account like your phone - with biometrics, face scan or PIN.","-587750445":"Extra security layer.","-642452561":"Shields against unauthorised access and phishing.","-1654043401":"You can create one passkey per device.","-1411242065":"Where are passkeys saved?","-258752017":"What happens if my Deriv account email is changed?","-634268263":"Sign in to Deriv with your existing passkey.","-1700177761":"Create passkey","-1405679241":"Stored on: ","-567193224":"Rename","-1140319320":"Your account is now secured with a passkey.<0/>Manage your passkey through your<0/>Deriv account settings.","-592543249":"Add more passkeys","-331060101":"Passkey setup failed","-1036903080":"We’re experiencing a temporary issue in processing your request. Please try again later.","-713875531":"Enable bluetooth.","-1729774899":"Sign in to your Google or iCloud account.","-118511422":"Remove passkey","-132862611":"Are you sure you want to remove this passkey?","-508225603":"Your passkey is successfully removed. To avoid sign-in prompts, also remove the passkey from your iCloud keychain.","-684009726":"Edit passkey","-1004529240":"Passkey name","-1728732301":"Effortless login with passkeys","-1708254107":"Enable Bluetooth.","-613368504":"Tips:","-1897886029":"Before using passkey:","-1893497054":"Only 3-30 characters allowed.","-80717068":"Apps you have linked to your <0>Deriv password:","-340060402":"Your Deriv X password is for logging in to your Deriv X accounts on the web and mobile apps.","-619126443":"Use the <0>Deriv password to log in to {{brand_website_name}} and {{platform_name_trader}}.","-623760979":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_trader}} and {{platform_name_go}}.","-459147994":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, {{platform_name_dbot}} and {{platform_name_ctrader}}.","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2131200819":"Disable","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-2067796458":"Authentication code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-890084320":"Save and submit","-1043340733":"Proof of address documents upload failed","-1242877737":"Document type is required.","-30772747":"Your personal details have been saved successfully.","-2021135479":"This field is required.","-1002044401":"Select your document*","-1272489896":"Please complete this field.","-721346138":"The options and multipliers trading platform.","-1874136267":"The ultimate bot trading platform.","-415943890":"The legacy options trading platform.","-2018495421":"The mobile app for trading multipliers and accumulators.","-897826065":"The multipliers trading platform.","-2115275974":"CFDs","-1585707873":"Financial Commission","-199154602":"Vanuatu Financial Services Commission","-191165775":"Malta Financial Services Authority","-194969520":"Counterparty company","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1131400885":"Deriv Investments (Europe) Limited","-1471207907":"All assets","-781132577":"Leverage","-1591882610":"Synthetics","-543177967":"Stock indices","-362324454":"Commodities","-1959484303":"Cryptocurrencies","-1071336803":"Platform","-1879666853":"Deriv MT5","-820028470":"Options & Multipliers","-1210359945":"Transfer funds to your accounts","-1926387364":"We’ve sent your e-book to your email. You can also download it here.","-1057002564":"<0>We’re unable to upgrade you to Wallets at this time and are working to get this fixed as soon as we can. Please <1>try again<0>.","-1424352390":"<0>Wallets<1> — A smarter way to manage your funds","-1749409935":"Let's go","-145462920":"Deriv cTrader","-982095728":"Get","-390793294":"CFDs on financial and derived instruments, <0>powered by TradingView.","-45873457":"NEW","-1473281803":"Predict the market, profit if you’re right, risk only what you put in. <0>Learn more","-2134770229":"Total assets in your Deriv Apps and Deriv MT5 CFDs demo account.","-1277942366":"Total assets","-1255879419":"Trader's Hub","-493788773":"Non-EU","-673837884":"EU","-230566990":"The following documents you submitted did not pass our checks:","-846812148":"Proof of address.","-1146027991":"If you’d like to get the {{from_account}} account, resubmit these documents.","-710685402":"No new positions","-1445744852":"You can no longer open new positions with your {{from_account}} account. Please use your {{to_account}} account to open new positions.","-1699909965":"or ","-2055865877":"Non-EU regulation","-643108528":"Non-EU and EU regulation","-1815067117":"Start your trading journey","-1807332199":"Set up your real account","-1002556560":"We’re unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-90090878":"Use Wallets to manage your funds across different currencies effortlessly.","-280236366":"Enable now","-1186807402":"Transfer","-744999940":"Deriv account","-766186087":"{{trustScore}} out of 5 based on {{numberOfReviews}} reviews","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1975494965":"Cashier","-42592103":"Deposit cryptocurrencies","-87988108":"Deposits disabled","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-954082208":"Your cashier is currently locked. Please contact us via <0>live chat to find out how to unlock it.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-2027907316":"You can make a withdrawal once the verification of your account is complete.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-599998434":"You cannot make a fund transfer as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-637985102":"Your details match an existing account. You can't <0/>make deposits or trade with a new account. <0/>Need help? Reach out via live chat.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-1923809087":"Unfortunately, you can only make deposits. Please contact us via <0>live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1294455996":"Deriv P2P unavailable","-532693866":"Something went wrong. Please refresh the page and try again.","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-203002433":"Deposit now","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-1957498244":"more","-646217148":"We process your deposits internally within 24 hours (depending on internal checks and your payment method). If you don't see your funds reflected after this time, please contact us via <0>live chat with proof of your transaction, including the amount, date, and time.","-1901728198":"What do I do if I have reached my deposit limit?","-631829734":"<0>Insufficient balance: Please ensure you have sufficient funds in your card/e-wallet. If the problem persists, please contact your bank for help.","-1072505739":"<0>3D secure invalid/redirected: Please contact your bank for an OTP.","-180339757":"<0>Restricted card: Please use a locally issued card. ","-645281699":"<0>Customer cancelled payment: Please try again after 1 hour.","-102611677":"Can I use someone else's payment method?","-951380652":"No, you cannot use someone else's payment method to deposit into Deriv. If you use another person's payment method, your account will be suspended (if they are on Deriv, their account will also be suspended). If you suspect that someone has used your payment method, let us know through <0>live chat with your proof of ownership.","-819152742":"If you have used a different payment method to make your deposit, you cannot withdraw via a payment agent. However, if you have used both a payment agent and another payment method (for example, an e-wallet) to deposit, you have to withdraw via the e-wallet first up to your original deposited amount. After that, you can use a payment agent to make a withdrawal. If your original payment method is not available for withdrawals, please let us know through <0>live chat for assistance.","-820131811":"Can I withdraw using a different method?","-1656533423":"No, withdrawals must be made using the same method you used for your deposit.","-190084602":"Transaction","-1995606668":"Amount","-2024290965":"Confirmations","-811190405":"Time","-728508487":"{{currency}} recent transactions","-1984478597":"The details of this transaction is available on CoinsPaid.","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-1787304306":"Deriv P2P","-174976899":"P2P verification","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-922143389":"Deriv P2P is currently unavailable in this currency.","-1310327711":"Deriv P2P is currently unavailable in your country.","-685073712":"This is your <0>{{currency}} account {{loginid}}.","-1547606079":"We accept the following cryptocurrencies:","-1517325716":"Deposit via the following payment methods:","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-917092420":"To change your account currency, contact us via <0>live chat.","-515809216":"Send only {{currency_name}} ({{currency_code}}) to this address.","-748636591":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, a fee is applied.","-1589407981":"To avoid loss of funds:","-74221894":"Important:","-2108344100":"Looking for a way to buy cryptocurrencies? <0>Try Fiat onramp.","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-91824739":"Deposit {{currency}}","-523804269":"{{amount}} {{currency}} on {{date}}","-494847428":"Address: <0>{{value}}","-1117977576":"Confirmations: <0>{{value}}","-1935946851":"View more","-1744490898":"Unfortunately, we cannot retrieve the information at this time. ","-338505133":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, between your Deriv fiat and {{platform_name_ctrader}} accounts, and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1339063554":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_ctrader}}, and {{platform_name_dxtrade}} accounts.","-1059419768":"Notes","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-855721928":"Needs verification","-908402700":"Verification failed","-1866405488":"Deriv cTrader accounts","-1344870129":"Deriv accounts","-1220582412":"The server is temporarily unavailable for this account. We’re working to resolve this.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-1155970854":"You have reached the maximum daily transfers. Please try again tomorrow.","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1949883551":"You only have one account","-1149845849":"Back to Trader's Hub","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1254233806":"You've transferred","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-352134412":"Transfer limit","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-873886836":"Do not enter an address linked to an initial coin offering (ICO) purchase or crowdsale. If you do, the initial coin offering (ICO) tokens will not be credited into your account.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-1430080977":"Priority withdrawal","-1046088265":"Withdrawal amount:","-694919384":"Transaction fee","-1358465817":"Fee calculated at {{ time_stamp }}","-1744540779":"Amount received:","-38063175":"{{account_text}} wallet","-652125858":"Amount received","-705272444":"Upload a proof of identity to verify your identity","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-2067572496":"You’ve just stopped the bot. Any open contracts can be viewed on the Reports page.","-992003496":"Changes you make will not affect your running bot.","-1778025545":"You’ve successfully imported a bot.","-222838313":"Your session has expired. Please sign in again.","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-179005984":"Save","-610059687":"Exploring the D’Alembert strategy in Deriv Bot","-1226666341":"The D'Alembert strategy involves increasing your stake after a losing trade and reducing it after a successful trade by a predetermined number of units.","-312844882":"Initial stake: The amount that you are willing to place as a stake to enter a trade. This is the starting point for any changes in stake depending on the dynamic of the strategy being used.","-1173302981":"1. Start with the initial stake. In this example, we’ll use 1 USD.","-1540106116":"Profit and loss thresholds","-894905768":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss thresholds are reached. It's a form of risk management that can potentially enhance returns. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1946134465":"Where:","-248283982":"B is the loss threshold.","-1148521416":"f is the unit increment.","-211800490":"D’Alembert formula 2","-1772692202":"This formula helps you plan your trades by considering the amount of money you have and your comfort level with risk. It involves determining your loss threshold and the initial stake you want to trade with. Then, you use this formula to calculate the number of rounds you can trade. This process provides insight into stake sizing and expectations.","-2107238266":"The D'Alembert system offers more balanced trading through controlled stake progression. With prudent risk management like stake limits, it can be effectively automated in Deriv Bot. However, traders should thoroughly assess their risk appetite, test strategies on a demo account to align with their trading style before trading with real money. This allows optimising the approach and striking a balance between potential gains and losses whilst managing risk.","-500873566":"Disclaimer:","-344769349":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-818800551":"Exploring the Martingale strategy in Deriv Bot","-533490374":"These are the trade parameters used in Deriv Bot with Martingale strategy.","-1507161059":"Multiplier: The multiplier used to increase your stake if you're losing a trade. The value must be greater than 1.","-1333404686":"An example of Martingale strategy","-1755877136":"3. If the first trade ends in a loss, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every losing trade.","-1297651002":"If you're about to start trading and haven't established a Maximum Stake as part of your risk management strategy, you can determine how long your funds will last by employing the Martingale strategy. Simply use this formula.","-46865201":"Martingale formula 1","-116397598":"m is the Martingale multiplier.","-658161609":"Number of rounds, R ≈ 9.965","-288082521":"This means that after 10 rounds of consecutive losses, this trader will lose 1023 USD which exceeds the loss threshold of 1000 USD, stopping the bot.","-770387160":"The Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","-1901073152":"These are the trade parameters used for Oscar’s Grind strategy in Deriv Bot.","-1575153036":"An example of Oscar’s Grind strategy","-732418614":"The table above demonstrates this principle by showing that when a successful trade occurs and meets the target of one unit of potential profit which is 1 USD in this example, the session ends. If trading continues, a new session will begin.","-106266344":"Principle 3: The stake adjusts to the gap size between current loss and the target profit for the session","-492908094":"In round 7, the stake is adjusted downwards from 2 USD to 1 USD, to meet the target profit of 1 USD.","-90079299":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss threshold is reached. This is a form of risk management that can potentially boost successful trades whilst limiting the impact of loss. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1549673884":"The Oscar's Grind strategy provides a disciplined approach for incremental gains through systematic stake progression. When integrated into Deriv Bot with proper risk management like profit or loss thresholds, it offers traders a potentially powerful automated trading technique. However, traders should first thoroughly assess their risk tolerance and first try trading on a demo account in order to familiarise with the strategy before trading with real funds.","-655650222":"Exploring the Reverse D’Alembert strategy in Deriv Bot","-1864807973":"The Reverse D'Alembert strategy involves increasing your stake after a successful trade and reducing it after a losing trade by a predetermined number of units.","-809681645":"These are the trade parameters used in Deriv Bot with Reverse D’Alembert strategy.","-1239374257":"An example of Reverse D’Alembert strategy","-309821442":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-1576691912":"This article explores the Reverse Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","-1934849823":"These are the trade parameters used in Deriv Bot with Reverse Martingale strategy.","-1021919630":"Multiplier: The multiplier used to increase your stake if your trade is successful. The value must be greater than 1.","-760516362":"3. If the first trade is a successful trade, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every successful trade.","-1410950365":"Exploring the 1-3-2-6 strategy in Deriv Bot","-1175255072":"These are the trade parameters used in Deriv Bot with 1-3-2-6 strategy.","-183884527":"An example of 1-3-2-6 strategy","-275617819":"4. However, if any trade results in a loss, your stake will reset back to the initial stake of 1 USD for the next trade. The third trade results in a loss hence the stake resets to the initial stake of 1 USD for the next trade.","-719846465":"5. Upon reaching the initial stake, if the next trade still results in a loss, your stake will remain at the initial stake of 1 USD. This strategy will minimally trade at the initial stake. Refer to the fourth and fifth trade.","-1452746011":"The 1-3-2-6 strategy in trading may offer substantial gains but also comes with significant risks. Each stake is independent, and the strategy does not increase your chances of successful trades in the long run. If you encounter a series of losses, the strategy can lead to significant losses. Therefore, it is crucial for traders to assess their risk tolerance, practice in a demo account, utilise profit and loss thresholds, and fully comprehend the strategy before engaging in real-money trading.","-1016171176":"Asset","-138833194":"The underlying market your bot will trade with this strategy.","-621128676":"Trade type","-399349239":"Your bot will use this trade type for every run","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-447853970":"Loss threshold","-33106112":"The size used to multiply the stake after a successful trade for the next trade.","-1503301801":"The value must be equal or greater than {{ min }}","-1596504046":"Number of unit(s) to be added to the next trade after a successful trade. One unit is equivalent to the amount of initial stake.","-1521098535":"Max stake","-1448426542":"The stake for your next trade will reset to the initial stake if it exceeds this value.","-993953307":"Your prediction of the last digit of the asset price.","-1305281529":"D’Alembert","-1842451303":"Welcome to Deriv Bot!","-1391310674":"Check out these guides and FAQs to learn more about building your bot:","-2066779239":"FAQs","-280324365":"What is Deriv Bot?","-155173714":"Let’s build a bot!","-2093569327":"How to build a basic trading bot with Deriv Bot","-2072114761":"How to use Martingale strategy on Deriv Bot","-1254483618":"Introducing Accumulator Options on Deriv Bot: Available for automated trading","-1919212468":"3. You can also search for the blocks you want using the search bar above the categories.","-980360663":"3. Choose the block you want and drag it to the workspace.","-1493168314":"What is a quick strategy?","-1680391945":"Using a quick strategy","-1177914473":"How do I save my strategy?","-271986909":"In Bot Builder, hit Save on the toolbar at the top to download your bot. Give your bot a name, and choose to download your bot to your device or Google Drive. Your bot will be downloaded as an XML file.","-1149045595":"1. After hitting Import, select Local and click Continue.","-288041546":"2. Select your XML file and hit Open.","-2127548288":"3. Your bot will be loaded accordingly.","-1311297611":"1. After hitting Import, select Google Drive and click Continue.","-1549564044":"How do I reset the workspace?","-1127331928":"In Bot Builder, hit Reset on the toolbar at the top. This will clear the workspace. Please note that any unsaved changes will be lost.","-1720444288":"How do I control my losses with Deriv Bot?","-1142295124":"There are several ways to control your losses with Deriv Bot. Here’s a simple example of how you can implement loss control in your strategy:","-2129119462":"1. Create the following variables and place them under Run once at start:","-1918487001":"Example:","-468926787":"This is how your trade parameters, variables, and trade options should look like:","-1565344891":"Can I run Deriv Bot on multiple tabs in my web browser?","-213872712":"No, we don't offer cryptocurrencies on Deriv Bot.","-2147346223":"In which countries is Deriv Bot available?","-792737139":"We offer our services in all countries, except for the ones mentioned in our terms and conditions.","-352345777":"What are the most popular strategies for automated trading?","-552392096":"Three of the most commonly used strategies in automated trading are Martingale, D'Alembert, and Oscar's Grind — you can find them all ready-made and waiting for you in Deriv Bot.","-1036999457":"Watch this video to learn how to build a trading bot on Deriv Bot. Also, check out this blog post on building a trading bot.","-1630262763":"About Martingale","-413928457":"About Oscar's Grind","-1497015866":"About Reverse D’Alembert","-437005403":"About 1-3-2-6","-590765322":"Unfortunately, this trading platform is not available for EU Deriv account. Please switch to a non-EU account to continue trading.","-2110207996":"Deriv Bot is unavailable for this account","-971295844":"Switch to another account","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-1223145005":"Loss amount: {{profit}}","-1206212388":"Welcome back! Your messages have been restored. You are using your {{current_currency}} account.","-1724342053":"You are using your {{current_currency}} account.","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1591692300":"Your bot is running and waiting for a signal to buy a contract.","-555886064":"Won","-529060972":"Lost","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-224804428":"Transactions","-287223248":"No transaction or activity yet.","-418247251":"Download your journal.","-2123571162":"Download","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-558594655":"The bot is not running","-478946875":"The stats are cleared","-999254545":"All messages are filtered out","-786915692":"You are connected to Google Drive","-1256971627":"To import your bot from your Google Drive, you'll need to sign in to your Google account.","-1233084347":"To know how Google Drive handles your data, please review Deriv’s <0>Privacy policy.","-934909826":"Load strategy","-2005347537":"Importing XML files from Binary Bot and other third-party platforms may take longer.","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-24780060":"When you’re ready to trade, hit ","-2147110353":". You’ll be able to track your bot’s performance here.","-411060180":"TradingView Chart","-627895223":"Exit spot","-2140412463":"Buy price","-1299484872":"Account","-2004386410":"Win","-266502731":"Transactions detailed summary","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-596238067":"Entry/Exit spot","-1823621139":"Quick Strategy","-1782602933":"Choose a template below and set your trade parameters.","-315611205":"Strategy","-1524489375":"(optional)","-150224710":"Yes, continue","-475765963":"Edit the amount","-1349897832":"Do not show this message again.","-984512425":"Minimum duration: {{ value }}","-2084091453":"The value must be equal or greater than {{ value }}","-657364297":"The value must be equal or less than {{ value }}","-1953880747":"Stop my bot","-1899230001":"Stopping the current bot will load the Quick Strategy you just created to the workspace.","-2131847097":"Any open contracts can be viewed on the ","-1696412885":"Import","-320197558":"Sort blocks","-939764287":"Charts","-1566369363":"Zoom out","-1285759343":"Search","-1291088318":"Purchase conditions","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1136893592":"Announcements","-195234787":"<0>Note: Uploading complex strategies may take some time. Saving them from Deriv Bot ensures quicker access later. If you have questions, contact us via <1/>.","-206059150":"Google Blockly v10 update","-523557619":"Better security.","-1317334545":"Accumulators now on Deriv Bot","-25869504":"Manage risks while capitalising on market opportunities.","-1766767803":"We have updated our Blockly system in Deriv Bot from version 3 to version 10.","-1150390589":"Last modified","-1393876942":"Your bots:","-1545070554":"Delete bot","-1972599670":"Your bot will be permanently deleted when you hit ","-1692956623":"Yes, delete.","-573479616":"Are you sure you want to delete it?","-462715374":"Untitled Bot","-1150107517":"Connect","-767342552":"Enter your bot name, choose to save on your computer or Google Drive, and hit ","-1372891985":"Save.","-1003476709":"Save as collection","-636521735":"Save strategy","-1692205739":"Import a bot from your computer or Google Drive, build it from scratch, or start with a quick strategy.","-563774117":"Dashboard","-683790172":"Now, <0>run the bot to test out the strategy.","-1127164953":"Hi! Hit <0>Start for a quick tour.","-358288026":"Note: You can also find this tutorial in the <0>Tutorials tab.","-129587613":"Got it, thanks!","-1793577405":"Build from scratch","-358753028":"Create your bot using our drag-and-drop blocks or click Quick Strategy to choose from the ready-to-use bot templates.","-1212601535":"Monitor the market","-21136101":"See how your bot is doing in real-time.","-631097919":"Click <0>Run when you want to start trading, and click <0>Stop when you want to stop.","-1999747212":"Want to retake the tour?","-782992165":"Step 1 :","-1207872534":"First, set the <0>Trade parameters block.","-1656388044":"First, set <0>Market to Derived > Continuous Indices > Volatility 100 (1s) Index.","-1706298865":"Then, set <0>Trade type to Up/Down > Rise/Fall.","-1834358537":"For <0>Default candle interval, set it to 1 minute","-1940971254":"For <0>Trade options, set it as below:","-512839354":"<0>Stake: USD 10 (min: 0.35 - max: 50000)","-753745278":"Step 2 :","-1056713679":"Then, set the <0>Purchase conditions block.","-245497823":"<0>2. Purchase conditions:","-916770284":"<0>Purchase: Rise","-758077259":"Step 3 :","-677396944":"Step 4 :","-295975118":"Next, go to <0>Utility tab under the Blocks menu. Tap the drop-down arrow and hit <0>Loops.","-698493945":"Step 5 :","-1992994687":"Now, tap the <0>Analysis drop-down arrow and hit <0>Contract.","-1844492873":"Go to the <0>Last trade result block and click + icon to add the <0>Result is Win block to the workspace.","-1547091772":"Then, drag the <0>Result is win into the empty slot next to <0>repeat until block.","-736400802":"Step 6 :","-732067680":"Finally, drag and add the whole <0>Repeat block to the <0>Restart trading conditions block.","-1411787252":"Step 1","-1109392787":"Learn how to build your bot from scratch using a simple strategy.","-1263822623":"You can import a bot from your mobile device or from Google drive, see a preview in the bot builder, and start trading by running the bot.","-563921656":"Bot Builder guide","-1596172043":"Quick strategy guides","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-1717650468":"Online","-1309011360":"Open positions","-1597214874":"Trade table","-1929724703":"Compare CFD accounts","-883103549":"Account deactivated","-1837059346":"Buy / Sell","-1845037007":"Advertiser's page","-494667560":"Orders","-679691613":"My ads","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-377375279":"Standard","-1582979384":"Standard Demo","-1212531781":"Standard BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-291535132":"Swap-Free Demo","-499019612":"Zero Spread Demo","-1472945832":"Swap-Free SVG","-1386326276":"Barrier is a required field.","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-2093768906":"{{name}} has released your funds.
      Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-2063700253":"disabled","-1585069798":"Please click the following link to complete your Appropriateness Test.","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1601813176":"Would you like to increase your daily limits to {{max_daily_buy}} {{currency}} (buy) and {{max_daily_sell}} {{currency}} (sell)?","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-498364310":"Enable passkey","-187109231":"Level up your security","-1132350982":"Strengthen your account’s security today with the latest passkeys feature.","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1744163489":"Please verify your proof of income","-382676325":"To continue trading with us, please submit your proof of income.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-493564794":"Please complete your financial assessment.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-620447377":"Complete phone verification","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1629185222":"Submit now","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-1392958585":"Please check your email.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-2136953532":"Scheduled cashier maintenance","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-949074612":"Please contact us via live chat.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-8892474":"Start assessment","-1330929685":"Please submit your proof of identity and proof of address to verify your account and continue trading.","-99461057":"Please submit your proof of address to verify your account and continue trading.","-577279362":"Please submit your proof of identity to verify your account and continue trading.","-197134911":"Your proof of identity is expired","-152823394":"Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.","-822813736":"We're unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-978414767":"We require additional information for your Deriv MT5 account(s). Please take a moment to update your information now.","-1263133631":"Deposits and trading disabled","-1469527248":"Verify the address on the Deposit page before each deposit to avoid losing funds. Occasionally, the address could be updated.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1692922757":"Withdraw your funds","-783596666":"{{currency}} accounts won't be available after {{time_of_closure}}.","-135924060":"{{currency}} accounts won't be available after {{time_of_closure}}. Choose a new account currency.","-1690293783":"Withdraw {{currency}}","-2039256240":"Contact live chat","-233426953":"Profit","-1470677931":"CFDs on financial instruments.","-1595662064":"Zero spread CFDs on financial and derived instruments","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-1591792668":"Account Limits","-34495732":"Regulatory information","-1323441180":"I hereby confirm that my request for opening an account with Deriv to trade OTC products issued and offered exclusively outside Brazil was initiated by me. I fully understand that Deriv is not regulated by CVM and by approaching Deriv I intend to set up a relation with a foreign company.","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-288996254":"Unavailable","-1308346982":"Derived","-1019903756":"Synthetic","-735306327":"Manage accounts","-1813972756":"Account creation paused for 24 hours","-366030582":"Sorry, you're unable to create an account at this time. As you declined our previous risk warnings, we need you to wait for 24 hours after your first account creation attempt before you can proceed.<0/><0/>","-534047566":"Thank you for your understanding. You can create your account on {{real_account_unblock_date}} or later.","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1146960797":"Fiat currencies","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1740162250":"Manage account","-1016775979":"Choose an account","-1362081438":"Adding more real accounts has been restricted for your country.","-1602122812":"24-hour Cool Down Warning","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-730377053":"You can’t add another real account","-2100785339":"Invalid inputs","-2061807537":"Something’s not right","-272953725":"Your details match an existing account. If you need help, contact us via <0>live chat.","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-437918412":"No currency assigned to your account","-1193651304":"Country of residence","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-243732824":"Take me to Demo account","-1269078299":"I will setup my real account later.","-1342699195":"Total profit/loss:","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-813256361":"We are committed to treating our clients fairly and providing them with excellent service.<0/><1/>We would love to hear from you on how we can improve our services to you. Any information you provide will be treated in the strictest confidence. Rest assured that you will be heard, valued, and always treated fairly.","-1622847732":"If you have an inquiry regarding your trading account with {{legal_entity_name}}, you can contact us through our <0>Help centre or by chatting with a representative via <1>Live Chat.<2/><3/>We are committed to resolving your query in the quickest time possible and appreciate your patience in allowing us time to resolve the matter.<4/><5/>We strive to provide the best possible service and support to our customers. However, in the event that we are unable to resolve your query or if you feel that our response is unsatisfactory, we want to hear from you. We welcome and encourage you to submit an official complaint to us so that we can review your concerns and work towards a resolution.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-1280998762":"4. Complaints","-1886635232":"A complaint is any expression of dissatisfaction by a client regarding our products or services that requires a formal response.<0/><1/>If what you submit does not fall within the scope of a complaint, we may reclassify it as a query and forward it to the relevant department for handling. However, if you believe that your query should be classified as a complaint due to its relevance to the investment services provided by {{legal_entity_name}}, you may request that we reclassify it accordingly.","-1771496016":"To submit a complaint, please send an email to <0>complaints@deriv.com, providing as much detail as possible. To help us investigate and resolve your complaint more efficiently, please include the following information:","-1197243525":"<0>•A clear and detailed description of your complaint, including any relevant dates, times, and transactions","-1795134892":"<0>•Any relevant screenshots or supporting documentation that will assist us in understanding the issue","-2053887036":"4.4. Handling your complaint","-717170429":"Once we have received the details of your complaint, we shall review it carefully and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","-1841922393":"4.5. Resolving your complaint","-1327119795":"4.6. Your decision","-2019654103":"If we are unable to resolve your complaint or you are not satisfied with the outcome, you can escalate your complaint to the Office of the Arbiter for Financial Services.<0/><1/><2>Filing complaints with the Office of the Arbiter for Financial Services","-687172857":"<0>•You may file a complaint with the Arbiter for Financial Services only if you are not satisfied with our decision or the decision wasn’t made within 15 business days.","-262934706":"<0>•If the complaint is accepted by the Arbiter, you will receive another email with further details relating to the payment of the €25 complaint fee and the processes that follow.","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-583559763":"Menu","-673424733":"Demo account","-162753510":"Add real account","-1685795001":"Demo Wallet","-319395348":"Looking for CFDs? Go to Trader’s Hub","-778309978":"The link you clicked has expired. Ensure to click the link in the latest email in your inbox. Alternatively, enter your email below and click <0>Resend email for a new link.","-2101368724":"Transaction processing","-1772981256":"We'll notify you when it's complete.","-198662988":"Make a deposit to trade the world's markets!","-2007055538":"Information updated","-941870889":"The cashier is for real accounts only","-352838513":"It looks like you don’t have a real {{regulation}} account. To use the cashier, switch to your {{active_real_regulation}} real account, or get an {{regulation}} real account.","-1858915164":"Ready to deposit and trade for real?","-1208519001":"You need a real Deriv account to access the cashier.","-715867914":"Successfully deposited","-1271218821":"Account added","-197631101":"Your funds will be available for trading once the verification of your account is complete.","-2055364427":"Updated T&C's","-356910979":"By continuing you understand and accept the changes.","-835056719":"We’ve received your documents","-55435892":"We’ll need 1 - 3 days to review your documents and notify you by email. You can practice with demo accounts in the meantime.","-554054753":"Get started","-1916578937":"<0>Explore the exciting new features that your Wallet offers.","-1724438599":"<0>You're almost there!","-32454015":"Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat","-310434518":"The email input should not be empty.","-1471705969":"<0>{{title}}: {{trade_type_name}} on {{symbol}}","-1771117965":"Trade opened","-1856112961":"The URL you requested isn’t available","-304807228":"<0>You’re not logged in, or<0>Our services are unavailable in your country.","-1567989247":"Submit your proof of identity and address","-523602297":"Forex majors","-1303090739":"Up to 1:1500","-19213603":"Metals","-1264604378":"Up to 1:1000","-1728334460":"Up to 1:300","-646902589":"(US_30, US_100, US_500)","-705682181":"Malta","-1835174654":"1:30","-1647612934":"Spreads from","-1912437030":"about required verifications.","-466784048":"Regulator/EDR","-2098459063":"British Virgin Islands","-1326848138":"British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","-1711743223":"Forex (standard/micro), stocks, stock indices, commodities, cryptocurrencies and ETFs","-1372141447":"Straight-through processing","-1969608084":"Forex and Cryptocurrencies","-800771713":"Labuan Financial Services Authority (licence no. MB/18/0024)","-1497128311":"80+","-1501230046":"0.6 pips","-1689815930":"You will need to submit proof of identity and address once you reach certain thresholds.","-1175785439":"Deriv (SVG) LLC (company no. 273 LLC 2020)","-1344709651":"40+","-139026353":"A selfie of yourself.","-1228847561":"Verification in review.","-618322245":"Verification successful.","-149461870":"Forex: standard/exotic","-1995163270":"ETFs","-1220727671":"Standard - SVG","-865172869":"Financial - BVI","-1851765767":"Financial - Vanuatu","-558597854":"Financial - Labuan","-2052425142":"Swap-Free - SVG","-1192904361":"Deriv X Demo","-283929334":"Deriv cTrader Demo","-1269597956":"MT5 Platform","-1302404116":"Maximum leverage","-239789243":"(License no. SIBA/L/18/1114)","-941636117":"MetaTrader 5 Linux app","-1434036215":"Demo Financial","-659955365":"Swap-Free","-1416247163":"Financial STP","-1637969571":"Demo Swap-Free","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-860609405":"Password","-742647506":"Fund transfer","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-1428164691":"Upgrade complete","-1608063228":"Start trading with your new <0>{{platform}} {{type_1}} and <0>{{type_2}} {{eligible_account_to_migrate}} accounts.","-1944156634":"Start trading with your new <0>{{platform}} {{type_1}} {{eligible_account_to_migrate}} account.","-1787052003":"You can manage your existing positions, but you can't start a new trade.","-790488576":"Forgot password?","-476558960":"If you don’t have open positions","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-12535938":"*Volatility 250 Index, Volatility 150 Index, Boom 300 and Crash 300 Index","-2104148631":"Commissions apply","-201485855":"Up to","-700260448":"demo","-1769158315":"real","-1922462747":"Trader's hub","-16858060":"You have a new Deriv MT5 password to log in to your Deriv MT5 accounts on the web and mobile apps.","-1868608634":"Current password","-2092058806":"8 to 16 characters","-2051033705":"A special character such as ( _ @ ? ! / # )","-1762249687":"A lowercase letter","-535365199":"Enter your {{platform}} password to add a {{platform_name}} {{account}} account.","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-267598687":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. To start trading, <1 />transfer funds <2 />from your Deriv account into this account.","-1475660820":"Your Deriv MT5 {{type}} account is ready. ","-1184248732":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. ","-1928229820":"Reset Deriv X investor password","-1969916895":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character ( _ @ ? ! / # ).","-1087845020":"main","-1950683866":"investor","-588451627":"Undergoing server maintenance","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-1615126227":"Manage up to {{max_count}} Deriv cTrader accounts. While you can convert any of your Deriv cTrader accounts into a strategy account, please take note of the following:","-1547739386":"To ensure you can always create and manage strategies with fees, <0>keep at least one account free from being a strategy provider. This way, you’ll always have an account ready for collecting fees, allowing you to have up to four strategies where you may impose fees.","-2145356061":"Download Deriv X on your phone to trade with the Deriv X account","-1547458328":"Run cTrader on your browser","-747382643":"Get another cTrader account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-499504077":"Choose a cTrader account to transfer","-251202291":"Broker","-678964540":"to","-206829624":"(1:x)","-616293830":"Enjoy dynamic leverage of <0>up to 1:1500 when trading selected instruments in the forex, commodities, cryptocurrencies, and stock indices markets. Our dynamic leverage adjusts automatically to your trading position, based on asset type and trading volume.","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-2031796064":"I confirm and accept {{company}}'s <0>terms and conditions","-21438174":"Add your Deriv cTrader account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-271828350":"Get more out of Deriv MT5 Financial","-2125860351":"Choose a jurisdiction for your Deriv MT5 CFDs account","-1460321521":"Choose a jurisdiction for your {{account_type}} account","-918069465":"Account unavailable","-637537305":"Download {{ platform }} on your phone to trade with the {{ platform }} {{ account }} account","-964130856":"{{existing_account_title}}","-879259635":"Enter your Deriv MT5 password to upgrade your account(s).","-1504907646":"Deriv MT5 password","-361998267":"We've introduced additional password requirements to increase your account security. Your password should:","-996995493":"Be between 8 to 16 characters.","-219163415":"Contain at least one special character.","-1446636186":"By clicking on <0>Next you agree to move your {{platform}} {{type_1}} and {{type_2}} {{from_account}} account(s) under Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","-1766387013":"Upgrade your MT5 account(s)","-990927225":"Enter your Deriv MT5 password","-1486399361":"Trade with MT5 mobile app","-301350824":"Note: Don't have the MT5 app? Tap the <0>Trade with MT5 mobile app button to download. Once you have\n installed the app, return to this screen and hit the same button to log in.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-601303096":"Scan the QR code to download Deriv {{ platform }}.","-1357917360":"Web terminal","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-256210543":"Trading is unavailable at this time.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-1013917510":"The reset time is {{ reset_time }}","-925402280":"Indicative low spot","-1075414250":"High spot","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1371082433":"Reset barrier","-1402197933":"Reset time","-2035315547":"Low barrier","-1745835713":"Selected tick","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-104603605":"You cannot trade as your documents are still under review. We will notify you by email once your verification is approved.","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-347156282":"Submit Proof","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-1043795232":"Recent positions","-153220091":"{{display_value}} Tick","-802374032":"Hour","-1700010072":"This feature is unavailable for tick intervals. Switch to minutes, hours, or days.","-2017825013":"Got it","-112444942":"History of tick counts","-1145293111":"This market will reopen at","-1782608357":"Starts on {{formatted_date}}, {{formatted_time}}","-1341681145":"When this is active, you can cancel your trade within the chosen time frame. Your stake will be returned without loss.","-2069438609":"No matches found","-647454892":"No closed positions","-1474415836":"Your closed positions will be shown here.","-576924961":"Your open positions will appear here.","-225500551":"Entry & exit details","-1022682526":"Your favourite markets will appear here.","-232254547":"Custom","-1251526905":"Last 7 days","-1539223392":"Last 90 days","-1123299427":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <1>previous spot price. Otherwise, you lose your stake and the trade is terminated.","-1052279158":"Your <0>payout is the sum of your initial stake and profit.","-274058583":"<0>Take profit is an additional feature that lets you manage your risk by automatically closing the trade when your profit reaches the target amount. This feature is unavailable for ongoing accumulator contracts.","-1819891401":"You can close your trade anytime. However, be aware of <0>slippage risk.","-859589563":"If you select “<0>Odd”, you will win the payout if the last digit of the last tick is an odd number (i.e. 1, 3, 5, 7, or 9).","-1911850849":"If the exit spot is equal to the barrier, you don’t win the payout.","-618782785":"Use multipliers to leverage your potential returns. Predict if the asset price will move upward (bullish) or downward (bearish). We’ll charge a commission when you open a multipliers trade.","-565391674":"If you select \"<0>Up\", your total profit/loss will be the percentage increase in the underlying asset price, times the multiplier and stake, minus commissions.","-1158764468":"If you select “<0>Over”, you will win the payout if the last digit of the last tick is greater than your prediction.","-1268105691":"If you select “<0>Under”, you will win the payout if the last digit of the last tick is less than your prediction.","-444119935":"If you select \"<0>Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-521457890":"If you select “<0>Touch”, you win the payout if the market touches the barrier at any time during the contract period.","-1020271578":"If you select “<0>Down”, you’ll earn a payout if the spot price never rises above the barrier.","-403573339":"Your payout is equal to the <0>payout per point multiplied by the difference between the <1>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-1307465836":"You may sell the contract up to 15 seconds before expiry. If you do, we’ll pay you the <0>contract value.","-1121315439":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a “Call” or a “Put”.","-1763848396":"Put","-1119872505":"How to trade ","-586636553":"Watch this video to learn about this trade type.","-792197750":"Added to favourites","-197162398":"CLOSED","-782722116":"Swipe up to see the chart","-1125490130":"Welcome to the new Deriv Trader","-463202424":"Enjoy a smoother, more intuitive trading experience. Here’s a quick tour to get you started.","-1200840210":"Let's begin","-1217860832":"Scroll left or right to explore trade types.","-1000472682":"Choose a market (2/6)","-1648147161":"Open your trade (3/6)","-1848076051":"Track market trends with our interactive charts.","-208907003":"Scroll left or right to adjust your trade parameters.","-1300707192":"Pin, rearrange, or remove your favorite trade types for easy access.","-1913695340":"Order Details","-1882287418":"How do I earn a payout?","-379473574":"Exceeds max payout","-1331298683":"Take profit can’t be adjusted for ongoing accumulator contracts.","-376450619":"An error occurred.","-843831637":"Stop loss","-509210647":"Try searching for something else.","-99964540":"When your profit reaches or exceeds the set amount, your trade will be closed automatically.","-894474163":"SL history","-542594338":"Max. payout","-1116872874":"Fixed price:","-2062696378":"Above spot:","-1858102926":"Barrier set below spot price.","-635746838":"Below spot","-548979988":"Fixed price","-1013686843":"Current time","-1977959027":"hours","-1084580778":"Ends at","-1068424721":"Max duration","-718750246":"Your stake will grow at {{growth_rate}}% per tick as long as the current spot price remains within ±{{tick_size_barrier_percentage}} from the previous spot price.","-2131851017":"Growth rate","-339236213":"Multiplier","-1626578728":"Deal cancellation fee","-240829052":"{{date}} at {{timestamp}}","-732683018":"When your profit reaches or exceeds this amount, your trade will be closed automatically.","-732856313":"TP & SL","-1396928673":"Risk Management","-1954917999":"Acceptable range: {{min_value}} to {{max_value}} {{currency}}","-1024650723":"Note: Cannot be adjusted for ongoing accumulator contracts.","-1942828391":"Max payout","-1358367903":"Stake","-525327031":"Payout per point:","-380456342":"It is the price where you can start receiving a payout from an option.","-1853307892":"Set your trade","-494149423":"Pinned","-1612346919":"View all","-1221049974":"Final price","-583023237":"This is the resale value of your contract, based on the prevailing market conditions (e.g, the current spot), including additional commissions if any.","-1476381873":"The latest asset price when the trade closure is processed by our servers.","-584445859":"This is when your contract will expire based on the duration or end time you’ve selected. If the duration is more than 24 hours, the cut-off time and expiry date will apply instead.","-1247327943":"This is the spot price of the last tick at expiry.","-1422269966":"You can choose a growth rate with values of 1%, 2%, 3%, 4%, and 5%.","-1186791513":"Payout is the sum of your initial stake and profit.","-1482134885":"We calculate this based on the strike price and duration you’ve selected.","-1682624802":"It is a percentage of the previous spot price. The percentage rate is based on your choice of the index and the growth rate.","-1545819495":"Your trade will be closed automatically at the nearest available asset price when your loss reaches a certain percentage of your stake, but your loss never exceeds your stake. This percentage depends on the chosen underlying asset and the Multiplier.","-1293590531":"If you select “Call”, you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1432332852":"If you select ‘Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-468501352":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount. Your profit may be more than the amount you entered depending on the market price at closing.","-1585766960":"min","-1952134215":"TP and SL have been turned off.","-1541404572":"TP has been turned off.","-1634963573":"SL has been turned off.","-337314714":"days","-993480898":"Accumulators","-123659792":"Vanillas","-1226595254":"Turbos","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-1691868913":"Touch/No Touch","-330437517":"Matches/Differs","-657360193":"Over/Under","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-93996528":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1722190480":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1113825265":"Additional features are available to manage your positions: “<0>Take profit” and “<0>Stop loss” allow you to adjust your level of risk aversion.","-1104397398":"Additional features are available to manage your positions: “<0>Take profit”, “<0>Stop loss” and “<0>Deal cancellation” allow you to adjust your level of risk aversion.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1565216130":"If you select <0>\"Up\", you’ll earn a payout if the spot price never drops below the barrier.","-1336860323":"If you select <0>\"Down\", you’ll earn a payout if the spot price never rises above the barrier.","-351875097":"Number of ticks","-729830082":"View less","-1649593758":"Trade info","-1382749084":"Go back to trading","-1652791614":"mins","-442488432":"day","-1435392215":"About deal cancellation","-1192773792":"Don't show this again","-471757681":"Risk management","-771725194":"Deal Cancellation","-1669741470":"The payout at expiry is equal to the payout per point multiplied by the difference between the final price and the strike price.","-65178968":"The amount you will receive at expiry for every point of change above the barrier.","-1419311086":"Payout per Point","-1636919806":"You will receive a payout at expiry if the spot price never breaches the barrier throughout the contract duration. Otherwise, your contract will be terminated early.","-1775944645":"Distance to current spot:","-1790089996":"NEW!","-253521386":"This is the spot price of the last tick at expiry, i.e. the exit spot.","-1890561510":"Cut-off time","-878534036":"If you select \"Call\", you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1587076792":"If you select \"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-565990678":"Your contract will expire on this date (in GMT), based on the End time you’ve selected.","-477936848":"We use next-tick-execution mechanism, which is the next asset price when the trade opening is processed by our servers.","-148680560":"Spot price of the last tick upon reaching expiry.","-1123926839":"Contracts will expire at exactly 14:00:00 GMT on your selected expiry date.","-1904828224":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 24 hours.","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-8998663":"Digit: {{last_digit}} ","-690963898":"Your contract will be automatically closed when your payout reaches this amount.","-511541916":"Your contract will be automatically closed upon reaching this number of ticks.","-438655760":"<0>Note: You can close your trade anytime. Be aware of slippage risk.","-774638412":"Stake must be between {{min_stake}} {{currency}} and {{max_stake}} {{currency}}","-434270664":"Current Price","-1956787775":"Barrier Price:","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-1231210510":"Tick","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-1804019534":"Expiry: {{date}}","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-989393637":"Take profit can't be adjusted after your contract starts.","-194424366":"above","-857660728":"Strike Prices","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-420223912":"Clean up Blocks","-301596978":"Collapse Blocks","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-985351204":"Trade again","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-1738427539":"Purchase","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-322623215":"Current stat list","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1467024744":"Run the blocks inside after a given number of ticks","-173765342":"This block delays execution for a given number of ticks. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1374685318":"Your contract is closed automatically when your loss is more than or equals to this amount. This block can only be used with the multipliers trade type.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-1626615625":"Take Profit (Multiplier)","-1871944173":"Accumulator trade options","-625636913":"Amount must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1631669591":"string","-1768939692":"number","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1750478127":"New variable name","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-260939264":"Collapsed","-894560707":"function","-1867119688":"Duplicate","-1710107207":"Add Comment","-1549535410":"Remove Comment","-918450098":"Blocks","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-339973827":"The market is closed","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1919680487":"workspace","-1703118772":"The {{block_type}} block is misplaced from {{missing_space}}.","-1785726890":"purchase conditions","-1993203952":"Trade options accumulators","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-1072292603":"No Change","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-137444201":"Buy","-841561409":"Put Spread","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-280147477":"All transactions","-130601012":"Please select duration","-1577570698":"Start date","-1904030160":"Transaction performed by (App ID: {{app_id}})","-1876891031":"Currency","-513103225":"Transaction time","-2066666313":"Credit/Debit","-1981004241":"Sell time","-1196431745":"Contract cost","-3423966":"Take profit<0 />Stop loss","-1131753095":"The {{trade_type_name}} contract details aren't currently available. We're working on making them available soon.","-360975483":"You've made no transactions of this type during this period.","-507216312":"CFDs on financial and derived instruments, powered by TradingView.","-1715390759":"I want to do this later","-56163366":"I don't have any of these","-2082644096":"Current stake","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-558031309":"High Tick/Low Tick","-447037544":"Buy price:","-737348236":"Contract cost:","-1694314813":"Contract value:","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-155989831":"Decrement value","-338379841":"Indicative price:","-2027409966":"Initial stake:","-1769852749":"N/A","-726626679":"Potential profit/loss:","-1511825574":"Profit/Loss:","-499175967":"Strike Price","-129307275":"High Barrier","-1818650227":"Deal cancellation fees","-706219815":"Indicative price","-112601585":"executed","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-853582174":"France 40","-1096386695":"UK 100","-617646862":"Germany 40","-2077690248":"Japan 225","-512194910":"US Tech 100","-381746202":"US 500","-1935463381":"Swiss 20","-1941767726":"Euro 50","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-82971929":"Volatility 25 (1s) Index","-433962508":"Volatility 75 (1s) Index","-764111252":"Volatility 100 (1s) Index","-816110209":"Volatility 150 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1288044380":"Volatility 250 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-132112961":"Sharkfin","-175164838":"{{seconds_passed}}s ago","-514136557":"{{minutes_passed}}m ago","-1420737287":"{{hours_passed}}h ago","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-2079171087":"We're unable to send codes via {{ current_carrier }} right now. Get your code by {{other_carriers}}.","-1366327411":"Code expired. Get a new one.","-227482563":"Code expired. Get a new code.","-1867522447":"Invalid code. Try again or get a new code.","-886317740":"The <0>date of birth on your identity document doesn't match your profile.","-1606307809":"We were unable to verify the identity document with the details provided.","-475787720":"The verification status was empty, rejected for lack of information.","-1627868670":"Your identity document has expired.","-1302288704":"The document’s owner is deceased.","-895884696":"The <0>name and <0>date of birth on your identity document don't match your profile.","-1231856133":"The verification status is not available, provider says: Needs Technical Investigation.","-433687715":"For enhanced security, we need to reverify your identity. Kindly resubmit your proof of identity to unlock your account.","-1637538521":"Your document appears to be invalid.","-876579004":"The name on your document doesn’t match your profile.","-746520172":"Some details on your document appear to be invalid, missing, or unclear.","-2146200521":"The serial number of your document couldn’t be verified.","-1945323197":"Your document appears to be in black and white. Please upload a colour photo of your document.","-631393256":"Your document contains markings or text that should not be on your document.","-609103016":"The image quality of your document is too low. Please provide a hi-res photo of your identity document.","-530935718":"We’re unable to verify the document you provided because some details appear to be missing. Please try again or provide another document.","-1027031626":"We’re unable to verify the document you provided because it appears to be damaged. Please try again or upload another document.","-1671621833":"The front of your document appears to be missing. Please provide both sides of your identity document.","-727588232":"Your document appears to be a scanned copy that contains markings or text that shouldn’t be on your document.","-1435064387":"Your document appears to be a printed copy.","-624316211":"Your document appears to be a photo of a device screen.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file +{"1485191":"1:1000","2082741":"additional document number","2091451":"Deriv Bot - your automated trading partner","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","3420069":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your identity document.","4547840":"<0>Verify your account to transfer funds. <1>Verify now","5149403":"Learn more about trade types","7100308":"Hour must be between 0 and 23.","9488203":"Deriv Bot is a web-based strategy builder for trading digital options. It’s a platform where you can build your own automated trading bot using drag-and-drop 'blocks'.","9757544":"Please submit your proof of address","11533428":"Trade bigger positions with less capital on a wide range of global markets. <0>Learn more","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11706633":"Loss threshold: The bot will stop trading if your total loss exceeds this amount.","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","14874020":"Values cannot be negative. Provided value: {{ input_value }}.","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","23745193":"Take me to demo","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582393":"Example :","27582767":"{{amount}} {{currency}}","27731356":"Your account is temporarily disabled. Please contact us via <0>live chat to enable deposits and withdrawals again.","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","40632954":"Why is my card/e-wallet not working?","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45821474":"Proof of income","46523711":"Your proof of identity is verified","47525080":"The amount you’ll receive at expiry for every point of change below the barrier.","49404821":"If you buy a \"<0>{{trade_type}}\" option, you receive a payout at expiry if the final price is {{payout_status}} the strike price. Otherwise, your “<0>{{trade_type}}” option will expire worthless.","50717678":"Save the updated strategy for quicker re-imports.","53801223":"Hong Kong 50","53964766":"5. Hit Save to download your bot. You can choose to download your bot to your device or your Google Drive.","54185751":"Less than $100,000","54363400":"We've sent a verification code to <0>{{users_email}}.","55340304":"Keep your current contract?","55916349":"All","57362642":"Closed","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","62910715":"You already have an open position for this contract type, retrying in {{ delay }}s","63534532":"Enter the code below to verify it's you.","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66610627":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there’s enough light where you are and that your entire face is in the frame.","67923436":"No, Deriv Bot will stop running when your web browser is closed.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71180364":"Continue verification","71232823":"Manage funds","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74953206":"Customise","74963864":"Under","76635112":"To proceed, resubmit these documents","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","76925355":"Check your bot’s performance","77982950":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a \"Call\" or a \"Put\".","81009535":"Potential profit/loss","81091424":"To complete the upgrade, please log out and log in again to add more accounts and make transactions with your Wallets.","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","84402478":"Where do I find the blocks I need?","84924586":"To trade options and multipliers, get a Deriv Apps account first.","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","93154671":"1. Hit Reset at the bottom of stats panel.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","99306476":"Your import failed due to an invalid file. Upload a complete file in XML format.","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","102929937":"Make sure to copy the Deriv {{currency}} account address above and paste it into your crypto wallet.","105871033":"Your age in the document you provided appears to be below 18 years. We’re only allowed to offer our services to clients above 18 years old, so we’ll need to close your account. If you have a balance in your account, contact us via live chat and we’ll help to withdraw your funds before your account is closed.","107537692":"These limits apply to your options trades only. For example, <0>maximum total loss refers to the losses on all your trades on options trading platforms.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113091401":"Acceptable range: {{min_stake}} to {{max_stake}} {{currency}}","113378532":"ETH/USD","115032488":"Buy price and P/L","116005488":"Indicators","117056711":"We’re updating our site","117318539":"Password should have lower and uppercase English letters with numbers.","117366356":"Turbo options allow you to predict the direction of the underlying asset’s movements.","118727646":"{{new_account_title}}","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","122617359":"View tutorial","122993457":"This is to confirm that it's you making the withdrawal request.","123454801":"{{withdraw_amount}} {{currency_symbol}}","124723298":"Upload a proof of address to verify your address","125354367":"An example of D’Alembert's Grind strategy","125443840":"6. Restart last trade on error","125842960":"{{name}} is required.","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","129005644":"The idea is that successful trades may recoup previous losses. However, it is crucial to exercise caution as the risk can quickly increase with this strategy. With Deriv Bot, you can minimise your risk by setting a maximum stake. This is an optional risk management feature. Let’s say a maximum stake of 3 USD. If your stake for the next trade is set to exceed 3 USD, your stake will reset to the initial stake of 1 USD. If you didn't set a maximum stake, it would have increased beyond 3 USD.","129137937":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or resume trading after a 24-hour cooling-off period. If you don’t want to set a specific limit, leave the field empty.","129729742":"Tax Identification Number*","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","133655768":"Note: If you wish to learn more about the Bot Builder, you can proceed to the <0>Tutorials tab.","134126193":"Try searching for markets or keywords","135698857":"<0>Follow these steps to smoothly transfer your strategies:","136790425":"Try changing or removing filters to view available positions.","137589354":"To assess your trading experience and if our products are suitable for you. Please provide accurate and complete answers, as they may affect the outcome of this assessment.","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145511192":"s is the initial stake.","145633981":"Unavailable as your documents are still under review","145736466":"Take a selfie","147091073":"This block gives you the Current Stat value.","147327552":"No favourites","150156106":"Save changes","150486954":"Token name","151279367":"2. Set the Purchase conditions. In this example, your bot will purchase a Rise contract when it starts and after a contract closes.","151646545":"Unable to read file {{name}}","152120783":"Attention: tUSDT deposit address change","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","153485708":"Zero Spread - BVI","154274415":"The payout at expiry is equal to the payout per point multiplied by the distance between the final price and the barrier.","157593038":"random integer from {{ start_number }} to {{ end_number }}","157871994":"Link expired","158355408":"Some services may be temporarily unavailable.","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","167094229":"• Current stake: Use this variable to store the stake amount. You can assign any amount you want, but it must be a positive number.","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","174793462":"Strike","176078831":"Added","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","177467242":"Define your trade options such as accumulator and stake. This block can only be used with the accumulator trade type. If you select another trade type, this block will be replaced with the Trade options block.","179083332":"Date","181346014":"Notes ","181881956":"Contract Type: {{ contract_type }}","182630355":"Thank you for submitting your information.","184024288":"lower case","189111473":"Mark all as read","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","190834737":"Guide","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195136585":"Trading View Chart","195972178":"Get character","196810983":"If the duration is more than 24 hours, the Cut-off time and Expiry date will apply instead.","197190401":"Expiry date","201016731":"<0>View more","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","203297887":"The Quick Strategy you just created will be loaded to the workspace.","203337807":"<0>Utility bill: Electricity, water, gas, or landline phone bill.","203924654":"Hit the <0>Start button to begin and follow the tutorial.","204797764":"Transfer to client","204863103":"Exit time","207521645":"Reset Time","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","210872733":"The verification status is not available, provider says: Malformed JSON.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211487193":"Document number (e.g. identity card, passport, driver's license)","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216114973":"Stocks & indices","216650710":"You are using a demo account","217377529":"5. If the next trades are profitable, the stake for the following trade will be reduced by 2 USD. This can be shown above where the stake of 3 USD is reduced to 1 USD. See A3.","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","221261209":"A Deriv account will allow you to fund (and withdraw from) your CFDs account(s).","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","233500222":"- High: the highest price","235244966":"Return to Trader's Hub","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","235994721":"Forex (standard/exotic) and cryptocurrencies","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","242028165":"Pay a small fee to prioritise your withdrawal, this fee will be deducted from the withdrawal amount.","243537306":"1. Under the Blocks menu, go to Utility > Variables.","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","246428134":"Step-by-step guides","248153700":"Reset your password","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","250271709":"Due to business changes, client accounts in Senegal are to be closed. Withdraw your funds by {{date}}.","251134918":"Account Information","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","253388913":"We'll close accounts with no open positions after 60 days.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","260393332":"You cannot make further deposits as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","261074187":"4. Once the blocks are loaded onto the workspace, tweak the parameters if you want, or hit Run to start trading.","261250441":"Drag the <0>Trade again block and add it into the <0>do part of the <0>Repeat until block.","262095250":"If you select <0>\"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","266455247":"Standard Vanuatu","267992618":"The platforms lack key features or functionality.","268254263":"Open a real account now","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270396691":"<0>Your Wallets are ready!","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","271637055":"Download is unavailable while your bot is running.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","276770377":"New MT5 account(s) under the {{to_account}} jurisdiction will be created for new trades.","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","280021988":"Use these shortcuts","281110034":"Effective trading with the D'Alembert system requires careful consideration of its stake progression and risk management. Traders can automate this approach using Deriv Bot, setting profit and loss thresholds to ensure balanced and controlled trading. However, it is crucial for traders to assess their risk appetite, test strategies on a demo account, and align with their own trading style before transitioning to real money trading. This optimization process helps strike a balance between potential gains and losses while managing risk prudently.","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","284527272":"antimode","284772879":"Contract","284809500":"Financial Demo","287934290":"Are you sure you want to cancel this transaction?","289731075":"Get Started","291344459":"The table illustrates this principle in the second session. After a trade resulting in loss in round 4 followed by a successful trade in round 5, the stake will increase to 2 USD for round 6. This is in line with the strategy's rule of raising the stake only after a loss is followed by a successful trade.","291744889":"<0>1. Trade parameters:<0>","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","293200481":"{{ stack_input }} Run after {{ number }} tick(s)","293250845":"Are you sure you want to continue?","294043810":"I confirm that my tax information is accurate and complete.","294305803":"Manage account settings","294335229":"Sell at market price","296017162":"Back to Bot","299867329":"For more info, check out this blog post on the basics of building a trading bot.","301315130":"The amount you choose to receive at expiry for every point of change between the final price and the barrier.","301441673":"Select your citizenship/nationality as it appears on your passport or other government-issued ID.","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","304506198":"Total balance:","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","315516003":"Distance to spot","316694303":"Is candle black?","318705408":"Demo Zero Spread","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","320094260":"Trade Accumulators to build up potential profits with a structured approach.","321457615":"Oops, something went wrong!","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","323360883":"Baskets","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329353047":"Malta Financial Services Authority (MFSA) (licence no. IS/70156)","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","330384187":"Enable trading with your first transfer.","333456603":"Withdrawal limits","333807745":"Click on the block you want to remove and press Delete on your keyboard.","334942497":"Buy time","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343194622":"The amount you’ll receive at expiry for every point of change above the barrier","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345171716":"Enter your address","345320063":"Invalid timestamp","345818851":"Sorry, an internal error occurred. Hit the above checkbox to try again.","346070861":"Zero Spread","346843343":"CFDs on financial and derived instruments with copy trading.","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","350602311":"Stats show the history of consecutive tick counts, i.e. the number of ticks the price remained within range continuously.","351744408":"Tests if a given text string is empty","353731490":"Job done","354945172":"Submit document","355647475":"Current spot","357477280":"No face found","357672069":"Income verification failed","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","360773403":"Bot Builder","361784996":"Manage your trade types","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","367801124":"Total assets in your Deriv accounts.","367978153":"Removed from favourites","368160866":"in list","369035361":"<0>•Your account number","369409629":"We have updated our Blockly system in Deriv Bot from <0>version 3 to version 10. This brings:","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","377225569":"<0>Do not honour: Please contact your bank for further assistance.","377538732":"Key parameters","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","380606668":"tick","380694312":"Maximum consecutive trades","381972464":"Your document has expired.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","384707870":"CRS confirmation","386278304":"Install the {{platform_name_trader}} web app","388162708":"You can view your open and closed positions here. Tap an item for more details.","389923099":"Zoom in","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","393789743":"Letters, spaces, periods, hyphens, apostrophes only.","396418990":"Offline","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","401345454":"Head to the Tutorials tab to do so.","403456289":"The formula for SMA is:","403936913":"An introduction to Deriv Bot","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","415677940":"Faster performance.","417864079":"You’ll not be able to change currency once you have made a deposit.","419485005":"Spot","419496000":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the multipliers trade type.","420072489":"CFD trading frequency","422055502":"From","423682863":"When your loss reaches or exceeds the set amount, your trade will be closed automatically.","424101652":"Quick strategy guides >","424272085":"We take your financial well-being seriously and want to ensure you are fully aware of the risks before trading.<0/><0/>","424668491":"expired","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428380816":"If you select “<0>Matches”, you will win the payout if the last digit of the last tick is the same as your prediction.","429505586":"If you select \"<0>Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","429970999":"To avoid delays, enter your <0>name exactly as it appears on your {{document_name}}.","431267979":"Here’s a quick guide on how to use Deriv Bot on the go.","432273174":"1:100","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433237511":"Notify Telegram %1 Access Token: %2 Chat ID: %3 Message: %4","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","436534334":"<0>We've sent you an email.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","438554418":"Time remaining: {{time_remaining}}","439398769":"This strategy is currently not compatible with Deriv Bot.","439798157":"Import strategy","441724760":"Request a new OTP after 10 minutes.","442281706":"You’ve just deleted a block.","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","447548846":"SSNIT number","447907000":"If you select \"<0>Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","452949978":"The 1-3-2-6 strategy is designed to capitalise on consecutive successful trades while minimising losses during losing streaks. The rationale behind this strategy lies in statistical probabilities, with adjustments to stake sizes based on the perceived likelihood of success. There is a higher likelihood of success in the second trade after one successful trade. Hence the stake adjusts to 3 in the second trade. In the third trade, the stake adjusts to 2 units due to a lower probability of a successful trade. If the third trade is also successful, the strategy then allocates all the previous gains (a total of 6 units of initial stake) into the fourth trade with the aim of doubling the potential profits. If the fourth trade results in a positive outcome, the strategy helps achieve a total gain of 12 units. However, it is crucial to exercise caution, as the risk can escalate quickly with this strategy, and any loss in the fourth trade forfeits all previous gains.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","454196938":"Regulation:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459612953":"Select account","459817765":"Pending","460070238":"Congratulations","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","463361726":"Select an item","465993338":"Oscar's Grind","466424460":"Oscar’s Grind","466837068":"Yes, increase my limits","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","471402292":"Your bot uses a single trade type for each run.","471667879":"Cut off time:","471994882":"Your {{ currency }} account is ready.","473154195":"Settings","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","480356486":"*Boom 300 and Crash 300 Index","481276888":"Goes Outside","481564514":"If you select “<0>Up”, you’ll earn a payout if the spot price never drops below the barrier.","483279638":"Assessment Completed<0/><0/>","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","490053735":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your loss reaches or exceeds the stop loss amount. Your loss may be more than the amount you entered depending on the market price at closing.","490243056":"Multipliers amplify your potential profit if the market moves in your favour, with losses limited to your initial capital.","491603904":"Unsupported browser","492198410":"Make sure everything is clear","492566838":"Taxpayer identification number","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502007051":"Demo Swap-Free SVG","502041595":"This block gives you a specific candle from within the selected time interval.","505793554":"last letter","508390614":"Demo Financial STP","511243369":"Your passkey is successfully removed. To avoid sign-in prompts, also remove the passkey from your Google password manager.","511679687":"Accumulators allow you to express a view on the range of movement of an index and grow your stake exponentially at a fixed <0>growth rate.","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","517631043":"We’ve sent your e-book. Check your email to download it.","517833647":"Volatility 50 (1s) Index","518955798":"7. Run Once at Start","519205761":"You can no longer open new positions with this account.","520136698":"Boom 500 Index","520458365":"Last used: ","521872670":"item","522703281":"divisible by","523123321":"- 10 to the power of a given number","524459540":"How do I create variables?","527329988":"This is a top-100 common password","529056539":"Options","531114081":"3. Contract Type","531453415":"Restart your phone number verification.","531675669":"Euro","532724086":"Employment contract","533403953":"Your existing <0>{{platform}} {{type}} {{from_account}} account(s) will remain accessible.","535021574":"Run your updated strategy to check its performance.","535041346":"Max. total stake per day","536277802":"TP & SL history","537788407":"Other CFDs Platform","538017420":"0.5 pips","538042340":"Principle 2: The stake only increases when a loss trade is followed by a successful trade","538228086":"Close-Low","539352212":"Tick {{current_tick}}","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","545323805":"Filter by trade types","547029855":"If you select this feature, you can cancel your trade within a chosen time frame if the asset price moves against your favour. You will get your stake back without profit/loss. We charge a small fee for this. Take profit and stop loss are disabled when deal cancellation is active.","549479175":"Deriv Multipliers","549799607":"Go to LiveChat","551569133":"Learn more about trading limits","551958626":"Excellent","554135844":"Edit","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","555881991":"National Identity Number Slip","558866810":"Run your bot","560759471":"You'll see these details once the contract starts.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","575668969":"3. For trades that result in a profit, the stake for the next trade will be increased by 2 USD. Deriv Bot will continue to add 2 USD for every successful trade. See A1.","575702000":"Remember, selfies, pictures of houses, or non-related images will be rejected.","576355707":"Select your country and citizenship:","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","585277790":"Some currencies may not be supported by fiat onramp.","587577347":"Take Profit (Accumulator)","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","592381383":"Passkey successfully removed","592964176":"Join over 2.5 million traders","593459109":"Try a different currency","594375321":"Secure your Deriv account by verifying your phone number.","595080994":"Example: CR123456789","595377017":"Withdraw funds","596165833":"Your withdrawal will be processed internally in one business day. After that, for debit/credit cards, it takes 1-15 working days, and for e-wallets, it's 1-3 working days. If there's a delay beyond these periods, please contact us via live chat.","596748073":"View your positions","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","601772576":"We accept only the following documents as proof of address. The document must be issued within the last {{expiry_in_months}} months and include your full name and address:","602278674":"Verify identity","603849445":"Strike price","603849863":"Look for the <0>Repeat While/Until, and click the + icon to add the block to the workspace area.","603899222":"Distance to current spot","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","613418320":"<0>Setup unsuccessful","613877038":"Chart","614567861":"Edit number","615156635":"Your selfie does not match your document.","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","621829484":"{{days_passed}}d ago","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623316736":"{{ message }}, retrying in {{ delay }}s","623542160":"Exponential Moving Average Array (EMAA)","625571750":"Entry spot:","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629003252":"If your current password doesn't match these requirements, you'll need to create a new one in the next step.","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","629395043":"All growth rates","632398049":"This block assigns a null value to an item or statement.","632897893":"If any of the above applies to you, select <0>Yes. Otherwise, select <0>No.","632942644":"Rental/tenancy agreement","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","634274250":"How long each trade takes to expire.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","636427296":"Need help with tax info? Let us know via <0>live chat.","636579615":"Number of unit(s) to be added to the next trade after a losing trade. One unit is equivalent to the amount of initial stake.","638482685":"SMS","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","644150241":"The number of contracts you have won since you last cleared your stats.","645902266":"EUR/NZD","646773081":"Profit threshold: The bot will stop trading if your total profit exceeds this amount.","647039329":"Proof of address required","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","650836587":"This article explores the Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","651284052":"Low Tick","651684094":"Notify","652298946":"Date of birth","654422099":"CRS confirmation is required.","654507872":"True-False","654924603":"Martingale","655733440":"Others","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","656893085":"Timestamp","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","658745169":"You may sell the contract up to 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662953503":"Your contract will be closed when the <0>stop out level is reached.","664779910":"3. If the first trade results in profit, the stake for the following trade will not reduce but remain at the initial stake. The strategy minimally trades at the initial stake of 1 USD. See A1.","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666158951":"Your contract will be closed when the <0>stop out level is reached.","666724936":"Please enter a valid ID number.","670952290":"Due to business changes, client accounts in Senegal are to be closed. Withdraw any remaining funds by {{date}}.","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","676675313":"Authy","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678031950":"Candles List with interval here 2: {{ candle_interval_type }}","679199080":"Why passkeys?","680334348":"This block was required to correctly convert your old strategy.","681108680":"Additional information required for {{platform}} account(s)","681808253":"Previous spot price","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","686387939":"How do I clear my transaction log?","687193018":"Slippage risk","687212287":"Amount is a required field.","688510664":"You've {{two_fa_status}} 2FA on this device. You'll be logged out of your account on other devices (if any). Use your password and a 2FA code to log back in.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","692354762":"Please enter your {{document_name}}. {{example_format}}","693396140":"Deal cancellation (expired)","693933036":"Exploring the Oscar’s Grind strategy in Deriv Bot","694035561":"Trade options multipliers","696157141":"Low spot","696735942":"Enter your National Identification Number (NIN)","696870196":"- Open time: the opening time stamp","698037001":"National Identity Number","698151231":"Didn't receive a code?","699159918":"1. Filing complaints","699646180":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, the funds will be lost and cannot be recovered.","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","702451070":"National ID (No Photo)","702561961":"Change theme","705262734":"Your Wallets are ready","705299518":"Next, upload the page of your passport that contains your photo.","705697927":"2. Set your preferred unit. In this example, it is 2 units or 2 USD.","705821926":"Learn about this trade type","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","706960383":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 60 seconds.","707189572":"Your email address has changed.<0/>Now, log in with your new email address.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711580196":"Why can't I use a payment agent to withdraw my funds?","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","718509613":"Maximum duration: {{ value }}","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","721271917":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724526379":"Learn more with our tutorials","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729251105":"Range: {{min}} - {{max}} {{duration_unit_text}} ","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","732828463":"Standing instructions to transfer funds to an account maintained in the United States, or directions regularly received from a US address","734298230":"Just a reminder","734390964":"Insufficient balance","734881840":"false","735907651":"A US residence address or a US correspondence address (including a US PO box)","737640807":"View available markets here.","737751617":"<0>Explore our website to see what’s available.","739126643":"Indicative high spot","742469109":"Reset Balance","743623600":"Reference","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","747054281":"For a Call option, you receive a payout if the final price is higher than the strike price.","747279775":"Current Stat","749336930":"Secure alternative to passwords.","750886728":"Switch to your real account to submit your documents","751468800":"Start now","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755138488":"We’re unable to verify the document you provided because it contains markings or text that should not be on your document. Please provide a clear photo or a scan of your original identity document.","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","758492962":"210+","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762926186":"A quick strategy is a ready-made strategy that you can use in Deriv Bot. There are 3 quick strategies you can choose from: Martingale, D'Alembert, and Oscar's Grind.","764366329":"Trading limits","766317539":"Language","768301339":"Delete Blocks","771570279":"Filter by time","772520934":"You may sell the contract up to 24 hours before expiry. If you do, we’ll pay you the <0>contract value.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","775706054":"Do you sell trading bots?","776085955":"Strategies","776432808":"Select the country where you currently live.","778172770":"Deriv CFDs","780009485":"About D'Alembert","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787727156":"Barrier","788005234":"NA","789013690":"This is the corresponding price level based on the payout per point you’ve selected. If this barrier is ever breached, your contract would be terminated.","792164271":"This is when your contract will expire based on the Duration or End time you’ve selected.","792622364":"Negative balance protection","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794629751":"Step 400 Index","794682658":"Copy the link to your phone","794778483":"Deposit later","795859446":"Password saved","795992899":"The amount you choose to receive at expiry for every point of change between the final price and the barrier. ","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","806165583":"Australia 200","807499069":"Financial commission complaints procedure","808131992":"Returns the Current Stat","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811255505":"Favourites","812430133":"Spot price on the previous tick.","815925952":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open Deriv Bot.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820517828":"Submit your document","820877027":"Please verify your proof of identity","821163626":"Server maintenance occurs every first Saturday of the month from 7 to 10 GMT time. You may experience service disruption during this time.","822011242":"Please review our updated <0>terms and conditions.","823186089":"A block that can contain text.","823279888":"The {{block_type}} block is missing.","824797920":"Is list empty?","825042307":"Let’s try again","825179913":"This document number was already submitted for a different account. It seems you have an account with us that doesn't need further verification. Please contact us via <0>live chat if you need help.","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","829970143":"If you've hit the deposit limit, please wait 1-2 hours before trying again. Check that your browser is up to date and use incognito mode. If you still have problems, please contact us via <0>live chat.","830164967":"Last name","830703311":"My profile","830993327":"No current transactions available","831344594":"If you select “<0>Lower”, you win the payout if the exit spot is strictly lower than the barrier.","832053636":"Document submission","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835336137":"View Detail","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839158849":"4. If the second trade results in a loss, the Deriv Bot will automatically increase your stake for the next trade by 2 USD. Deriv Bot will continue to add 2 USD to the previous round’s stake after every losing trade. See A2.","839805709":"To smoothly verify you, we need a better photo","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845106422":"Last digit prediction","845304111":"Slow EMA Period {{ input_number }}","846973078":"Number already exists in our system. Enter a new one or contact us via <0>live chat for help.","847209411":"{{formatted_opening_time}} (GMT), {{opening_date}}","848083350":"Your payout is equal to the <0>payout per point multiplied by the difference between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","848203102":"Request a new verification link via email.","849248327":"Barrier set above spot price.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852527030":"Step 2","852583045":"Tick List String","852627184":"document number","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863023016":"For instance, if a trader has a loss threshold (B) of 100 USD, with an initial stake (s) of 1 USD and 2 units of increment (f), the calculation would be as follows:","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864655280":"You can continue to hold your current open positions in your existing MT5 account(s).","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869068127":"The cashier is temporarily down due to maintenance. It will be available as soon as the maintenance is complete.","869823595":"Function","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872721776":"2. Select your XML file and hit Select.","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","873387641":"If you have open positions","874461655":"Scan the QR code with your phone","874472715":"Your funds will remain in your existing MT5 account(s).","874484887":"Take profit must be a positive number.","875101277":"If I close my web browser, will Deriv Bot continue to run?","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","876826584":"Enter a valid phone number, including the country code (e.g. +15417541234).","879014472":"Reached maximum number of decimals","879647892":"You may sell the contract up until 60 seconds before expiry. If you do, we’ll pay you the <0>contract value.","880552407":"Official residence declaration or affidavit","881963105":"(XAUUSD, XAGUSD)","882423592":"The amount that you stake for the first trade. Note that this is the minimum stake amount.","885065431":"Get a Deriv account","888274063":"Town/City","888924866":"We don’t accept the following inputs for:","890299833":"Go to Reports","891337947":"Select country","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","896790627":"A US birthplace","897597439":"Changes saved.","898457777":"You have added a Deriv Financial account.","898904393":"Barrier:","899342595":"NIN","900646972":"page.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","903702825":"DC has been turned off.","904696726":"API token","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","906789729":"Your verification documents were already used for another account.","907680782":"Proof of ownership verification failed","907734435":"This contract starts on","909272635":"Financial - SVG","910888293":"Too many attempts","911048905":"(BTCUSD, ETHUSD)","912257733":"The workspace will be reset to the default strategy and any unsaved changes will be lost. <0>Note: This will not affect your running bot.","912406629":"Follow these steps:","912967164":"Import from your computer","915735109":"Back to {{platform_name}}","916579917":"Try now","918447723":"Real","920125517":"Add demo account","921857297":"Enter a value from 0 to {{ value }}.","921901739":"- your account details of the bank linked to your account","922313275":"You're back online","924046954":"Upload a document showing your name and bank account number or account details.","924912760":"Your document appears to be a digital document.","929608744":"You are unable to make withdrawals","930255747":"Please enter your {{document_name}}. ","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","936393760":"You receive a <0>payout at <1>expiry if the spot price never touches or breaches the <2>barrier during the contract period. If it does, your contract will be terminated early.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938947787":"Withdrawal {{currency}}","938988777":"High barrier","940624996":"Moving strategies to Deriv Bot","942015028":"Step 500 Index","944499219":"Max. open positions","945532698":"Contract sold","945753712":"Back to Trader’s Hub","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947602200":"Save this strategy as an XML file from Deriv Bot for faster re-imports.","947704973":"Reverse D’Alembert","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","958503488":"Search markets on ","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961266215":"140+","961327418":"My computer","961692401":"Bot","962251615":"If you want to adjust your self-exclusion limits, <0>contact us via live chat.","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","966781743":"Session Expired","968576099":"Up/Down","969858761":"Principle 1: Strategy aims to potentially make one unit of profit per session","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975608902":"To trade CFDs, get a Deriv Apps account first.","975950139":"Country of Residence","977647549":"Note: You can use this password for all your {{platform}} accounts.","977929335":"Go to my account settings","979713491":"Zero Spread BVI","980050614":"Update now","981138557":"Redirect","981568830":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via <0>live chat.","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","983295075":"Why can't I see the funds on my card/e-wallet balance after I've made a withdrawal?","983423404":"<0>Step {{step}}/2:  {{title}}","983451828":"2. Select the asset and trade type.","984175243":"Expand Blocks","986565137":"We've received your proof of income","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","988064913":"4. Come back to Deriv Bot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","989840364":"You’re under legal age.","990739582":"170+","992294492":"Your postal code is invalid","992677950":"Logging out on other devices","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","997276809":"I confirm that the name and date of birth above match my chosen identity document","997311089":"Change my password","999008199":"text","1001160515":"Sell","1002989598":"iOS: iCloud keychain.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006069082":"The objective of Martingale strategy is to take advantage of consecutive successful trades and maximise potential profits from them. This strategy is beneficial only if there are consecutive successful trades. Therefore, it is important to set a maximum stake to secure all the potential profits gained from a number of consecutive successful trades, or you could lose all the profits you have accumulated, including your initial stake. For example, if your goal is to maximise profits within 2 consecutive successful trades, you set a maximum stake of 2 USD, given your initial stake is 1 USD. Similarly, if your goal is to maximise profits within 3 consecutive successful trades, you set a maximum stake of 4 USD, given your initial stake is 1 USD.","1006458411":"Errors","1006664890":"Silent","1008151470":"Unit: The number of units that are added in the event of successful trades or the number of units removed in the event of losing trades. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1011424042":"{{text}}. stake<0/>","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1014469655":"Send new link{{next_email_attempt_timestamp}}","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1017081936":"If you select “<0>Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1021090237":"Upgrade your <0>{{account_1}} <1/>and <0>{{account_2}} {{platform}} account(s)","1021679446":"Multipliers only","1022923711":"Invalid code. Try again.","1022934784":"1 minute","1022971288":"Payout per pip","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1024740916":"0.2 pips","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1026289179":"Trade on the go","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1029641567":"{{label}} must be less than 30 characters.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1033253221":"Confirm your identity to make a withdrawal.","1035893169":"Delete","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039428638":"EU regulation","1039476188":"The size used to multiply the stake after a losing trade for the next trade.","1039755542":"Use a few words, avoid common phrases","1040472990":"1. Go to Bot Builder.","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1047644783":"Enable screen lock on your device.","1047881477":"Unfortunately, your browser does not support the video.","1048687543":"Labuan Financial Services Authority","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050063303":"Videos on Deriv Bot","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050433789":"Enter a valid phone number (e.g. +15417541234).","1050844889":"Reports","1052779010":"You are on your demo account","1052921318":"{{currency}} Wallet","1053153674":"Jump 50 Index","1053159279":"Level of education","1053556481":"Once you submit your complaint, we will send you an acknowledgement email to confirm that we have received it.","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057519018":"4. If a trade ends in a profit, the stake for the following trade will be reset to the initial stake amount of 1 USD.","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1058804653":"Expiry","1058905535":"Tutorial","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1062423382":"Explore the video guides and FAQs to build your bot in the tutorials tab.","1062536855":"Equals","1062569830":"The <0>name on your identity document doesn't match your profile.","1065498209":"Iterate (1)","1065766135":"You have {{remaining_transfers}} {{transfer_text}} remaining for today.","1066235879":"Transferring funds will require you to create a second account.","1066459293":"4.3. Acknowledging your complaint","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1070323991":"6. If consecutive successful trades were to happen, the stake would follow a sequence of adjustment from 1 to 3, then 2, and 6 units of initial stake. After 4 consecutive successful trades, it completes one cycle and then the strategy will repeat itself for another cycle. If any trade results in a loss, your stake will reset back to the initial stake for the next trade.","1070624871":"Check proof of address document verification status","1073261747":"Verifications","1073611269":"A copy of your identity document (e.g. identity card, passport, driver's license)","1073711308":"Trade closed","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078189922":"You can make a new deposit once the verification of your account is complete.","1078221772":"Leverage prevents you from opening large positions.","1078303105":"Stop out","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1087112394":"You must select the strike price before entering the contract.","1088031284":"Strike:","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1089436811":"Tutorials","1089687322":"Stop your current bot?","1090041864":"The {{block_type}} block is mandatory and cannot be deleted/disabled.","1090802140":"Additional Information","1091617520":"Type of document","1095295626":"<0>•The Arbiter for Financial Services will determine whether the complaint can be accepted and is in accordance with the law.","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100133959":"National ID","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109182113":"Note: Deal cancellation is only available for Volatility Indices on Multipliers.","1109217274":"Success!","1110102997":"Statement","1111743543":"Stop loss (Multiplier)","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113227831":"Yes, you can. However, there are limits on your account, such as maximum number of open positions and maximum aggregate payouts on open positions. So, just keep these limits in mind when opening multiple positions. You can find more info about these limits at Settings > Account limits.","1113292761":"Less than 8MB","1114679006":"You have successfully created your bot using a simple strategy.","1117281935":"Sell conditions (optional)","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1121050010":"Transaction fee: {{amount}} {{currency}}","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1124382808":"Please enter the expiry time in the format \"HH:MM\".","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127224297":"Sorry for the interruption","1127884488":"cTrader MacOS app","1128139358":"How many CFD trades have you placed in the past 12 months?","1128321947":"Clear All","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1133651559":"Live chat","1134879544":"Example of a document with glare","1134883120":"Use your Deriv account email and password to log in to cTrader.","1138037263":"Customise your investment period and price levels to fit your trading goals.","1138126442":"Forex: standard","1140585027":"Invalid Input {{ input_value }}.","1142023511":"Select the type of document:","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1144740912":"Cancel phone number verification?","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1150637063":"*Volatility 150 Index and Volatility 250 Index","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1155143434":"By clicking on <0>Next you agree to move your {{platform}} {{type}} {{from_account}} account(s) under <2/>Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","1155626418":"below","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163771266":"The third block is <0>optional. You may use this block if you want to sell your contract before it expires. For now, leave the block as it is. ","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166023941":"New password","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1166916934":"Demo Standard SVG","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1171765024":"Step 3","1171961126":"trade parameters","1172230903":"• Stop loss threshold: Use this variable to store your loss limit. You can assign any amount you want. Your bot will stop when your losses hits or exceeds this amount.","1172524677":"CFDs Demo","1173957529":"Go to ‘Account Settings’ on Deriv.","1174186184":"Ensure your information is correct.","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174689133":"3. Set your trade parameters and hit Run.","1174748431":"Payment channel","1175183064":"Vanuatu","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1183448523":"<0>We're setting up your Wallets","1184968647":"Close your contract now or keep it running. If you decide to keep it running, you can check and close it later on the ","1186687280":"Question {{ current }} of {{ total }}","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189249001":"4.1. What is considered a complaint?","1189368976":"Please complete your personal details before you verify your identity.","1190226567":"Standard - Vanuatu","1190440927":"Landline phone bill","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197649109":"No results for {{searchTerm}}","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1203380736":"The D’Alembert strategy is less risky than Martingale, but you can still determine how long your funds will last with this strategy before trading. Simply use this formula.","1204202371":"No open positions","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1204459171":"Your existing <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s) will remain accessible.","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1223993374":"For entry spot, we use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers.","1225874865":"The stake adjustment: target session profit (1 USD) - current session profit (0 USD) = 1 USD","1225962809":"Low Barrier","1227074958":"random fraction","1227132397":"4. For trades that result in a loss, there are two outcomes. If it was traded at the initial stake, the next trade will remain at the same amount as the strategy trades minimally at the initial stake, see A2. If it was traded with a higher amount, the stake for the next trade would be reduced by 2 USD, see A3.","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233178579":"Our customers say","1233300532":"Payout","1233910495":"If you select \"<0>Down\", your total profit/loss will be the percentage decrease in the underlying asset price, times the multiplier and stake, minus commissions.","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1235112380":"For a Put option, you receive a payout if the final price is lower than the strike price.","1236527126":"(Transaction fee: {{transaction_fee}} {{currency_symbol}})","1237330017":"Pensioner","1238311538":"Admin","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1240688917":"Glossary","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1242288838":"Hit the checkbox above to choose your document.","1242994921":"Click here to start building your Deriv Bot.","1243064300":"Local","1243287470":"Transaction status","1246207976":"Enter the authentication code generated by your 2FA app:","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250113042":"This device doesn't support passkeys.","1250495155":"Token copied!","1252669321":"Import from your Google Drive","1253531007":"Confirmed","1253636052":"MetaTrader5 web terminal","1254565203":"set {{ variable }} to create list with","1255827200":"You can also import or build your bot using any of these shortcuts.","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259145708":"Let’s try again. Choose another document and enter the corresponding details.","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1260321794":"active","1262255038":"Step 300 Index","1264096613":"Search for a given string","1265317149":"A recent utility bill (e.g. electricity, water or gas) or recent bank statement or government-issued letter with your name and address.","1265704976":"","1266728508":"Proof of income verification passed","1269296089":"Let's build a Bot!","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274380814":"Your payout is equal to the <0>payout per pip multiplied by the difference, <1>in pips, between the final price and the strike price. You will only earn a profit if your payout is higher than your initial stake.","1274819385":"3. Complaints and Disputes","1276660852":"Submit your proof of identity","1276973471":"The products offered on our website are complex derivative products that carry a significant risk of potential loss. CFDs are complex instruments with a high risk of losing money rapidly due to leverage. 70.84% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how these products work and whether you can afford to take the high risk of losing your money.","1279937041":"<0>Note: Some complex strategies might face issues in the Bot Builder. If you have questions, contact us via <1/>.","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1283418744":"Additional features are available to manage your positions: “<0>Take profit”, “<1>Stop loss” and “<2>Deal cancellation” allow you to adjust your level of risk aversion.","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286351940":"Your {{from_account}} account will be archived after 60 days of inactivity. You can still access your trade history until the account is archived.","1286384690":"If you select “<0>Even”, you will win the payout if the last digit of the last tick is an even number (i.e. 2, 4, 6, 8, or 0).","1286507651":"Close identity verification screen","1288965214":"Passport","1289146554":"British Virgin Islands Financial Services Commission","1289650867":"The Oscar’s Grind strategy is designed to potentially gain a modest yet steady profit in each trading session. This strategy splits trades into sessions and has three principles.","1290525720":"Example: ","1291997417":"Contracts will expire at exactly 23:59:59 GMT on your selected expiry date.","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294553728":"We’re unable to verify the document you provided because it appears to be a blank image. Please try again or upload another document.","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1298254025":"Standard - BVI","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1305217290":"Upload the back of your identity card.","1306976251":"Standard SVG","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1314572331":"Your document failed our verification checks.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320715220":"<0>Account closed","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324922837":"2. The new variable will appear as a block under Set variable.","1325514262":"(licence no. MB/18/0024)","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1339565304":"Deposit now to start trading","1339613797":"Regulator/External dispute resolution","1340286510":"The bot has stopped, but your trade may still be running. You can check it on the Reports page.","1341840346":"View in Journal","1344696151":"Forex, stocks, stock indices, commodities, cryptocurrencies and synthetic indices.","1346038489":"Should be less than 70.","1346204508":"Take profit","1346339408":"Managers","1346947293":"We were unable to verify your selfie because it’s not clear. Please take a clearer photo and try again. Ensure that there's enough light where you are and that your entire face is in the frame.","1347071802":"{{minutePast}}m ago","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1352234202":"Last {{positionsCount}} contracts:","1352413406":"Define your trade options, such as accumulator and stake.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357213116":"Identity card","1358543466":"Not available","1358543748":"enabled","1360929368":"Add a Deriv account","1362029761":"Exploring the Reverse Martingale strategy in Deriv Bot","1362578283":"High","1363645836":"Derived FX","1363675688":"Duration is a required field.","1364879837":"The verification is passed but the personal info is not available to compare.","1364958515":"Stocks","1366244749":"Limits","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1370435892":"Verify the address on this page before each deposit to avoid losing funds. Occasionally, the address could be updated.","1370647009":"Enjoy higher daily limits","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1373949314":"The Reverse Martingale strategy involves increasing your stake after each successful trade and resets to the initial stake for every losing trade as it aims to secure potential profits from consecutive wins.","1374627690":"Max. account balance","1374902304":"Your document appears to be damaged or cropped.","1376329801":"Last 60 days","1378419333":"Ether","1380349261":"Range","1383017005":"You have switched accounts.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396217283":"{{transaction_amount}} {{currency_symbol}}","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1402224124":"Hit the button below, and we'll email you a verification link.","1402300547":"Lets get your address verified","1403085197":"Boost your trading strategy with Accumulators.","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1407191858":"DTrader","1408844944":"Click the plus icon to extend the functionality of this block.","1410016796":"Below spot:","1411373212":"Strong passwords contain at least 8 characters. combine uppercase and lowercase letters, numbers, and symbols.","1411419173":"Growth Rate: {{ accumulator }}","1412405902":"See important notes","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1414366321":"An uppercase letter","1414918420":"We'll review your proof of identity again and will give you an update as soon as possible.","1415006332":"get sub-list from first","1415513655":"Download cTrader on your phone to trade with the Deriv cTrader account","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1416521695":"Positions","1417558007":"Max. total loss over 7 days","1417907460":"No problem! Your passkey still works.","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1419330165":"Forex, stocks, stock indices, commodities, cryptocurrencies, ETFs and synthetic indices","1421046084":"Setup your account","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1423296980":"Enter your SSNIT number","1424741507":"See more","1424763981":"1-3-2-6","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1428657171":"You can only make deposits. Please contact us via <0>live chat for more information.","1430221139":"Verify now","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434767075":"Get started on Deriv Bot","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1437529196":"Payslip","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1444066971":"It seems you’ve submitted this document before. Upload a new document.","1444843056":"Corporate Affairs Commission","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1447698999":"Withdrawals can be cancelled if they're still in the 'Requested' status (you can check your status under Pending payout). Once the status changes to 'Authorised', in 'Progress', or 'Processed', cancellation isn't possible.","1449462402":"In review","1451838304":"New features for developers.","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1454406889":"Choose <0>until as the repeat option.","1454648764":"deal reference id","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1458160370":"Enter your {{platform}} password to add a {{platform_name}} {{account}} {{jurisdiction_shortcode}} account.","1459761348":"Submit proof of identity","1461323093":"Display messages in the developer’s console.","1462238858":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467880277":"3. General queries","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468508098":"Slippage happens when the asset price changes by the time it reaches our servers.","1469133110":"cTrader Windows app","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1470565177":"Article of association","1471008053":"Deriv Bot isn't quite ready for real accounts","1471070549":"Can contract be sold?","1471741480":"Severe error","1473369747":"Synthetics only","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1480915523":"Skip","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490509675":"Options accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1495294225":"Barrier set at specific price.","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499080621":"Tried to perform an invalid operation.","1499733992":"is verified as your phone number.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503419760":"Swap-free CFDs on selected financial and derived instruments.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505927599":"Our servers hit a bump. Let’s refresh to move on.","1507554225":"Submit your proof of address","1509559328":"cTrader","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1513771077":"We're processing your withdrawal.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1518404516":"This block gives you a list of the cuurent stats of the last 1000 tick values.","1519490251":"Back to personal details","1520332426":"Net annual income","1521546070":"Download Block","1524636363":"Authentication failed","1526012495":"This could be because:","1526483456":"2. Enter a name for your variable, and hit Create. New blocks containing your new variable will appear below.","1527251898":"Unsuccessful","1527664853":"Your payout is equal to the payout per point multiplied by the difference between the final price and the strike price.","1527906715":"This block adds the given number to the selected variable.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534796105":"Gets variable value","1537192641":"Unable to process your request","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1540585098":"Decline","1541508606":"Looking for CFDs? Go to Trader's Hub","1541770236":"The 1-3-2-6 strategy aims to maximise potential profits with four consecutive successful trades. One unit is equal to the amount of the initial stake. The stake will adjust from 1 unit to 3 units after the first successful trade, then to 2 units after your second successful trade, and to 6 units after the third successful trade. The stake for the next trade will reset to the initial stake if there is a losing trade or a completion of the trade cycle.","1541969455":"Both","1542742708":"Synthetics, Forex, Stocks, Stock indices, Commodities, and Cryptocurrencies","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548185597":"Step 200 Index","1549098835":"Total withdrawn","1551172020":"AUD Basket","1551689907":"Enhance your trading experience by upgrading your <0/><1>{{platform}} {{type}} {{from_account}} account(s).","1553026987":"You receive a <0>payout at <0>expiry if the spot price never breaches the <0>barrier during the contract period. If it does, your contract will be terminated early.","1556391770":"You cannot make a withdrawal as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1560356933":"Official letter issued by the government or solicitor","1562374116":"Students","1565273609":"Accumulators is now on Deriv Bot","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1566717687":"We also provide a guide on the Tutorial tab to show you how you can build and execute a simple strategy.","1567745852":"Bot name","1569527365":"Verification failed. Resubmit your details.","1569624004":"Dismiss alert","1570484627":"Ticks list","1570495551":"For exit spot, the latest asset price when the trade closure is processed by our servers.","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1571739707":"View your positions here.","1572504270":"Rounding operation","1572982976":"Server","1573429525":"Call/Put","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1578204427":"Your payout is equal to the <0>payout per point multiplied by the distance between the <0>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","1580498808":"Multiple faces found","1582567078":"Specify your trade parameters.","1584109614":"Ticks String List","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589148299":"Start","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1589863913":"These are the trade parameters used for D’Alembert strategy in Deriv Bot.","1590400723":"Total assets in all your accounts","1591224893":"Make quick adjustments (5/6)","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1595295238":"3. Use a logic block to check if Total profit/loss is more than the Stop loss threshold amount. You can find the Total profit/loss variable under Analysis > Stats on the Blocks menu on the left. Your bot will continue to purchase new contracts until the Total profit/loss amount exceeds the Stop loss threshold amount.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1598789539":"Here are some common card/e-wallet errors and their solutions:","1599743312":"An example of Reverse Martingale strategy","1602894348":"Create a password","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1612638396":"Cancel your trade at any time within a specified timeframe.","1615897837":"Signal EMA Period {{ input_number }}","1618652381":"For instance, if a trader has a loss threshold (B) is 1000 USD, with an initial stake (s) is 1 USD, and the Martingale multiplier (m) is 2, the calculation would be as follows:","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1622944161":"Now, go to the <0>Restart trading conditions block.","1623706874":"Use this block when you want to use multipliers as your trade type.","1623723710":"<0>Boost your trading strategy with Accumulators","1628981793":"Can I trade cryptocurrencies on Deriv Bot?","1630317389":"If you select “<0>No Touch”, you win the payout if the market never touches the barrier at any time during the contract period.","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1633661992":"Tick {{current_tick}}/{{tick_count}}","1634016345":"2. If the trade is successful, this strategy will automatically adjust your stake to 3 units of your initial stake for the next trade. In this case, the stake adjustment is 3 units and the initial stake is 1 USD, hence the next trade will start at 3 USD.","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1635628424":"An envelope with your name and address.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644636153":"Transaction hash: <0>{{value}}","1644703962":"Looking for CFD accounts? Go to Trader's Hub","1644864436":"You’ll need to authenticate your account before requesting to become a professional client. <0>Authenticate my account","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1648938920":"Netherlands 25","1649239667":"2. Under the Blocks menu, you'll see a list of categories. Blocks are grouped within these categories. Choose the block you want and drag them to the workspace.","1650963565":"Introducing Wallets","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653064273":"TP history","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1653999225":"Forex: major/minor","1654365787":"Unknown","1654529197":"Purchase condition","1654721858":"Upload anyway","1655372864":"Your contract will expire on this date (in GMT), based on the end time you’ve selected.","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1659327870":"How do I cancel my withdrawal?","1659352235":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited, regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","1661126218":"Expiry date:","1665272539":"Remember: You cannot log in to your account until the selected date.","1665718170":"The document must contain a letterhead.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1669062316":"The payout at expiry is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1676549796":"Dynamic Leverage","1677027187":"Forex","1679743486":"1. Go to Quick strategy and select the strategy you want.","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1681765749":"Martingale formula 2","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683383299":"Your contract is closed automatically when your profit is more than or equals to this amount. This block can only be used with the accumulator trade type.","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1690746575":"Enhance your trading experience by upgrading your <0>{{platform}} {{type_1}} <1/>and <0>{{type_2}} {{from_account}} account(s).","1691335819":"To continue trading with us, please confirm who you are.","1691536201":"If you choose your duration in number of ticks, you won’t be able to terminate your contract early.","1691765860":"- Negation","1692912479":"Deriv MT5, Deriv X","1693614409":"Start time","1694517345":"Enter a new email address","1696190747":"Trading inherently involves risks, and actual profits can fluctuate due to various factors, including market volatility and other unforeseen variables. As such, exercise caution and conduct thorough research before engaging in any trading activities.","1697529334":"Important: Your <0>{{platform}} {{existing_account}} account.","1698624570":"2. Hit Ok to confirm.","1699606318":"You've reached the limit of uploading your documents.","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1702339739":"Common mistakes","1703091957":"We collect information about your employment as part of our due diligence obligations, as required by anti-money laundering legislation.","1703712522":"Your payout is equal to the payout per pip multiplied by the difference, <0>in pips, between the final price and the strike price.","1704656659":"How much experience do you have in CFD trading?","1707264798":"Why can't I see deposited funds in my Deriv account?","1707581467":"sec","1707758392":"Step 100 Index","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1711013665":"Anticipated account turnover","1711016273":"<0>This may take up to 2 minutes. During this time, some services may be unavailable.","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1713633297":"3. If the second trade is also successful, your stake will adjust to 2 USD or 2 units of the initial stake for the next trade.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1715680813":"Your contract will expire at exactly 23:59:59 GMT +0 on your selected expiry date.","1716142274":"Send code via {{phone_verification_type}}","1717023554":"Resubmit documents","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722056905":"The document you provided is not supported for your country. Please provide a supported document for your country.","1722888575":"{{mt5_migration_error}}","1723390945":"Your demo {{deriv}} {{type}} account is ready.","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724367774":"You can make a funds transfer once the verification of your account is complete.","1724696797":"You are limited to one fiat account only.","1725873563":"Trading disabled","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732212492":"Explore trade types (1/6)","1732891201":"Sell price","1733711201":"Regulators/external dispute resolution","1734185104":"Balance: %1","1734264460":"Disclaimer","1734521537":"The document you provided appears to be two different types. Please try again or provide another document.","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738094481":"<0>Duration: Ticks 1","1738206798":"Above spot","1738611950":"About Reverse Martingale","1738681493":"Remove your glasses, if necessary","1739086943":"Wall Street 30","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1741006997":"Yesterday","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743679873":"If you select <0>\"Call\", you’ll earn a <1>payout if the <1>final price is above the <1>strike price at <1>expiry. Otherwise, you won’t receive a payout.","1743902050":"Complete your financial assessment","1744509610":"Just drag the XML file from your computer onto the workspace, and your bot will be loaded accordingly. Alternatively, you can hit Import in Bot Builder, and choose to import your bot from your computer or from your Google Drive.","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747652849":"If you select the take profit feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount throughout the contract duration. Your profit may be more than the amount you entered depending on the market price at closing. You may change your take profit amount up to 15 seconds before expiry.","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1753082252":"This article explores the strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as Forex, Commodities, and Derived Indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","1753183432":"We take all complaints seriously and aim to resolve them as quickly and fairly as possible. If you are unhappy with any aspect of our service, please let us know by submitting a complaint using the guidance below:","1753226544":"remove","1753975551":"Upload passport photo page","1754256229":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_ctrader }} transfers between your Deriv and {{platform_name_ctrader}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1756678453":"break out","1761038852":"Let’s continue with providing proofs of address and identity.","1761254001":"A number","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1763979823":"Please adjust your stake.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1768293340":"Contract value","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1770041368":"Experience safer logins","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772396880":"The date of birth on your document doesn’t match your profile.","1777847421":"This is a very common password","1778893716":"Click here","1779144409":"Account verification required","1779519903":"Should be a valid number.","1779801832":"Please update your password accordingly.","1779872677":"Download e-book","1780442963":"Scan the QR code to download {{ platform }}.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1780805104":"Only send {{currency_name}} ({{currency_code}}) to this address.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783526986":"How do I build a trading bot?","1783740125":"Upload your selfie","1785298924":"D’Alembert formula 1","1786644593":"Supported formats: JPEG, JPG, PNG, PDF, and GIF only","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788515547":"<0/>For more information on submitting a complaint with the Office of the Arbiter for Financial Services, please <1>see their guidance.","1788966083":"01-07-1999","1789273878":"Payout per point","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1791432284":"Search for country","1791926890":"If you select “<0>Higher”, you win the payout if the exit spot is strictly higher than the barrier.","1791971912":"Recent","1792037169":"To avoid delays, enter your <0>name and <0>date of birth exactly as they appear on your {{document_name}}.","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796270910":"{{days}} days ago","1796787905":"Please upload the following document(s).","1797139903":"Download your strategy in XML format and import it to Deriv Bot.","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801270786":"Ready to automate your trading strategy without writing any code? You’ve come to the right place.","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806017862":"Max. ticks","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811138041":"Enter a value from {{ value }} to 9.","1811343027":"2. Select your Martingale multiplier. In this example, it is 2.","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812006199":"Identity verification","1812582011":"Connecting to server","1813380455":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}} and {{platform_name_smarttrader}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","1813700208":"Boom 300 Index","1815034361":"alphabetic","1815905959":"DTrader, DBot, SmartTrader, and Binary Bot","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1821818748":"Enter Driver License Reference number","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1824292864":"Call","1827607208":"File not uploaded.","1828370654":"Onboarding","1828856382":"If you select “<0>Differs”, you will win the payout if the last digit of the last tick is not the same as your prediction.","1830520348":"{{platform_name_dxtrade}} Password","1831847842":"I confirm that the name and date of birth above match my chosen identity document (see below)","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1839021527":"Please enter a valid account number. Example: CR123456789","1840721160":"Deriv MT5 latest password requirements","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1843336754":"Select document","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845598565":"The second session concludes upon reaching the aim of one unit of potential profit per session, equivalent to 1 USD. If trading continues, a new session will commence again.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846588117":"Your contract will be closed automatically when your loss reaches {{stop_out_percentage}}% of your stake.","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1851052337":"Place of birth is required.","1851776924":"upper","1854480511":"Cashier is locked","1854874899":"Back to list","1854909245":"Multiplier:","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1856755117":"Pending action required","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1865160710":"Remove","1865525612":"No recent transactions.","1866244589":"The entry spot is the first tick for High/Low Ticks.","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871377550":"Do you offer pre-built trading bots on Deriv Bot?","1871664426":"Note","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874737957":"To trade multipliers, get a Deriv Apps account first.","1874756442":"BVI","1875090343":"Choose a date range","1875702561":"Load or build your bot","1876015808":"Social Security and National Insurance Trust","1876325183":"Minutes","1876333357":"Tax Identification Number is invalid.","1877225775":"Your proof of address is verified","1877832150":"# from end","1878172674":"No, we don't. However, you'll find quick strategies on Deriv Bot that'll help you build your own trading bot for free.","1878189977":"The Martingale strategy involves increasing your stake after each loss to recoup prior losses with a single successful trade.","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1879651964":"<0>Pending verification","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880227067":"Submit passport photo pages","1880377568":"An example of D’Alembert strategy","1880875522":"Create \"get %1\"","1881018702":"hour","1881142897":"Tick Delayed run","1881380263":"Total assets in your account.","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887257727":"R is the number of rounds a trader can sustain given a specific loss threshold.","1887925280":"The document must be recent and include your name and address:","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1893869876":"(lots)","1894667135":"Please verify your proof of address","1896269665":"CFDs on derived and financial instruments.","1899898605":"Maximum size: 8MB","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1904665809":"The Reverse Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","1905032541":"We're now ready to verify your identity","1905468265":"Due to business changes, Senegal client accounts are to be closed. Withdraw any remaining funds by {{date}}.","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906213000":"Our system will finish any Deriv Bot trades that are running, and Deriv Bot will not place any new trades.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907423697":"Earn more with Deriv API","1907499654":"Deriv App","1907899646":"Take profit can't be adjusted for ongoing accumulator contracts.","1908023954":"Sorry, an error occurred while processing your request.","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1910533633":"Get a real account to deposit money and start trading.","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1916129921":"Reverse Martingale","1917178459":"Bank Verification Number","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919296368":"2. Select your unit. In this example, it is 2 units or 2 USD.","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1924365090":"Maybe later","1924765698":"Place of birth*","1927316982":"Check your positions (6/6)","1928930389":"GBP/NOK","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1934450653":"For <0>Contract type, set it to Both.","1938327673":"Deriv {{platform}} <0>{{is_demo}}","1939014728":"How do I remove blocks from the workspace?","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1947826019":"OTP limit reached","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1950469083":"Due to business changes, client accounts in Senegal are to be closed. Deposits and trading are disabled. Withdraw your funds by {{date}}.","1955219734":"Town/City*","1957759876":"Upload identity document","1958788790":"This is the amount you’ll receive at expiry for every point of change in the underlying price, if the spot price never touches or breaches the barrier throughout the contract duration.","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960005187":"Follow these steps to smoothly transfer your strategies","1960240336":"first letter","1964165648":"Connection lost","1965358881":"Step 2 of 3: Confirm your phone number","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1966855430":"Account already exists","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1970060713":"You’ve successfully deleted a bot.","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973910243":"Manage your accounts","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1978218112":"Google Authenticator","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982790875":"Upgrade your <0/><1>{{account_title}} {{platform}} account(s)","1982796981":"Declarations","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983358602":"This policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","1983387308":"Preview","1983480826":"Sign in","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986322868":"When your loss reaches or exceeds this amount, your trade will be closed automatically.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991055223":"View the market price of your favourite assets.","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1997313835":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <0>previous spot price. Otherwise, you lose your stake and the trade is terminated.","1999213036":"Enhanced security is just a tap away.","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2001361785":"1. Start with the initial stake. Let’s say 1 USD.","2001717886":"Demo Standard","2004052487":"Estimating the lifespan of your trades","2007028410":"market, trade type, contract type","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2012139674":"Android: Google password manager.","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2015878683":"Need help? Contact us via <0>live chat","2017672013":"Please select the country of document issuance.","2018044371":"Multipliers let you trade with leverage and limit your risk to your stake. <0>Learn more","2018987868":"in ","2019596693":"The document was rejected by the Provider.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023546580":"Your account will be available for trading once the verification of your account is complete.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027441253":"Why do we collect this?","2027625329":"Simple Moving Average Array (SMAA)","2027638150":"Upgrade","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2031132962":"Bank statement","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037906477":"get sub-list from #","2038562422":"TIN is required.","2039198937":"Maximum stake: The maximum amount you are willing to pay to enter a single trade. The stake for your next trade will reset to the initial stake if it exceeds this value. This is an optional risk management parameter.","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2045778609":"Invalid stake","2046273837":"Last tick","2046577663":"Import or choose your bot","2048110615":"Email address*","2048134463":"File size exceeded.","2049386104":"We need you to submit these in order to get this account:","2050170533":"Tick list","2051249190":"Add funds and start trading","2051558666":"View transaction history","2051596653":"Demo Zero Spread BVI","2052022586":"To enhance your MT5 account security we have upgraded our password policy.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2056369950":"<0>To complete your Wallet setup, log out and then log in again.","2056526458":"Get real account","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2059365224":"Yes, you can get started with a pre-built bot using the Quick strategy feature. You’ll find some of the most popular trading strategies here: Martingale, D'Alembert, and Oscar's Grind. Just select the strategy, enter your trade parameters, and your bot will be created for you. You can always tweak the parameters later.","2059753381":"Why did my verification fail?","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063196399":"<0>Tenancy agreement: Valid and current agreement.","2063812316":"Text Statement","2063890788":"Cancelled","2066978677":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0 /> {{opening_date}}.","2067903936":"Driving licence","2070002739":"Don’t accept","2070345146":"When opening a leveraged CFD trade.","2070518923":"Import your bot or tap Quick Strategies to choose from the ready-to-use bot templates.","2070752475":"Regulatory Information","2070858497":"Your document appears to be a screenshot.","2071043849":"Browse","2074207096":"How to create a passkey?","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2074713563":"4.2. Submission of a complaint","2077055596":"We’re currently performing server maintenance. Service may be affected.","2079925695":"Unit: The number of units that are added in the event of a trade resulting in loss or the number of units removed in the event of a trade resulting in profit. For example, if the unit is set at 2, the stake increases or decreases by two times the initial stake of 1 USD, meaning it changes by 2 USD.","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2081622549":"Must be a number higher than {{ min }}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086048243":"Certificate of incorporation","2086383634":"You are adding your {{platform}} {{product}} account under {{company}}, regulated by the British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114).","2086792088":"Both barriers should be relative or absolute","2087416013":"Resend code{{resendCode}}","2088344208":"Forex (standard), stock indices, commodities, cryptocurrencies, stocks, ETFs, synthetic indices, basket indices and derived FX","2088735355":"Your session and login limits","2089087110":"Basket indices","2089395053":"Unit","2089581483":"Expires on","2090650973":"The spot price may change by the time your order reaches our servers. When this happens, your payout may be affected.","2091671594":"Status","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097815211":"Number of rounds (R) = 10","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2100912278":"4. If a trade ends in a loss, the stake for the following trade will be reset to the initial stake amount of 1 USD.","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104364680":"Please switch to your demo account to run your Deriv Bot.","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2107882050":"The back of your document appears to be missing. Please include both sides of your identity document.","2109845480":"Phone number verified","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2112788361":"Analyse with charts (4/6)","2113321581":"Add a Deriv Gaming account","2114766645":"Some trade types are unavailable for {{symbol}}.","2115223095":"Loss","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117454014":"In your crypto wallet, select the <0>{{network_name}} network when transferring to Deriv. Incorrect transfers may result in the loss of funds.","2117489390":"Auto update in {{ remaining }} seconds","2118292085":"<0>Note: You’ll receive an email when your deposit starts being processed.","2119449126":"Example output of the below example will be:","2119710534":"FAQ","2121227568":"NEO/USD","2122152120":"Assets","2127564856":"Withdrawals are locked","2128250969":"Use the same address that appears on your proof of address (utility bill, bank statement, etc.).","2129807378":"Update profile","2133075559":"This means after 10 rounds of consecutive losses, this trader will lose 100 USD. This reaches the loss threshold of 100 USD, stopping the bot.","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2136480755":"Some details in your document appear to be invalid, missing, or unclear.","2137645254":"If you select “<0>Call”, you’ll earn a <1>payout if the <2>final price is above the <3>strike price at <4>expiry. Otherwise, you won’t receive a payout.","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146698770":"Pro tip: You can also click and drag out the desired block","2146751355":"We use current-tick-execution mechanism, which is the latest asset price when the trade opening is processed by our servers for Volatility Index, Basket Indices, Jump Indices and Crash/Boom Indices.","2146892766":"Binary options trading experience","2147244655":"How do I import my own trading bot into Deriv Bot?","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-826420669":"Make sure","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-1120954663":"First name*","-1659980292":"First name","-962979523":"Your {{ field_name }} as in your identity document","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1702919018":"Second line of address (optional)","-1315410953":"State/Province","-2040322967":"Citizenship","-344715612":"Employment status*","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-946282997":"Additional information","-1315571766":"Place of birth","-789291456":"Tax residence*","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1387062433":"Account opening reason","-222283483":"Account opening reason*","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-684271315":"OK","-1292808093":"Trading Experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-816263501":"Only letters, numbers, space and hyphen are allowed.","-755626951":"Complete your address details","-1024240099":"Address","-1534917661":"Select your preferred currency","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-1030759620":"Government Officers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-654781670":"Primary","-1717373258":"Secondary","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-477761028":"Voter ID","-1466346630":"CPF","-1161338910":"First name is required.","-1629185446":"Enter no more than 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-1775687235":"You should enter {{min}}-{{max}} characters.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-212167954":"Tax Identification Number is not properly formatted.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-204765990":"Terms of use","-739367071":"Employed","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-1696856986":"You should enter 9-20 numbers.","-1995979930":"First line of address is required.","-703454156":"Please enter a Postal/ZIP code under 20 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-379642178":"Enter a valid phone number.","-1103497546":"Tax return","-700600899":"Business proof of address","-1073862586":"Memorandum","-1823328095":"Authorization letter","-397487797":"Enter your full card number","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-612752984":"These are default limits that we apply to your accounts.","-1498206510":"Account limits","-1411635770":"Learn more about account limits","-1340125291":"Done","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-173346300":"Maximum daily turnover","-138380129":"Total withdrawal allowed","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-506122621":"Please take a moment to update your information now.","-1106259572":"Don't know your tax identification number? <1 />Click <0>here to learn more.","-252665911":"Place of birth{{required}}","-859814496":"Tax residence{{required}}","-237940902":"Tax Identification number{{required}}","-919191810":"Please fill in tax residence.","-270569590":"Intended use of account{{required}}","-2120290581":"Intended use of account is required.","-594456225":"Second line of address","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-1076138910":"Trade","-1666909852":"Payments","-488597603":"Trading information","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-2087317410":"Oops, something went wrong.","-1883688868":"Select a document","-184202848":"Upload file","-863586176":"Drag and drop a file or click to browse your files.","-370334393":"Click here to browse your files.","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-509054266":"Anticipated annual turnover","-1117345066":"Choose the document type","-1634507018":"Enter your {{document_name}}","-1237846864":"Verify again","-39187636":"{{index}}.","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1113902570":"Details","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-1451334536":"Continue trading","-251603364":"Your document for proof of address is expired. <0/>Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-2145244263":"This field is required","-1500958859":"Verify","-839094775":"Back","-1813671961":"Your identity verification failed because:","-2097808873":"We were unable to verify your ID with the details you provided. ","-1652371224":"Your profile is updated","-504784172":"Your document has been submitted","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-155705811":"A clear colour photo or scanned image","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-1949501500":"First, enter your {{label}}.","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-841187054":"Try Again","-856213726":"You must also submit a proof of address.","-552371330":"We were unable to verify your income. <0 /> Please check the email we've sent you for further information.","-978467455":"Limit reached","-361316523":"You have reached the maximum number of allowed attempts for submitting proof of income. <0 /> Please check the email we've sent you for further information.","-1785967427":"We'll review your documents and notify you of its status within 7 working days.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-47815161":"Please include at least 1 special character such as ( _ @ ? ! / # ) in your password.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-507633532":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character such as ( _ @ ? ! / # ).","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-996691262":"We’ve introduced these limits to encourage <0>responsible trading. They are optional, and you can adjust them anytime.","-2079276011":"These limits apply to your multipliers trades only. For example, <0>maximum total loss refers to the losses on your multipliers trades.","-2116570030":"If you want to adjust your limits, <0>contact us via live chat. We’ll make the adjustments within 24 hours.","-1389915983":"You decide how much and how long to trade. You can take a break from trading whenever you want. This break can be from 6 weeks to 5 years. When it’s over, you can extend it or log in to resume trading. If you don’t want to set a specific limit, leave the field empty.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-474419287":"FATCA declaration","-1101737402":"Please select*","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-1209644365":"I hereby confirm that my request for opening an account with Deriv Investments (Europe) Ltd is made on my own initiative.","-740157281":"Trading Experience Assessment","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-1685104463":"* This is required","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-1232613003":"<0>Verification failed. <1>Why?","-805775852":"<0>Needs verification.<1>Verify now","-1983989074":"<0>No new positions","-863479504":"<0>Server maintenance","-1113760028":"<0>Unavailable","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-818898181":"Name in document doesn’t match your Deriv profile.","-310316375":"Address in document doesn’t match address you entered above.","-485368404":"Document issued more than 6-months ago.","-91160765":"Document issued more than 12-months ago.","-367016488":"Blurry document. All information must be clear and visible.","-1957076143":"Cropped document. All information must be clear and visible.","-1576856758":"An account with these details already exists. Please make sure the details you entered are correct as only one real account is allowed per client. If this is a mistake, contact us via <0>live chat.","-1792723131":"To avoid delays, enter your <0>date of birth exactly as it appears on your {{document_name}}.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-1231402474":"Connected apps are authorised applications associated with your account through your API token or the OAuth authorisation process. They can act on your behalf within the limitations that you have set.","-506083843":"As a user, you are responsible for sharing access and for actions that occur in your account (even if they were initiated by a third-party app on your behalf).","-831752682":"Please note that only third-party apps will be displayed on this page. Official Deriv apps will not appear here.","-915844096":"US citizenship or lawful permanent resident (green card) status","-208714573":"An “in care of” address or a “hold mail” address that is the sole address with respect to the client","-1082633433":"A power of attorney or signatory authority granted to a person with a US address.","-231863107":"No","-1858215754":"The document must be up-to-date and signed by the issuance authority.","-718917527":"Invalid or incomplete documents shall be rejected.","-682267922":"<0>Financial, legal, or government document: Recent bank statement, affidavit, or government-issued letter.","-214582149":"Utility bill (electricity, water, gas)","-506510414":"Date and time","-1708927037":"IP address","-189310067":"Account closed","-378284250":"Phone number verification","-849320995":"Assessments","-773766766":"Email and passwords","-1144318594":"Passkeys","-1466827732":"Self exclusion","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-526636259":"Error 404","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-860053164":"When trading multipliers.","-1250327770":"When buying shares of a company.","-1222388581":"All of the above.","-1592318047":"See example","-1694758788":"Enter your document number","-1176889260":"Please select a document type.","-274764613":"Driver License Reference number","-1265050949":"identity document","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-1437017790":"Financial information","-70342544":"We’re legally obliged to ask for your financial information.","-39038029":"Trading experience","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-178498188":"To change your verified phone number, contact us via <0>.","-1044302070":"Number already exists in our system. Enter a new one or contact us via <0> for help","-136976514":"Country of residence*","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2068064150":"Get updates about Deriv products, services and events.","-164389553":"Verified","-1283020225":"Verify{{resendCode}}","-1060822567":"If you cancel, you'll lose all progress.","-1239477911":"second","-1603581277":"minutes","-667223033":"Get code via SMS","-211241628":"Get code via WhatsApp","-690422971":"Request new code in {{next_phone_number_attempt_timestamp}}.","-222105210":"Resend code","-1601377103":"Step 3 of 3: Verify your number","-121443071":"Step 1 of 3: Email verification needed","-1419026486":"Enter the 6-digit code sent to you via {{phone_verification_type}} at <1>{{users_phone_number}}. <0>","-652539141":"OTP code","-1124039045":"Verification code","-1184626439":"Didn't get the code?{{resendCode}}","-165489997":"Session expired","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-807767876":"Note:","-1117963487":"Name your token and click on 'Create' to generate your token.","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-2125635811":"Please withdraw your funds from the following {{platform_name}} account(s):","-577445413":"Please close your positions in the following {{platform_name}} account(s):","-1219849101":"Please select at least one reason","-9323953":"Remaining characters: {{remaining_characters}}","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-937707753":"Go Back","-771109503":"Use our powerful, flexible, and free API to build a custom trading platform for yourself or for your business.","-1815044949":"You currently don't have any third-party authorised apps associated with your account.","-1699100421":"What are connected apps?","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1468863262":"{{action}}","-727433417":"{{status}}","-1814836151":"What are passkeys?","-1275937234":"Unlock your account like your phone - with biometrics, face scan or PIN.","-587750445":"Extra security layer.","-642452561":"Shields against unauthorised access and phishing.","-1654043401":"You can create one passkey per device.","-1411242065":"Where are passkeys saved?","-258752017":"What happens if my Deriv account email is changed?","-634268263":"Sign in to Deriv with your existing passkey.","-1700177761":"Create passkey","-1405679241":"Stored on: ","-567193224":"Rename","-1140319320":"Your account is now secured with a passkey.<0/>Manage your passkey through your<0/>Deriv account settings.","-592543249":"Add more passkeys","-331060101":"Passkey setup failed","-1036903080":"We’re experiencing a temporary issue in processing your request. Please try again later.","-713875531":"Enable bluetooth.","-1729774899":"Sign in to your Google or iCloud account.","-118511422":"Remove passkey","-132862611":"Are you sure you want to remove this passkey?","-508225603":"Your passkey is successfully removed. To avoid sign-in prompts, also remove the passkey from your iCloud keychain.","-684009726":"Edit passkey","-1004529240":"Passkey name","-1728732301":"Effortless login with passkeys","-1708254107":"Enable Bluetooth.","-613368504":"Tips:","-1897886029":"Before using passkey:","-1893497054":"Only 3-30 characters allowed.","-80717068":"Apps you have linked to your <0>Deriv password:","-340060402":"Your Deriv X password is for logging in to your Deriv X accounts on the web and mobile apps.","-619126443":"Use the <0>Deriv password to log in to {{brand_website_name}} and {{platform_name_trader}}.","-623760979":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_trader}} and {{platform_name_go}}.","-459147994":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, {{platform_name_dbot}} and {{platform_name_ctrader}}.","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2131200819":"Disable","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-2067796458":"Authentication code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-890084320":"Save and submit","-1043340733":"Proof of address documents upload failed","-1242877737":"Document type is required.","-30772747":"Your personal details have been saved successfully.","-2021135479":"This field is required.","-1002044401":"Select your document*","-1272489896":"Please complete this field.","-721346138":"The options and multipliers trading platform.","-1874136267":"The ultimate bot trading platform.","-415943890":"The legacy options trading platform.","-2018495421":"The mobile app for trading multipliers and accumulators.","-897826065":"The multipliers trading platform.","-2115275974":"CFDs","-1585707873":"Financial Commission","-199154602":"Vanuatu Financial Services Commission","-191165775":"Malta Financial Services Authority","-194969520":"Counterparty company","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1131400885":"Deriv Investments (Europe) Limited","-1471207907":"All assets","-781132577":"Leverage","-1591882610":"Synthetics","-543177967":"Stock indices","-362324454":"Commodities","-1959484303":"Cryptocurrencies","-1071336803":"Platform","-1879666853":"Deriv MT5","-820028470":"Options & Multipliers","-1210359945":"Transfer funds to your accounts","-1926387364":"We’ve sent your e-book to your email. You can also download it here.","-1057002564":"<0>We’re unable to upgrade you to Wallets at this time and are working to get this fixed as soon as we can. Please <1>try again<0>.","-1424352390":"<0>Wallets<1> — A smarter way to manage your funds","-1749409935":"Let's go","-145462920":"Deriv cTrader","-982095728":"Get","-390793294":"CFDs on financial and derived instruments, <0>powered by TradingView.","-45873457":"NEW","-1473281803":"Predict the market, profit if you’re right, risk only what you put in. <0>Learn more","-2134770229":"Total assets in your Deriv Apps and Deriv MT5 CFDs demo account.","-1277942366":"Total assets","-1255879419":"Trader's Hub","-493788773":"Non-EU","-673837884":"EU","-230566990":"The following documents you submitted did not pass our checks:","-846812148":"Proof of address.","-1146027991":"If you’d like to get the {{from_account}} account, resubmit these documents.","-710685402":"No new positions","-1445744852":"You can no longer open new positions with your {{from_account}} account. Please use your {{to_account}} account to open new positions.","-1699909965":"or ","-2055865877":"Non-EU regulation","-643108528":"Non-EU and EU regulation","-1815067117":"Start your trading journey","-1807332199":"Set up your real account","-1002556560":"We’re unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-90090878":"Use Wallets to manage your funds across different currencies effortlessly.","-280236366":"Enable now","-1186807402":"Transfer","-744999940":"Deriv account","-766186087":"{{trustScore}} out of 5 based on {{numberOfReviews}} reviews","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1975494965":"Cashier","-42592103":"Deposit cryptocurrencies","-87988108":"Deposits disabled","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-520142572":"Cashier is currently down for maintenance","-1552080215":"Please check back in a few minutes.<0>Thank you for your patience.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-954082208":"Your cashier is currently locked. Please contact us via <0>live chat to find out how to unlock it.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-2027907316":"You can make a withdrawal once the verification of your account is complete.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-599998434":"You cannot make a fund transfer as your documents are still under review. We will notify you by email within 3 days once your verification is approved.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-637985102":"Your details match an existing account. You can't <0/>make deposits or trade with a new account. <0/>Need help? Reach out via live chat.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-1923809087":"Unfortunately, you can only make deposits. Please contact us via <0>live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1294455996":"Deriv P2P unavailable","-532693866":"Something went wrong. Please refresh the page and try again.","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-203002433":"Deposit now","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-1957498244":"more","-646217148":"We process your deposits internally within 24 hours (depending on internal checks and your payment method). If you don't see your funds reflected after this time, please contact us via <0>live chat with proof of your transaction, including the amount, date, and time.","-1901728198":"What do I do if I have reached my deposit limit?","-631829734":"<0>Insufficient balance: Please ensure you have sufficient funds in your card/e-wallet. If the problem persists, please contact your bank for help.","-1072505739":"<0>3D secure invalid/redirected: Please contact your bank for an OTP.","-180339757":"<0>Restricted card: Please use a locally issued card. ","-645281699":"<0>Customer cancelled payment: Please try again after 1 hour.","-102611677":"Can I use someone else's payment method?","-951380652":"No, you cannot use someone else's payment method to deposit into Deriv. If you use another person's payment method, your account will be suspended (if they are on Deriv, their account will also be suspended). If you suspect that someone has used your payment method, let us know through <0>live chat with your proof of ownership.","-819152742":"If you have used a different payment method to make your deposit, you cannot withdraw via a payment agent. However, if you have used both a payment agent and another payment method (for example, an e-wallet) to deposit, you have to withdraw via the e-wallet first up to your original deposited amount. After that, you can use a payment agent to make a withdrawal. If your original payment method is not available for withdrawals, please let us know through <0>live chat for assistance.","-820131811":"Can I withdraw using a different method?","-1656533423":"No, withdrawals must be made using the same method you used for your deposit.","-190084602":"Transaction","-1995606668":"Amount","-2024290965":"Confirmations","-811190405":"Time","-728508487":"{{currency}} recent transactions","-1984478597":"The details of this transaction is available on CoinsPaid.","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-1787304306":"Deriv P2P","-174976899":"P2P verification","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-922143389":"Deriv P2P is currently unavailable in this currency.","-1310327711":"Deriv P2P is currently unavailable in your country.","-685073712":"This is your <0>{{currency}} account {{loginid}}.","-1547606079":"We accept the following cryptocurrencies:","-1517325716":"Deposit via the following payment methods:","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-917092420":"To change your account currency, contact us via <0>live chat.","-515809216":"Send only {{currency_name}} ({{currency_code}}) to this address.","-748636591":"A minimum deposit value of <0>{{minimum_deposit}} {{currency}} is required. Otherwise, a fee is applied.","-1589407981":"To avoid loss of funds:","-74221894":"Important:","-2108344100":"Looking for a way to buy cryptocurrencies? <0>Try Fiat onramp.","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-91824739":"Deposit {{currency}}","-523804269":"{{amount}} {{currency}} on {{date}}","-494847428":"Address: <0>{{value}}","-1117977576":"Confirmations: <0>{{value}}","-1935946851":"View more","-1744490898":"Unfortunately, we cannot retrieve the information at this time. ","-338505133":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, between your Deriv fiat and {{platform_name_ctrader}} accounts, and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1339063554":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_ctrader}}, and {{platform_name_dxtrade}} accounts.","-1059419768":"Notes","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-855721928":"Needs verification","-908402700":"Verification failed","-1866405488":"Deriv cTrader accounts","-1344870129":"Deriv accounts","-1220582412":"The server is temporarily unavailable for this account. We’re working to resolve this.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-1155970854":"You have reached the maximum daily transfers. Please try again tomorrow.","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1949883551":"You only have one account","-1149845849":"Back to Trader's Hub","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1254233806":"You've transferred","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-352134412":"Transfer limit","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-873886836":"Do not enter an address linked to an initial coin offering (ICO) purchase or crowdsale. If you do, the initial coin offering (ICO) tokens will not be credited into your account.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-1430080977":"Priority withdrawal","-1046088265":"Withdrawal amount:","-694919384":"Transaction fee","-1358465817":"Fee calculated at {{ time_stamp }}","-1744540779":"Amount received:","-38063175":"{{account_text}} wallet","-652125858":"Amount received","-705272444":"Upload a proof of identity to verify your identity","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-2067572496":"You’ve just stopped the bot. Any open contracts can be viewed on the Reports page.","-992003496":"Changes you make will not affect your running bot.","-1778025545":"You’ve successfully imported a bot.","-222838313":"Your session has expired. Please sign in again.","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-179005984":"Save","-610059687":"Exploring the D’Alembert strategy in Deriv Bot","-1226666341":"The D'Alembert strategy involves increasing your stake after a losing trade and reducing it after a successful trade by a predetermined number of units.","-312844882":"Initial stake: The amount that you are willing to place as a stake to enter a trade. This is the starting point for any changes in stake depending on the dynamic of the strategy being used.","-1173302981":"1. Start with the initial stake. In this example, we’ll use 1 USD.","-1540106116":"Profit and loss thresholds","-894905768":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss thresholds are reached. It's a form of risk management that can potentially enhance returns. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1946134465":"Where:","-248283982":"B is the loss threshold.","-1148521416":"f is the unit increment.","-211800490":"D’Alembert formula 2","-1772692202":"This formula helps you plan your trades by considering the amount of money you have and your comfort level with risk. It involves determining your loss threshold and the initial stake you want to trade with. Then, you use this formula to calculate the number of rounds you can trade. This process provides insight into stake sizing and expectations.","-2107238266":"The D'Alembert system offers more balanced trading through controlled stake progression. With prudent risk management like stake limits, it can be effectively automated in Deriv Bot. However, traders should thoroughly assess their risk appetite, test strategies on a demo account to align with their trading style before trading with real money. This allows optimising the approach and striking a balance between potential gains and losses whilst managing risk.","-500873566":"Disclaimer:","-344769349":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-818800551":"Exploring the Martingale strategy in Deriv Bot","-533490374":"These are the trade parameters used in Deriv Bot with Martingale strategy.","-1507161059":"Multiplier: The multiplier used to increase your stake if you're losing a trade. The value must be greater than 1.","-1333404686":"An example of Martingale strategy","-1755877136":"3. If the first trade ends in a loss, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every losing trade.","-1297651002":"If you're about to start trading and haven't established a Maximum Stake as part of your risk management strategy, you can determine how long your funds will last by employing the Martingale strategy. Simply use this formula.","-46865201":"Martingale formula 1","-116397598":"m is the Martingale multiplier.","-658161609":"Number of rounds, R ≈ 9.965","-288082521":"This means that after 10 rounds of consecutive losses, this trader will lose 1023 USD which exceeds the loss threshold of 1000 USD, stopping the bot.","-770387160":"The Martingale strategy in trading may offer substantial gains but also comes with significant risks. With your selected strategy, Deriv Bot provides automated trading with risk management measures like setting initial stake, stake size, maximum stake, profit threshold and loss threshold. It's crucial for traders to assess their risk tolerance, practice in a demo account, and understand the strategy before trading with real money.","-1901073152":"These are the trade parameters used for Oscar’s Grind strategy in Deriv Bot.","-1575153036":"An example of Oscar’s Grind strategy","-732418614":"The table above demonstrates this principle by showing that when a successful trade occurs and meets the target of one unit of potential profit which is 1 USD in this example, the session ends. If trading continues, a new session will begin.","-106266344":"Principle 3: The stake adjusts to the gap size between current loss and the target profit for the session","-492908094":"In round 7, the stake is adjusted downwards from 2 USD to 1 USD, to meet the target profit of 1 USD.","-90079299":"With Deriv Bot, traders can set the profit and loss thresholds to secure potential profits and limit potential losses. This means that the trading bot will automatically stop when either the profit or loss threshold is reached. This is a form of risk management that can potentially boost successful trades whilst limiting the impact of loss. For example, if a trader sets the profit threshold at 100 USD and the strategy exceeds 100 USD of profit from all trades, then the bot will stop running.","-1549673884":"The Oscar's Grind strategy provides a disciplined approach for incremental gains through systematic stake progression. When integrated into Deriv Bot with proper risk management like profit or loss thresholds, it offers traders a potentially powerful automated trading technique. However, traders should first thoroughly assess their risk tolerance and first try trading on a demo account in order to familiarise with the strategy before trading with real funds.","-655650222":"Exploring the Reverse D’Alembert strategy in Deriv Bot","-1864807973":"The Reverse D'Alembert strategy involves increasing your stake after a successful trade and reducing it after a losing trade by a predetermined number of units.","-809681645":"These are the trade parameters used in Deriv Bot with Reverse D’Alembert strategy.","-1239374257":"An example of Reverse D’Alembert strategy","-309821442":"Please be aware that while we may use rounded figures for illustration, a stake of a specific amount does not guarantee an exact amount in successful trades. For example, a 1 USD stake does not necessarily equate to a 1 USD profit in successful trades.","-1576691912":"This article explores the Reverse Martingale strategy integrated into Deriv Bot, a versatile trading bot designed to trade assets such as forex, commodities, and derived indices. We will delve into the strategy's core parameters, its application, and provide essential takeaways for traders looking to use the bot effectively.","-1934849823":"These are the trade parameters used in Deriv Bot with Reverse Martingale strategy.","-1021919630":"Multiplier: The multiplier used to increase your stake if your trade is successful. The value must be greater than 1.","-760516362":"3. If the first trade is a successful trade, Deriv Bot will automatically double your stake for the next trade to 2 USD. Deriv Bot will continue to double the stake after every successful trade.","-1410950365":"Exploring the 1-3-2-6 strategy in Deriv Bot","-1175255072":"These are the trade parameters used in Deriv Bot with 1-3-2-6 strategy.","-183884527":"An example of 1-3-2-6 strategy","-275617819":"4. However, if any trade results in a loss, your stake will reset back to the initial stake of 1 USD for the next trade. The third trade results in a loss hence the stake resets to the initial stake of 1 USD for the next trade.","-719846465":"5. Upon reaching the initial stake, if the next trade still results in a loss, your stake will remain at the initial stake of 1 USD. This strategy will minimally trade at the initial stake. Refer to the fourth and fifth trade.","-1452746011":"The 1-3-2-6 strategy in trading may offer substantial gains but also comes with significant risks. Each stake is independent, and the strategy does not increase your chances of successful trades in the long run. If you encounter a series of losses, the strategy can lead to significant losses. Therefore, it is crucial for traders to assess their risk tolerance, practice in a demo account, utilise profit and loss thresholds, and fully comprehend the strategy before engaging in real-money trading.","-1016171176":"Asset","-138833194":"The underlying market your bot will trade with this strategy.","-621128676":"Trade type","-399349239":"Your bot will use this trade type for every run","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-447853970":"Loss threshold","-33106112":"The size used to multiply the stake after a successful trade for the next trade.","-1503301801":"The value must be equal or greater than {{ min }}","-1596504046":"Number of unit(s) to be added to the next trade after a successful trade. One unit is equivalent to the amount of initial stake.","-1521098535":"Max stake","-1448426542":"The stake for your next trade will reset to the initial stake if it exceeds this value.","-993953307":"Your prediction of the last digit of the asset price.","-1305281529":"D’Alembert","-1842451303":"Welcome to Deriv Bot!","-1391310674":"Check out these guides and FAQs to learn more about building your bot:","-2066779239":"FAQs","-280324365":"What is Deriv Bot?","-155173714":"Let’s build a bot!","-2093569327":"How to build a basic trading bot with Deriv Bot","-2072114761":"How to use Martingale strategy on Deriv Bot","-1254483618":"Introducing Accumulator Options on Deriv Bot: Available for automated trading","-1919212468":"3. You can also search for the blocks you want using the search bar above the categories.","-980360663":"3. Choose the block you want and drag it to the workspace.","-1493168314":"What is a quick strategy?","-1680391945":"Using a quick strategy","-1177914473":"How do I save my strategy?","-271986909":"In Bot Builder, hit Save on the toolbar at the top to download your bot. Give your bot a name, and choose to download your bot to your device or Google Drive. Your bot will be downloaded as an XML file.","-1149045595":"1. After hitting Import, select Local and click Continue.","-288041546":"2. Select your XML file and hit Open.","-2127548288":"3. Your bot will be loaded accordingly.","-1311297611":"1. After hitting Import, select Google Drive and click Continue.","-1549564044":"How do I reset the workspace?","-1127331928":"In Bot Builder, hit Reset on the toolbar at the top. This will clear the workspace. Please note that any unsaved changes will be lost.","-1720444288":"How do I control my losses with Deriv Bot?","-1142295124":"There are several ways to control your losses with Deriv Bot. Here’s a simple example of how you can implement loss control in your strategy:","-2129119462":"1. Create the following variables and place them under Run once at start:","-1918487001":"Example:","-468926787":"This is how your trade parameters, variables, and trade options should look like:","-1565344891":"Can I run Deriv Bot on multiple tabs in my web browser?","-213872712":"No, we don't offer cryptocurrencies on Deriv Bot.","-2147346223":"In which countries is Deriv Bot available?","-792737139":"We offer our services in all countries, except for the ones mentioned in our terms and conditions.","-352345777":"What are the most popular strategies for automated trading?","-552392096":"Three of the most commonly used strategies in automated trading are Martingale, D'Alembert, and Oscar's Grind — you can find them all ready-made and waiting for you in Deriv Bot.","-1036999457":"Watch this video to learn how to build a trading bot on Deriv Bot. Also, check out this blog post on building a trading bot.","-1630262763":"About Martingale","-413928457":"About Oscar's Grind","-1497015866":"About Reverse D’Alembert","-437005403":"About 1-3-2-6","-590765322":"Unfortunately, this trading platform is not available for EU Deriv account. Please switch to a non-EU account to continue trading.","-2110207996":"Deriv Bot is unavailable for this account","-971295844":"Switch to another account","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-1223145005":"Loss amount: {{profit}}","-1206212388":"Welcome back! Your messages have been restored. You are using your {{current_currency}} account.","-1724342053":"You are using your {{current_currency}} account.","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1591692300":"Your bot is running and waiting for a signal to buy a contract.","-555886064":"Won","-529060972":"Lost","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-224804428":"Transactions","-287223248":"No transaction or activity yet.","-418247251":"Download your journal.","-2123571162":"Download","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-558594655":"The bot is not running","-478946875":"The stats are cleared","-999254545":"All messages are filtered out","-786915692":"You are connected to Google Drive","-1256971627":"To import your bot from your Google Drive, you'll need to sign in to your Google account.","-1233084347":"To know how Google Drive handles your data, please review Deriv’s <0>Privacy policy.","-934909826":"Load strategy","-2005347537":"Importing XML files from Binary Bot and other third-party platforms may take longer.","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-24780060":"When you’re ready to trade, hit ","-2147110353":". You’ll be able to track your bot’s performance here.","-411060180":"TradingView Chart","-627895223":"Exit spot","-2140412463":"Buy price","-1299484872":"Account","-2004386410":"Win","-266502731":"Transactions detailed summary","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-596238067":"Entry/Exit spot","-1823621139":"Quick Strategy","-1782602933":"Choose a template below and set your trade parameters.","-315611205":"Strategy","-1524489375":"(optional)","-150224710":"Yes, continue","-475765963":"Edit the amount","-1349897832":"Do not show this message again.","-984512425":"Minimum duration: {{ value }}","-2084091453":"The value must be equal or greater than {{ value }}","-657364297":"The value must be equal or less than {{ value }}","-1953880747":"Stop my bot","-1899230001":"Stopping the current bot will load the Quick Strategy you just created to the workspace.","-2131847097":"Any open contracts can be viewed on the ","-1696412885":"Import","-320197558":"Sort blocks","-939764287":"Charts","-1566369363":"Zoom out","-1285759343":"Search","-1291088318":"Purchase conditions","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1136893592":"Announcements","-195234787":"<0>Note: Uploading complex strategies may take some time. Saving them from Deriv Bot ensures quicker access later. If you have questions, contact us via <1/>.","-206059150":"Google Blockly v10 update","-523557619":"Better security.","-1317334545":"Accumulators now on Deriv Bot","-25869504":"Manage risks while capitalising on market opportunities.","-1766767803":"We have updated our Blockly system in Deriv Bot from version 3 to version 10.","-1150390589":"Last modified","-1393876942":"Your bots:","-1545070554":"Delete bot","-1972599670":"Your bot will be permanently deleted when you hit ","-1692956623":"Yes, delete.","-573479616":"Are you sure you want to delete it?","-462715374":"Untitled Bot","-1150107517":"Connect","-767342552":"Enter your bot name, choose to save on your computer or Google Drive, and hit ","-1372891985":"Save.","-1003476709":"Save as collection","-636521735":"Save strategy","-1692205739":"Import a bot from your computer or Google Drive, build it from scratch, or start with a quick strategy.","-563774117":"Dashboard","-683790172":"Now, <0>run the bot to test out the strategy.","-1127164953":"Hi! Hit <0>Start for a quick tour.","-358288026":"Note: You can also find this tutorial in the <0>Tutorials tab.","-129587613":"Got it, thanks!","-1793577405":"Build from scratch","-358753028":"Create your bot using our drag-and-drop blocks or click Quick Strategy to choose from the ready-to-use bot templates.","-1212601535":"Monitor the market","-21136101":"See how your bot is doing in real-time.","-631097919":"Click <0>Run when you want to start trading, and click <0>Stop when you want to stop.","-1999747212":"Want to retake the tour?","-782992165":"Step 1 :","-1207872534":"First, set the <0>Trade parameters block.","-1656388044":"First, set <0>Market to Derived > Continuous Indices > Volatility 100 (1s) Index.","-1706298865":"Then, set <0>Trade type to Up/Down > Rise/Fall.","-1834358537":"For <0>Default candle interval, set it to 1 minute","-1940971254":"For <0>Trade options, set it as below:","-512839354":"<0>Stake: USD 10 (min: 0.35 - max: 50000)","-753745278":"Step 2 :","-1056713679":"Then, set the <0>Purchase conditions block.","-245497823":"<0>2. Purchase conditions:","-916770284":"<0>Purchase: Rise","-758077259":"Step 3 :","-677396944":"Step 4 :","-295975118":"Next, go to <0>Utility tab under the Blocks menu. Tap the drop-down arrow and hit <0>Loops.","-698493945":"Step 5 :","-1992994687":"Now, tap the <0>Analysis drop-down arrow and hit <0>Contract.","-1844492873":"Go to the <0>Last trade result block and click + icon to add the <0>Result is Win block to the workspace.","-1547091772":"Then, drag the <0>Result is win into the empty slot next to <0>repeat until block.","-736400802":"Step 6 :","-732067680":"Finally, drag and add the whole <0>Repeat block to the <0>Restart trading conditions block.","-1411787252":"Step 1","-1109392787":"Learn how to build your bot from scratch using a simple strategy.","-1263822623":"You can import a bot from your mobile device or from Google drive, see a preview in the bot builder, and start trading by running the bot.","-563921656":"Bot Builder guide","-1596172043":"Quick strategy guides","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-1717650468":"Online","-1309011360":"Open positions","-1597214874":"Trade table","-1929724703":"Compare CFD accounts","-883103549":"Account deactivated","-1837059346":"Buy / Sell","-1845037007":"Advertiser's page","-494667560":"Orders","-679691613":"My ads","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-377375279":"Standard","-1582979384":"Standard Demo","-1212531781":"Standard BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-291535132":"Swap-Free Demo","-499019612":"Zero Spread Demo","-1472945832":"Swap-Free SVG","-1386326276":"Barrier is a required field.","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-2093768906":"{{name}} has released your funds.
      Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-2063700253":"disabled","-1585069798":"Please click the following link to complete your Appropriateness Test.","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1601813176":"Would you like to increase your daily limits to {{max_daily_buy}} {{currency}} (buy) and {{max_daily_sell}} {{currency}} (sell)?","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-498364310":"Enable passkey","-187109231":"Level up your security","-1132350982":"Strengthen your account’s security today with the latest passkeys feature.","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1744163489":"Please verify your proof of income","-382676325":"To continue trading with us, please submit your proof of income.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-493564794":"Please complete your financial assessment.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-620447377":"Complete phone verification","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1629185222":"Submit now","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-1392958585":"Please check your email.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-2136953532":"Scheduled cashier maintenance","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-949074612":"Please contact us via live chat.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-8892474":"Start assessment","-1330929685":"Please submit your proof of identity and proof of address to verify your account and continue trading.","-99461057":"Please submit your proof of address to verify your account and continue trading.","-577279362":"Please submit your proof of identity to verify your account and continue trading.","-197134911":"Your proof of identity is expired","-152823394":"Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.","-822813736":"We're unable to complete with the Wallet upgrade. Please try again later or contact us via live chat.","-978414767":"We require additional information for your Deriv MT5 account(s). Please take a moment to update your information now.","-1263133631":"Deposits and trading disabled","-1469527248":"Verify the address on the Deposit page before each deposit to avoid losing funds. Occasionally, the address could be updated.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1692922757":"Withdraw your funds","-783596666":"{{currency}} accounts won't be available after {{time_of_closure}}.","-135924060":"{{currency}} accounts won't be available after {{time_of_closure}}. Choose a new account currency.","-1690293783":"Withdraw {{currency}}","-2039256240":"Contact live chat","-233426953":"Profit","-1470677931":"CFDs on financial instruments.","-1595662064":"Zero spread CFDs on financial and derived instruments","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-1591792668":"Account Limits","-34495732":"Regulatory information","-1323441180":"I hereby confirm that my request for opening an account with Deriv to trade OTC products issued and offered exclusively outside Brazil was initiated by me. I fully understand that Deriv is not regulated by CVM and by approaching Deriv I intend to set up a relation with a foreign company.","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-288996254":"Unavailable","-1308346982":"Derived","-1019903756":"Synthetic","-735306327":"Manage accounts","-1813972756":"Account creation paused for 24 hours","-366030582":"Sorry, you're unable to create an account at this time. As you declined our previous risk warnings, we need you to wait for 24 hours after your first account creation attempt before you can proceed.<0/><0/>","-534047566":"Thank you for your understanding. You can create your account on {{real_account_unblock_date}} or later.","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1146960797":"Fiat currencies","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1740162250":"Manage account","-1016775979":"Choose an account","-1362081438":"Adding more real accounts has been restricted for your country.","-1602122812":"24-hour Cool Down Warning","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-730377053":"You can’t add another real account","-2100785339":"Invalid inputs","-2061807537":"Something’s not right","-272953725":"Your details match an existing account. If you need help, contact us via <0>live chat.","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-437918412":"No currency assigned to your account","-1193651304":"Country of residence","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-243732824":"Take me to Demo account","-1269078299":"I will setup my real account later.","-1342699195":"Total profit/loss:","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-813256361":"We are committed to treating our clients fairly and providing them with excellent service.<0/><1/>We would love to hear from you on how we can improve our services to you. Any information you provide will be treated in the strictest confidence. Rest assured that you will be heard, valued, and always treated fairly.","-1622847732":"If you have an inquiry regarding your trading account with {{legal_entity_name}}, you can contact us through our <0>Help centre or by chatting with a representative via <1>Live Chat.<2/><3/>We are committed to resolving your query in the quickest time possible and appreciate your patience in allowing us time to resolve the matter.<4/><5/>We strive to provide the best possible service and support to our customers. However, in the event that we are unable to resolve your query or if you feel that our response is unsatisfactory, we want to hear from you. We welcome and encourage you to submit an official complaint to us so that we can review your concerns and work towards a resolution.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-1280998762":"4. Complaints","-1886635232":"A complaint is any expression of dissatisfaction by a client regarding our products or services that requires a formal response.<0/><1/>If what you submit does not fall within the scope of a complaint, we may reclassify it as a query and forward it to the relevant department for handling. However, if you believe that your query should be classified as a complaint due to its relevance to the investment services provided by {{legal_entity_name}}, you may request that we reclassify it accordingly.","-1771496016":"To submit a complaint, please send an email to <0>complaints@deriv.com, providing as much detail as possible. To help us investigate and resolve your complaint more efficiently, please include the following information:","-1197243525":"<0>•A clear and detailed description of your complaint, including any relevant dates, times, and transactions","-1795134892":"<0>•Any relevant screenshots or supporting documentation that will assist us in understanding the issue","-2053887036":"4.4. Handling your complaint","-717170429":"Once we have received the details of your complaint, we shall review it carefully and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","-1841922393":"4.5. Resolving your complaint","-1327119795":"4.6. Your decision","-2019654103":"If we are unable to resolve your complaint or you are not satisfied with the outcome, you can escalate your complaint to the Office of the Arbiter for Financial Services.<0/><1/><2>Filing complaints with the Office of the Arbiter for Financial Services","-687172857":"<0>•You may file a complaint with the Arbiter for Financial Services only if you are not satisfied with our decision or the decision wasn’t made within 15 business days.","-262934706":"<0>•If the complaint is accepted by the Arbiter, you will receive another email with further details relating to the payment of the €25 complaint fee and the processes that follow.","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-583559763":"Menu","-673424733":"Demo account","-162753510":"Add real account","-1685795001":"Demo Wallet","-319395348":"Looking for CFDs? Go to Trader’s Hub","-778309978":"The link you clicked has expired. Ensure to click the link in the latest email in your inbox. Alternatively, enter your email below and click <0>Resend email for a new link.","-2101368724":"Transaction processing","-1772981256":"We'll notify you when it's complete.","-198662988":"Make a deposit to trade the world's markets!","-2007055538":"Information updated","-941870889":"The cashier is for real accounts only","-352838513":"It looks like you don’t have a real {{regulation}} account. To use the cashier, switch to your {{active_real_regulation}} real account, or get an {{regulation}} real account.","-1858915164":"Ready to deposit and trade for real?","-1208519001":"You need a real Deriv account to access the cashier.","-715867914":"Successfully deposited","-1271218821":"Account added","-197631101":"Your funds will be available for trading once the verification of your account is complete.","-2055364427":"Updated T&C's","-356910979":"By continuing you understand and accept the changes.","-835056719":"We’ve received your documents","-55435892":"We’ll need 1 - 3 days to review your documents and notify you by email. You can practice with demo accounts in the meantime.","-554054753":"Get started","-1916578937":"<0>Explore the exciting new features that your Wallet offers.","-1724438599":"<0>You're almost there!","-32454015":"Select a payment method to make a deposit into your account.<0 />Need help? Contact us via <1>live chat","-310434518":"The email input should not be empty.","-1471705969":"<0>{{title}}: {{trade_type_name}} on {{symbol}}","-1771117965":"Trade opened","-1856112961":"The URL you requested isn’t available","-304807228":"<0>You’re not logged in, or<0>Our services are unavailable in your country.","-1567989247":"Submit your proof of identity and address","-523602297":"Forex majors","-1303090739":"Up to 1:1500","-19213603":"Metals","-1264604378":"Up to 1:1000","-1728334460":"Up to 1:300","-646902589":"(US_30, US_100, US_500)","-705682181":"Malta","-1835174654":"1:30","-1647612934":"Spreads from","-1912437030":"about required verifications.","-466784048":"Regulator/EDR","-2098459063":"British Virgin Islands","-1326848138":"British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","-1711743223":"Forex (standard/micro), stocks, stock indices, commodities, cryptocurrencies and ETFs","-1372141447":"Straight-through processing","-1969608084":"Forex and Cryptocurrencies","-800771713":"Labuan Financial Services Authority (licence no. MB/18/0024)","-1497128311":"80+","-1501230046":"0.6 pips","-1689815930":"You will need to submit proof of identity and address once you reach certain thresholds.","-1175785439":"Deriv (SVG) LLC (company no. 273 LLC 2020)","-1344709651":"40+","-139026353":"A selfie of yourself.","-1228847561":"Verification in review.","-618322245":"Verification successful.","-149461870":"Forex: standard/exotic","-1995163270":"ETFs","-1220727671":"Standard - SVG","-865172869":"Financial - BVI","-1851765767":"Financial - Vanuatu","-558597854":"Financial - Labuan","-2052425142":"Swap-Free - SVG","-1192904361":"Deriv X Demo","-283929334":"Deriv cTrader Demo","-1269597956":"MT5 Platform","-1302404116":"Maximum leverage","-239789243":"(License no. SIBA/L/18/1114)","-941636117":"MetaTrader 5 Linux app","-1434036215":"Demo Financial","-659955365":"Swap-Free","-1416247163":"Financial STP","-1637969571":"Demo Swap-Free","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-860609405":"Password","-742647506":"Fund transfer","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-1428164691":"Upgrade complete","-1608063228":"Start trading with your new <0>{{platform}} {{type_1}} and <0>{{type_2}} {{eligible_account_to_migrate}} accounts.","-1944156634":"Start trading with your new <0>{{platform}} {{type_1}} {{eligible_account_to_migrate}} account.","-1787052003":"You can manage your existing positions, but you can't start a new trade.","-790488576":"Forgot password?","-476558960":"If you don’t have open positions","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-12535938":"*Volatility 250 Index, Volatility 150 Index, Boom 300 and Crash 300 Index","-2104148631":"Commissions apply","-201485855":"Up to","-700260448":"demo","-1769158315":"real","-1922462747":"Trader's hub","-16858060":"You have a new Deriv MT5 password to log in to your Deriv MT5 accounts on the web and mobile apps.","-1868608634":"Current password","-2092058806":"8 to 16 characters","-2051033705":"A special character such as ( _ @ ? ! / # )","-1762249687":"A lowercase letter","-535365199":"Enter your {{platform}} password to add a {{platform_name}} {{account}} account.","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-267598687":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. To start trading, <1 />transfer funds <2 />from your Deriv account into this account.","-1475660820":"Your Deriv MT5 {{type}} account is ready. ","-1184248732":"Congratulations, you have successfully created your <0/>{{category}} {{platform}} {{type}} account. ","-1928229820":"Reset Deriv X investor password","-1969916895":"Your password must contain between 8-16 characters that include uppercase and lowercase letters, and at least one number and special character ( _ @ ? ! / # ).","-1087845020":"main","-1950683866":"investor","-588451627":"Undergoing server maintenance","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-1615126227":"Manage up to {{max_count}} Deriv cTrader accounts. While you can convert any of your Deriv cTrader accounts into a strategy account, please take note of the following:","-1547739386":"To ensure you can always create and manage strategies with fees, <0>keep at least one account free from being a strategy provider. This way, you’ll always have an account ready for collecting fees, allowing you to have up to four strategies where you may impose fees.","-2145356061":"Download Deriv X on your phone to trade with the Deriv X account","-1547458328":"Run cTrader on your browser","-747382643":"Get another cTrader account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-499504077":"Choose a cTrader account to transfer","-251202291":"Broker","-678964540":"to","-206829624":"(1:x)","-616293830":"Enjoy dynamic leverage of <0>up to 1:1500 when trading selected instruments in the forex, commodities, cryptocurrencies, and stock indices markets. Our dynamic leverage adjusts automatically to your trading position, based on asset type and trading volume.","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-2031796064":"I confirm and accept {{company}}'s <0>terms and conditions","-21438174":"Add your Deriv cTrader account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-271828350":"Get more out of Deriv MT5 Financial","-2125860351":"Choose a jurisdiction for your Deriv MT5 CFDs account","-1460321521":"Choose a jurisdiction for your {{account_type}} account","-918069465":"Account unavailable","-637537305":"Download {{ platform }} on your phone to trade with the {{ platform }} {{ account }} account","-964130856":"{{existing_account_title}}","-879259635":"Enter your Deriv MT5 password to upgrade your account(s).","-1504907646":"Deriv MT5 password","-361998267":"We've introduced additional password requirements to increase your account security. Your password should:","-996995493":"Be between 8 to 16 characters.","-219163415":"Contain at least one special character.","-1446636186":"By clicking on <0>Next you agree to move your {{platform}} {{type_1}} and {{type_2}} {{from_account}} account(s) under Deriv {{account_to_migrate}} Ltd’s <1>terms and conditions.","-1766387013":"Upgrade your MT5 account(s)","-990927225":"Enter your Deriv MT5 password","-1486399361":"Trade with MT5 mobile app","-301350824":"Note: Don't have the MT5 app? Tap the <0>Trade with MT5 mobile app button to download. Once you have\n installed the app, return to this screen and hit the same button to log in.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-601303096":"Scan the QR code to download Deriv {{ platform }}.","-1357917360":"Web terminal","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-256210543":"Trading is unavailable at this time.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-1013917510":"The reset time is {{ reset_time }}","-925402280":"Indicative low spot","-1075414250":"High spot","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1371082433":"Reset barrier","-1402197933":"Reset time","-2035315547":"Low barrier","-1745835713":"Selected tick","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-104603605":"You cannot trade as your documents are still under review. We will notify you by email once your verification is approved.","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-347156282":"Submit Proof","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-1043795232":"Recent positions","-153220091":"{{display_value}} Tick","-802374032":"Hour","-1700010072":"This feature is unavailable for tick intervals. Switch to minutes, hours, or days.","-2017825013":"Got it","-112444942":"History of tick counts","-1145293111":"This market will reopen at","-1782608357":"Starts on {{formatted_date}}, {{formatted_time}}","-1341681145":"When this is active, you can cancel your trade within the chosen time frame. Your stake will be returned without loss.","-2069438609":"No matches found","-647454892":"No closed positions","-1474415836":"Your closed positions will be shown here.","-576924961":"Your open positions will appear here.","-225500551":"Entry & exit details","-1022682526":"Your favourite markets will appear here.","-232254547":"Custom","-1251526905":"Last 7 days","-1539223392":"Last 90 days","-1123299427":"Your stake will continue to grow as long as the current spot price remains within a specified <0>range from the <1>previous spot price. Otherwise, you lose your stake and the trade is terminated.","-1052279158":"Your <0>payout is the sum of your initial stake and profit.","-274058583":"<0>Take profit is an additional feature that lets you manage your risk by automatically closing the trade when your profit reaches the target amount. This feature is unavailable for ongoing accumulator contracts.","-1819891401":"You can close your trade anytime. However, be aware of <0>slippage risk.","-859589563":"If you select “<0>Odd”, you will win the payout if the last digit of the last tick is an odd number (i.e. 1, 3, 5, 7, or 9).","-1911850849":"If the exit spot is equal to the barrier, you don’t win the payout.","-618782785":"Use multipliers to leverage your potential returns. Predict if the asset price will move upward (bullish) or downward (bearish). We’ll charge a commission when you open a multipliers trade.","-565391674":"If you select \"<0>Up\", your total profit/loss will be the percentage increase in the underlying asset price, times the multiplier and stake, minus commissions.","-1158764468":"If you select “<0>Over”, you will win the payout if the last digit of the last tick is greater than your prediction.","-1268105691":"If you select “<0>Under”, you will win the payout if the last digit of the last tick is less than your prediction.","-444119935":"If you select \"<0>Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-521457890":"If you select “<0>Touch”, you win the payout if the market touches the barrier at any time during the contract period.","-1020271578":"If you select “<0>Down”, you’ll earn a payout if the spot price never rises above the barrier.","-403573339":"Your payout is equal to the <0>payout per point multiplied by the difference between the <1>final price and the barrier. You will only earn a profit if your payout is higher than your initial stake.","-1307465836":"You may sell the contract up to 15 seconds before expiry. If you do, we’ll pay you the <0>contract value.","-1121315439":"Vanilla options allow you to predict an upward (bullish) or downward (bearish) direction of the underlying asset by purchasing a “Call” or a “Put”.","-1763848396":"Put","-1119872505":"How to trade ","-586636553":"Watch this video to learn about this trade type.","-792197750":"Added to favourites","-197162398":"CLOSED","-782722116":"Swipe up to see the chart","-1125490130":"Welcome to the new Deriv Trader","-463202424":"Enjoy a smoother, more intuitive trading experience. Here’s a quick tour to get you started.","-1200840210":"Let's begin","-1217860832":"Scroll left or right to explore trade types.","-1000472682":"Choose a market (2/6)","-1648147161":"Open your trade (3/6)","-1848076051":"Track market trends with our interactive charts.","-208907003":"Scroll left or right to adjust your trade parameters.","-1300707192":"Pin, rearrange, or remove your favorite trade types for easy access.","-1913695340":"Order Details","-1882287418":"How do I earn a payout?","-379473574":"Exceeds max payout","-1331298683":"Take profit can’t be adjusted for ongoing accumulator contracts.","-376450619":"An error occurred.","-843831637":"Stop loss","-509210647":"Try searching for something else.","-99964540":"When your profit reaches or exceeds the set amount, your trade will be closed automatically.","-894474163":"SL history","-542594338":"Max. payout","-1116872874":"Fixed price:","-2062696378":"Above spot:","-1858102926":"Barrier set below spot price.","-635746838":"Below spot","-548979988":"Fixed price","-1838512476":"Pick an end time","-1977959027":"hours","-591705950":"Ends on","-1013686843":"Current time","-1727323033":"0 min","-1068424721":"Max duration","-718750246":"Your stake will grow at {{growth_rate}}% per tick as long as the current spot price remains within ±{{tick_size_barrier_percentage}} from the previous spot price.","-2131851017":"Growth rate","-339236213":"Multiplier","-1626578728":"Deal cancellation fee","-240829052":"{{date}} at {{timestamp}}","-732683018":"When your profit reaches or exceeds this amount, your trade will be closed automatically.","-732856313":"TP & SL","-1396928673":"Risk Management","-1954917999":"Acceptable range: {{min_value}} to {{max_value}} {{currency}}","-1024650723":"Note: Cannot be adjusted for ongoing accumulator contracts.","-1942828391":"Max payout","-1358367903":"Stake","-525327031":"Payout per point:","-380456342":"It is the price where you can start receiving a payout from an option.","-1853307892":"Set your trade","-494149423":"Pinned","-1612346919":"View all","-1221049974":"Final price","-583023237":"This is the resale value of your contract, based on the prevailing market conditions (e.g, the current spot), including additional commissions if any.","-1476381873":"The latest asset price when the trade closure is processed by our servers.","-584445859":"This is when your contract will expire based on the duration or end time you’ve selected. If the duration is more than 24 hours, the cut-off time and expiry date will apply instead.","-1247327943":"This is the spot price of the last tick at expiry.","-1422269966":"You can choose a growth rate with values of 1%, 2%, 3%, 4%, and 5%.","-1186791513":"Payout is the sum of your initial stake and profit.","-1482134885":"We calculate this based on the strike price and duration you’ve selected.","-1682624802":"It is a percentage of the previous spot price. The percentage rate is based on your choice of the index and the growth rate.","-1545819495":"Your trade will be closed automatically at the nearest available asset price when your loss reaches a certain percentage of your stake, but your loss never exceeds your stake. This percentage depends on the chosen underlying asset and the Multiplier.","-1293590531":"If you select “Call”, you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1432332852":"If you select ‘Put”, you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-468501352":"If you select this feature, your trade will be closed automatically at the nearest available asset price when your profit reaches or exceeds the take profit amount. Your profit may be more than the amount you entered depending on the market price at closing.","-1585766960":"min","-1952134215":"TP and SL have been turned off.","-1541404572":"TP has been turned off.","-1634963573":"SL has been turned off.","-337314714":"days","-1855256857":"h","-993480898":"Accumulators","-123659792":"Vanillas","-1226595254":"Turbos","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-1691868913":"Touch/No Touch","-330437517":"Matches/Differs","-657360193":"Over/Under","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-93996528":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1722190480":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1113825265":"Additional features are available to manage your positions: “<0>Take profit” and “<0>Stop loss” allow you to adjust your level of risk aversion.","-1104397398":"Additional features are available to manage your positions: “<0>Take profit”, “<0>Stop loss” and “<0>Deal cancellation” allow you to adjust your level of risk aversion.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1565216130":"If you select <0>\"Up\", you’ll earn a payout if the spot price never drops below the barrier.","-1336860323":"If you select <0>\"Down\", you’ll earn a payout if the spot price never rises above the barrier.","-351875097":"Number of ticks","-729830082":"View less","-1649593758":"Trade info","-1382749084":"Go back to trading","-1652791614":"mins","-442488432":"day","-1435392215":"About deal cancellation","-1192773792":"Don't show this again","-471757681":"Risk management","-771725194":"Deal Cancellation","-1669741470":"The payout at expiry is equal to the payout per point multiplied by the difference between the final price and the strike price.","-65178968":"The amount you will receive at expiry for every point of change above the barrier.","-1419311086":"Payout per Point","-1636919806":"You will receive a payout at expiry if the spot price never breaches the barrier throughout the contract duration. Otherwise, your contract will be terminated early.","-1775944645":"Distance to current spot:","-1790089996":"NEW!","-253521386":"This is the spot price of the last tick at expiry, i.e. the exit spot.","-1890561510":"Cut-off time","-878534036":"If you select \"Call\", you’ll earn a payout if the final price is above the strike price at expiry. Otherwise, you won’t receive a payout.","-1587076792":"If you select \"Put\", you’ll earn a payout if the final price is below the strike price at expiry. Otherwise, you won’t receive a payout.","-565990678":"Your contract will expire on this date (in GMT), based on the End time you’ve selected.","-477936848":"We use next-tick-execution mechanism, which is the next asset price when the trade opening is processed by our servers.","-148680560":"Spot price of the last tick upon reaching expiry.","-1123926839":"Contracts will expire at exactly 14:00:00 GMT on your selected expiry date.","-1904828224":"We’ll offer to buy your contract at this price should you choose to sell it before its expiry. This is based on several factors, such as the current spot price, duration, etc. However, we won’t offer a contract value if the remaining duration is below 24 hours.","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-8998663":"Digit: {{last_digit}} ","-690963898":"Your contract will be automatically closed when your payout reaches this amount.","-511541916":"Your contract will be automatically closed upon reaching this number of ticks.","-438655760":"<0>Note: You can close your trade anytime. Be aware of slippage risk.","-774638412":"Stake must be between {{min_stake}} {{currency}} and {{max_stake}} {{currency}}","-434270664":"Current Price","-1956787775":"Barrier Price:","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-1231210510":"Tick","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-1804019534":"Expiry: {{date}}","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-989393637":"Take profit can't be adjusted after your contract starts.","-194424366":"above","-857660728":"Strike Prices","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-420223912":"Clean up Blocks","-301596978":"Collapse Blocks","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-985351204":"Trade again","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-1738427539":"Purchase","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-322623215":"Current stat list","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1467024744":"Run the blocks inside after a given number of ticks","-173765342":"This block delays execution for a given number of ticks. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1374685318":"Your contract is closed automatically when your loss is more than or equals to this amount. This block can only be used with the multipliers trade type.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-1626615625":"Take Profit (Multiplier)","-1871944173":"Accumulator trade options","-625636913":"Amount must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1631669591":"string","-1768939692":"number","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1750478127":"New variable name","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-260939264":"Collapsed","-894560707":"function","-1867119688":"Duplicate","-1710107207":"Add Comment","-1549535410":"Remove Comment","-918450098":"Blocks","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-339973827":"The market is closed","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1919680487":"workspace","-1703118772":"The {{block_type}} block is misplaced from {{missing_space}}.","-1785726890":"purchase conditions","-1993203952":"Trade options accumulators","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-1072292603":"No Change","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-137444201":"Buy","-841561409":"Put Spread","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-280147477":"All transactions","-130601012":"Please select duration","-1577570698":"Start date","-1904030160":"Transaction performed by (App ID: {{app_id}})","-1876891031":"Currency","-513103225":"Transaction time","-2066666313":"Credit/Debit","-1981004241":"Sell time","-1196431745":"Contract cost","-3423966":"Take profit<0 />Stop loss","-1131753095":"The {{trade_type_name}} contract details aren't currently available. We're working on making them available soon.","-360975483":"You've made no transactions of this type during this period.","-507216312":"CFDs on financial and derived instruments, powered by TradingView.","-1715390759":"I want to do this later","-56163366":"I don't have any of these","-2082644096":"Current stake","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-558031309":"High Tick/Low Tick","-447037544":"Buy price:","-737348236":"Contract cost:","-1694314813":"Contract value:","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-155989831":"Decrement value","-338379841":"Indicative price:","-2027409966":"Initial stake:","-1769852749":"N/A","-726626679":"Potential profit/loss:","-1511825574":"Profit/Loss:","-499175967":"Strike Price","-129307275":"High Barrier","-1818650227":"Deal cancellation fees","-706219815":"Indicative price","-112601585":"executed","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-853582174":"France 40","-1096386695":"UK 100","-617646862":"Germany 40","-2077690248":"Japan 225","-512194910":"US Tech 100","-381746202":"US 500","-1935463381":"Swiss 20","-1941767726":"Euro 50","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-82971929":"Volatility 25 (1s) Index","-433962508":"Volatility 75 (1s) Index","-764111252":"Volatility 100 (1s) Index","-816110209":"Volatility 150 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1288044380":"Volatility 250 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-132112961":"Sharkfin","-175164838":"{{seconds_passed}}s ago","-514136557":"{{minutes_passed}}m ago","-1420737287":"{{hours_passed}}h ago","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-2079171087":"We're unable to send codes via {{ current_carrier }} right now. Get your code by {{other_carriers}}.","-1366327411":"Code expired. Get a new one.","-227482563":"Code expired. Get a new code.","-1867522447":"Invalid code. Try again or get a new code.","-886317740":"The <0>date of birth on your identity document doesn't match your profile.","-1606307809":"We were unable to verify the identity document with the details provided.","-475787720":"The verification status was empty, rejected for lack of information.","-1627868670":"Your identity document has expired.","-1302288704":"The document’s owner is deceased.","-895884696":"The <0>name and <0>date of birth on your identity document don't match your profile.","-1231856133":"The verification status is not available, provider says: Needs Technical Investigation.","-433687715":"For enhanced security, we need to reverify your identity. Kindly resubmit your proof of identity to unlock your account.","-1637538521":"Your document appears to be invalid.","-876579004":"The name on your document doesn’t match your profile.","-746520172":"Some details on your document appear to be invalid, missing, or unclear.","-2146200521":"The serial number of your document couldn’t be verified.","-1945323197":"Your document appears to be in black and white. Please upload a colour photo of your document.","-631393256":"Your document contains markings or text that should not be on your document.","-609103016":"The image quality of your document is too low. Please provide a hi-res photo of your identity document.","-530935718":"We’re unable to verify the document you provided because some details appear to be missing. Please try again or provide another document.","-1027031626":"We’re unable to verify the document you provided because it appears to be damaged. Please try again or upload another document.","-1671621833":"The front of your document appears to be missing. Please provide both sides of your identity document.","-727588232":"Your document appears to be a scanned copy that contains markings or text that shouldn’t be on your document.","-1435064387":"Your document appears to be a printed copy.","-624316211":"Your document appears to be a photo of a device screen.","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file diff --git a/packages/translations/src/translations/ach.json b/packages/translations/src/translations/ach.json index dd8192f18087..d94a5d017c9d 100644 --- a/packages/translations/src/translations/ach.json +++ b/packages/translations/src/translations/ach.json @@ -1282,7 +1282,6 @@ "1218546232": "crwdns1260771:0crwdne1260771:0", "1219844088": "crwdns1260773:0%1crwdne1260773:0", "1221250438": "crwdns1260775:0crwdne1260775:0", - "1221947449": "crwdns6149694:0{{phone_verification_type}}crwdnd6149694:0{{users_phone_number}}crwdne6149694:0", "1222096166": "crwdns1260777:0crwdne1260777:0", "1222521778": "crwdns1260779:0crwdne1260779:0", "1222544232": "crwdns1260781:0crwdne1260781:0", @@ -1349,6 +1348,7 @@ "1274380814": "crwdns3328066:0crwdne3328066:0", "1274819385": "crwdns1260859:0crwdne1260859:0", "1276660852": "crwdns3708350:0crwdne3708350:0", + "1276973471": "crwdns6259548:0crwdne6259548:0", "1279937041": "crwdns6163606:0crwdne6163606:0", "1281045211": "crwdns1260863:0crwdne1260863:0", "1281290230": "crwdns1260865:0crwdne1260865:0", @@ -1419,7 +1419,6 @@ "1339613797": "crwdns1787759:0crwdne1787759:0", "1340286510": "crwdns3031245:0crwdne3031245:0", "1341840346": "crwdns1260981:0crwdne1260981:0", - "1341921544": "crwdns3708354:0crwdne3708354:0", "1344696151": "crwdns3536892:0crwdne3536892:0", "1346038489": "crwdns4150450:0crwdne4150450:0", "1346204508": "crwdns1260983:0crwdne1260983:0", @@ -1590,6 +1589,7 @@ "1496810530": "crwdns1261237:0crwdne1261237:0", "1497773819": "crwdns1261239:0crwdne1261239:0", "1499080621": "crwdns1261243:0crwdne1261243:0", + "1499733992": "crwdns6235470:0crwdne6235470:0", "1501691227": "crwdns1261245:0{{account_type_name}}crwdne1261245:0", "1502039206": "crwdns1261247:0{{barrier}}crwdne1261247:0", "1502325741": "crwdns1261249:0crwdne1261249:0", @@ -1775,7 +1775,6 @@ "1692912479": "crwdns1719427:0crwdne1719427:0", "1693614409": "crwdns1261519:0crwdne1261519:0", "1694517345": "crwdns1261523:0crwdne1261523:0", - "1694888104": "crwdns5990894:0crwdne5990894:0", "1696190747": "crwdns3859826:0crwdne3859826:0", "1697529334": "crwdns6014806:0{{platform}}crwdnd6014806:0{{existing_account}}crwdne6014806:0", "1698624570": "crwdns2101837:0crwdne2101837:0", @@ -2640,7 +2639,6 @@ "-1101737402": "crwdns4487938:0crwdne4487938:0", "-975118358": "crwdns496902:0{{legal_entity_name}}crwdne496902:0", "-2073934245": "crwdns121006:0crwdne121006:0", - "-1035494182": "crwdns3708376:0crwdne3708376:0", "-1125193491": "crwdns81393:0crwdne81393:0", "-2068229627": "crwdns81631:0crwdne81631:0", "-1209644365": "crwdns4772790:0crwdne4772790:0", @@ -2757,9 +2755,9 @@ "-222105210": "crwdns6149734:0crwdne6149734:0", "-1601377103": "crwdns6149736:0crwdne6149736:0", "-121443071": "crwdns6149738:0crwdne6149738:0", + "-1419026486": "crwdns6235472:0{{phone_verification_type}}crwdnd6235472:0{{users_phone_number}}crwdne6235472:0", "-652539141": "crwdns6149740:0crwdne6149740:0", "-1124039045": "crwdns6149742:0crwdne6149742:0", - "-1487715516": "crwdns6149744:0{{ phone }}crwdne6149744:0", "-1184626439": "crwdns6149746:0{{resendCode}}crwdne6149746:0", "-165489997": "crwdns6149748:0crwdne6149748:0", "-1822545742": "crwdns81231:0crwdne81231:0", @@ -3948,9 +3946,11 @@ "-1858102926": "crwdns6135664:0crwdne6135664:0", "-635746838": "crwdns6013644:0crwdne6013644:0", "-548979988": "crwdns6013646:0crwdne6013646:0", - "-1013686843": "crwdns6111096:0crwdne6111096:0", + "-1838512476": "crwdns6235458:0crwdne6235458:0", "-1977959027": "crwdns81037:0crwdne81037:0", - "-1084580778": "crwdns6111098:0crwdne6111098:0", + "-591705950": "crwdns6235460:0crwdne6235460:0", + "-1013686843": "crwdns6111096:0crwdne6111096:0", + "-1727323033": "crwdns6235462:0crwdne6235462:0", "-1068424721": "crwdns6015190:0crwdne6015190:0", "-718750246": "crwdns4740254:0{{growth_rate}}crwdnd4740254:0{{tick_size_barrier_percentage}}crwdne4740254:0", "-2131851017": "crwdns2225581:0crwdne2225581:0", @@ -3987,6 +3987,7 @@ "-1541404572": "crwdns6119830:0crwdne6119830:0", "-1634963573": "crwdns6119832:0crwdne6119832:0", "-337314714": "crwdns81033:0crwdne81033:0", + "-1855256857": "crwdns6235464:0crwdne6235464:0", "-993480898": "crwdns1822835:0crwdne1822835:0", "-123659792": "crwdns1781109:0crwdne1781109:0", "-1226595254": "crwdns2738431:0crwdne2738431:0", diff --git a/packages/translations/src/translations/ar.json b/packages/translations/src/translations/ar.json index f1f0bd73f485..7864788d8ea6 100644 --- a/packages/translations/src/translations/ar.json +++ b/packages/translations/src/translations/ar.json @@ -1282,7 +1282,6 @@ "1218546232": "ما هي فيات أونرامب؟", "1219844088": "القيام بـ %1", "1221250438": "لتمكين عمليات السحب، يرجى تقديم <0>إثبات الهوية (POI) و <1>إثبات العنوان (POA) وكذلك إكمال <2>التقييم المالي في إعدادات حسابك.", - "1221947449": "أدخل الرمز المكون من 6 أرقام الذي تم إرساله إليك عبر {{phone_verification_type}} على رقم هاتفك {{users_phone_number}}. <0>", "1222096166": "الإيداع عن طريق التحويل المصرفي وبطاقة الائتمان والمحفظة الإلكترونية", "1222521778": "من الصعب إجراء عمليات الإيداع والسحب.", "1222544232": "لقد أرسلنا لك بريدًا إلكترونيًا", @@ -1349,6 +1348,7 @@ "1274380814": "العائد الخاص بك يساوي <0>العائد لكل نقطة مضروبًا بالفرق، <1>بالنقاط، بين السعر النهائي وسعر التنفيذ. لن تكسب ربحًا إلا إذا كانت عائداتك أعلى من حصتك الأولية.", "1274819385": "3. الشكاوى والنزاعات", "1276660852": "تقديم إثبات الهوية", + "1276973471": "المنتجات المعروضة على موقعنا هي منتجات مشتقة معقدة تنطوي على مخاطر كبيرة للخسارة المحتملة. العقود مقابل الفروقات هي أدوات معقدة تنطوي على مخاطر عالية لخسارة الأموال بسرعة بسبب الرافعة المالية. 70.84٪ من حسابات مستثمري التجزئة تخسر الأموال عند تداول العقود مقابل الفروقات مع هذا المزود. يجب أن تفكر فيما إذا كنت تفهم كيفية عمل هذه المنتجات وما إذا كان بإمكانك تحمل المخاطر العالية بخسارة أموالك.", "1279937041": "<0>ملاحظة: قد تواجه بعض الاستراتيجيات المعقدة مشاكل في منشئ الروبوت. إذا كانت لديك أسئلة، اتصل بنا عبر <1/>.", "1281045211": "يقوم بفرز العناصر في قائمة معينة، حسب قيمتها الرقمية أو الأبجدية، إما بترتيب تصاعدي أو تنازلي.", "1281290230": "اختار", @@ -1419,7 +1419,6 @@ "1339613797": "الجهة التنظيمية/حل النزاعات الخارجية", "1340286510": "لقد توقف الروبوت، ولكن ربما لا تزال تجارتك قيد التشغيل. يمكنك التحقق من ذلك في صفحة التقارير.", "1341840346": "عرض في المجلة", - "1341921544": "حسابات التداول والصناديق", "1344696151": "الفوركس والأسهم ومؤشرات الأسهم والسلع والعملات المشفرة والمؤشرات الاصطناعية.", "1346038489": "يجب أن يكون أقل من 70.", "1346204508": "جني الأرباح", @@ -1590,6 +1589,7 @@ "1496810530": "جنيه إسترليني/دولار أسترالي", "1497773819": "حسابات ديريف MT5", "1499080621": "حاولت تنفيذ عملية غير صالحة.", + "1499733992": "تم التحقق منه كرقم هاتفك.", "1501691227": "أضف حساب Deriv MT5 <0>{{account_type_name}} الخاص بك تحت إشراف Deriv (V) Ltd، وفقًا لقوانين لجنة الخدمات المالية في فانواتو.", "1502039206": "أكثر من {{barrier}}", "1502325741": "لا يمكن أن تكون كلمة المرور الخاصة بك هي نفس عنوان بريدك الإلكتروني.", @@ -1775,7 +1775,6 @@ "1692912479": "دريف X, دريف MT5", "1693614409": "وقت البدء", "1694517345": "أدخل عنوان بريد إلكتروني جديد", - "1694888104": "المنتجات المعروضة على موقعنا هي منتجات مشتقة معقدة تنطوي على مخاطر كبيرة للخسارة المحتملة. العقود مقابل الفروقات هي أدوات معقدة تنطوي على مخاطر عالية لخسارة الأموال بسرعة بسبب الرافعة المالية. 70.78٪ من حسابات مستثمري التجزئة تخسر الأموال عند تداول العقود مقابل الفروقات مع هذا المزود. يجب أن تفكر فيما إذا كنت تفهم كيفية عمل هذه المنتجات وما إذا كان بإمكانك تحمل المخاطر العالية بخسارة أموالك.", "1696190747": "ينطوي التداول بطبيعته على مخاطر، ويمكن أن تتقلب الأرباح الفعلية بسبب عوامل مختلفة، بما في ذلك تقلبات السوق والمتغيرات الأخرى غير المتوقعة. على هذا النحو، يجب توخي الحذر وإجراء بحث شامل قبل الانخراط في أي أنشطة تداول.", "1697529334": "مهم: حسابك <0>{{platform}} {{existing_account}}.", "1698624570": "2. اضغط على Ok للتأكيد.", @@ -2640,7 +2639,6 @@ "-1101737402": "يرجى الاختيار*", "-975118358": "سيتم فتح حسابك بـ {{legal_entity_name}}، وتنظمه هيئة الخدمات المالية المالطية (MFSA)، وسيخضع لقوانين مالطا.", "-2073934245": "خدمات التداول المالي المقدمة على هذا الموقع مناسبة فقط للعملاء الذين يقبلون إمكانية خسارة جميع الأموال التي يستثمرونها والذين يفهمون ولديهم خبرة في المخاطر التي ينطوي عليها شراء العقود المالية. تنطوي المعاملات في العقود المالية على درجة عالية من المخاطر. إذا انتهت صلاحية العقود التي اشتريتها باعتبارها عديمة القيمة، فسوف تفقد كل استثماراتك، بما في ذلك علاوة العقد.", - "-1035494182": "أنت تقر بأنه وفقًا لتقدير الشركة واللوائح المعمول بها والفحوصات الداخلية التي يتم الوفاء بها، سنفتح حسابًا لك ونسمح لك بإيداع الأموال أثناء إجراء قبول العميل. ومع ذلك، حتى اكتمال التحقق من حسابك، لن تتمكن من التداول أو السحب أو إجراء المزيد من الودائع. إذا لم تقدم المستندات ذات الصلة في غضون 30 يومًا، فسنقوم برد المبلغ المودع من خلال نفس طريقة الدفع التي استخدمتها للإيداع.", "-1125193491": "إضافة حساب", "-2068229627": "أنا لست PEP، ولم أكن PEP في الأشهر الـ 12 الماضية.", "-1209644365": "أؤكد بموجبه أن طلبي لفتح حساب لدى شركة Deriv Investments (Europe) Ltd قد تم بمبادرة شخصية مني.", @@ -2757,9 +2755,9 @@ "-222105210": "Resend code", "-1601377103": "الخطوة 3 من 3: تحقق من رقمك", "-121443071": "الخطوة 1 من 3: التحقق من البريد الإلكتروني مطلوب", + "-1419026486": "أدخل رمز التحقق المكون من 6 أرقام الذي تم إرساله إليك عبر {{phone_verification_type}} على <1>{{users_phone_number}}. <0>", "-652539141": "OTP code", "-1124039045": "رمز التوثيق", - "-1487715516": "{{ phone }} تم التحقق منه كرقم هاتفك.", "-1184626439": "Didn't get the code?{{resendCode}}", "-165489997": "انتهت صلاحية الجلسة", "-1822545742": "إيثر كلاسيك", @@ -3948,9 +3946,11 @@ "-1858102926": "الحاجز تم تحديده أسفل سعر السوق.", "-635746838": "أسفل البقعة", "-548979988": "سعر ثابت", - "-1013686843": "الوقت الحالي", + "-1838512476": "اختر وقت الانتهاء", "-1977959027": "ساعات", - "-1084580778": "ينتهي في", + "-591705950": "ينتهي في", + "-1013686843": "الوقت الحالي", + "-1727323033": "0 دقيقة", "-1068424721": "أقصى مدة", "-718750246": "ستنمو حصتك بنسبة {{growth_rate}}% لكل علامة طالما ظل السعر الفوري الحالي في حدود ±{{tick_size_barrier_percentage}} من السعر الفوري السابق.", "-2131851017": "معدل النمو", @@ -3987,6 +3987,7 @@ "-1541404572": "تم إيقاف TP.", "-1634963573": "تم إيقاف SL.", "-337314714": "أيام", + "-1855256857": "ساعة", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/bn.json b/packages/translations/src/translations/bn.json index 9184aa7ed6f5..ce0ab2e9c730 100644 --- a/packages/translations/src/translations/bn.json +++ b/packages/translations/src/translations/bn.json @@ -1282,7 +1282,6 @@ "1218546232": "ফায়াট অন র্যাম্প কি?", "1219844088": "%1করুন", "1221250438": "উইথড্রয়াল সক্ষম করতে, দয়া করে আপনার <0>পরিচয়ের প্রমাণ (POI) এবং <1>ঠিকানা প্রমাণ (POA) জমা দিন এবং আপনার অ্যাকাউন্ট সেটিংসে <2>আর্থিক মূল্যায়ন সম্পূর্ণ করুন।", - "1221947449": "আপনার {{phone_verification_type}} মাধ্যমে {{users_phone_number}} এ পাঠানো 6-ডিজিট কোডটি প্রবেশ করান। <0>", "1222096166": "ব্যাংক ওয়্যার, ক্রেডিট কার্ড এবং ই-ওয়ালেটের মাধ্যমে ডিপোজিট", "1222521778": "আমানত এবং তোলার কাজ করা কঠিন।", "1222544232": "আমরা আপনাকে একটি ইমেইল পাঠিয়েছি", @@ -1349,6 +1348,7 @@ "1274380814": "আপনার পেআউটে চূড়ান্ত মূল্য এবং স্ট্রাইক মূল্যের মধ্যে পার্থক্য দ্বারা গুণিত <0>প্রতি পিপে পেআউট সমান। আপনার পেআউট আপনার প্রাথমিক অংশীদারির চেয়ে বেশি হলে আপনি শুধুমাত্র মুনাফা উপার্জন করবেন।", "1274819385": "3। অভিযোগ এবং বিরোধ", "1276660852": "আপনার পরিচয়ের প্রমাণ জমা দিন", + "1276973471": "আমাদের ওয়েবসাইটে দেওয়া পণ্যগুলি হল জটিল ডেরিভেটিভ পণ্য যা সম্ভাব্য ক্ষতির একটি উল্লেখযোগ্য ঝুঁকি বহন করে। CFD হল জটিল যন্ত্র যেখানে লিভারেজের কারণে দ্রুত অর্থ হারানোর উচ্চ ঝুঁকি রয়েছে। এই প্রদানকারীর সাথে CFD ট্রেড করার সময় খুচরা বিনিয়োগকারীদের অ্যাকাউন্টের 70.84% ​​অর্থ হারায়। এই পণ্যগুলি কীভাবে কাজ করে তা আপনি বুঝতে পারেন কিনা এবং আপনার অর্থ হারানোর উচ্চ ঝুঁকি নেওয়ার সামর্থ্য আছে কিনা তা আপনার বিবেচনা করা উচিত।", "1279937041": "<0>নোট: কিছু জটিল কৌশলে বট নির্মাতায় সমস্যা হতে পারে। যদি আপনার প্রশ্ন থাকে, আমাদের সাথে <1/> মাধ্যমে যোগাযোগ করুন।", "1281045211": "একটি প্রদত্ত তালিকায় আইটেমগুলিকে, তাদের সংখ্যাসূচক বা বর্ণানুক্রমিক মান অনুসারে, ঊর্ধ্বমুখী বা অবরোহ ক্রমে সাজানো।", "1281290230": "নির্বাচন ", @@ -1419,7 +1419,6 @@ "1339613797": "রেগুলেটর/বাহ্যিক বিরোধ নিষ্পত্তি", "1340286510": "বট বন্ধ হয়েছে, কিন্তু আপনার ট্রেড এখনও চলমান হতে পারে। আপনি রিপোর্ট পৃষ্ঠায় এটি চেক করতে পারেন।", "1341840346": "জার্নালে দেখুন", - "1341921544": "ট্রেডিং অ্যাকাউন্ট এবং ফান্ড", "1344696151": "ফরেক্স, স্টক, স্টক সূচক, পণ্য, ক্রিপ্টোকারেন্সি এবং সিন্থেটিক সূচক।", "1346038489": "70 এর কম হওয়া উচিত।", "1346204508": "মুনাফা নিন", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "MT5 অ্যাকাউন্ট ডেরিভ করুন", "1499080621": "একটি অবৈধ অপারেশন সম্পাদন করার চেষ্টা করা হয়েছে।", + "1499733992": "প্রমাণিত হয়েছে যে এটি আপনার ফোন নাম্বার।", "1501691227": "Deriv (V) Ltd-এর অধীনে আপনার Deriv MT5 <0>{{account_type_name}} অ্যাকাউন্ট যোগ করুন, ভানুয়াতু ফাইন্যান্সিয়াল সার্ভিস কমিশন দ্বারা নিয়ন্ত্রিত।", "1502039206": "{{barrier}}এর বেশি", "1502325741": "আপনার পাসওয়ার্ড আপনার ইমেইল ঠিকানা হিসাবে একই হতে পারে না।", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "আরম্ভের সময়", "1694517345": "একটি নতুন ইমেইল ঠিকানা লিখুন", - "1694888104": "আমাদের ওয়েবসাইটে দেওয়া পণ্যগুলি জটিল ডেরিভেটিভ পণ্য যা সম্ভাব্য ক্ষতির উল্লেখযোগ্য ঝুঁকি বহন করে। CFDগুলি জটিল যন্ত্র যার লিভারেজের কারণে দ্রুত অর্থ হারানোর উচ্চ ঝুঁকি রয়েছে। এই সরবরাহকারীর সাথে CFD ট্রেড করার সময় 70.78% খুচরা বিনিয়োগকারী অ্যাকাউন্ট অর্থ হারায় এই পণ্যগুলি কীভাবে কাজ করে তা আপনি বুঝতে পারেন কিনা এবং আপনি আপনার অর্থ হারানোর উচ্চ ঝুঁকি নিতে পারবেন কিনা তা আপনার বিবেচনা করা উচিত।", "1696190747": "ট্রেডিং অস্বাভাবিকভাবে ঝুঁকি জড়িত এবং বাজারের অস্থিরতা এবং অন্যান্য অপ্রত্যাশিত ভেরিয়েবল সহ বিভিন্ন কারণের কারণে প্রকৃত লাভ ওঠানামা করতে যেমন, কোনও ব্যবসায়ের ক্রিয়াকলাপে জড়িত হওয়ার আগে সতর্কতা অবলম্বন করুন এবং পুঙ্খানু।", "1697529334": "গুরুতর: এটি আপনার <0>{{platform}} {{existing_account}} অ্যাকাউন্ট।", "1698624570": "2। নিশ্চিত করতে Ok হিট করুন।", @@ -2640,7 +2639,6 @@ "-1101737402": "অনুগ্রহ করে নির্বাচন করুন*", "-975118358": "আপনার অ্যাকাউন্ট {{legal_entity_name}}দিয়ে খোলা হবে, মাল্টা ফাইন্যান্সিয়াল সার্ভিসেস অথরিটি (এমএফএসএ) দ্বারা নিয়ন্ত্রিত হবে এবং মাল্টা আইন সাপেক্ষে হবে।", "-2073934245": "এই সাইটে প্রদত্ত আর্থিক ট্রেডিং পরিষেবাগুলি কেবলমাত্র গ্রাহকদের জন্য উপযুক্ত, যারা তাদের বিনিয়োগ করা সমস্ত অর্থ হারানোর সম্ভাবনা গ্রহণ করে এবং যারা আর্থিক চুক্তি ক্রয়ের সাথে জড়িত ঝুঁকির অভিজ্ঞতা অর্জন করে। আর্থিক চুক্তির লেনদেন উচ্চ মাত্রার ঝুঁকি বহন করে। যদি আপনি যে চুক্তিগুলি ক্রয় করেন সেগুলি মূল্যহীন হিসাবে মেয়াদ শেষ হয়ে যায়, তাহলে আপনি আপনার সমস্ত বিনিয়োগ হারাবেন, যার মধ্যে রয়েছে চুক্তি প্রিমিয়াম।", - "-1035494182": "আপনি স্বীকার করেন যে, কোম্পানির বিবেচনা, প্রযোজ্য নিয়ম এবং অভ্যন্তরীণ চেকগুলি পূরণ হওয়ার সাপেক্ষে, আমরা আপনার জন্য একটি অ্যাকাউন্ট খুলব এবং ক্লায়েন্ট গ্রহণযোগ্যতা পদ্ধতির সময় আপনাকে তহবিল জমা করার অনুমতি দেব। যাইহোক, আপনার অ্যাকাউন্টের যাচাইকরণ সম্পন্ন না হওয়া পর্যন্ত আপনি ট্রেড করতে, প্রত্যাহার করতে বা আরও আমানত করতে সক্ষম হবেন না। আপনি যদি 30 দিনের মধ্যে প্রাসঙ্গিক নথি সরবরাহ না করেন তবে আপনি জমা দিয়েছিলেন এমন একই অর্থ প্রদানের পদ্ধতির মাধ্যমে আমরা জমা পরিমাণ ফেরত দেব।", "-1125193491": "অ্যাকাউন্ট যোগ করুন", "-2068229627": "আমি একটি PEP নই, এবং আমি গত 12 মাসে একটি PEP হয়েছে না।", "-1209644365": "আমি এতদ্বারা নিশ্চিত করছি যে Deriv Investments (Europe) Ltd-এর সাথে একটি অ্যাকাউন্ট খোলার জন্য আমার অনুরোধ আমার নিজের উদ্যোগে করা হয়েছে।", @@ -2757,9 +2755,9 @@ "-222105210": "পুনরায় কোড পাঠান", "-1601377103": "ধাপ 3 এর 3: আপনার নাম্বার যাচাই করুন", "-121443071": "ধাপ 3 এর 1: ইমেইল যাচাইকরণ প্রয়োজন", + "-1419026486": "আপনার {{phone_verification_type}} মাধ্যমে <1>{{users_phone_number}} এ পাঠানো 6-ডিজিট কোডটি প্রবেশ করান। <0>", "-652539141": "OTP কোড", "-1124039045": "যাচাইকরণের কোড", - "-1487715516": "{{ phone }} আপনার ফোন নম্বর হিসাবে যাচাইকৃত।", "-1184626439": "কোড পাননি?{{resendCode}}", "-165489997": "সেশনের মেয়াদ শেষ", "-1822545742": "ইথার ক্লাসিক", @@ -3948,9 +3946,11 @@ "-1858102926": "বারিয়ার স্পট মূল্যের নীচে সেট করা হয়েছে।", "-635746838": "নীচের স্পট", "-548979988": "স্থির মূল্য", - "-1013686843": "বর্তমান সময়", + "-1838512476": "একটি শেষ সময় বেছে নিন", "-1977959027": "ঘণ্টা", - "-1084580778": "সমাপ্তির তারিখ", + "-591705950": "এতে সমাপ্তি", + "-1013686843": "বর্তমান সময়", + "-1727323033": "0 ন্যূনতম", "-1068424721": "সর্বাধিক সময়কাল", "-718750246": "আপনার ষ্টেক প্রতি টিক {{growth_rate}}% হারে বৃদ্ধি পাবে যতক্ষণ না বর্তমান স্পট মূল্য আগের স্পট মূল্য থেকে ±{{tick_size_barrier_percentage}}-এর মধ্যে থাকবে।", "-2131851017": "বৃদ্ধির হার", @@ -3987,6 +3987,7 @@ "-1541404572": "TP বন্ধ করে দেওয়া হয়েছে.", "-1634963573": "SL বন্ধ করে দেওয়া হয়েছে।", "-337314714": "দিনগুলো", + "-1855256857": "ঘন্টা", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/de.json b/packages/translations/src/translations/de.json index 1787d9d8c40d..bae14fa188d9 100644 --- a/packages/translations/src/translations/de.json +++ b/packages/translations/src/translations/de.json @@ -99,7 +99,7 @@ "99306476": "Ihr Import ist aufgrund einer ungültigen Datei fehlgeschlagen. Laden Sie eine vollständige Datei im XML-Format hoch.", "100239694": "Laden Sie die Vorderseite der Karte von Ihrem Computer hoch", "102226908": "Das Feld darf nicht leer sein", - "102929937": "Stellen Sie sicher, dass Sie die Adresse Ihres Deriv {{currency}}-Kontos oben korrekt kopieren und in Ihre Krypto-Brieftasche einfügen.", + "102929937": "Stellen Sie sicher, die Adresse des Deriv-{{currency}}-Kontos oben zu kopieren und in Ihre Krypto-Wallet einzufügen.", "105871033": "Ihr Alter in dem von Ihnen angegebenen Dokument scheint unter 18 Jahren zu liegen. Wir dürfen unsere Dienste nur Kunden anbieten, die älter als 18 Jahre sind, daher müssen wir Ihr Konto schließen. Wenn Sie ein Guthaben auf Ihrem Konto haben, kontaktieren Sie uns über den Live-Chat und wir helfen Ihnen dabei, Ihr Geld abzuheben, bevor Ihr Konto geschlossen wird.", "107537692": "Diese Grenzen gelten nur für Ihre Optionsgeschäfte. Der <0>maximale Gesamtverlust bezieht sich zum Beispiel auf die Verluste bei all Ihren Geschäften auf Optionshandelsplattformen.", "108916570": "Dauer: {{duration}} Tage", @@ -588,7 +588,7 @@ "581168980": "Rechtliches", "582945649": "2 Minuten", "584028307": "Erlaube Gleichheit", - "585277790": "Einige Währungen werden möglicherweise von fiat-Onramps nicht unterstützt.", + "585277790": "Einige Währungen werden möglicherweise nicht von Fiat Onramp unterstützt.", "587577347": "Take Profit (Accumulator)", "587577425": "Mein Konto sichern", "587856857": "Sie möchten mehr über APIs erfahren?", @@ -1282,7 +1282,6 @@ "1218546232": "Was ist Fiat Onramp?", "1219844088": "mach %1", "1221250438": "Um Auszahlungen zu ermöglichen, reichen Sie bitte Ihren <0>Identitätsnachweis (POI) und <1>Adressnachweis (POA) ein und führen Sie die <2>finanzielle Prüfung in Ihren Kontoeinstellungen durch.", - "1221947449": "Geben Sie den 6-stelligen Code ein, der Ihnen über {{phone_verification_type}} an {{users_phone_number}} gesendet wurde. <0>", "1222096166": "Einzahlung per Banküberweisung, Kreditkarte und E-Wallet", "1222521778": "Ein- und Auszahlungen sind schwierig.", "1222544232": "Wir haben dir eine E-Mail geschickt", @@ -1349,6 +1348,7 @@ "1274380814": "Ihre Auszahlung entspricht der <0>Auszahlung pro Pip multipliziert mit der Differenz zwischen, <1>in pips, dem Endpreis und dem Basispreis. Sie werden nur dann einen Gewinn erzielen, wenn Ihre Auszahlung höher ist als Ihr ursprünglicher Einsatz.", "1274819385": "3. Beschwerden und Streitigkeiten", "1276660852": "Reichen Sie Ihren Identitätsnachweis ein", + "1276973471": "Bei den auf unserer Website angebotenen Produkten handelt es sich um komplexe derivative Produkte, die ein erhebliches Verlustrisiko bergen. CFDs sind komplexe Instrumente mit einem hohen Risiko, aufgrund der Hebelwirkung schnell Geld zu verlieren. 70,84 % der Konten von Kleinanlegern verlieren Geld beim Handel mit CFDs bei diesem Anbieter. Sie sollten sich überlegen, ob Sie die Funktionsweise dieser Produkte verstehen und ob Sie das hohe Risiko, Ihr Geld zu verlieren, eingehen können.", "1279937041": "<0>Hinweis: Einige komplexe Strategien könnten im Bot-Builder auf Probleme stoßen. Bei Fragen kontaktieren Sie uns über <1/>.", "1281045211": "Sortiert die Elemente in einer bestimmten Liste nach ihrem numerischen oder alphabetischen Wert in aufsteigender oder absteigender Reihenfolge.", "1281290230": "Wählen", @@ -1419,7 +1419,6 @@ "1339613797": "Regulatorische/Externe Streitbeilegung", "1340286510": "Der Bot wurde angehalten, aber Ihr Handel läuft möglicherweise noch. Sie können ihn auf der Seite Berichte überprüfen.", "1341840346": "Im Journal ansehen", - "1341921544": "Handelskonten und Fonds", "1344696151": "Devisen, Aktien, Aktienindizes, Rohstoffe, Kryptowährungen und synthetische Indizes.", "1346038489": "Sollte weniger als 70 sein.", "1346204508": "Take Profit", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "MT5-Konten ableiten", "1499080621": "Es wurde versucht, einen ungültigen Vorgang auszuführen.", + "1499733992": "ist als Ihre Telefonnummer verifiziert.", "1501691227": "Fügen Sie Ihr Deriv MT5 <0>{{account_type_name}} Konto unter Deriv (V) Ltd, reguliert von der Vanuatu Financial Services Commission, hinzu.", "1502039206": "Über {{barrier}}", "1502325741": "Ihr Passwort darf nicht mit Ihrer E-Mail-Adresse übereinstimmen.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Startzeit", "1694517345": "Geben Sie eine neue E-Mail-Adresse ein", - "1694888104": "Die auf unserer Website angebotenen Produkte sind komplexe derivative Produkte, die ein erhebliches Verlustrisiko bergen. CFDs sind komplexe Instrumente mit einem hohen Risiko, aufgrund von Hebelwirkung schnell Geld zu verlieren. 70,78 % der Konten von Privatinvestoren verlieren Geld beim Handel mit CFDs bei diesem Anbieter. Sie sollten prüfen, ob Sie verstehen, wie diese Produkte funktionieren und ob Sie es sich leisten können, das hohe Risiko eines Verlustes Ihres Geldes einzugehen.", "1696190747": "Der Handel ist naturgemäß mit Risiken verbunden, und die tatsächlichen Gewinne können aufgrund verschiedener Faktoren, einschließlich der Marktvolatilität und anderer unvorhersehbarer Variablen, schwanken. Seien Sie daher vorsichtig und stellen Sie gründliche Nachforschungen an, bevor Sie sich auf Handelsaktivitäten einlassen.", "1697529334": "Wichtig: Ihr <0>{{platform}} {{existing_account}} Konto.", "1698624570": "2. Drücken Sie Ok zur Bestätigung.", @@ -2640,7 +2639,6 @@ "-1101737402": "Bitte auswählen*", "-975118358": "Ihr Konto wird bei {{legal_entity_name}} eröffnet, das von der Malta Financial Services Authority (MFSA) reguliert wird und den Gesetzen Maltas unterliegt.", "-2073934245": "Die auf dieser Website angebotenen Finanzhandelsdienstleistungen sind nur für Kunden geeignet, die die Möglichkeit akzeptieren, das gesamte von ihnen investierte Geld zu verlieren, und die das mit dem Kauf von Finanzkontrakten verbundene Risiko verstehen und Erfahrung damit haben. Transaktionen in Finanzkontrakten sind mit einem hohen Risiko verbunden. Wenn die von Ihnen gekauften Verträge als wertlos ablaufen, verlieren Sie Ihre gesamte Investition, einschließlich der Vertragsprämie.", - "-1035494182": "Sie erkennen an, dass wir vorbehaltlich des Ermessens des Unternehmens, der geltenden Vorschriften und der Erfüllung interner Prüfungen ein Konto für Sie eröffnen und Ihnen die Einzahlung von Geldern während des Kundenakzeptanzverfahrens ermöglichen werden. Solange die Überprüfung Ihres Kontos jedoch nicht abgeschlossen ist, können Sie nicht handeln, abheben oder weitere Einzahlungen vornehmen. Wenn Sie die entsprechenden Dokumente nicht innerhalb von 30 Tagen vorlegen, erstatten wir Ihnen den eingezahlten Betrag über dieselbe Zahlungsmethode, die Sie für die Einzahlung verwendet haben.", "-1125193491": "Konto hinzufügen", "-2068229627": "Ich bin kein PEP und ich war in den letzten 12 Monaten kein PEP.", "-1209644365": "Ich bestätige hiermit, dass mein Antrag auf Eröffnung eines Kontos bei Deriv Investments (Europe) Ltd auf meine eigene Initiative hin erfolgt.", @@ -2757,9 +2755,9 @@ "-222105210": "Code erneut senden", "-1601377103": "Schritt 3 von 3: Bestätigen Sie Ihre Nummer", "-121443071": "Schritt 1 von 3: E-Mail-Verifizierung erforderlich", + "-1419026486": "Geben Sie den 6-stelligen Code ein, der Ihnen über {{phone_verification_type}} an <1>{{users_phone_number}} gesendet wurde. <0>", "-652539141": "OTP-Code", "-1124039045": "Verifizierungscode", - "-1487715516": "{{ phone }} ist als Ihre Telefonnummer verifiziert.", "-1184626439": "Haben Sie den Code nicht erhalten?{{resendCode}}", "-165489997": "Sitzung abgelaufen", "-1822545742": "Äther-Klassiker", @@ -3948,9 +3946,11 @@ "-1858102926": "Die Barriere liegt unter dem Spotpreis.", "-635746838": "Unterer Punkt", "-548979988": "Festpreis", - "-1013686843": "Aktuelle Uhrzeit", + "-1838512476": "Wählen Sie eine Endzeit", "-1977959027": "Stunden", - "-1084580778": "Endet um", + "-591705950": "Endet am", + "-1013686843": "Aktuelle Uhrzeit", + "-1727323033": "0 Min.", "-1068424721": "Maximale Dauer", "-718750246": "Ihr Einsatz wächst mit {{growth_rate}}% pro Tick, solange der aktuelle Spotpreis innerhalb von ±{{tick_size_barrier_percentage}} vom vorherigen Spotpreis bleibt.", "-2131851017": "Wachstumsrate", @@ -3987,6 +3987,7 @@ "-1541404572": "TP wurde deaktiviert.", "-1634963573": "SL wurde deaktiviert.", "-337314714": "Tage", + "-1855256857": "h", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index 31312e8f9779..5e147b7c772e 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -1282,7 +1282,6 @@ "1218546232": "¿Qué es Fiat onramp?", "1219844088": "hacer %1", "1221250438": "Para permitir los retiros, por favor envíe su <0>Prueba de Identidad (POI) y su <1>Prueba de Domicilio (POA) y complete también la <2>evaluación financiera en los ajustes de su cuenta.", - "1221947449": "Introduzca el código de 6 dígitos que le enviamos a través de {{phone_verification_type}} en {{users_phone_number}}. <0>", "1222096166": "Depositar mediante transferencia bancaria, tarjeta de crédito y billetera electrónica", "1222521778": "Hacer depósitos y retiros es difícil.", "1222544232": "Le hemos enviado un correo electrónico", @@ -1349,6 +1348,7 @@ "1274380814": "Su pago es igual al <0>pago por pip multiplicado por la diferencia, <1>en pips, entre el precio final y el precio de ejercicio. Solo obtendrá ganancias si su pago es superior a su inversión inicial.", "1274819385": "3. Quejas y Disputas", "1276660852": "Envíe su comprobante de identidad", + "1276973471": "Los productos que se ofrecen en nuestro sitio web son productos derivados complejos que conllevan un riesgo significativo de pérdida potencial. Los CFD son instrumentos complejos con un alto riesgo de perder dinero rápidamente debido al apalancamiento. El 70.84% de las cuentas de inversores minoristas pierden dinero al operar con CFD con este proveedor. Debe considerar si entiende cómo funcionan estos productos y si puede permitirse correr el alto riesgo de perder su dinero.", "1279937041": "<0>Nota: Algunas estrategias complejas pueden enfrentar problemas en el Bot Builder. Si tiene preguntas, contáctenos a través de <1/>.", "1281045211": "Ordena los elementos de una lista determinada, por su valor numérico o alfabético, en orden ascendente o descendente.", "1281290230": "Seleccionar", @@ -1419,7 +1419,6 @@ "1339613797": "Resolución de disputa reguladora/externa", "1340286510": "El bot se ha detenido, pero es posible que su operación siga en curso. Puede comprobarlo en la página Informes.", "1341840346": "Ver en el Diario", - "1341921544": "Cuentas y fondos de operación", "1344696151": "Divisas, acciones, índices bursátiles, materias primas, criptomonedas e índices sintéticos.", "1346038489": "Debe ser inferior a 70.", "1346204508": "Take profit", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Cuentas Deriv MT5", "1499080621": "Ha intentado realizar una operación no válida.", + "1499733992": "se verifica como su número de teléfono.", "1501691227": "Añada su cuenta Deriv MT5 <0>{{account_type_name}} en Deriv (V) Ltd, regulada por la Comisión de Servicios Financieros de Vanuatu.", "1502039206": "Sobre {{barrier}}", "1502325741": "Su contraseña no puede ser igual a su dirección de correo electrónico.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Hora de inicio", "1694517345": "Introduzca una nueva dirección de correo electrónico", - "1694888104": "Los productos que se ofrecen en nuestro sitio web son productos derivados complejos que conllevan un riesgo significativo de pérdida potencial. Los CFD son instrumentos complejos con un alto riesgo de perder dinero rápidamente debido al apalancamiento. El 70.78% de las cuentas de inversores minoristas pierden dinero al operar con CFD con este proveedor. Debe considerar si entiende cómo funcionan estos productos y si puede permitirse correr el alto riesgo de perder su dinero.", "1696190747": "Las operaciones implican riesgos inherentes y los beneficios reales pueden fluctuar debido a diversos factores, como la volatilidad del mercado y otras variables imprevistas. Por ello, actúe con cautela e investigue a fondo antes de emprender cualquier actividad de trading.", "1697529334": "Importante: Su <0>{{platform}} {{existing_account}} cuenta.", "1698624570": "Haga clic en Ok para confirmar.", @@ -2640,7 +2639,6 @@ "-1101737402": "Por favor, seleccione*", "-975118358": "Su cuenta se abrirá con {{legal_entity_name}}, regulada por la Autoridad de Servicios Financieros de Malta, y estará sujeta a las leyes de Malta.", "-2073934245": "Los servicios del trading financiero ofrecidos en este sitio solo son adecuados para clientes que aceptan la posibilidad de perder todo el dinero que invierten y que entienden y tienen experiencia del riesgo involucrado en la compra de contratos financieros. Las transacciones en contratos financieros conllevan un alto grado de riesgo. Si los contratos que compró expiran sin valor, perderá toda su inversión, que incluye la prima del contrato.", - "-1035494182": "Usted reconoce que, sujeto a la discreción de la Empresa, a la normativa aplicable y al cumplimiento de las comprobaciones internas, abriremos una cuenta para usted y le permitiremos depositar fondos durante el procedimiento de aceptación del cliente. Sin embargo, hasta que se complete la verificación de su cuenta, no podrá operar, retirar fondos ni realizar más depósitos. Si no proporciona los documentos pertinentes en un plazo de 30 días, le devolveremos la cantidad depositada a través del mismo método de pago que utilizó para depositar.", "-1125193491": "Añadir cuenta", "-2068229627": "No soy una PEP, y no he sido una PEP en los últimos 12 meses.", "-1209644365": "Por la presente confirmo que mi solicitud de apertura de una cuenta en Deriv Investments (Europe) Ltd se realiza por iniciativa propia.", @@ -2757,9 +2755,9 @@ "-222105210": "Reenviar código", "-1601377103": "Paso 3 de 3: Verifique su número", "-121443071": "Paso 1 de 3: Se necesita verificación por correo electrónico", + "-1419026486": "Introduzca el código de 6 dígitos que le enviamos a través de {{phone_verification_type}} en <1>{{users_phone_number}}. <0>", "-652539141": "Código OTP", "-1124039045": "Código de verificación", - "-1487715516": "{{ phone }} está verificado como su número de teléfono.", "-1184626439": "¿No recibió el código?{{resendCode}}", "-165489997": "Sesión expirada", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "Barrera establecida por debajo del precio de referencia.", "-635746838": "Punto Low", "-548979988": "Precio fijo", - "-1013686843": "Current time", + "-1838512476": "Elija una hora de finalización", "-1977959027": "horas", - "-1084580778": "Ends at", + "-591705950": "Termina el", + "-1013686843": "Current time", + "-1727323033": "0 min", "-1068424721": "Duración máx.", "-718750246": "Su inversión aumentará un {{growth_rate}}% por tick siempre y cuando el precio spot actual se mantenga dentro de ±{{tick_size_barrier_percentage}} con respecto al precio spot anterior.", "-2131851017": "Tasa de crecimiento", @@ -3987,6 +3987,7 @@ "-1541404572": "TP ha sido desactivado.", "-1634963573": "SL ha sido desactivado.", "-337314714": "días", + "-1855256857": "h", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 3371ba098441..ace01d6c1cb1 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -1282,7 +1282,6 @@ "1218546232": "Qu'est-ce que Fiat onramp?", "1219844088": "faire %1", "1221250438": "Pour permettre les retraits, veuillez soumettre votre <0>document d'identité (POI) et <1>justificatif de domicile (POA) et remplir également l'<2>évaluation financière dans les paramètres de votre compte.", - "1221947449": "Entrez le code à 6 chiffres qui vous a été envoyé via {{phone_verification_type}} au {{users_phone_number}}. <0>", "1222096166": "Dépôt par virement bancaire, carte de crédit et portefeuille électronique", "1222521778": "Faire des dépôts et des retraits est difficile.", "1222544232": "Nous vous avons envoyé un email", @@ -1349,6 +1348,7 @@ "1274380814": "Votre gain est égal au <0>paiement par pip multiplié par la différence <1>en pips entre le prix final et le prix d'exercice. Vous ne réaliserez de profits que si votre gain est supérieur à votre mise initiale.", "1274819385": "3. Réclamations et litiges", "1276660852": "Envoyez votre document d'identité", + "1276973471": "Les produits proposés sur notre site Web sont des produits dérivés complexes qui comportent un risque important de perte potentielle. Les CFD sont des instruments complexes présentant un risque élevé de perdre de l'argent rapidement en raison de l'effet de levier. 70,84 % des comptes d'investisseurs particuliers perdent de l'argent lorsqu'ils négocient des CFD avec ce fournisseur. Vous devez vous demander si vous comprenez le fonctionnement de ces produits et si vous pouvez vous permettre de prendre le risque élevé de perdre votre argent.", "1279937041": "<0>Remarque : Certaines stratégies complexes peuvent rencontrer des problèmes dans le Bot Builder. Si vous avez des questions, contactez-nous via <1/>.", "1281045211": "Trie les éléments d'une liste donnée, par leur valeur numérique ou alphabétique, dans l'ordre croissant ou décroissant.", "1281290230": "Sélectionner", @@ -1419,7 +1419,6 @@ "1339613797": "Régulateurs/Résolution externe des litiges", "1340286510": "Le bot s'est arrêté, mais votre transaction est peut-être toujours en cours. Vous pouvez le vérifier sur la page Rapports.", "1341840346": "Afficher dans le journal", - "1341921544": "Comptes et fonds de trading", "1344696151": "Forex, actions, indices boursiers, matières premières, cryptomonnaies et indices synthétiques.", "1346038489": "Doit être inférieur à 70.", "1346204508": "Take profit", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Comptes Deriv MT5", "1499080621": "Essai d'effectuer une opération non valide.", + "1499733992": "est vérifié comme étant votre numéro de téléphone.", "1501691227": "Ajoutez votre compte Deriv MT5 <0>{{account_type_name}} auprès de Deriv (V) Ltd, réglementé par la Commission des services financiers du Vanuatu.", "1502039206": "Au-dessus de {{barrier}}", "1502325741": "Votre mot de passe ne peut pas être identique à votre adresse e-mail.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Heure de début", "1694517345": "Entrez un nouvel email", - "1694888104": "Les produits proposés sur notre site web sont des produits dérivés complexes qui comportent un risque important de perte potentielle. Les CFD sont des instruments complexes qui présentent un risque élevé de perte rapide en raison de l'effet de levier. 70,78% des comptes d'investisseurs particuliers perdent de l'argent en négociant des CFD avec ce fournisseur. Vous devez vous demander si vous comprenez le fonctionnement de ces produits et si vous pouvez vous permettre de prendre le risque élevé de perdre votre argent.", "1696190747": "Le trading comporte intrinsèquement des risques et les profits réels peuvent varier en raison de divers facteurs, notamment la volatilité du marché et d'autres variables imprévues. Par conséquent, faites preuve de prudence et effectuez des recherches approfondies avant de vous engager dans des activités de trading.", "1697529334": "Important : Votre compte <0>{{platform}} {{existing_account}}.", "1698624570": "2. Appuyez sur Ok pour confirmer.", @@ -2640,7 +2639,6 @@ "-1101737402": "Veuillez sélectionner*", "-975118358": "Votre compte sera ouvert auprès de {{legal_entity_name}}, réglementé par la Malta Financial Services Authority (MFSA), et sera soumis aux lois de Malte.", "-2073934245": "Les services de trading financier proposés sur ce site ne conviennent qu'aux clients qui acceptent la possibilité de perdre tout l'argent qu'ils investissent et qui comprennent et ont une expérience du risque lié à l'achat de contrats financiers. Les transactions sur contrats financiers comportent un degré de risque élevé. Si les contrats que vous avez achetés expirent comme sans valeur, vous perdrez tout votre investissement, qui comprend la prime du contrat.", - "-1035494182": "Vous reconnaissez que, sous réserve de l'appréciation de la Société, de la réglementation applicable et de la réalisation des contrôles internes, nous vous ouvrirons un compte et vous autoriserons à y déposer des fonds au cours de la procédure d'acceptation du client. Toutefois, tant que la vérification de votre compte n'est pas terminée, vous ne pourrez pas effectuer de transactions, de retraits ou de dépôts supplémentaires. Si vous ne fournissez pas les documents nécessaires dans un délai de 30 jours, nous vous rembourserons le montant déposé par la même méthode de paiement que celle que vous avez utilisée pour effectuer le dépôt.", "-1125193491": "Ajouter un compte", "-2068229627": "Je ne suis pas un PEP et je n'ai pas été un PEP au cours des 12 derniers mois.", "-1209644365": "Je confirme par la présente que ma demande d'ouverture de compte auprès de Deriv Investments (Europe) Ltd est faite de ma propre initiative.", @@ -2757,9 +2755,9 @@ "-222105210": "Renvoyer le code", "-1601377103": "Étape 3 sur 3 : Vérifiez votre numéro", "-121443071": "Étape 1 sur 3 : Vérification par email nécessaire", + "-1419026486": "Entrez le code à 6 chiffres qui vous a été envoyé via {{phone_verification_type}} à <1>{{users_phone_number}}. <0>", "-652539141": "Code OTP", "-1124039045": "Code de vérification", - "-1487715516": "{{ phone }} est vérifié comme votre numéro de téléphone.", "-1184626439": "Vous n'avez pas reçu le code ?{{resendCode}}", "-165489997": "Session expirée", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "Barrière fixée en dessous du prix de référence.", "-635746838": "En dessous du point", "-548979988": "Prix fixe", - "-1013686843": "Current time", + "-1838512476": "Choisissez une heure de fin", "-1977959027": "heures", - "-1084580778": "Ends at", + "-591705950": "Se termine le", + "-1013686843": "Current time", + "-1727323033": "0 min", "-1068424721": "Durée max", "-718750246": "Votre mise augmentera de {{growth_rate}}% par tick tant que le cours au comptant actuel reste inférieur de ±{{tick_size_barrier_percentage}} par rapport au cours au comptant précédent.", "-2131851017": "Taux de croissance", @@ -3987,6 +3987,7 @@ "-1541404572": "TP a été désactivé.", "-1634963573": "SL a été désactivé.", "-337314714": "jours", + "-1855256857": "h", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index 54afb280e7b5..d388fcb6a04a 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -1282,7 +1282,6 @@ "1218546232": "Cos'è Fiat onramp?", "1219844088": "esegui %1", "1221250438": "Per agevolare i prelievi, invia una <0>prova a verifica dell'indirizzo (POI) e una <1>prova a verifica dell'identità (POA) e completa la <2>valutazione finanziaria sulle impostazioni del conto.", - "1221947449": "Inserisci il codice a 6 cifre inviato a te tramite {{phone_verification_type}} al numero {{users_phone_number}}.<0>", "1222096166": "Depositi tramite bonifico bancario, carta di credito e portafoglio elettronico", "1222521778": "Effettuare depositi e prelievi è difficile.", "1222544232": "Ti abbiamo inviato una e-mail", @@ -1349,6 +1348,7 @@ "1274380814": "Il tuo payout è pari al <0>payout per pip moltiplicato per la differenza, <1>in pip, tra il prezzo finale e il prezzo di esercizio. Guadagnerai un profitto solo se il payout è superiore all'importo investito inizialmente.", "1274819385": "3. Reclami e controversie", "1276660852": "Invia un documento a verifica dell'identità", + "1276973471": "I prodotti offerti sul nostro sito Web sono prodotti derivati complessi che comportano un rischio significativo di perdita potenziale. I CFD sono strumenti complessi con un elevato rischio di perdere denaro rapidamente a causa della leva finanziaria. Il 70,84% dei conti degli investitori al dettaglio perde denaro quando fa trading di CFD con questo fornitore. Dovresti valutare se comprendi come funzionano questi prodotti e se puoi permetterti di correre il rischio elevato di perdere i tuoi soldi.", "1279937041": "<0>Nota: Alcune strategie complesse potrebbero avere problemi nel Bot Builder. Se hai domande, contattaci tramite <1/>.", "1281045211": "Ordina gli elementi di un determinato elenco in ordine crescente o decrescente, a seconda del loro valore numerico o alfabetico.", "1281290230": "Seleziona", @@ -1419,7 +1419,6 @@ "1339613797": "Autorità regolatrice/Risoluzione esterna delle controversie", "1340286510": "Il bot si è fermato, ma il suo trade potrebbe essere ancora in corso. Può verificarlo nella pagina dei Rapporti.", "1341840346": "Vedi in Registro", - "1341921544": "Conti e fondi di trading", "1344696151": "Forex, azioni, indici azionari, materie prime, criptovalute e indici sintetici.", "1346038489": "Deve essere inferiore a 70.", "1346204508": "Take profit", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Conti Deriv MT5", "1499080621": "Operazione non valida.", + "1499733992": "è verificato come il tuo numero di telefono.", "1501691227": "Aggiungi il tuo conto Deriv MT5 <0>{{account_type_name}} sotto Deriv (V) Ltd, regolamentata dalla Vanuatu Financial Services Commission.", "1502039206": "Oltre {{barrier}}", "1502325741": "La password non può essere la stessa del tuo indirizzo e-mail.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Orario d'inizio", "1694517345": "Inserisci un nuovo indirizzo e-mail", - "1694888104": "I prodotti offerti sul nostro sito web sono prodotti derivati complessi che comportano un rischio significativo di perdita potenziale. I CFD sono strumenti complessi con un rischio elevato di perdere rapidamente denaro a causa della leva finanziaria. Il 70,78% dei conti degli investitori al dettaglio perde denaro durante il trading di CFD con questo fornitore. Dovrebbe valutare se comprende il funzionamento di questi prodotti e se può permettersi di correre il rischio elevato di perdere il suo denaro.", "1696190747": "Il trading comporta intrinsecamente dei rischi e i profitti effettivi possono fluttuare a causa di vari fattori, tra cui la volatilità del mercato e altre variabili impreviste. Per questo motivo, deve essere cauto e condurre una ricerca approfondita prima di impegnarsi in qualsiasi attività di trading.", "1697529334": "Importante: Il tuo account <0>{{platform}} {{existing_account}}.", "1698624570": "2. Premi Ok per confermare.", @@ -2640,7 +2639,6 @@ "-1101737402": "Seleziona*", "-975118358": "Il tuo conto sarà aperto con {{legal_entity_name}}, regolamentata dalla Malta Financial Services Authority (MFSA), e sarà sottoposto alla legge di Malta.", "-2073934245": "I servizi di trading finanziario offerti su questo sito sono disponibili esclusivamente per i clienti che accettano la possibilità di perdere tutto il denaro investito e comprendono a fondo il rischio legato all'acqusito di contratti finanziari. Le operazioni relative a tali contratti comportano un elevato livello di rischio; se il contratto acquistato termina con valore nullo, perdererai tutto il denaro investito, compresso il premio contrattuale.", - "-1035494182": "Riconosci che, a discrezione della Società, alle normative applicabili e all'adempimento dei controlli interni, apriremo un conto per te e ti consentiremo di depositare fondi durante la procedura di accettazione del cliente. Tuttavia, fino al completamento della verifica del tuo account, non potrai negoziare, prelevare o effettuare ulteriori depositi. Se non fornisci i documenti pertinenti entro 30 giorni, rimborseremo l'importo depositato tramite lo stesso metodo di pagamento utilizzato per il deposito.", "-1125193491": "Aggiungi conto", "-2068229627": "Non sono un soggetto PEP e non lo sono stato negli ultimi 12 mesi.", "-1209644365": "Con la presente confermo che la mia richiesta di apertura di un conto presso Deriv Investments (Europe) Ltd viene effettuata di mia iniziativa.", @@ -2757,9 +2755,9 @@ "-222105210": "Invia codice", "-1601377103": "Passo 3 di 3: Verifica il tuo numero", "-121443071": "Passo 1 di 3: Verifica email necessaria", + "-1419026486": "Inserisci il codice di 6 cifre inviato a te tramite {{phone_verification_type}} al <1>{{users_phone_number}}.<0>", "-652539141": "Codice OTP", "-1124039045": "Codice di verifica", - "-1487715516": "{{ phone }} è verificato come tuo numero di telefono.", "-1184626439": "Non hai ricevuto il codice?{{resendCode}}", "-165489997": "Sessione scaduta", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "Barriera fissata sotto il prezzo di mercato.", "-635746838": "Sotto il punto", "-548979988": "Prezzo fisso", - "-1013686843": "Current time", + "-1838512476": "Seleziona un orario di termine", "-1977959027": "ore", - "-1084580778": "Ends at", + "-591705950": "Finisce il", + "-1013686843": "Current time", + "-1727323033": "0 min", "-1068424721": "Durata massima", "-718750246": "La tua puntata aumenterà dello {{growth_rate}}% per tick purché il prezzo spot corrente rimanga entro ±{{tick_size_barrier_percentage}} dal prezzo spot precedente.", "-2131851017": "Tasso di crescita", @@ -3987,6 +3987,7 @@ "-1541404572": "TP è stato disattivato.", "-1634963573": "SL è stato disattivato.", "-337314714": "giorni", + "-1855256857": "h", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/km.json b/packages/translations/src/translations/km.json index d59a056af79a..2673da86d15f 100644 --- a/packages/translations/src/translations/km.json +++ b/packages/translations/src/translations/km.json @@ -1148,460 +1148,460 @@ "1088138125": "តម្លៃ Tick {{current_tick}} - ", "1089085289": "លេខទូរសព្ទដៃ", "1089436811": "ឯកសារណែនាំ", - "1089687322": "តើអ្នកចង់ឈប់ការប្រើប្រាស់បូតបច្ចុប្បន្នរបស់អ្នកទេ?", - "1090041864": "ប្លុក {{block_type}} ជា ប៉ារ៉ាម៉ែត្រដែលមានតំលៃ និងមិនអាចលុបទោល/លុបបាន។", + "1089687322": "បញ្ឈប់ bot បច្ចុប្បន្នរបស់អ្នកឬទេ?", + "1090041864": "ប្លុក {{block_type}} គឺចាំបាច់ត្រូវប្រើ ហើយមិនអាចលុប/បិទបានទេ។", "1090802140": "ព័​ត៍​មាន​បន្ថែម", "1091617520": "ប្រភេទឯកសារ", - "1095295626": "<0>• អ្នកអនុវត្តន៍ ដំណឹងការសម្តែងពាណិជ្ជកម្មសេវាកម្មទំនាក់ទំនង។", - "1096078516": "យើងនិយាយវាយតម្លៃឯកសាររបស់អ្នកហើយហ្គោចនឹងស្ថាបត្ររបស់វានៅក្នុងស្ថាបត្រនៃរងគ្រប់សារ។", - "1096175323": "អ្នកនឹងត្រូវការគណនីដែលស្របដោយ Deriv", - "1098147569": "ទិញប៉ុស្តិ៍មួយ ឬឧបករណ៍ពីក្រុមហ៊ុនមួយ។", - "1098622295": "\"i\" ចាប់ផ្តើមជាមួយតម្លៃ 1 ហើយវានឹងត្រូវបានបន្ថែមបីប្រទះ 2 ក្នុងការធ្វើការរួមទាំងរាល់ចុងក្រោយដល់តម្លៃ 12 ហើយរួចការធ្វើការនេះបានបញ្ឈប់។", - "1100133959": "អត្តសញ្ញាណជាតិ", - "1100870148": "សូមទស្សនាអំពីដំណឹងវិញ្ញាបនបត្រនិងរបៀបប្រើប្រាស់វា សូមចូលទៅកាន់ <0>មជ្ឈមណ្ឌលជំនួយ របស់យើង។", + "1095295626": "<0>•អាជ្ញាកណ្តាលសម្រាប់សេវាហិរញ្ញវត្ថុឬ Arbiter for Financial Services នឹងកំណត់ថាតើពាក្យបណ្តឹងអាចទទួលយកបាន និងស្របតាមច្បាប់ដែរឬទេ។", + "1096078516": "យើងនឹងពិនិត្យមើលឯកសាររបស់អ្នក និងជូនដំណឹងដល់អ្នកអំពីស្ថានភាពរបស់វាក្នុងរយៈពេល 3 ថ្ងៃ។", + "1096175323": "អ្នកនឹងត្រូវមានគណនី Deriv", + "1098147569": "ទិញទំនិញ ឬភាគហ៊ុនរបស់ក្រុមហ៊ុន។", + "1098622295": "\"i\" ចាប់ផ្តើមដោយតម្លៃ 1 ហើយវានឹងត្រូវបានកើនឡើងម្តង 2 នៅរាល់ការធ្វើម្តងទៀត។ រង្វិលជុំនឹងធ្វើម្តងទៀតរហូតដល់ \"i\" ឈានដល់តម្លៃ 12 ហើយបន្ទាប់មករង្វិលជុំត្រូវបានបញ្ចប់។", + "1100133959": "អត្តសញ្ញាណប័ណ្ណ", + "1100870148": "ដើម្បីស្វែងយល់បន្ថែមអំពីការកំណត់គណនី និងរបៀបប្រើប្រាស់ពួកវា សូមចូលទៅកាន់ <0>មជ្ឈមណ្ឌលជំនួយ។", "1101712085": "តម្លៃទិញ", - "1102420931": "បន្ថែមដាក់ស្រលាញ់របស់អ្នកនៅក្នុងការបញ្ចូលមើលឆ្នាំនិងថ្ងៃខ្ចី។", - "1102995654": "គណនា បញ្ជីមនុស្សត្រឹមត្រូវបែប Exponential Moving Average (EMA) ពីបញ្ជីតម្លៃដែលមានចោទិចនិងសមត្ថភាព។", - "1103309514": "គោលគំនិត", - "1103452171": "លក្ខខណ្ឌនៃកំណត់ចុះឈ្មោះអ្នកប្រើគណនី និងអាជីវកម្ម ដើម្បីបង្ហាញថាតើវាចូលដំណើរការបានប្រសើរដោយជោគជ័យឬនៅទីនេះ។", - "1104912023": "ការធ្វើការពិពណ៌នាកំណែរបស់អ្នករង់ចាំលេខកូដផ្ទៀងផ្ទាត់នេះ", + "1102420931": "បន្ទាប់មក សូមបង្ហោះផ្នែកខាងមុខ និងខាងក្រោយនៃប័ណ្ណបើកបររបស់អ្នក។", + "1102995654": "គណនា Exponential Moving Average (EMA) ពីបញ្ជីតម្លៃដែលមានរយៈពេល", + "1103309514": "គោលដៅ", + "1103452171": "អង្គចងចាំគេហទំព័រ ឬ cookies ជួយយើងផ្តល់ជូនអ្នកនូវបទពិសោធន៍កាន់តែប្រសើរឡើងនៅលើគេហទំព័ររបស់យើង និងមាតិកាផ្ទាល់ខ្លួន។", + "1104912023": "រង់ចាំការផ្ទៀងផ្ទាត់", "1107474660": "បញ្ជូនភស្តុតាងនៃអាសយដ្ឋាន", - "1107555942": "ទៅកាន់", - "1109182113": "ចំណាំ៖ ការលុបចោលកិច្ចព្រមព្រៀងគឺអាចប្រើបានសម្រាប់តែសន្ទស្សន៍ Volatility នៅលើ Multipliers ប៉ុណ្ណោះ។", + "1107555942": "ដល់", + "1109182113": "ចំណាំ៖ ការលុបចោលកិច្ចព្រមព្រៀងគឺអាចប្រើបានសម្រាប់តែសន្ទស្សន៍ Volatility នៅលើ Multiplier ប៉ុណ្ណោះ។", "1109217274": "ជោគជ័យ!", - "1110102997": "បញ្ជាក់", + "1110102997": "ប្រតិបត្តិការ", "1111743543": "បញ្ឈប់ការបាត់បង់ (Multiplier)", - "1112582372": "រយៈពេលនៃគោលការណ៍ផាតលើបង្រៀន", - "1113119682": "ប្រតិបត្តិការនេះផ្ដល់អ្នកតម្លៃថា​គ្មានចូលក្នុងបញ្ជីថ្មីនៃក្លឹបកង់គោនៃខ្លីមួយ។", - "1113227831": "មែនហើយ​អ្នក​អាច​ធ្វើ​បាន។ ទោះយ៉ាងណាក៏ដោយ មានដែនកំណត់មួយចំនួនលើគណនីរបស់អ្នក ដូចជាចំនួនមុខតំណែងពាណិជ្ជកម្មដែលបើកបានច្រើនបំផុត និងការទូទាត់ប្រាក់សំណងសរុបអតិបរមានៅលើមុខតំណែងពាណិជ្ជកម្មដែលបើកស្រាប់។ ដូច្នេះគ្រាន់តែរក្សាដែនកំណត់ទាំងនេះនៅក្នុងចិត្តនៅពេលបើកមុខតំណែងពាណិជ្ជកម្មច្រើន។ អ្នកអាចស្វែងរកព័ត៌មានបន្ថែមអំពីដែនកំណត់ទាំងនេះនៅ ការកំណត់ > ដែនកំណត់គណនី ។", - "1113292761": "តម្លៃខ្លះជាង 8MB", - "1114679006": "អ្នកបានបង្កើតបួចរបស់អ្នកដោយវិធីសាស្រ្តសាមញ្ញាណាមួយ។", - "1117281935": "លក្ខខ័ណ្ឌលក់ទំនិញ (សម្រាប់គ្មានបន្ថែម)", - "1117863275": "សុវត្ថិភាព និងសុពលភាព", - "1118294625": "អ្នកបានជ្រើសរើសដកខ្លួនអ្នកពីការជួញដូរនៅលើគេហទំព័ររបស់យើងរហូតដល់ {{exclusion_end}}។ ប្រសិនបើអ្នកមិនអាចធ្វើការជួញដូរ ឬដាក់ប្រាក់បានទេ បន្ទាប់ពីរយៈពេលដកខ្លួនចេញ សូមទាក់ទងមកយើងខ្ញុំតាមរយៈការជជែកផ្ទាល់។", + "1112582372": "ចន្លោះរយៈពេល", + "1113119682": "ប្លុកនេះផ្តល់ឱ្យអ្នកនូវតម្លៃគំនូខទៀនដែលបានជ្រើសរើសពីបញ្ជីនៃគំនូសទៀន។", + "1113227831": "បាទ អ្នកអាចធ្វើបាន។ តែទោះយ៉ាងណាក៏ដោយ មានដែនកំណត់មួយចំនួនលើគណនីរបស់អ្នក ដូចជាចំនួនអតិបរមានៃមុខតំណែងជួញដូរដែលបើក និងការទូទាត់ប្រាក់សរុបអតិបរមានៅលើមុខតំណែងជួញដូរដែលបើក។ ដូច្នេះគ្រាន់តែរក្សាដែនកំណត់ទាំងនេះនៅក្នុងចិត្តនៅពេលបើកមុខតំណែងជួញដូរច្រើន។ អ្នកអាចស្វែងរកព័ត៌មានបន្ថែមអំពីដែនកំណត់ទាំងនេះនៅ ការកំណត់ > ដែនកំណត់គណនី។", + "1113292761": "តិចជាង 8MB", + "1114679006": "អ្នកបានបង្កើត bot របស់អ្នកដោយវិធីសាស្រ្តសាមញ្ញាណាមួយដោយជោគជ័យរួចហើយ។", + "1117281935": "លក្ខខណ្ឌលក់ (ជាជម្រើស)", + "1117863275": "សន្តិសុខ និង សុវត្ថិភាព", + "1118294625": "អ្នកបានជ្រើសរើសដកខ្លួនអ្នកចេញពីការជួញដូរនៅលើគេហទំព័ររបស់យើងរហូតដល់ {{exclusion_end}} ។ ប្រសិនបើអ្នកមិនអាចធ្វើការជួញដូរ ឬដាក់ប្រាក់បានទេ បន្ទាប់ពីរយៈពេលដកខ្លួនចេញ សូមទាក់ទងមកយើងខ្ញុំតាមរយៈការជជែកផ្ទាល់។", "1119887091": "ការផ្ទៀងផ្ទាត់", - "1119986999": "ភស្តុតាងនៃអាសយដ្ឋានរបស់អ្នកត្រូវបានដាក់ជូនដោយជោគជ័យ", - "1120985361": "អានប្រចាំនឹងលេខកូដ", - "1121050010": "ថ្លៃប្រតិបត្តិការ: {{amount}} {{currency}}", - "1122910860": "សូមបំពេញ <0>ការវិភាគហិរញ្ញវត្ថុរបស់អ្នក។", - "1123927492": "អ្នកមិនបានជ្រើសរើសរយៈពេលគណនីរបស់អ្នក។", - "1124382808": "សូមបញ្ចូលពេលផុតកំណត់តាមទ្រង់ទ្រាយ \"HH:MM\"", - "1125090693": "ត្រូវតែជាលេខ", + "1119986999": "ភស្តុតាងនៃអាសយដ្ឋានរបស់អ្នកត្រូវបានដាក់បញ្ជូនដោយជោគជ័យ", + "1120985361": "បាន​ធ្វើការ​អាប់ដេតលក្ខខណ្ឌហើយ", + "1121050010": "ថ្លៃប្រតិបត្តិការ៖ {{amount}} {{currency}}", + "1122910860": "សូមបំពេញ <0>ការវាយតម្លៃហិរញ្ញវត្ថុ របស់អ្នក។", + "1123927492": "អ្នកមិនបានជ្រើសរើសរូបិយប័ណ្ណគណនីរបស់អ្នកទេ។", + "1124382808": "សូមបញ្ចូលពេលវេលាផុតកំណត់ក្នុងទម្រង់ \"HH:MM\"។", + "1125090693": "ត្រូវតែជាតួលេខ", "1126075317": "បន្ថែមគណនី Deriv MT5 <0>{{account_type_name}} STP របស់អ្នកនៅក្រោម Deriv (FX) Ltd ដែលគ្រប់គ្រងដោយ Labuan Financial Services Authority (លេខអាជ្ញាប័ណ្ណ MB/18/0024)។", - "1126934455": "ប្រវែងឈ្មោះនៃសញ្ញាធ must be between 2 and 32 តួអក្សរ។", - "1127224297": "សូមអធ្យាស្រ័យការព interrupters បញ្ចារបរីន់នេះ", + "1126934455": "ប្រវែងនៃឈ្មោះនិមិត្តសញ្ញាត្រូវតែមានចន្លោះពី 2 ទៅ 32 តួអក្សរ។", + "1127224297": "សូមអភ័យទោសចំពោះការរំខាន", "1127884488": "កម្មវិធី MacOS cTrader", - "1128139358": "តើអ្នកបានធ្វើការជួញដូរ CFD ប៉ុន្មានដងក្នុងរយៈពេល 12 ខែចុងក្រោយ?", + "1128139358": "តើអ្នកបានធ្វើការជួញដូរ CFD ប៉ុន្មានដងក្នុងរយៈពេល 12 ខែកន្លងមកនេះ?", "1128321947": "លុបចេញ​ទាំងអស់", - "1128404172": "រុញម្ដងទៀត។", - "1129124569": "ប្រសិនបើអ្នកជ្រើស ‘<>Under’, អ្នកនឹងឈ្នះប្រាក់បញ្ជាក់ប្រាក់សំណងពេលលេខចុងក្រោយនៃតម្លៃនោះតិចជាងការព្យាករណ៍។", + "1128404172": "លុបចោល", + "1129124569": "ប្រសិនបើអ្នកជ្រើសរើស \"Under\" អ្នកនឹងឈ្នះប្រាក់សំ​ណង ប្រសិនបើខ្ទង់ចុងក្រោយនៃតម្លៃ Tick ចុងក្រោយគឺតិចជាងការព្យាករណ៍របស់អ្នក។", "1129842439": "សូមបញ្ចូលចំនួន Take Profit។", - "1133651559": "ការជជែកផ្ទាល់។", - "1134879544": "ឧបករណ៍ឧបករណ៍ពិបាកជាមួយសំឡេង។", + "1133651559": "ការជជែកផ្ទាល់", + "1134879544": "ឧទាហរណ៍នៃឯកសារដែលមានពន្លឺចាំង", "1134883120": "ប្រើអ៊ីមែល និងពាក្យសម្ងាត់គណនី Deriv របស់អ្នកដើម្បីចូល cTrader ។", - "1138037263": "កំណត់រយៈពេលវិនិយោគ និងកម្រិតតម្លៃរបស់អ្នកដើម្បីឲ្យសមស្របសម្រាប់គោលបំណងពាណិជ្ជកម្មរបស់អ្នក។", - "1138126442": "រូបិយប័ណ្ណ: ស្តង់ដារ", - "1140585027": "បញ្ចូលមិនត្រឹមត្រូវ {{ input_value }}.", + "1138037263": "កែតម្រូវរយៈពេលវិនិយោគ និងកម្រិតតម្លៃរបស់អ្នកឱ្យត្រូវនឹងគោលដៅជួញដូររបស់អ្នក។", + "1138126442": "Forex: standard", + "1140585027": "បញ្ចូលព័ត៌មានមិនត្រឹមត្រូវ {{ input_value }} ។", "1142023511": "ជ្រើសរើសប្រភេទឯកសារ៖", "1143730031": "ទិសដៅគឺ {{ direction_type }}", - "1144028300": "ខ្សែរក្សាតភ្ជាប់អាចកំណត់។", - "1144740912": "បោះបង់ការផ្ទៀងផ្ទាត់លេខទូរស័ព្ទ?", - "1145927365": "បម្លែងកាលបរិច្ឆេទ និងម៉ោងទៅជាចំនួនវិនាទីចាប់តាំងពី Unix Epoch (1970-01-01 00:00:00)។", - "1146064568": "ទៅ​ទំព័រ​លំហូរ។", - "1147269948": "ឧបករណ៍ត្រូវពហុសរ្តីឬសេវាកម្មមិនអាចស្ទាក់បាន។", - "1150637063": "*សន្ទស្សន៍ Volatility 150 និងសន្ទស្សន៍ Volatility 250", - "1151964318": "ទាំងពីរក្រៅចំហរ។", - "1152294962": "សូមបញ្ចូលមើលផ្នែកមុខនៃវិញ្ញាញ្រតថាភពរបស់អ្នក។", + "1144028300": "Relative Strength Index Array (RSIA)", + "1144740912": "លុបចោលការផ្ទៀងផ្ទាត់លេខទូរស័ព្ទ?", + "1145927365": "ដំណើរការប្រើប្លុកនៅខាងក្នុងបន្ទាប់ពីចំនួនវិនាទីដែលបានកំណត់", + "1146064568": "ចូលទៅកាន់ទំព័រដាក់ប្រាក់", + "1147269948": "បន្ទាត់កម្រិតតម្លៃគោលដៅមិនអាចជាសូន្យបានទេ។", + "1150637063": "* សន្ទស្សន៍ Volatility 150 និងសន្ទស្សន៍ Volatility 250", + "1151964318": "ទាំងសងខាង", + "1152294962": "បង្ហោះផ្នែកខាងមុខនៃប័ណ្ណបើកបររបស់អ្នក។", "1154021400": "បញ្ជី", "1154239195": "ចំណងជើងនិងឈ្មោះ", "1155011317": "ប្លុកនេះបំលែងកាលបរិច្ឆេទ និងម៉ោងទៅជាចំនួនវិនាទីចាប់តាំងពី Unix Epoch (1970-01-01 00:00:00)។", - "1155143434": "ដោយចុច <0>បន្ទាប់ អ្នកយល់ព្រមផ្លាស់ប្តូរគណនី {{platform}} {{type}} {{from_account}} របស់អ្នកទៅ <2/>Deriv {{account_to_migrate}} Ltd ’s <1>terms and conditions។", - "1155626418": "ក្រោម", - "1158678321": "<0>b. ប្រធានក្រុមការងារដោះស្រាយវិវាទ (DRC) នឹងទាក់ទងទាំងអ្នក និងយើងក្នុងរយៈពេល 5 ថ្ងៃធ្វើការ ដើម្បីទទួលបានព័ត៌មានចាំបាច់ និងមើលថាមានឱកាសដោះស្រាយពាក្យបណ្តឹងនៅក្នុងដំណាក់កាលស៊ើបអង្កេតឬអត់។", - "1160761178": "មិនមានការបង់ប្រាក់ប្រសិនបើចំណុចចាកចេញនៅខាងក្រោមឬស្មើនឹងរបាំងទាប។", + "1155143434": "ដោយចុចលើ <0>បន្ទាប់ មនន័យថាអ្នកយល់ព្រមផ្លាស់ទីគណនី {{platform}} {{type}} {{from_account}} របស់អ្នកនៅក្រោម <1> លក្ខខណ្ឌរបស់<2/>Deriv{{account_to_migrate}} Ltd", + "1155626418": "ខាងក្រោម", + "1158678321": "<0>b.ប្រធានគណៈកម្មាធិការដោះស្រាយវិវាទ (DRC) នឹងទាក់ទងទាំងអ្នក និងពួកយើងក្នុងរយៈពេល 5 ថ្ងៃនៃថ្ងៃធ្វើការ ដើម្បីទទួលបានព័ត៌មានចាំបាច់ទាំងអស់ និងមើលថាតើមានឱកាសដោះស្រាយពាក្យបណ្តឹងក្នុងអំឡុងពេលដំណាក់កាលស៊ើបអង្កេតដែរឬទេ។", + "1160761178": "គ្មានប្រាក់សំណង ទេ ប្រសិនបើចំណុចចេញនៅខាងក្រោម ឬស្មើនឹងបន្ទាត់តម្លៃគោលដៅខាងក្រោម។", "1161924555": "សូមជ្រើសរើសជម្រើសមួយ", - "1163771266": "ប្រអប់ទីបីគឺ<0>ជាជម្រើស។ អ្នកអាចប្រើប្រាស់ប្រអប់នេះបានប្រសិនបើអ្នកចង់លក់កិច្ចការរបស់អ្នកមុនពេលផុតចេញ។ បន្ទាប់ពីនេះមិនចាំបាច់ផ្លាស់ប្តូរប្រអប់នោះទេ។", + "1163771266": "ប្លុកទីបីគឺ <0>ជាជម្រើស។ អ្នកអាចប្រើប្លុកនេះប្រសិនបើអ្នកចង់លក់កិច្ចសន្យារបស់អ្នកមុនពេលវាផុតកំណត់។ សម្រាប់ពេលនេះ ទុកប្លុកឲ្យនៅដូចដើម។ ", "1163836811": "អចលនទ្រព្យ", - "1164773983": "Take Profit និង/ឬ Stop Loss មិនមានទេ ខណៈពេលដែល Deal Cancellation សកម្ម។", + "1164773983": "Take Profit និង/ឬ Stop Loss មិនមានទេ ខណៈពេលដែលការលុបចោលកិច្ចព្រមព្រៀងនៅកំពុងប្រើប្រាស់។", "1166023941": "ពាក្យសម្ងាត់ថ្មី", - "1166128807": "ជ្រើសរើសគណនីរបស់អ្នក ឬបន្ថែមគណនីរូបិយប័ណ្ណថ្មី", - "1166377304": "បន្ថែមតម្លៃ / តម្លៃការកើនឡើង។", + "1166128807": "ជ្រើសរើសគណនីមួយក្នុងចំណោមគណនីរបស់អ្នក ឬបន្ថែមគណនីរូបិយប័ណ្ណគ្រីបតូថ្មី។", + "1166377304": "តម្លៃកើនឡើង", "1166916934": "គណនីសាកល្បង Standard SVG", - "1168029733": "ចំណេញការបង់ប្រាក់ទៅតាមចំណុចចាកចេញស្មើនឹងចំណុចចូល។", + "1168029733": "ឈ្នះប្រាក់សំណងប្រសិនបើកចំណុចចេញក៏ស្មើនឹងចំណុចចូលផងដែរ។", "1169201692": "បង្កើតលេខសំងាត់ {{platform}}", - "1170228717": "ស្នាក់នៅលើ {{platform_name_trader}}", + "1170228717": "ស្ថិតនៅលើ {{platform_name_trader}}", "1171765024": "ជំហានទី 3", - "1171961126": "ប៉ារ៉ាម៉ែត្រពាណិជ្ជកម្ម។", - "1172230903": "• កម្រិត Stop Loss: ប្រើអថេរនេះដើម្បីរក្សាតម្លៃកម្រិតបាត់បង់របស់អ្នក។ អ្នកអាចផ្ដល់ចំនួនណាមួយដែលអ្នកចង់បាន។ ប៉ុនរបស់អ្នកនឹងបញ្ឈប់នៅពេលដែលការបាត់បង់របស់អ្នកឈានដល់ ឬលើសចំនួននេះ។", + "1171961126": "ប៉ារ៉ាម៉ែត្រការជួញដូរ", + "1172230903": "• កម្រិត Stop loss៖ ប្រើអថេរនេះដើម្បីរក្សាទុកដែនកំណត់ការបាត់បង់របស់អ្នក។ អ្នកអាចកំណត់ចំនួនទឹកប្រាក់ដែលអ្នកចង់បាន។ bot របស់អ្នកនឹងបញ្ឈប់នៅពេលដែលការខាតបង់របស់អ្នកដល់ឬលើសពីចំនួននេះ។", "1172524677": "គណនីសាកល្បង CFD", - "1173957529": "ចូលទៅកាន់ 'ការកំណត់គណនី' នៅលើ Deriv។", - "1174186184": "ធ្វើឲ្យប្រាកដថាព័ត៌មានរបស់អ្នកត្រឹមត្រូវ។", - "1174542625": "- ស្វែងរកលក្ខណៈ chat ID ក្នុងការឆ្លើយតប ហើយចម្លងតម្លៃរបស់លក្ខណៈ id", - "1174689133": "3. កំណត់កំណត់ប្រាក់ចំណូលរបស់អ្នក ហើយចុច ចាប់ផ្តើម.", - "1174748431": "ប៉ុស្តិ៍ទូទាត់", - "1175183064": "វ៉ានូទូ", - "1177396776": "ប្រសិនបើអ្នកជ្រើស \"អាស៊ីធ្លាក់\", អ្នកនឹងឈ្នះការទូទាត់ប្រសិនបើ tick ចុងក្រោយត្រឹមតែទាបជាងមធ្យមនៃ ticks។", - "1177723589": "មិនមានប្រតិបត្តិការដើម្បីបង្ហាញទេ", - "1178582280": "ចំនួន​កុងត្រា​ដែល​អ្នក​បាន​បាត់បង់ ចាប់តាំងពី​អ្នក​សម្អាត​ស្ថានភាព​របស់អ្នក​ចុងក្រោយ។", - "1178800778": "ថតរូបខាងក្រោយនៃអាជ្ញាប័ណ្ណបើកបររបស់អ្នក", - "1178942276": "សូមព្យាយាមម្តងទៀតក្នុងមួយនាទី។", - "1179704370": "សូមបញ្ចូលចំនួនយកប្រាក់ចំណេញដែលខ្ពស់ជាងចំណេញសក្តានុពលបច្ចុប្បន្ន។", - "1181396316": "ប្លុកនេះផ្តល់ចំនួនចៃដន្យពីក្នុងជួរដែលបានកំណត់", - "1181770592": "ប្រាក់ចំណូល/ខាតពីការលក់", - "1183007646": "- ប្រភេទកុងត្រា: ឈ្មោះប្រភេទកុងត្រាដូចជា Rise, Fall, Touch, No Touch, ល។", - "1183448523": "<0>យើងកំពុងតំឡើងកាបូបឬ Wallet របស់អ្នក.", - "1184968647": "បិទកិច្ចការរបស់អ្នកដោយឥតគិតថ្លៃឬរក្សាកែតាមការាល់កិច្ចការរបស់អ្នក។ បើអ្នកសំរាប់ការនេះអ្នកអាចពិនិត្យមើលនិងបិទវាបានក្នុងពេលក្រោយទៅហើយ ", + "1173957529": "ចូលទៅកាន់ 'ការកំណត់គណនី' នៅលើ Deriv ។", + "1174186184": "ត្រូវប្រាកដថាព័ត៌មានរបស់អ្នកត្រឹមត្រូវ។", + "1174542625": "- ស្វែងរកទ្រព្យសម្បត្តិលេខសម្គាល់ការជជែកក្នុងការឆ្លើយតប ហើយចម្លងតម្លៃនៃទ្រព្យសម្បត្តិលេខសម្គាល់នោះ", + "1174689133": "3. កំណត់ប៉ារ៉ាម៉ែត្រការជួញដូររបស់អ្នក ហើយចុច Run។", + "1174748431": "មធ្យោបាយទូទាត់ប្រាក់", + "1175183064": "Vanuatu", + "1177396776": "ប្រសិនបើអ្នកជ្រើសរើស \"Asian Fall\" អ្នកនឹងឈ្នះបានប្រាក់សំណងនៅពេលដែលចំណុច Tick ចុងក្រោយមានតម្លៃទាបជាងចំនួនមធ្យមនៃចំណុច Tick ទាំងអស់ក្នុងរយៈពេលនៃកិច្ចសន្យា។", + "1177723589": "មិនមានប្រតិបត្តិការដែលត្រូវបង្ហាញទេ", + "1178582280": "ចំនួនកិច្ចសន្យាដែលអ្នកបានបាត់បង់ ចាប់តាំងពីអ្នកបានសម្អាតស្ថិតិរបស់អ្នកចុងក្រោយរបស់អ្នក។", + "1178800778": "ថតរូបនៅខាងក្រោយប័ណ្ណបើកបររបស់អ្នក", + "1178942276": "សូមព្យាយាមម្តងទៀតក្នុងពេលបន្តិចទៀត។", + "1179704370": "សូមបញ្ចូលចំនួនទឹកប្រាក់សម្រាប់ Take Profit ឲ្យខ្ពស់ជាងប្រាក់ចំណេញដែលមានសក្តានុពលបច្ចុប្បន្ន។", + "1181396316": "ប្លុកនេះផ្តល់ឱ្យអ្នកនូវចំនួនចៃដន្យពីក្នុងចន្លោះដែលបានកំណត់", + "1181770592": "ចំណេញ/ខាត ពីការលក់", + "1183007646": "- ប្រភេទកិច្ចសន្យា៖ ឈ្មោះប្រភេទកិច្ចសន្យា ដូចជា Rise, Fall, Touch, No Touch ជាដើម។", + "1183448523": "<0>យើងកំពុងកំណត់ Wallet របស់អ្នក", + "1184968647": "បិទកិច្ចសន្យារបស់អ្នកឥឡូវនេះ ឬបន្តដំណើរការ។ ប្រសិនបើអ្នកសម្រេចចិត្តរក្សាវាឱ្យដំណើរការ អ្នកអាចពិនិត្យ និងបិទវានៅពេលក្រោយ ", "1186687280": "សំណួរ {{ current }} នៃ {{ total }}", - "1188316409": "ដើម្បី​ទទួលបាន​ប្រាក់​របស់​អ្នក សូម​ទាក់ទង​ទៅ​កាន់​ភ្នាក់ងារ​ទូទាត់​តាម​ពត៌មាន​ខាងក្រោម", - "1188980408": "៥ នាទី", - "1189249001": "4.1. អ្វីជាការទាមទារប្រាក់?", - "1189368976": "សូម​បំពេញ​ពត៌មាន​ផ្ទាល់ខ្លួន​របស់អ្នក​មុនពេល​អ្នក​ផ្ទៀងផ្ទាត់​ភាពអត្តសញ្ញាណរបស់អ្នក។", - "1190226567": "ស្តង់ដារ - Vanuatu", - "1190440927": "វិក័យប័ត្រទូរស័ព្ទដៃ", - "1191429031": "សូមចុចលើតំណនៅក្នុងអ៊ីម៉ែលដើម្បីផ្លាស់ប្តូរពាក្យសម្ងាត់ <0>{{platform_name_dxtrade}} របស់អ្នក។", - "1195393249": "ជូនដំណឹង {{ notification_type }} ជាមួយសម្លេង: {{ notification_sound }} {{ input_message }}", - "1196006480": "កម្រិតចំណេញ", + "1188316409": "ដើម្បីទទួលបានប្រាក់របស់អ្នក សូមទាក់ទងភ្នាក់ងារទូទាត់ប្រាក់ជាមួយនឹងព័ត៌មានលម្អិតខាងក្រោម", + "1188980408": "5 នាទី", + "1189249001": "4.1. តើ​អ្វី​ត្រូវ​បាន​គេ​ចាត់​ទុក​ថា​ជា​បណ្ដឹងបាន?", + "1189368976": "សូមបំពេញព័ត៌មានលម្អិតផ្ទាល់ខ្លួនរបស់អ្នក មុនពេលអ្នកផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នក។", + "1190226567": "Standard - Vanuatu", + "1190440927": "វិក្កយបត្រទូរស័ព្ទតាមខ្សែ", + "1191429031": "សូមចុចលើតំណក្នុងអ៊ីមែល ដើម្បីផ្លាស់ប្តូរពាក្យសម្ងាត់ <0>{{platform_name_dxtrade}} របស់អ្នក។", + "1195393249": "ជូនដំណឹង {{ notification_type }} ដោយសំឡេង៖ {{ notification_sound }} {{ input_message }}", + "1196006480": "កម្រិតប្រាក់ចំណេញ", "1197649109": "គ្មានលទ្ធផលសម្រាប់ {{searchTerm}}", - "1198368641": "សន្ទស្សន៍កម្លាំងស.relative (RSI)", - "1199281499": "បញ្ជីលេខចុងក្រោយ", - "1201533528": "កិច្ចសន្យាជោគជ័យ", + "1198368641": "Relative Strength Index (RSI)", + "1199281499": "បញ្ជីលេខខ្ទង់ចុងក្រោយ", + "1201533528": "កិច្ចសន្យាបានឈ្នះ", "1201773643": "លេខ", - "1203297580": "ប្លុកនេះផ្ញើសារទៅទំព័រ Telegram", - "1203380736": "យុទ្ធសាស្ត្រ D'Alembert មានហានិភ័យតិចជាង Martingale ប៉ុន្តែអ្នកនៅតែអាចកំណត់បានថាមូលនិធិរបស់អ្នកនឹងត្រូវបានប្រើយូរប៉ុណ្ណាទៅជាមួយយុទ្ធសាស្ត្រនេះមុនពេលពាណិជ្ជកម្ម។ គ្រាន់តែប្រើរូបមន្តនេះ។", - "1204202371": "មិនមានមុខតំណែងបើកចំហទេ។", - "1204223111": "ឧទាហរណ៍នេះ តម្លៃបើកពីបញ្ជីជំរិះត្រូវបានផ្ដល់ឱ្យអថេរដែលមានឈ្មោះ \"candle_list\"។", - "1204459171": "គណនី <0>{{platform}} {{type_1}} <1/> និង <0>{{type_2}} {{from_account}} បច្ចុប្បន្នរបស់អ្នកនឹងនៅតែអាចប្រើបាន។", - "1206227936": "របៀបជម្រាបសព្វប័រ្មធានការប្រើប្រាស់កាតរបស់លោកនេះទឺកនារីទឺកមិនរូបតោះមានថ្ងៃ ៨ ចំនួនគឺមាន។ សូមចុច 'ចេញ' ដើម្បីលុបប្រើប្រាស់របស់អ្នក។", - "1206821331": "កម្លាំងប្រដាប់អាវុធ", + "1203297580": "ប្លុកនេះផ្ញើសារទៅកាន់ប៉ុស្តិ៍កម្មវិធី Telegram ។", + "1203380736": "យុទ្ធសាស្រ្ត D'Alembert គឺមានហានិភ័យតិចជាង Martingale ប៉ុន្តែអ្នកនៅតែអាចកំណត់រយៈពេលដែលប្រាក់របស់អ្នកនឹងមានរយៈពេលយូរជាមួយនឹងយុទ្ធសាស្រ្តនេះមុនពេលធ្វើការជួញដូរ។ ដោយគ្រាន់តែប្រើរូបមន្តនេះ។", + "1204202371": "មិនមានមុខតំណែងជួញដូរដែលបើកទេ", + "1204223111": "ក្នុង​ឧទាហរណ៍​នេះ តម្លៃ​បើក​ពី​បញ្ជី​នៃគំនូស​ទៀន​ត្រូវ​បាន​កំណត់​ទៅ​អថេរ​ដែល​ហៅ​ថា \"candle_list\"។", + "1204459171": "គណនី <0>{{platform}} {{type_1}} <1/} និង <0>{{type_2}} {{from_account}} របស់អ្នកនឹងនៅតែអាចចូលប្រើបាន។", + "1206227936": "តើធ្វើដូចម្តេចដើម្បីបិទបាំងកាតរបស់អ្នក?", + "1206821331": "កងកម្លាំងប្រដាប់អាវុធ", "1208729868": "ចំណុច Tick", - "1208903663": "សញ្ញា​សម្ងាត់​មិន​ត្រឹមត្រូវ", - "1214893428": "ការបង្កើតគណនីមិនអាចប្រើបានសម្រាប់ទូរស័ព្ទពេលនេះទេ។ សូមចូលដោយប្រើកុំព្យូទ័ររបស់អ្នកដើម្បីបង្កើតគណនីថ្មី។", - "1216408337": "អ្នកនៅក្នុងខ្លួនឯង", - "1217159705": "លេខគណនីធនាគារប្រស់ប្រាស់", - "1217481729": "Tether ជា token ERC20 (eUSDT) គឺជាកំណែមួយនៃ Tether ដែលត្រូវបានណែនាំនៅលើ Ethereum។", + "1208903663": "សញ្ញាសម្ងាត់មិនត្រឹមត្រូវ", + "1214893428": "​ការ​បង្កើត​គណនី​មិន​អាចធ្វើទៅបានទេលើ​ទូរសព្ទ​ដៃនៅពេលនេះ។ សូមចូលប្រព័ន្ធដោយប្រើកុំព្យូទ័ររបស់អ្នកដើម្បីបង្កើតគណនីថ្មី។", + "1216408337": "មុខរបរផ្ទាល់ខ្លួន", + "1217159705": "លេខគណនីធនាគារ", + "1217481729": "Tether ជានិមិត្តសញ្ញា ERC20 (eUSDT) គឺជាកំណែមួយនៃ Tether ដែលត្រូវបានបង្កើតនៅលើ Ethereum ។", "1218546232": "អ្វីទៅជា Fiat onramp?", "1219844088": "ធ្វើ %1", - "1221250438": "ដើម្បីអនុញ្ញាតការដកប្រាក់ សូមបញ្ជាក់ <0>ការបញ្ជាក់អត្តសញ្ញាណ (POI) និង <1>ការបញ្ជាក់អាសយដ្ឋាន (POA) ហើយសូមបញ្ចូល <2>ការវាយតម្លៃហិរញ្ញវត្ថុ ក្នុងការកំណត់គណនីរបស់អ្នក។", - "1221947449": "បញ្ចូលលេខកូដ 6 ខ្ទង់ដែលបានផ្ញើទៅអ្នកតាមរយៈ {{phone_verification_type}} នៅ {{users_phone_number}}។ <0>", - "1222096166": "ធ្វើការដាក់ប្រាក់តាមរយៈបញ្ជូនប្រាក់តាមធនាគារ, កាតឥណទាន និង e-wallet", - "1222521778": "ការធ្វើការ​ដាក់ប្រាក់​និង​ដកប្រាក់​ជា​អារម្មណ៍ពិបាក។", - "1222544232": "យើងបានផ្ញើអ៊ីមែលមកអ្នក", + "1221250438": "ដើម្បីបើកដំណើរការដកប្រាក់ សូមដាក់បញ្ជូន <0>ភស្តុតាងអត្តសញ្ញាណ (POI) និង <1>ភស្តុតាងនៃអាសយដ្ឋាន (POA) របស់អ្នក ហើយបំពេញ <2>ការវាយតម្លៃហិរញ្ញវត្ថុ នៅក្នុងការកំណត់គណនីរបស់អ្នកផងដែរ។", + "1222096166": "ធ្វើការដាក់ប្រាក់តាមធនាគារ តាមកាតឥណទាន និងតាមកាបូបអេឡិចត្រូនិក", + "1222521778": "ការដាក់ប្រាក់ និងដកប្រាក់គឺពិបាកដំណើរការណាស់។", + "1222544232": "យើងបានផ្ញើអ៊ីមែលទៅអ្នករួចហើយ", "1223993374": "សម្រាប់ចំណុចចូល យើងប្រើយន្តការប្រតិបត្តិចំណុច Tick បច្ចុប្បន្ន ដែលជាតម្លៃទ្រព្យសកម្មចុងក្រោយបំផុត នៅពេលដែលម៉ាស៊ីនមេរបស់យើងដំណើរការបើកការជួញដូរ។", - "1225874865": "ការកែសម្រួលភាគចំណែក: ចំណេញសម័យដែលបានដាក់គោលដៅ (1 USD) - ចំណេញសម័យបច្ចុប្បន្ន (0 USD) = 1 USD", + "1225874865": "ការកែតម្រូវប្រាក់ដើមទុន៖ ប្រាក់ចំណេញវគ្គគោលដៅ (1 USD) - ប្រាក់ចំណេញវគ្គបច្ចុប្បន្ន (0 USD) = 1 USD", "1225962809": "បន្ទាត់កម្រិតតម្លៃគោលដៅខាងក្រោម", - "1227074958": "អក្សរផ្សេងៗដែលជាស្តង់ដារនៃព្រឹត្តិការណ៍ត្រូវកំណត់។", - "1227132397": "4. សម្រាប់ការទិញដែលមានលទ្ធផលបរាជ័យ, មានលទ្ធផលពីរទៀត។ ប្រសិនបើវាត្រូវបានជួញដូរនៅភាគចំណែកដើម, ការទិញបន្ទាប់នឹងនៅតែមាននៅចំនួនដូច្នោះ ព្រោះយុទ្ធសាស្ត្រមានតិចតែមាននៅភាគចំណែកដើម, មើល A2។ ប្រសិនបើវាត្រូវបានជួញដូរជាមួយចំនួនខ្ពស់ជាង, ភាគចំណែកសម្រាប់ការទិញបន្ទាប់នឹងត្រូវបានកាត់បន្ថយដោយ 2 USD, មើល A3។", - "1227240509": "កាត់ចន្លោះ", - "1228534821": "លេខទូទាត់ទឹកប្រាក់អាចមិនត្រូវបានគាំទ្រដោយភ្នាក់ងារបូកសរុបក្នុងប្រទេសរបស់អ្នក។", - "1229883366": "លេខសម្គាល់បទពិសោធកម្មធានាគារ។", - "1230884443": "រដ្ឋ/ខេត្ត (លើសពីនេះទេ)", - "1231282282": "ប្រើតែតួអក្សរពិតផ្សេងៗខាងក្រោមនេះតែប៉ុណ្ណោះ: {{permitted_characters}}", - "1232291311": "ចំនួនសាច់ប្រាក់ខ្ពស់បំផុតដែលនៅសល់", - "1232353969": "0-5 ប្រតិបត្តិដែលបានធ្វើក្នុងរយៈពេល 12 ខែ", - "1233178579": "អតិថិជនរបស់យើងនិយាយ", - "1233300532": "ការ​ផ្ទេរប្រាក់។", - "1233910495": "ប្រសិនបើអ្នកជ្រើសរើស \"<0>Down\" នោះ ប្រាក់ចំណេញ/ការបាត់បង់សរុបរបស់អ្នកនឹងជាភាគរយនៃការថយចុះនៃតម្លៃទ្រព្យសកម្មមូលដ្ឋាន គុណនឹង Multiplier និងភាគហ៊ុន ដកកំរៃជើងសារ។", + "1227074958": "ចំណែកចៃដន្យ", + "1227132397": "4. ចំពោះ​ការ​ជួញ​ដូរ​ដែល​នាំ​ឱ្យ​ខាត​បង់​មាន​លទ្ធផល​ពីរយ៉ាង។ ប្រសិនបើវាត្រូវបានជួញដូរដោយប្រាក់ដើមទុនដំបូង នោះការជួញដូរបន្ទាប់នឹងនៅតែមានចំនួនដូចគ្នាជាមួយនឹងយុទ្ធសាស្រ្តជួញដូរតិចតួចបំផុតនៅចំនួណប្រាក់ដើមទុនដំបូង សូមមើល A2 ។ ប្រសិនបើវាត្រូវបានជួញដូរជាមួយនឹងចំនួនទឹកប្រាក់ខ្ពស់ជាងនេះ ប្រាក់ដើមទុនសម្រាប់ការជួញដូរបន្ទាប់នឹងត្រូវបានកាត់បន្ថយ 2 USD សូមមើល A3 ។", + "1227240509": "ការកាត់បន្ថយកន្លែង", + "1228534821": "រូបិយប័ណ្ណមួយចំនួនប្រហែលជាមិនត្រូវបានគាំទ្រដោយភ្នាក់ងារទូទាត់ប្រាក់នៅក្នុងប្រទេសរបស់អ្នកទេ។", + "1229883366": "លេខសម្គាល់បង់ពន្ធ", + "1230884443": "រដ្ឋ/ខេត្ត (ជាជម្រើស)", + "1231282282": "ប្រើតែតួអក្សរពិសេសខាងក្រោម៖ {{permitted_characters}}", + "1232291311": "ការដកប្រាក់អតិបរមាដែលនៅសល់", + "1232353969": "ប្រតិបត្តិការចំនួន 0-5 ដងក្នុងរយៈពេល 12 ខែកន្លងមក", + "1233178579": "អតិថិជនរបស់យើងនិយាយថា", + "1233300532": "ប្រាក់សំណង", + "1233910495": "ប្រសិនបើអ្នកជ្រើសរើស \"<0>Down\" នោះ ប្រាក់ចំណេញ/ការបាត់បង់សរុបរបស់អ្នកនឹងជាភាគរយនៃការថយចុះនៃតម្លៃទ្រព្យសកម្មមូលដ្ឋាន គុណនឹង Multiplier និងចំនួនប្រាក់ដើមទុន ដកកំរៃជើងសារ។", "1234292259": "ប្រភពនៃទ្រព្យសម្បត្តិ", "1234764730": "បង្ហោះរូបថតអេក្រង់នៃឈ្មោះ និងអាសយដ្ឋានអ៊ីមែលរបស់អ្នកពីផ្នែកព័ត៌មានលម្អិតផ្ទាល់ខ្លួន។", "1235112380": "សម្រាប់អប់សិនបែប Put អ្នកនឹងទទួលបានប្រាក់សំណង ប្រសិនបើតម្លៃចុងក្រោយទាបជាងតម្លៃកូដកម្ម។", "1236527126": "(ថ្លៃប្រតិបត្តិការ: {{transaction_fee}} {{currency_symbol}})", - "1237330017": "អ្នកជំនាញជាម្ចាស់", + "1237330017": "សោធននិវត្តន៍", "1238311538": "អ្នកគ្រប់គ្រង", - "1239760289": "បញ្ចប់ការវាយតម្លៃជួញដូររបស់អ្នក", - "1239940690": "បញ្ចូលការ​បញ្ជូនពេលមានកំហុស។", - "1240027773": "សូមចូលបញ្ជូនរបស់អ្នក។", - "1240688917": "សៀវភៅសព្ទ", - "1241238585": "អ្នកអាចផ្ទេររវាងគណនី Deriv fiat, cryptocurrency និង {{platform_name_mt5}} របស់អ្នក។", + "1239760289": "បំពេញការវាយតម្លៃការជួញដូររបស់អ្នក", + "1239940690": "ចាប់ផ្តើម bot ឡើងវិញនៅពេលដែលមានកំហុស។", + "1240027773": "សូមចូលប្រព័ន្ធ", + "1240688917": "សទ្ទានុក្រម", + "1241238585": "អ្នកអាចផ្ទេររវាងគណនី Deriv fiat, គណនីរូបិយប័ណ្ណគ្រីបតូ និងគណនី {{platform_name_mt5}} របស់អ្នកបាន។", "1242288838": "ចុចប្រអប់ធីកខាងលើ ដើម្បីជ្រើសរើសឯកសាររបស់អ្នក។", - "1242994921": "ចុចទីនេះដើម្បីចាប់ផ្តើមបង្កើត Deriv Bot របស់អ្នក", - "1243064300": "កម្រិតក្មេង", + "1242994921": "ចុចទីនេះដើម្បីចាប់ផ្តើមបង្កើត Deriv Bot របស់អ្នក។", + "1243064300": "ក្នុងស្រុក", "1243287470": "ស្ថានភាពប្រតិបត្តិការ", - "1246207976": "បញ្ចូលកូដអត្តសញ្ញាណដែលបានបង្កើតដោយកម្មវិធី 2FA របស់អ្នក: -", - "1246880072": "ជ្រើសរើសប្រទេសដែលច wydही", - "1247280835": "អ្នកគិតលុយរូបិយប័ណ្ណគ្រីបតូរបស់យើងបានធ្លាក់ចុះជាបណ្តោះអាសន្ន ដោយសារការថែទាំប្រព័ន្ធ។ អ្នកអាចធ្វើការដាក់ប្រាក់ និងដកប្រាក់គ្រីបតូក្នុងរយៈពេលពីរបីនាទី នៅពេលដែលការថែទាំត្រូវបានបញ្ចប់។", + "1246207976": "បញ្ចូលលេខកូដផ្ទៀងផ្ទាត់ដែលបង្កើតដោយកម្មវិធី 2FA របស់អ្នក៖", + "1246880072": "ជ្រើសរើសប្រទេសដែលចេញ", + "1247280835": "ប្រព័ន្ធបេឡារូបិយប័ណ្ណគ្រីបតូរបស់យើងបានផ្អាក់ជាបណ្តោះអាសន្ន ដោយសារការថែទាំប្រព័ន្ធ។ អ្នកអាចធ្វើការដាក់ប្រាក់ និងដកប្រាក់គ្រីបតូក្នុងរយៈពេលពីរបីនាទី នៅពេលដែលការថែទាំត្រូវបានបញ្ចប់។", "1248018350": "ប្រភព​នៃ​ចំណូល", - "1248940117": "<0>a.ការសម្រេចចិត្តដែលធ្វើដោយ DRC គឺមានអត្ថន័យផ្ទាល់ខ្លួនមកលើពួកយើង។ សម្រេចចិត្ត DRC គឺមានអត្ថន័យផ្ទាល់ខ្លួនចំពោះអ្នកកាបន្តិចនិងតែបើអ្នកទាំងអស់នោះទទួលយកវា។", + "1248940117": "<0>a ការសម្រេចចិត្តដែលធ្វើឡើងដោយ DRC គឺពាក់ព័ន្ធនឹងយើង។ ការសម្រេចចិត្តរបស់ DRC នឹងជាប់ទាក់ទងនឹងអ្នក លុះត្រាតែអ្នកទទួលយកវាប៉ុណ្ណោះ។", "1250113042": "ឧបករណ៍នេះមិនគាំទ្រ Passkey ទេ។", - "1250495155": "កូដអត្តសញ្ញាណបានចម្លង!", - "1252669321": "បញ្ចូលពីការផ្ទុកឡើងពីថ្លសកលវិបាក", + "1250495155": "ចម្លងសញ្ញាសម្ងាត់ហើយ!", + "1252669321": "នាំចូលពី Google Drive របស់អ្នក", "1253531007": "បានបញ្ជាក់", - "1253636052": "ម៉ាស៊ីនបម្រើណែនាំអ៊ីនផ្សេងគ្នា", + "1253636052": "វេបសាយ MetaTrader5", "1254565203": "កំណត់ {{ variable }} ដើម្បីបង្កើតបញ្ជីដោយ", - "1255827200": "អ្នកក៏អាចនាំចូលឬសាងសង់បាប់របស់អ្នកដោយប្រើshortcutណាមួយទាំងនេះ។", + "1255827200": "អ្នកក៏អាចនាំចូល ឬបង្កើត bot របស់អ្នកដោយប្រើផ្លូវកាត់ណាមួយទាំងនេះផងដែរ។", "1255909792": "ចុងក្រោយ", - "1255963623": "ដល់ថ្ងៃ/ម៉ោង {{ input_timestamp }} {{ dummy }}", - "1258097139": "តើពួកយើងប្រក្រតីយល់អ្វីបានដើម្បីធ្វើឱ្យប្រសើរឡើង?", - "1258198117": "ជាមួយកំណែសម្រាប់ការបង្រើការ", - "1259145708": "តោះសាកល្បងម្តងទៀត។ ជ្រើសឯកសារមួយផ្សេងទៀតហើយបញ្ចូលព័ត៌មានដែលត្រូវគ្នា។", + "1255963623": "ដល់ថ្ងៃទី/ម៉ោង {{ input_timestamp }} {{ dummy }}", + "1258097139": "តើយើងអាចធ្វើអ្វីបានដើម្បីកែលម្អ?", + "1258198117": "វិជ្ជមាន", + "1259145708": "តោះព្យាយាមម្តងទៀត។ ជ្រើសរើសឯកសារផ្សេងទៀត ហើយបញ្ចូលព័ត៌មានលម្អិតដែលពាក់ព័ន្ធ។", "1259598687": "GBP/JPY", - "1260259925": "លេខទូរស័ព្ទមិនមានទ្រង់ទ្រាយត្រឹមត្រូវ។", - "1260321794": "សកម្ម", + "1260259925": "ទូរស័ព្ទមិនស្ថិតក្នុងទម្រង់ត្រឹមត្រូវទេ។", + "1260321794": "ដំណើរការ", "1262255038": "សន្ទស្សន៍ Step 300", - "1264096613": "ស្វែងរកក្នុងប្រអប់មួយដែលត្រូវបានផ្ដល់សម្រាប់កន្លើយរបស់អ្នក", - "1265317149": "វិក្កយបត្រទំនាក់ទំនងថ្មី (ដូចជា វិច្ឆី, ទឹក ឬឧស្ម័ន) ឬ បញ្ជាក់ការកើនឡើងថ្មីរបស់ក្រុមហ៊ុនធនាគារ ឬសំបុត្រដែលចេញពីរាជការ ដែលមានឈ្មោះ និង អាស័យដ្ឋានរបស់អ្នក។", + "1264096613": "ស្វែងរកខ្សែអក្សរដែលបានកំណត់", + "1265317149": "វិក្កយបត្រឧបករណ៍ប្រើប្រាស់ថ្មីៗ (ឧ. អគ្គិសនី ទឹក ឬហ្គាស) ឬរបាយការណ៍ធនាគារថ្មីៗ ឬលិខិតដែលចេញដោយរដ្ឋាភិបាលដែលមានឈ្មោះ និងអាសយដ្ឋានរបស់អ្នក។", "1265704976": "", - "1266728508": "ការផ្ការបង្ហាញសិទ្ធិអាចប្រើបានដោយជោគជ័យ", + "1266728508": "បានឆ្លងកាត់ការផ្ទៀងផ្ទាត់ភស្តុតាងនៃប្រាក់ចំណូលហើយ", "1269296089": "សូមបង្កើត Bot!", - "1270581106": "ប្រសិនបើអ្នកជ្រើស \"មិនលំអិត\", អ្នកឈ្នួលបានទូរស័ព្ទប្រាក់ថ្លៃប៉ុណ្ណោះបន្តរកម្ពស់តំបន់បណ្ដាញទាំងមូលនិងក្រៅកំហុសពេលយកនូវព្រមាន។", + "1270581106": "ប្រសិនបើអ្នកជ្រើសរើស “No Touch” នោះអ្នកនឹងទទួលបានប្រាក់សំណង ប្រសិនបើទីផ្សារមិនដែលប៉ះបន្ទាត់តម្លៃគោលដៅនៅពេលណាក៏ដោយក្នុងអំឡុងពេលកិច្ចសន្យា។", "1272012156": "GBP/CHF", "1272337240": "ថ្ងៃ", "1272681097": "ម៉ោង", - "1274380814": "The correct translation for 'strike price' should be 'តម្លៃស្ទក់'.", - "1274819385": "ពាក្យបញ្ជូននិងសង្ខេប", - "1276660852": "សូមដាក់ឯកសារបញ្ជាក់អត្តសញ្ញាណរបស់អ្នក។", - "1279937041": "<0>កំណត់សំគាល់: យុទ្ធសាស្ត្រមួយចំនួនស្មុរមិនអាចធ្វើការបង្កើតបាននៅក្នុង Bot Builder។ ប្រសិនបើអ្នកមានសំណួរ សូមទំនាក់ទំនងមកយើងតាម <1/>។", - "1281045211": "តម្លៃរង្វាឲ្យធាតុនៅក្នុងបញ្ជីដែលបានផ្តល់ អំព្លីបទដូចជាលេខកុំព្យូទ័រ ឬលេខអត្រាកាលប្បវត្តិ។", + "1274380814": "ប្រាក់សំណងរបស់អ្នកស្មើនឹង <0>ប្រាក់សំណងក្នុងមួយ pip គុណនឹងភាពខុសគ្នា <1>ជា pip រវាងតម្លៃចុងក្រោយ និងតម្លៃកូដកម្ម។ អ្នកនឹងទទួលបានប្រាក់ចំណេញលុះត្រាតែប្រាក់សំណងរបស់អ្នកខ្ពស់ជាងប្រាក់ដើមទុនដំបូងរបស់អ្នកប៉ុណ្ណោះ។", + "1274819385": "3. បណ្តឹង និងវិវាទ", + "1276660852": "បញ្ជូនភស្តុតាងនៃអត្តសញ្ញាណរបស់អ្នក", + "1276973471": "ផលិតផលដែលផ្តល់ជូននៅលើគេហទំព័ររបស់យើងគឺជាផលិតផលដេរីវេស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់សក្តានុពល។ CFDs គឺជាឧបករណ៍ស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់យ៉ាងឆាប់រហ័សដោយសារតែអានុភាព។ 70.84% នៃគណនីវិនិយោគិនលក់រាយបាត់បង់ប្រាក់នៅពេលធ្វើពាណិជ្ជកម្ម CFDs ជាមួយអ្នកផ្តល់សេវានេះ។ អ្នកគួរតែពិចារណាថាតើអ្នកយល់ពីរបៀបដែលផលិតផលទាំងនេះដំណើរការ និងថាតើអ្នកអាចមានលទ្ធភាពទទួលយកហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់របស់អ្នក។", + "1279937041": "<0>ចំណាំ៖ យុទ្ធសាស្ត្រស្មុគ្រស្មាញមួយចំនួនអាចប្រឈមនឹងបញ្ហានៅក្នុង Bot Builder។ ប្រសិនបើអ្នកមានសំណួរ សូមទាក់ទងមកយើងខ្ញុំតាមរយៈ <1/>។", + "1281045211": "តម្រៀបរាយមុខនៅក្នុងបញ្ជីដែលបានកំណត់ តាម​តម្លៃ​លេខ ឬ​អក្ខរក្រម​តាម​លំដាប់​ឡើង ឬ​ចុះ។", "1281290230": "ជ្រើសរើស", - "1282951921": "ប៉ុន្តែលុបខាងក្រោយ", + "1282951921": "Only Downs", "1283418744": "មានមុខងារបន្ថែមមានសម្រាប់គ្រប់គ្រងមុខតំណែងរបស់អ្នក៖ “<0>បិទ​ការ​ជួញដូរ​យក​ចំណេញ”, “<1>បញ្ឈប់ការខាតបង់” និង “<2>ការលុបចោលកិច្ចព្រមព្រៀង” អនុញ្ញាតឱ្យអ្នកកែតម្រូវកម្រិតនៃការបដិសេធហានិភ័យរបស់អ្នកបាន។", - "1284522768": "ប្រសិនបើអ្នកជ្រើស \"បាតបង់ប្រាក់\", វានឹងត្រូវតែលទ្ធផលមិនបានជោគជ័យ។ ដែលមានសមាប់ផ្តោតានឹងសង្ខេប។", + "1284522768": "ប្រសិនបើជ្រើសរើស \"ការបាត់បង់\" ប្រព័ន្ធនឹងបញ្ជូនត្រឡប់ \"ពិត\" ប្រសិនបើការជួញដូរចុងក្រោយរបស់អ្នកមិនជោគជ័យ។ បើមិនដូច្នោះទេ វានឹងត្រឡប់ខ្សែអក្សរទទេវិញ។", "1286094280": "ដកប្រាក់", - "1286351940": "គណនី {{from_account}} របស់អ្នកនឹងត្រូវបានទុកក្នុងប័ណ្ណសារបន្ទាប់ពីអសកម្មរយៈពេល 60 ថ្ងៃ។ អ្នកនៅតែអាចចូលប្រើប្រវត្តិពាណិជ្ជកម្មរបស់អ្នករហូតដល់គណនីត្រូវបានទុកក្នុងប័ណ្ណសារ។", + "1286351940": "គណនី {{from_account}} របស់អ្នកនឹងត្រូវបានទុកក្នុងប័ណ្ណសារបន្ទាប់ពីគ្មានសកម្មរយៈពេល 60 ថ្ងៃ។ អ្នកនៅតែអាចចូលប្រើប្រវត្តិពាណិជ្ជកម្មរបស់អ្នករហូតដល់គណនីត្រូវបានទុកក្នុងប័ណ្ណសារ។", "1286384690": "ប្រសិនបើអ្នកជ្រើសរើស “<0>Even” អ្នកនឹងឈ្នះប្រាក់សំណង ប្រសិនបើខ្ទង់ចុងក្រោយនៃតម្លៃចំណុច Tick លេខចុងក្រោយគឺជាលេខគូ (ឧ. 2, 4, 6, 8, ឬ 0)។", - "1286507651": "បិទអេក្រង់បញ្ជាក់អត្តសញ្ញាណ", + "1286507651": "បិទអេក្រង់ផ្ទៀងផ្ទាត់អត្តសញ្ញាណ", "1288965214": "លិខិតឆ្លងដែន", - "1289146554": "ក្រុមហ៊ុនសេវាហត្ថកម្ម ប៉ុន្តែ គឺ British Virgin Islands", - "1289650867": "យុទ្ធសាស្ត្រ Oscar's Grind ត្រូវបានបង្កើតឡើងដើម្បីទទួលបានចំណេញមធ្យម ប៉ុន្តែស្ថិតស្ថេរ ក្នុងគ្រប់សម័យពាណិជ្ជកម្ម។ យុទ្ធសាស្ត្រនេះបំបែកការទិញទៅជា​សម័យ ហើយមានគោលការណ៍​បី។", - "1290525720": "ឧទាហរណ៍ ៖ ", + "1289146554": "British Virgin Islands Financial Services Commission", + "1289650867": "យុទ្ធសាស្ត្រ Grind របស់ Oscar ត្រូវបានរចនាឡើងដើម្បីទទួលបានប្រាក់ចំណេញតិចតួច ប៉ុន្តែមានស្ថិរភាពនៅក្នុងវគ្គជួញដូរនីមួយៗ។ យុទ្ធសាស្ត្រនេះបំបែកការជួញដូរទៅជាវគ្គ ហើយមានបីគោលការណ៍។", + "1290525720": "ឧទាហរណ៍៖ ", "1291997417": "កិច្ចសន្យានឹងផុតកំណត់នៅម៉ោង 23:59:59 GMT នៃថ្ងៃផុតកំណត់ដែលអ្នកបានជ្រើសរើស។", - "1292188546": "កំណត់ឡើងវិញពាក្យសម្ងាត់វិនិយោគ Deriv MT5", - "1292891860": "ប្រកាសការជូនដំណឹងតាមរបៀបបូស្រាកនេះបន្ទាប់មកអ្នកយ៉ាងតិចគួរតែឆម្រុញផ្ញើការបើកឯកសារជូនដំណឹង (Telegram)។", - "1293660048": "ក្រុមគិតខំប័ណ្ណសរុបក្នុងមួយថ្ងៃខុសពីមួយរបៀប។", - "1294553728": "យើងមិនអាចផ្ទៀងផ្ទាត់ឯកសារដែលអ្នកផ្អល់បានទេ។", - "1294756261": "ប្រអប់នេះបង្កើតអនុគ្រោះវិបសាយដែលគួរតែត្រូវបានដំណើរការនៅពេលណា។ ដាក់ពាក្យផ្សេងទៀតទៅក្នុងអនុគ្រោះនេះដើម្បីអនុគ្រោះវិបសាយហើយមានពីរប្រភេទនៃសៀវភៅ: សំណួរដែលធ្វើឱ្យផ្ដល់ជូនភាពល្អផង, សៀវភៅដែលធ្វើឱ្យផ្ដល់ជូនភាពមិនល្អឡើយ។ នៅពេលដែលសកម្មភាពទាំងអស់ក្នុងប្រអប់នេះត្រូវបានបញ្ចូលពីវា។ ចុចក្បាល plus ដើម្បីផ្អែកលើតម្លៃ (ជាចំនួនតាងជាទិន្នន័យដែលមានឈ្មោះ) ដើម្បីធ្វើឱ្យទាំងអស់គឺជាអថេរនោះដោយ។", - "1295284664": "សូមទទួលយកលក្ខខណ្ឌដែលបាន<0>កែប្រែជាថ្មីៗរបស់យើងលើពិរោះពីនេះតាមដាន។", - "1296380713": "បិទកង្វេងរបContract", - "1298254025": "ស្តង់ដារ - BVI", + "1292188546": "កំណត់ពាក្យសម្ងាត់អ្នកវិនិយោគ Deriv MT5 ឡើងវិញ", + "1292891860": "ជូនដំណឹង Telegram", + "1293660048": "ការបាត់បង់សរុបអតិបរមាក្នុងមួយថ្ងៃ", + "1294553728": "យើងមិនអាចផ្ទៀងផ្ទាត់ឯកសារដែលអ្នកបានផ្តល់បានទេព្រោះវាហាក់ដូចជារូបភាពទទេ។ សូមព្យាយាមម្តងទៀត ឬអាប់ឡូតឯកសារផ្សេងទៀត។", + "1294756261": "ប្លុកនេះបង្កើតមុខងារមួយដែលជាក្រុមនៃពាក្យបញ្ជាដែលអាចដំណើរការបាននៅពេលណាក៏បាន។ ដាក់ប្លុកផ្សេងទៀតនៅទីនេះ ដើម្បីអនុវត្តសកម្មភាពណាមួយដែលអ្នកត្រូវការក្នុងយុទ្ធសាស្ត្ររបស់អ្នក។ នៅពេលដែលការណែនាំទាំងអស់នៅក្នុងមុខងារមួយត្រូវបានអនុវត្ត bot របស់អ្នកនឹងបន្តដំណើរការជាមួយនឹងប្លុកដែលនៅសល់នៅក្នុងយុទ្ធសាស្រ្តរបស់អ្នក។ ចុចលើប្រអប់ចន្លោះ \"ធ្វើអ្វីមួយ\" ដើម្បីដាក់ឈ្មោះវាតាមជម្រើសរបស់អ្នក។ ចុចរូបតំណាងបូកដើម្បីផ្ញើតម្លៃ (ជាអថេរដែលមានឈ្មោះ) ទៅមុខងាររបស់អ្នក។", + "1295284664": "សូមទទួលយក <0>លក្ខខណ្ឌចុងក្រោយបំផុត របស់យើងដើម្បីដំណើរការបន្ត។", + "1296380713": "បិទកិច្ចសន្យារបស់ខ្ញុំ", + "1298254025": "Standard - BVI", "1299479533": "8 ម៉ោង", - "1300576911": "សូមបញ្ជូនភស្តុតាងនៃអាសយដ្ឋានរបស់អ្នកឡើងវិញ ឬយើងអាចដាក់កម្រិតគណនីរបស់អ្នក។", + "1300576911": "សូមបញ្ជូនភស្តុតាងនៃអាសយដ្ឋានរបស់អ្នកឡើងវិញ ឬមិនដូច្នោះទេយើងអាចដាក់កម្រិតគណនីរបស់អ្នក។", "1302691457": "មុខរបរ", - "1303016265": "បាទ", + "1303016265": "មែន", "1303530014": "យើងកំពុងដំណើរការការដកប្រាក់របស់អ្នក។", "1304083330": "ចម្លង", - "1304272843": "សូមផ្ញើរឯកសារបញ្ជាក់អាសយដ្ឋានរបស់អ្នក។", - "1304620236": "អាចបើកកាមេរបាន។", - "1305217290": "សូមផ្ទុកឡើងផ្នែកក្រោយនៃកាតសម្គាល់របស់អ្នក។", - "1306976251": "ស្តង់ដារ SVG", - "1308625834": "កំណត់ឱ្យមានកាលបរិច្ឆេទប្រចាំពីរអ្នកសម្រាប់ប្លង់។", - "1309017029": "ការបើកការដាក់ពាក្យនេះអនុញ្ញាតិឲ្យអ្នករក្សាទុកប្រអប់របស់អ្នកជាវិញ្ញាណនេះតែមួយ។", - "1309044871": "ត្រឡប់មកវិញតម្លៃនៃការបោះឆ្នោតចុងក្រោយក្នុងទ្រង់ចង្វាក់។", + "1304272843": "សូមដាក់បញ្ជូនភស្តុតាងនៃអាសយដ្ឋានរបស់អ្នក។", + "1304620236": "បើកកាមេរ៉ា", + "1305217290": "សូមអាប់ឡូតផ្នែកខាងក្រោយនៃអត្តសញ្ញាណប័ណ្ណរបស់អ្នក។", + "1306976251": "Standard SVG", + "1308625834": "កំណត់ចន្លោះពេលលំនាំដើមសម្រាប់ប្លុកដែលអានបញ្ជីគំនូសទៀន។", + "1309017029": "ការបើកដំណើរការនេះអនុញ្ញាតឱ្យអ្នករក្សាទុកប្លុករបស់អ្នកជាបណ្តុំមួយដែលអាចត្រូវបានរួមបញ្ចូលយ៉ាងងាយស្រួលទៅក្នុង bot ផ្សេងទៀត។", + "1309044871": "បង្ហាញតម្លៃចំណុច Tick ចុងក្រោយបំផុតក្នុងទម្រង់ខ្សែអក្សរ", "1310483610": "លទ្ធផលសម្រាប់ \"{{ search_term }}\"", - "1311680770": "ចំណេញ", + "1311680770": "ប្រាក់សំណង", "1313167179": "សូមចូលប្រព័ន្ធ", - "1313302450": "Bot នឹងឈប់ជួញដូរប្រសិនបើចំនួនខាតសរុបរបស់អ្នកលើសពីចំនួននេះ។", - "1314572331": "ឯកសាររបស់អ្នកមិនផ្លាស់ប្តូរ។", - "1316216284": "អ្នកអាចប្រើពាក្យសម្ងាត់នេះសម្រាប់គណនី {{platform}} របស់អ្នកទាំងអស់បាន។", + "1313302450": "Bot នឹងបញ្ឈប់ការជួញដូរ ប្រសិនបើការបាត់បង់សរុបរបស់អ្នកលើសពីចំនួននេះ។", + "1314572331": "ឯកសាររបស់អ្នកបានបរាជ័យពីការត្រួតពិនិត្យផ្ទៀងផ្ទាត់របស់យើង។", + "1316216284": "អ្នកអាចប្រើពាក្យសម្ងាត់នេះសម្រាប់គណនី {{platform}} របស់អ្នកទាំងអស់។", "1319217849": "ពិនិត្យមើលទូរសព្ទរបស់អ្នក", - "1320715220": "<0>គណនីបានបិទ", - "1320750775": "មុខនិងក្រោយ", - "1322804930": "សូមចាប់ផ្តើមឡើងវិញនៅក្នុងកំណែថ្មីបំផុតនៃ Google Chrome។", - "1323327633": "ដំណើរការតាមរយៈការនាំយកនៃទីផ្សារនៅខាងក្រោម: 4 ។", - "1323476617": "ដំណើរការបញ្ជូនអក្សរដែលអាចបង្កើនប្រើប្រាស់នៅក្នុងប្រព័ន្ធ។", + "1320715220": "<0>គណនីត្រូវបានបិទ", + "1320750775": "ខាងមុខនិងខាងក្រោយ", + "1322804930": "ចាប់ផ្តើមដំណើរការឡើងវិញដោយប្រើកំណែចុងក្រោយបំផុតរបស់ Google Chrome ។", + "1323327633": "ដំណើរទទួលការបណ្តឹងរបស់យើងមាន 4 ជំហានដូចខាងក្រោម៖", + "1323476617": "ផ្លាស់ប្តូរអក្សរធំនៃខ្សែអក្សរទៅជាអក្សរធំ អក្សរតូច អក្សរចំណងជើង។", "1323996051": "ប្រវត្តិរូប", - "1324922837": "អថេរថ្មីនឹងបង្ហាញជាប្រអប់នៅក្រោមការកំណត់អថេរ។", - "1325514262": "(អាជ្ញាធរដែនត្រីមាស MB/18/0024)", - "1327181172": "ហិរញ្ញវត្ថុ Vanuatu", + "1324922837": "2. អថេរថ្មីនឹងបង្ហាញជាប្លុកនៅក្រោមអថេរ Set។", + "1325514262": "(លេខអាជ្ញាប័ណ្ណ MB/18/0024)", + "1327181172": "Financial Vanuatu", "1327494533": "{{sell_value}} (លក់)", "1329136554": "សន្ទស្សន៍ Jump 200", - "1329325646": "មាតិកានៃប្លុកនេះត្រូវបានហៅនៅក្នុងការថ្លែងឡើងរាល់ម៉ោង។", - "1331199417": "សូមបញ្ចូលទ្រង់ទ្រាយត្រឹមត្រូវ។", + "1329325646": "ខ្លឹមសារនៃប្លុកនេះត្រូវបានប្រើនៅរាល់តម្លៃ Tick", + "1331199417": "សូមបញ្ចូលទម្រង់ត្រឹមត្រូវ។ ", "1331367811": "លេខគណនីអតិថិជន", - "1332168410": "សូមស្វែងរកព័ត៌មានបន្ថែម។", - "1332168769": "ផ្លាស់ប្តូរ", - "1333576137": "សូមធ្វើបច្ចុប្បន្នភាពព័ត៌មានរបស់អ្នក{{details}}ដើម្បីបន្តបន្ទាន។", - "1333839457": "បញ្ជូនកាតសម្គាល់ (មុខ)", - "1334326985": "វាអាចគេចែកចាយបន្តពេលប៉ុន្មាននាទីដើម្បីទទួលបាន", + "1332168410": "ស្វែងយល់បន្ថែម", + "1332168769": "ផ្តាច់", + "1333576137": "សូមអាប់ដេត {{details}} របស់អ្នកដើម្បីបន្តដំណើរការ។", + "1333839457": "បញ្ជូនអត្តសញ្ញាណប័ណ្ណ (ខាងមុខ)", + "1334326985": "វាអាចចំណាយពេលពីរបីនាទីដើម្បីមកដល់", "1335967988": "សេចក្តីជូនដំណឹង", - "1337846406": "ប្រមាសនៃបង្វិកដែលបានជ្រើសរើសពីបញ្ជីនៃបង្ហាញពីការ។", + "1337846406": "ប្លុកនេះផ្តល់ឱ្យអ្នកនូវតម្លៃគំនូសទៀនដែលបានជ្រើសរើសពីបញ្ជីនៃគំនូសទៀនក្នុងចន្លោះពេលដែលបានជ្រើសរើស។", "1337864666": "រូបថតឯកសាររបស់អ្នក", - "1338496204": "លេខលេខយោធា", + "1338496204": "លេខកូដយោង", "1339565304": "ដាក់ប្រាក់ឥឡូវនេះ ដើម្បីចាប់ផ្តើមការជួញដូរ", - "1339613797": "អង្គការច្បាប់/ការដោះស្រាយវិត្ដានក្រៅ.", - "1340286510": "កម្មវិធីប៊ូតបានបញ្ឈប់ម៉ាស៊ីនរិកប្រាក់របស់អ្នក ប៉ុន្តែអាចមានការចិយនាយនៅរទ័សដំណើរការនៅ។ អ្នកអាចពិនិត្យវានៅលើទំព័រ រាយការណ៍។", - "1341840346": "មើលក្នុងកំណត់សកម្ម", - "1341921544": "គណនីនិងប្រាក់ចំណេញ។", - "1344696151": "ប្រាក់ក្រុមហ៊ុន, ប្រភេទផលប្រយោជន៏គ្មានហេតុពូកែប្រេងស្រី, ទ្រព្យនិគ្រិសស្តង់ស្តង់ប្រភេទនិងគុណភាព", + "1339613797": "អ្នកគ្រប់គ្រង/ការដោះស្រាយជម្លោះខាងក្រៅ", + "1340286510": "Bot បានឈប់ដំណើរការហើយ ប៉ុន្តែការជួញដូររបស់អ្នកអាចនៅតែដំណើរការ។ អ្នកអាចពិនិត្យមើលវានៅលើទំព័ររបាយការណ៍។", + "1341840346": "មើលក្នុងទិនានុប្បវត្តិ", + "1344696151": "Forex, ភាគហ៊ុន, សន្ទស្សន៍ភាគហ៊ុន, ទំនិញ, រូបិយប័ណ្ណគ្រីបតូ និងសន្ទស្សន៍ Synthetic។", "1346038489": "គួរតែតិចជាង 70។", "1346204508": "Take profit", "1346339408": "អ្នកគ្រប់គ្រង", - "1346947293": "យើងមិនអាចផ្ទៀងផ្ទាត់ការថត រូបសែលហ្វី (selfie) របស់អ្នកបានទេ ដោយសារវាមិនច្បាស់។ សូមថតរូបឱ្យកាន់តែច្បាស់ ហើយព្យាយាមម្តងទៀត។ ត្រូវប្រាកដថាមានពន្លឺគ្រប់គ្រាន់នៅកន្លែងដែលអ្នកនៅ ហើយមុខទាំងមូលរបស់អ្នកស្ថិតនៅក្នុងស៊ុម។", + "1346947293": "យើងមិនអាចផ្ទៀងផ្ទាត់រូបថត Selfie របស់អ្នកបានទេ ដោយសារវាមិនច្បាស់។ សូមថតរូបឱ្យកាន់តែច្បាស់ ហើយព្យាយាមម្តងទៀត។ ត្រូវប្រាកដថាមានពន្លឺគ្រប់គ្រាន់នៅកន្លែងដែលអ្នកនៅ ហើយមុខទាំងមូលរបស់អ្នកស្ថិតនៅក្នុងស៊ុម។", "1347071802": "{{minutePast}}នាទីមុន", - "1349133669": "សាកល្បងការប្រើទន្លេថ្មីរបស់អ្នក។", - "1349289354": "ប្រសិនបើត្រូវប្តូរលក្ខណៈស្វ័យប្រវត្តិបន្តបន្ទាប់របស់អ្នក។", - "1349295677": "ក្នុងអត្ថបទ {{ input_text }} យកអក្សរត្រូវបម្រុងពីទីតាំង {{ position1 }} {{ index1 }} ទៅទីតាំង {{ position2 }} {{ index2 }}", - "1351906264": "មុខងារនេះមិនមានសម្រាប់ភ្នាក់ងារទូទាត់ប្រាក់ទេ។", - "1352234202": "កិច្ចសន្យាចុងក្រោយ {{positionsCount}}:", - "1352413406": "កំណត់ជម្រើសពាណិជ្ជកម្មរបស់អ្នកដូចជា accumulator និងភាគហ៊ុន។", + "1349133669": "សាកល្បងផ្លាស់ប្តូរលក្ខខណ្ឌស្វែងរករបស់អ្នក។", + "1349289354": "ល្អណាស់ នោះហើយជាអ្វីគ្រប់យ៉ាងដែលយើងត្រូវការ", + "1349295677": "នៅក្នុងអត្ថបទ {{ input_text }} ទទួលបានខ្សែអក្សររងពី {{ position1 }} {{ index1 }} ទៅ {{ position2 }} {{ index2 }}", + "1351906264": "មុខងារនេះមិនអាចប្រើសម្រាប់ភ្នាក់ងារទូទាត់ប្រាក់បានទេ។", + "1352234202": "កិច្ចសន្យា {{positionsCount}} ចុងក្រោយ៖", + "1352413406": "កំណត់ជម្រើសការជួញដូររបស់អ្នកដូចជា accumulator និងប្រាក់ដើមទុន។", "1353197182": "សូមជ្រើសរើស", - "1354288636": "ដោយផ្អែកលើចម្លើយរបស់អ្នក វាមើលទៅថាអ្នកមានចំណេះដឹង និងបទពិសោធន៍មិនគ្រប់គ្រាន់ក្នុងការពាណិជ្ជកម្ម CFDs។ ការពាណិជ្ជកម្ម CFDs គឺមានហានិភ័យ ហើយអ្នកអាចបាត់បង់មូលនិធិទាំងអស់របស់អ្នក។<0/><0/>", - "1355250245": "នៃបញ្ជាក់ {{ calculation }} នៃបញ្ជី {{ input_list }}", - "1356574493": "ក្នុងអត្ថបទដែលផ្តល់ជូនក្នុងការផ្អាកខាងក្នុងនៃអត្ថបទនេះ។", - "1356607862": "លេខសម្ងាត់ Deriv", - "1357213116": "បញ្ជាក់សំបុត្រកាតសម្គាល់", - "1358543466": "មិនមានន័យថាអាចត្រូវបានប្រើប្រាស់ទេ", - "1358543748": "បានបើក", + "1354288636": "ដោយផ្អែកលើចម្លើយរបស់អ្នក វាហាក់ដូចជាអ្នកមានចំណេះដឹង និងបទពិសោធន៍មិនគ្រប់គ្រាន់ក្នុងការជួញដូរ CFDs។ ការជួញដូរ CFD មានហានិភ័យ ហើយអ្នកអាចបាត់បង់ដើមទុនទាំងអស់របស់អ្នក។<0/><0/>", + "1355250245": "{{ calculation }} នៃបញ្ជី {{ input_list }}", + "1356574493": "បង្ហាញតម្លៃជាផ្នែកជាក់លាក់នៃខ្សែអក្សរដែលបានកំណត់។", + "1356607862": "ពាក្យសម្ងាត់ Deriv", + "1357213116": "អត្តសញ្ញាណប័ណ្ណ", + "1358543466": "មិនអាចប្រើបាន", + "1358543748": "បានបើកដំណើរការហើយ", "1360929368": "បន្ថែមគណនី Deriv", - "1362029761": "កម្ពុជា​យុទ្ធសាស្ត្រ Reverse Martingale នៅក្នុង Deriv Bot។", + "1362029761": "ស្វែងយល់ពីយុទ្ធសាស្ត្រ Reverse Martingale នៅក្នុង Deriv Bot", "1362578283": "ខ្ពស់", "1363645836": "Derived FX", - "1363675688": "រយៈពេលគណនីជា​វាយតម្លៃដោយធានារបាយ។", + "1363675688": "សូមបញ្ជាក់រយៈពេលនៅក្នុងប្រអប់ចន្លោះ។", "1364879837": "បានឆ្លងកាត់ការផ្ទៀងផ្ទាត់រួចហើយ ប៉ុន្តែមិនមានព័ត៌មានផ្ទាល់ខ្លួនសម្រាប់ប្រៀបធៀបទេ។", - "1364958515": "អត្រា", + "1364958515": "ភាគហ៊ុន", "1366244749": "ដែនកំណត់", - "1367488817": "៤។ ដំណើរការពេញវេលាត្រូវបានចាប់ផ្តើមឡើងវិញ", + "1367488817": "4. ចាប់ផ្តើមលក្ខខណ្ឌនៃការជួញដូរឡើងវិញ", "1367990698": "សន្ទស្សន៍ Volatility 10", "1370435892": "សូមផ្ទៀងផ្ទាត់អាសយដ្ឋាននៅលើទំព័រនេះមុនពេលដាក់ប្រាក់គ្រប់ពេល ដើម្បីជៀសវាងការបាត់បង់ថវិកា។ ពេលខ្លះ អាសយដ្ឋានអាចត្រូវបានអាប់ដេត។", - "1370647009": "ប្រាក់បន្ថែមនៃបន្ទាប់ពីមុនគឺថ្លៃដើមធំទៀតយ៉ាងល្អ។", + "1370647009": "រីករាយជាមួយដែនកំណត់ប្រចាំថ្ងៃខ្ពស់ជាងមុន", "1371193412": "បោះបង់", - "1371555192": "ជ្រើសរើសអ្នកដែលអ្នកដាក់ប្រាក់ចេញ និងបញ្ចូលចំនួនសំពាធរបស់អ្នក។ ប្រសិនបើអ្នកប្រើការបង់ប្រាក់របស់អ្នកមិនបានបញ្ជូល ទៅរក <0>ស្វែងរកពួកគែលើកលេខគណនីរបស់ពួកគេ។", - "1371641641": "បើកតំណហេតុលើទូរស័ព្ទរបស់អ្នក", - "1371911731": "ផលិតផលហិរញ្ញវត្ថុនៅក្នុង EU ត្រូវបានផ្ដល់ដោយ {{legal_entity_name}}, ដែលបានទទួលអាជ្ញាប័ណ្ណជាអ្នកផ្ដល់សេវាកម្មវិនិយោគ Category 3 ដោយ Malta Financial Services Authority (<0>អាជ្ញាប័ណ្ណលេខ IS/70156)។", - "1373949314": "យុទ្ធសាស្ត្រ Reverse Martingale គឺពាក់ព័ន្ធនឹងការកំណត់ភាគហ៊ុនរបស់អ្នកទៀតនៅពេលទទួលបានជោគជ័យនៅក្នុងការជួញដូរ ហើយធ្វើការកំណត់ទៅភាគហ៊ុនដើមសម្រាប់ការជួញដូរដែលបរាជ័យ ដើម្បីទទួលបានផលចំណេញល្អពីការជោគជ័យដំណើរដោយរួមគ្នា.", - "1374627690": "សមតុល្យគណនីអតិបរមា", + "1371555192": "ជ្រើសរើសភ្នាក់ងារទូទាត់ប្រាក់ដែលអ្នកពេញចិត្ត ហើយបញ្ចូលចំនួនប្រាក់ដែលអ្នកចង់ដក។ ប្រសិនបើភ្នាក់ងារទូទាត់របស់អ្នកមិនមាននៅក្នុងបញ្ជីទេ <0>ស្វែងរកពួកគេដោយប្រើលេខគណនីរបស់ពួកគេ។", + "1371641641": "បើកតំណនៅលើទូរស័ព្ទដៃរបស់អ្នក", + "1371911731": "ផលិតផលហិរញ្ញវត្ថុនៅក្នុងសហភាពអឺរ៉ុបត្រូវបានផ្តល់ជូនដោយ {{legal_entity_name}} ដែលទទួលបានអាជ្ញាប័ណ្ណជាអ្នកផ្តល់សេវាវិនិយោគប្រភេទទី 3 ដោយ Malta Financial Services Authority (<0>អាជ្ញាប័ណ្ណលេខ IS/70156) ។", + "1373949314": "យុទ្ធសាស្រ្ត Reverse Martingale ពាក់ព័ន្ធនឹងការបង្កើនប្រាក់ដើមទុនរបស់អ្នកបន្ទាប់ពីការជួញដូរជោគជ័យនីមួយៗ ហើយកំណត់ឡើងវិញទៅប្រាក់ដើមទុនដំបូងសម្រាប់រាល់ការជួញដូរដែលបាត់បង់ ដោយសារវាមានគោលបំណងធានានូវប្រាក់ចំណេញដែលមានសក្តានុពលពីការឈ្នះជាប់ៗគ្នា។", + "1374627690": "សមតុល្យទឹកប្រាក់ក្នុងគណនីអតិបរមា", "1374902304": "ឯកសាររបស់អ្នកហាក់ដូចជាខូច ឬត្រូវបានកាត់។", "1376329801": "60 ថ្ងៃចុងក្រោយ", "1378419333": "Ether", - "1380349261": "ដែនកំណត់", - "1383017005": "អ្នកបានប្ដូរកិច្ចសន្យាផ្សេងទៀត។", - "1384222389": "សូមដាក់ឯកសារអត្តសញ្ញាណដែលមានសុពលភាព ដើម្បីដោះសោអ្នកគិតលុយ។", - "1385418910": "សូមកំណត់រូបិយប័ណ្ណសម្រាប់គណនីពិតដែលមានរបស់អ្នកមុនពេលបង្កើតគណនីផ្សេងទៀត។", + "1380349261": "ចន្លោះ", + "1383017005": "អ្នកបានប្តូរគណនីរួចហើយ។", + "1384222389": "សូមដាក់បញ្ជូនឯកសារអត្តសញ្ញាណដែលមានសុពលភាព ដើម្បីបើកប្រើប្រព័ន្ធបេឡា។", + "1385418910": "សូមកំណត់រូបិយប័ណ្ណសម្រាប់គណនីពិតដែលមានស្រាប់របស់អ្នក មុនពេលបង្កើតគណនីផ្សេងទៀត។", "1387503299": "ចូលប្រព័ន្ធ", - "1388770399": "នាមជាអ្នកបំផុតនៃការបញ្ចូលឯកសារលក្ខណៈប្រការភូមិច្រកស្កន្ត។", - "1389197139": "កំហុសនាំចូល", - "1390792283": "ប៉ារ៉ាម៉ែត្រពាណិជ្ជកម្ម", - "1391174838": "ការទូទាត់ដែលអាចប្រើបាន:", - "1392985917": "នេះស្រដៀងនឹងលេខសំងាត់ដែលត្រូវបានប្រើប្រាស់ជាទូទៅ", - "1393559748": "កាលបរិច្ឆេទ/ម៉ោងមិនត្រឹមត្រូវ: {{ datetime_string }}", - "1393901361": "មានកម្មវិធីមួយសម្រាប់វា", - "1393903598": "បើពិត {{ return_value }}", + "1388770399": "ត្រូវការឯកសារបញ្ជាក់អត្តសញ្ញាណ", + "1389197139": "កំហុសក្នុងការនាំចូល", + "1390792283": "ប៉ារ៉ាម៉ែត្រការជួញដូរ", + "1391174838": "ប្រាក់សំណ​ងដែលមានសក្តានុពល៖", + "1392985917": "នេះគឺស្រដៀងនឹងពាក្យសម្ងាត់ដែលប្រើជាទូទៅ", + "1393559748": "កាលបរិច្ឆេទ/ពេលវេលាមិនត្រឹមត្រូវ៖ {{ datetime_string }}", + "1393901361": "មានកម្មវិធីសម្រាប់រឿងនោះ", + "1393903598": "ប្រសិនបើពិត {{ return_value }}", "1396179592": "កម្រៃជើងសារ", "1396217283": "{{transaction_amount}} {{currency_symbol}}", "1396417530": "សន្ទស្សន៍ Bear Market.", - "1397628594": "មិនគ្រប់គ្រាន់មូលនិធិ", - "1400341216": "<0>យើងនឹងពិនិត្យឯកសាររបស់អ្នក <1>ហើយនឹងជូនដំណឹងអ្នកអំពីស្ថានភាពក្នុងរយៈពេល ១ ដល់ ៣ ថ្ងៃ។ ", + "1397628594": "ទឹកប្រាក់មិនគ្រប់គ្រាន់", + "1400341216": "យើងនឹងពិនិត្យមើលឯកសាររបស់អ្នក និងជូនដំណឹងដល់អ្នកអំពីស្ថានភាពរបស់វាក្នុងរយៈពេល 1 ទៅ 3 ថ្ងៃ។", "1400732866": "មើលពីកាមេរ៉ា", - "1400962248": "ខិតក្រោមលើរបស់ក្រោយ", + "1400962248": "High-Close", "1402208292": "ផ្លាស់ប្តូរទម្រង់អត្ថបទ", - "1402224124": "ចុចប៊ូតុងខាងក្រោម ហើយយើងនឹងផ្ញើអ៊ីមែលទៅអ្នកនូវតំណផ្ទៀងផ្ទាត់។", - "1402300547": "សូមបញ្ចូលអាសយដ្ឋានរបស់អ្នកដែលបានផ្ទៀងផ្ទាត់", - "1403085197": "បន្ថែមយុទ្ធសាស្ត្រពាណិជ្ជកម្មរបស់អ្នកជាមួយ Accumulators។", - "1403376207": "ធ្វើបច្ចុប្បន្នភាពលម្អិតរបស់ខ្ញុំ", + "1402224124": "ចុចប៊ូតុងខាងក្រោម ហើយយើងនឹងផ្ញើអ៊ីមែលទៅអ្នកដោយភ្ជាប់នូវតំណផ្ទៀងផ្ទាត់។", + "1402300547": "តោះផ្ទៀងផ្ទាត់អាសយដ្ឋានរបស់អ្នក", + "1403085197": "ជំរុញយុទ្ធសាស្រ្តជួញដូររបស់អ្នកជាមួយ Accumulators ។", + "1403376207": "អាប់ដេតព័ត៌មានលម្អិតរបស់ខ្ញុំ", "1405584799": "ជាមួយចន្លោះ: {{ candle_interval_type }}", "1407191858": "DTrader", - "1408844944": "ចុចរូបនិមិត្តបូកដើម្បីពង្រីកមុខងារនៃ ប្លុកនេះ។", - "1410016796": "នៅខាងក្រោមកន្លែង:", - "1411373212": "ពាក្យសម្ងាត់ហៅកាន់ការងារបន្តិកយឺតក្រមអក្សរតូចនិងអក្សរធំច្រើន ចំនួនលំនាំអាប់សេរីក្នុងលំនាំដើមអក្សរនិងសញ្ញាដ្យាន។", - "1411419173": "អនុក្រឹតក្នុងអនុគមន៏: {{ accumulator }}", - "1412405902": "មើលកំណត់ចំណាំសំខាន់", - "1412535872": "អ្នកអាចពិនិត្យលទ្ធផលនៃការទិញចុងក្រោយជាមួយប្លុកនេះ។ វាអាចត្រូវបានដាក់នៅក្នុង \"ប្លុកដើម\" ឬ \"ក្ដារបញ្ជា” លក្ខខណ្ឌ។", - "1413047745": "កំណត់តម្លៃដែលបានផ្តល់ទៅអថេរ", + "1408844944": "ចុចរូបតំណាងបូក ដើម្បីពង្រីកមុខងារនៃប្លុកនេះ។", + "1410016796": "ចំណុចខាងក្រោម៖", + "1411373212": "ពាក្យសម្ងាត់ខ្លាំងត្រូវតែមានយ៉ាងហោចណាស់ 8 តួអក្សរ។ រួមទាំងអក្សរធំ និងអក្សរតូច លេខ និងនិមិត្តសញ្ញា។", + "1411419173": "អត្រាកំណើន៖ {{ accumulator }}", + "1412405902": "មើលកំណត់ចំណាំសំខាន់ៗ", + "1412535872": "អ្នកអាចពិនិត្យមើលលទ្ធផលនៃការជួញដូរចុងក្រោយរបស់អ្នកជាមួយប្លុកនេះ។ បន្ទាប់មកវាអាចត្រូវបានដាក់នៅក្នុងប្លុកឫស ឬ root block \"ចាប់ផ្តើមលក្ខខណ្ឌការជួញដូរឡើងវិញ\" តែប៉ុណ្ណោះ។", + "1413047745": "កំណត់តម្លៃដែលបានផ្តល់ឱ្យទៅជាអថេរមួយ។", "1413359359": "ធ្វើការផ្ទេរថ្មី", - "1414205271": "លេខព្រៃ។", + "1414205271": "លេខសំខាន់", "1414366321": "អក្សរធំមួយ", - "1414918420": "យើងនឹងពិនិត្យសារបញ្ជាក់អត្តសញ្ញាណរបស់អ្នកវិញ ហើយនឹងផ្តល់ព័ត៌មានកែប្រែឱ្យអ្នកឆាប់ៗនេះ។", - "1415006332": "ទទួលបានបញ្ជីរងពីក្រុមទីពីរ។", - "1415513655": "ទាញយក cTrader លើទូរស័ព្ទរបស់អ្នកដើម្បីប្រពន្ធនិងរក្សាការបញ្ជាទិញតាមគណនី cTrader របស់ Deriv", - "1415974522": "ប្រសិនបើអ្នកជ្រើស \"Differs\", អ្នកនឹងឈ្នះការទូទាត់ប្រសិនបើលេខចុងក្រោយនៃ tick ចុងក្រោមគឺមិនដូចការទស្សន៍ទាយរបស់អ្នក។", - "1416521695": "មុខតំណែង", - "1417558007": "អតិបរមាចំនួនខាតសរុបក្នុងរយៈពេល 7 ថ្ងៃ", - "1417907460": "គ្មាន​បញ្ហា! Passkey របស់អ្នកនៅតែដំណើរការ។", - "1417914636": "លេខសម្គាល់​ចូល", - "1418115525": "ប្លុក​នេះ​នឹង​ធ្វើ​អំពើ​ណាមួយ​រហូត​ដល់​លក្ខខណ្ឌ​មួយ​ណា​មិនអាច​កើតមានបាន។", - "1419330165": "ប្រាក់ក្រុមហ៊ុន, ប្រភេទផលប្រយោជន៏គ្មានហេតុពូកែប្រេងស្រី, ហ្វីតកន្តិការនិងគុណភាពស្តង់ស្តង់", - "1421046084": "បង្កើតគណនីរបស់អ្នក", - "1421749665": "មធ្យម​ចលនា​ធម្មតា (SMA)", - "1422060302": "ប្លុកនេះជំនួសធាតុជាក់លាក់មួយនៅក្នុងបញ្ជីជាមួយធាតុដែលបានផ្ដល់មួយទៀត។ វាក៏អាចបញ្ចូលធាតុថ្មីនៅក្នុងបញ្ជីនៅទីតាំងជាក់លាក់។", - "1422129582": "ព័ត៌មានទាំងអស់ត្រូវតែច្បាស់លាស់ – មិនមានអ្វីខ្សោយ", - "1423082412": "ខ្ទង់ចុងក្រោយ", + "1414918420": "យើងនឹងពិនិត្យមើលការបញ្ជាក់អត្តសញ្ញាណរបស់អ្នកម្តងទៀត ហើយនឹងផ្តល់ជូនអ្នកនូវព័ត៌មានអាប់ដេតឱ្យបានឆាប់តាមដែលអាចធ្វើទៅបាន។", + "1415006332": "ទទួលបានបញ្ជីរងពី", + "1415513655": "ទាញយក cTrader នៅលើទូរស័ព្ទរបស់អ្នកដើម្បីធ្វើពាណិជ្ជកម្មជាមួយគណនី Deriv cTrader", + "1415974522": "ប្រសិនបើអ្នកជ្រើសរើស “Differs” អ្នកនឹងទទួលបានប្រាក់សំណង ប្រសិនបើលេខចុងក្រោយនៃតម្លៃ Tick លេខចុងក្រោយមិនដូចគ្នានឹងការទស្សន៍ទាយរបស់អ្នក។", + "1416521695": "តំណែង", + "1417558007": "ការខាតបង់សរុបអតិបរមាក្នុងរយៈពេល 7 ថ្ងៃ", + "1417907460": "គ្មានបញ្ហាទេ! Passkey របស់អ្នកនៅតែដំណើរការ។", + "1417914636": "លេខសម្គាល់ចូលប្រព័ន្ធ", + "1418115525": "ប្លុកនេះធ្វើតាមការណែនាំឡើងវិញ ដរាបណាលក្ខខណ្ឌដែលបានផ្តល់ឱ្យគឺពិត។", + "1419330165": "Forex, ភាគហ៊ុន, សន្ទស្សន៍ភាគហ៊ុន, ទំនិញ, រូបិយប័ណ្ណគ្រីបតូ ETF និងសន្ទស្សន៍ Synthetic។", + "1421046084": "កំណត់តម្លៃគណនីរបស់អ្នក", + "1421749665": "តម្លៃមធ្យម Simple Moving Average (SMA)", + "1422060302": "ប្លុកនេះជំនួសធាតុជាក់លាក់មួយពីបញ្ជីជាមួយនឹងធាតុដែលបានផ្តល់ឱ្យផ្សេងទៀត។ វាក៏អាចបញ្ចូលធាតុថ្មីទៅក្នុងបញ្ជីនៅទីតាំងជាក់លាក់ផងមួយដែរ។", + "1422129582": "ព័ត៌មានលម្អិតទាំងអស់ត្រូវតែច្បាស់ - គ្មានអ្វីព្រិលទេ", + "1423082412": "លេខខ្ទង់ចុងក្រោយ", "1423296980": "បញ្ចូលលេខ SSNIT របស់អ្នក", "1424741507": "មើល​បន្ថែម", "1424763981": "1-3-2-6", - "1424779296": "ប្រសិនបើអ្នកទើបតែប្រើប៉ុន ប៉ុន្តែមិនឃើញវា​នៅក្នុងបញ្ជីនេះ អាចជាករណីថា៖", - "1428657171": "អ្នកអាចធ្វើការដាក់ប្រាក់បានតែប៉ុណ្ណោះ។ សូមទាក់ទងមកយើងខ្ញុំសម្រាប់ព័ត៌មានបន្ថែមបន្ថែមនឹង។", - "1430221139": "ផ្ទៀងផ្ទាត់ឥតគិតថ្លៃនេះម្តងទៀត", - "1430396558": "5. ចាប់ផ្តើមទិញ/លក់វិញពេលមានកំហុស", - "1430632931": "ដើម្បីចាប់ផ្តើមជួញដូរ, សូមបញ្ជាក់អ្នកជា​អ្នកណា និងកន្លែងដែលអ្នករស់នៅ", - "1433367863": "សូមអភ័យទោស, មានកំហុសកើតឡើងក្នុងពេលដំណើរការសំណើរបស់អ្នក", - "1434382099": "បង្ហាញបង្អួចស្តាំជាមួយសារ", - "1434767075": "ចាប់ផ្តើមនៅ Deriv Bot", - "1434976996": "សេចក្តីប្រកាស", - "1435363248": "ប្លុកនេះបំលែងចំនួនវិនាទីចាប់តាំងពី Unix Epoch ទៅទ្រង់ទ្រាយកាលបរិច្ឆេទ និងម៉ោងដូចជា 2019-08-01 00:00:00។", - "1437529196": "បេក្ខជននៅវិស័យបេក្ខជន", - "1438247001": "អតិថិជនដែលជាកម្មករផ្នែកវិជ្ជាជីវៈទទួលបានការការពារអតិថិជនក្នុងកម្រិតទាបជាងដោយសារតែលេខត្រួតពិនិត្យ។", + "1424779296": "ប្រសិនបើថ្មីៗនេះអ្នកបានប្រើ bots ប៉ុន្តែមិនឃើញពួកវានៅក្នុងបញ្ជីនេះទេ វាអាចដោយសារតែអ្នក៖", + "1428657171": "អ្នកអាចដាក់ប្រាក់បញ្ញើតែប៉ុណ្ណោះ។ សូមទាក់ទងមកយើងខ្ញុំតាមរយៈ <0>ការជជែកផ្ទាល់ សម្រាប់ព័ត៌មានបន្ថែម។", + "1430221139": "ផ្ទៀងផ្ទាត់ឥឡូវនេះ", + "1430396558": "5. ចាប់ផ្តើមការទិញ/លក់ឡើងវិញពេលមានកំហុស", + "1430632931": "ដើម្បីធ្វើការជួញដូរ សូមបញ្ជាក់ថាអ្នកជានរណា និងកន្លែងដែលអ្នករស់នៅ។", + "1433367863": "សូមអភ័យទោស កំហុសបានកើតឡើងខណៈពេលកំពុងដំណើរការសំណើរបស់អ្នក។", + "1434382099": "បង្ហាញបង្អួចប្រអប់ដែលមានសារ", + "1434767075": "ចាប់ផ្តើមនៅលើ Deriv Bot", + "1434976996": "សេចក្តីជូនដំណឹង", + "1435363248": "ប្លុកនេះបំប្លែងចំនួនវិនាទីនៃពេលវេលាសកលចាប់តាំងពីចំណុចពេលវេលាស្តង់ដារ Unix Epoch ទៅជាទម្រង់កាលបរិច្ឆេទ និងពេលវេលាដូចជា 2019-08-01 00:00:00។", + "1437529196": "ប័ណ្ណប្រាក់បៀវត្សរ៍", + "1438247001": "អតិថិជនដែលមានជំនាញវិជ្ជាជីវៈទទួលបានការការពារអតិថិជនកម្រិតទាបដោយសារកត្តាខាងក្រោម។", "1438340491": "ផ្សេងទៀត", "1439168633": "Stop loss:", - "1441208301": "សរុប<0 />ចំណេញ/ខាត", - "1442747050": "ចំនួនខាតបង់: <0>{{profit}}", - "1442840749": "លេខគណនី", - "1443478428": "សំណើដែលបានជ្រើសមិនមាន", - "1444066971": "វាហាក់ដូចជាអ្នកបានដាក់ឯកសារនេះពីមុនមក។ បង្ហោះឯកសារថ្មី។", - "1444843056": "គណៈកម្មាធិការរាជការ", - "1445592224": "អ្នកបានផ្តល់អាសយដ្ឋានអ៊ីម៉ែលផ្សេងមកជាផ្លូវការដោយចៃដន្យ (ជាទូទៅគឺអ៊ីម៉ែលការងារឬអ៊ីម៉ែលផ្ទាល់ខ្លួនជំនួសមួយដែលអ្នកចង់បំពេញ)។", - "1447698999": "ការដកប្រាក់អាចត្រូវបានលុបចោល ប្រសិនបើពួកគេនៅតែស្ថិតក្នុងស្ថានភាព 'បានស្នើសុំ' (អ្នកអាចពិនិត្យមើលស្ថានភាពរបស់អ្នកនៅក្រោមការបង់ប្រាក់ដែលមិនទាន់សម្រេច)។ នៅពេលដែលស្ថានភាពផ្លាស់ប្តូរទៅជា 'អនុញ្ញាត' នៅក្នុង 'កំពុងដំណើរការ' ឬ 'បានដំណើរការ' ការលុបចោលគឺមិនអាចធ្វើទៅបានទេ។", - "1449462402": "កំពុងពិនិត្យ", + "1441208301": "សរុប<0 />ប្រាក់ចំណេញ/ខាត", + "1442747050": "ចំនួនទឹកប្រាក់បាត់បង់៖ <0>{{profit}}", + "1442840749": "ចំនួនគត់ចៃដន្យ", + "1443478428": "មិនមានសំណើដែលបានជ្រើសរើសទេ", + "1444066971": "វាហាក់ដូចជាអ្នកបានដាក់ឯកសារនេះពីមុនមក។ អាប់ឡូតឯកសារថ្មី។", + "1444843056": "គណៈកម្មការកិច្ចការសាជីវកម្ម", + "1445592224": "អ្នកបានផ្តល់អាសយដ្ឋានអ៊ីមែលផ្សេងទៀតមកយើងដោយចៃដន្យ (ជាធម្មតានេះគឺជាអាសយដ្ឋានអ៊ីមែលការងារ ឬផ្ទាល់ខ្លួនរបស់អ្នក ជាជាងអាសយដ្ឋានដែលអ្នកចង់ប្រើ)។", + "1447698999": "ការដកប្រាក់អាចត្រូវបានលុបចោល ប្រសិនបើពួកគេនៅតែស្ថិតក្នុងស្ថានភាព 'បានស្នើសុំ' (អ្នកអាចពិនិត្យមើលស្ថានភាពរបស់អ្នកនៅក្រោមការបង់ប្រាក់ដែលមិនទាន់សម្រេច)។ នៅពេលដែលស្ថានភាពផ្លាស់ប្តូរទៅជា 'អនុញ្ញាត' នៅក្នុង 'កំពុងដំណើរការ' ឬ 'បានដំណើរការហើយ' ការលុបចោលគឺមិនអាចធ្វើទៅបានទេ។", + "1449462402": "នៅក្នុងការពិនិត្យឡើងវិញ", "1451838304": "មុខងារថ្មីសម្រាប់អ្នកអភិវឌ្ឍន៍។", - "1452260922": "ព្យាយាមបរាជ័យច្រើនពេក", - "1452941569": "ប្លុកនេះពន្យាពេលការអនុវត្តរយៈពេលចំនួនវិនាទីដែលបានផ្ដល់។ អ្នកអាចដាក់ប្លុកណាមួយនៅក្នុងប្លុកនេះ។ ការអនុវត្តប្លុកផ្សេងៗនៅក្នុងយុទ្ធសាស្ត្ររបស់អ្នកនឹងត្រូវបានផ្អាករហូតដល់ការណែនាំក្នុងប្លុកនេះត្រូវបានអនុវត្ត។", - "1453317405": "ប្លុកនេះផ្តល់សមតុល្យគណនីរបស់អ្នកទាំងជា​ចំនួន ឬ​ជាអត្ថបទ។", - "1454406889": "ជ្រើសយក<0>ដល់ទៅជាជម្រើសក្រោយ។", - "1454648764": "លេខយោងការទិញ", - "1455741083": "សូមផ្ទុកផ្នែកក្រោយនៃវិញ្ញាញ្រតថាភពរបស់អ្នក។", + "1452260922": "មានការ​ព្យាយាមធ្វើប្រតិបត្តការ​បរាជ័យ​ច្រើន​ពេក", + "1452941569": "ប្លុកនេះពន្យារពេលដំណើរការតាមចំនួនវិនាទីដែលបានកំណត់។ អ្នកអាចដាក់ប្លុកណាមួយនៅក្នុងប្លុកនេះបាន។ ការប្រតិបត្តិនៃប្លុកផ្សេងទៀតនៅក្នុងយុទ្ធសាស្រ្តរបស់អ្នកនឹងត្រូវបានផ្អាករហូតដល់ការណែនាំបញ្ជានៅក្នុងប្លុកនេះត្រូវបានអនុវត្ត។", + "1453317405": "ប្លុកនេះផ្តល់ឱ្យអ្នកនូវសមតុល្យទឹកប្រាក់នៃគណនីរបស់អ្នកជាលេខ ឬខ្សែអក្សរ។", + "1454406889": "ជ្រើសរើស <0>រហូតដល់ ជាជម្រើសដដែលៗ។", + "1454648764": "លេខសម្គាល់ឯកសារយោង", + "1455741083": "អាប់ឡូតផ្នែកខាងក្រោយប័ណ្ណបើកបររបស់អ្នក។", "1457341530": "ការផ្ទៀងផ្ទាត់ភស្តុតាងអត្តសញ្ញាណរបស់អ្នកបានបរាជ័យ", "1457603571": "គ្មានការជូនដំណឹង", - "1458160370": "Enter your {{platform}} password to add a {{platform_name}} {{account}} {{jurisdiction_shortcode}} account.", + "1458160370": "បញ្ចូលពាក្យសម្ងាត់ {{platform}} របស់អ្នក ដើម្បីបន្ថែមគណនី {{platform_name}} {{account}} {{jurisdiction_shortcode}} ។", "1459761348": "បញ្ជូនភស្តុតាងនៃអត្តសញ្ញាណ", "1461323093": "បង្ហាញសារនៅក្នុងកុងសូលរបស់អ្នកអភិវឌ្ឍន៍។", - "1462238858": "ដោយការទិញកុងត្រា \"High-to-Close\", អ្នកនឹងឈ្នះម៉ូលទំនិញគុណនឹងភាពខុសគ្នារវាងតម្លៃខ្ពស់ និងបិទនៅក្នុងរយៈពេលកុងត្រា។", - "1464190305": "ប្លុកនេះនឹងផ្ទេរការគ្រប់គ្រងទៅវិញទៅកាន់ប្លុកលក្ខខណ្ឌការទិញដែលអនុញ្ញាតឱ្យអ្នកទិញកុងត្រាថ្មីដោយគ្មានការឈប់ដៃនិងចាប់ផ្តើម Bot របស់អ្នកឡើងវិញ។", - "1464253511": "អ្នកមានគណនីសម្រាប់រូបិយវត្ថុឌីជីថលគ្រប់ប្រភេទដែលមាននៅលើ {{deriv}}។", - "1465084972": "តើអ្នកមានបទពិសោធន៍ប៉ុន្មានជាមួយឧបករណ៍ហិរញ្ញវត្ថុផ្សេងទៀត?", + "1462238858": "តាមរយៈការទិញកិច្ចសន្យា \"High-to-Close\" អ្នកនឹងឈ្នះបានប្រាក់សំណងក្នុងចំនួនដែលស្មើនឹងតម្លៃ Multiplier គុណនឹងកម្លៃនៃភាពខុសគ្នារវាងតម្លៃខ្ពស់ និងតម្លៃបិទក្នុងរយៈពេលនៃកិច្ចសន្យា។", + "1464190305": "ប្លុកនេះនឹងផ្ទេរការគ្រប់គ្រងត្រឡប់ទៅប្លុកលក្ខខណ្ឌទិញវិញ ដោយអនុញ្ញាតឱ្យអ្នកអាចទិញកិច្ចសន្យាផ្សេងទៀតដោយមិនចាំបាច់បញ្ឈប់ និងចាប់ផ្តើម bot របស់អ្នកឡើងវិញដោយខ្លួនឯង។", + "1464253511": "អ្នកមានគណនីសម្រាប់រូបិយប័ណ្ណគ្រីបតូនីមួយៗដែលមាននៅលើ {{deriv}} រួចហើយ។", + "1465084972": "តើអ្នកមានបទពិសោធន៍ខ្លាំងប៉ុណ្ណាជាមួយឧបករណ៍ហិរញ្ញវត្ថុផ្សេងទៀត?", "1465919899": "រើសថ្ងៃបញ្ចប់", - "1466430429": "គួរតែនៅចន្លោះ {{min_value}} និង {{max_value}}", + "1466430429": "គួរស្ថិតនៅចន្លោះ {{min_value}} និង {{max_value}}", "1466900145": "Doe", - "1467017903": "ទីផ្សារនេះមិនទាន់មាននៅលើ {{platform_name_trader}} ទេ ប៉ុន្តែវាមាននៅលើ {{platform_name_smarttrader}}។", - "1467421920": "ជាមួយចន្លោះ: %1", + "1467017903": "ទីផ្សារនេះមិនទាន់អាចប្រើបាននៅលើ {{platform_name_trader}} ទេ ប៉ុន្តែវាអាចប្រើបាននៅលើ {{platform_name_smarttrader}}។", + "1467421920": "ជាមួយចន្លោះពេល៖ %1", "1467880277": "3. សំណួរទូទៅ", - "1468308734": "ប្លុកនេះនឹងធ្វើអោយមានភាពជូនដំណឹងស្រដៀងគ្នា។", - "1468419186": "Deriv បច្ចុប្បន្នគាំទ្រការដកប្រាក់ Tether USDT ទៅកាន់ Omni wallet។ ដើម្បីធានាបាននូវប្រតិបត្តិការដែលជោគជ័យ, បញ្ចូលអាសយដ្ឋាន wallet ដែលត្រូវគ្នានឹង token ដែលអ្នកចង់ដក។ <0>ស្វែងយល់បន្ថែម", - "1468508098": "ការរអិលកើតឡើងនៅពេលដែលតម្លៃទ្រព្យសម្បត្តិផ្លាស់ប្តូរនៅពេលវាចូលដល់ម៉ាស៊ីនមេរបស់យើង។", - "1469133110": "កម្មវិធី cTrader សំរេចចិត្តដែលអាចប្រើបានលើ Windows", + "1468308734": "ប្លុកនេះធ្វើការណែនាំឡើងវិញ ដរាបណាលក្ខខណ្ឌដែលបានកំណត់គឺពិត", + "1468419186": "បច្ចុប្បន្ន Deriv គាំទ្រការដកប្រាក់ Tether USDT ទៅ Omni wallet។ ដើម្បីធានាបាននូវប្រតិបត្តិការជោគជ័យ សូមបញ្ចូលអាសយដ្ឋានកាបូបដែលត្រូវគ្នាជាមួយសញ្ញាសម្ងាត់ដែលអ្នកចង់ដក។ <0>ស្វែងយល់បន្ថែម", + "1468508098": "តម្លៃ slippage កើតឡើងនៅពេលដែលតម្លៃទ្រព្យសកម្មផ្លាស់ប្តូរតាមពេលវាទៅដល់ម៉ាស៊ីនមេរបស់យើង។", + "1469133110": "កម្មវិធី cTrader សម្រាប់ Windows", "1469150826": "Take Profit", - "1469764234": "កំហុស អ្នកគិតលុយ", - "1469814942": "- ចែក", - "1470319695": "ត្រឡប់វិញមែនឬមិនមែន។", - "1470565177": "ឲ្យមើលឯកសារនិងប្រភេទ​​អត្តសញ្ញាណក្រុមហ៊ុន", - "1471008053": "Deriv Bot មិនទាន់ត្រៀមខ្លួនសម្រាប់គណនីពិតទេ", - "1471070549": "តើអាចលក់កិច្ចសន្យានេះបានទេ?", - "1471741480": "កំហុសធ្ងន់", - "1473369747": "សន្តិការសំsynthetic (synthetics only)", + "1469764234": "កំហុសប្រព័ន្ធបេឡា", + "1469814942": "- ការចែក", + "1470319695": "ត្រឡប់ទាំងតម្លៃពិតឬមិនពិត", + "1470565177": "បទប្បញ្ញត្តិរបស់ក្រុមហ៊ុន", + "1471008053": "Deriv Bot មិនទាន់រួចរាល់សម្រាប់ប្រើគណនីពិតទេ", + "1471070549": "តើអាចលក់កិច្ចសន្យាបានទេ?", + "1471741480": "កំហុសធ្ងន់ធ្ងរ", + "1473369747": "សន្ទស្សន៍ Synthetic ប៉ុណ្ណោះ", "1475513172": "ទំហំ", - "1476301886": "ដូចគ្នានឹង SMA ប្លុកនេះផ្ដល់សាយ SMA ទាំងមូល ដែលមានបញ្ជីនៃតម្លៃទាំងអស់សម្រាប់រយៈពេលដែលបានផ្ដល់។", - "1478030986": "បង្កើត ឬលុបតូកិន API សម្រាប់ការជួញដូរ និងការដកប្រាក់", + "1476301886": "ស្រដៀងទៅនឹង SMA ប្លុកនេះផ្តល់ឱ្យអ្នកនូវបន្ទាត់ SMA ទាំងមូលដែលមានបញ្ជីតម្លៃទាំងអស់សម្រាប់រយៈពេលដែលបានកំណត់។", + "1478030986": "បង្កើត ឬលុបសញ្ញាសម្ងាត់ API សម្រាប់ការជួញដូរ និងការដកប្រាក់", "1480915523": "រំលង", - "1484336612": "ខ្សែសង្រ្គោះនេះត្រូវបានប្រើដើម្បីបញ្ចប់ ឬបន្តចំណុចធ្វើឡើងវិញ ហើយអាចដាក់នៅគ្រប់ទីកន្លែងក្នុងខ្សែសង្រ្គោះ។", - "1487086154": "ឯកសាររបស់អ្នកត្រូវបានដាក់ស្នើដោយជោគជ័យ", - "1488548367": "ផ្ទុកឡើងវិញ", - "1490509675": "គណនីជម្រើស", + "1484336612": "ប្លុកនេះត្រូវបានប្រើដើម្បីបញ្ចប់ ឬបន្តរង្វិលជុំ ហើយអាចដាក់នៅកន្លែងណាមួយក្នុងប្លុករង្វិលជុំ។", + "1487086154": "ឯកសាររបស់អ្នកត្រូវបានដាក់បញ្ជូនដោយជោគជ័យហើយ", + "1488548367": "អាប់ឡូតម្តងទៀត", + "1490509675": "គណនីអប់សិន", "1491392301": "<0>បានលក់សម្រាប់: {{sold_for}}", - "1492686447": "គណនី MT5 Financial STP របស់អ្នកនឹងត្រូវបានបើកតាមរយៈ Deriv (FX) Ltd។ ការជួញដូរទាំងអស់នៅក្នុងគណនីនេះ ស្ថិតនៅក្រោមបទបញ្ជា និងណែនាំរបស់ Labuan Financial Service Authority (LFSA)។ គណនីផ្សេងទៀតរបស់អ្នក រួមទាំងគណនី Deriv របស់អ្នក មិនស្ថិតនៅក្រោមបទបញ្ជា និងណែនាំរបស់ Labuan Financial Service Authority (LFSA)។", + "1492686447": "គណនី MT5 Financial STP របស់អ្នកនឹងត្រូវបានបើកតាមរយៈ Deriv (FX) Ltd ។ ដោយការជួញដូរទាំងអស់នៅក្នុងគណនីនេះគឺស្ថិតនៅក្រោមបទប្បញ្ញត្តិ និងគោលការណ៍ណែនាំរបស់ Labuan Financial Service Authority (LFSA)។ គ្មានគណនីណាមួយផ្សេងទៀតរបស់អ្នក រួមទាំងគណនី Deriv របស់អ្នក ស្ថិតនៅក្រោមបទប្បញ្ញត្តិ និងគោលការណ៍ណែនាំរបស់ Labuan Financial Service Authority (LFSA) ទេ។", "1493673429": "ផ្លាស់ប្តូរអ៊ីមែល", - "1493866481": "បើក Deriv X នៅលើកម្មវិធីរុករករបស់អ្នក", - "1495294225": "កំណត់បន្ទាត់តម្លៃគោលដៅក្នុងតម្លៃជាក់លាក់មួយ។", + "1493866481": "ដំណើរការ Deriv X នៅលើកម្មវិធីរុករករបស់អ្នក", + "1495294225": "កំណត់បន្ទាត់តម្លៃគោលដៅក្នុងតម្លៃជាក់លាក់មួយ", "1496810530": "GBP/AUD", "1497773819": "គណនី Deriv MT5", "1499080621": "បានព្យាយាមធ្វើប្រតិបត្តិការមិនត្រឹមត្រូវ។", - "1501691227": "បន្ថែមគណនី Deriv MT5 <0>{{account_type_name}} របស់អ្នកនៅក្រោម Deriv (V) Ltd, ដែលត្រូវបានគ្រប់គ្រងដោយ Vanuatu Financial Services Commission។", - "1502039206": "លើ {{barrier}}", - "1502325741": "លេខសំងាត់របស់អ្នកមិនអាចដូចគ្នានឹងអ៊ីមែលរបស់អ្នកទេ", - "1503419760": "CFDs Swap-free លើឧបករណ៍ហិរញ្ញវត្ថុ និងឧបករណ៍ដែលបានជ្រើសរើស។", - "1503618738": "- លេខសម្គាល់យោងកិច្ចព្រមព្រៀង: លេខសម្គាល់យោងនៃកិច្ចសន្យា", - "1505420815": "មិនមានភ្នាក់ងារទូទាត់ដែលត្រូវបានរកឃើញសម្រាប់ការស្វែងរករបស់អ្នក", - "1505927599": "សេវាកម្មរបស់យើងមានការលំបាក។ សូមធ្វើម្ដងទៀត។", + "1499733992": "ត្រូវបានផ្ទៀងផ្ទាត់ជាលេខទូរស័ព្ទរបស់អ្នក។", + "1501691227": "បន្ថែមគណនី Deriv MT5 <0>{{account_type_name}} របស់អ្នកនៅក្រោម Deriv (V) Ltd ដែលគ្រប់គ្រងដោយ Vanuatu Financial Services Commission។", + "1502039206": "លើសពី {{barrier}}", + "1502325741": "ពាក្យសម្ងាត់របស់អ្នកមិនអាចដូចគ្នានឹងអាសយដ្ឋានអ៊ីមែលរបស់អ្នកទេ។", + "1503419760": "CFD ដោយមិនគិតថ្លៃ swp លើឧបករណ៍ហិរញ្ញវត្ថុ និងឧបករណ៍ Derived ដែលបានជ្រើសរើស។", + "1503618738": "- លេខសម្គាល់សេចក្តីយោងកិច្ចព្រមព្រៀង៖ លេខសម្គាល់សេចក្តីយោងនៃកិច្ចសន្យា", + "1505420815": "រកមិនឃើញភ្នាក់ងារទូទាត់ប្រាក់សម្រាប់ការស្វែងរករបស់អ្នកទេ", + "1505927599": "ម៉ាស៊ីនមេរបស់យើងមានការប៉ះទង្គិច។ សូម​ធ្វើ​ការរីហ្រ្វេស​ដើម្បី​បន្ត។", "1507554225": "បញ្ជូនភស្តុតាងនៃអាសយដ្ឋានរបស់អ្នក។", "1509559328": "cTrader", "1509570124": "{{buy_value}} (ទិញ)", "1509678193": "ការអប់រំ", - "1510075920": "មាស/USD", + "1510075920": "Gold/USD", "1510357015": "ត្រូវមានទីលំនៅពន្ធ។", "1510735345": "ប្លុកនេះផ្ដល់ឱ្យអ្នកនូវបញ្ជីនៃលេខចុងក្រោយនៃតម្លៃ tick ចុងក្រោយ 1000។", "1512469749": "ឧទាហរណ៍ខាងលើនេះ បានបង្ហាញថា អថេរ candle_open_price ត្រូវបានដំណើរការនៅកន្លែងណាមួយក្នុងប្លុកផ្សេងទៀត។", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "ពេលវេលាចាប់ផ្តើម", "1694517345": "បញ្ចូលអ៊ីមែលថ្មី", - "1694888104": "ផលិតផលដែលផ្តល់ជូននៅលើគេហទំព័ររបស់យើងគឺជាផលិតផលដេរីវេស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់សក្តានុពល។ CFDs គឺជាឧបករណ៍ស្មុគ្រស្មាញដែលមានហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់យ៉ាងឆាប់រហ័សដោយសារតែអានុភាព។ 70.78% នៃគណនីវិនិយោគិនលក់រាយបាត់បង់ប្រាក់នៅពេលធ្វើពាណិជ្ជកម្ម CFDs ជាមួយអ្នកផ្តល់សេវានេះ។ អ្នកគួរតែពិចារណាថាតើអ្នកយល់ពីរបៀបដែលផលិតផលទាំងនេះដំណើរការ និងថាតើអ្នកអាចមានលទ្ធភាពទទួលយកហានិភ័យខ្ពស់នៃការបាត់បង់ប្រាក់របស់អ្នក។", "1696190747": "ការជួញដូរជារូបធាតុមានហានិភ័យ និងចំណេញពិតប្រាកដអាចកំពុងប្រែប្រួលដោយសារប្រព័ន្ធផ្សព្វផ្សាយទីផ្សារ និងអថេរផ្សេងទៀត។ ដូច្នេះ ពលករត្រូវព្រួយព្រួល និងអនុវត្តការស្រាវជ្រាវយ៉ាងដោយឡែកច قبلពេលចូលរួមក្នុងសកម្មភាពជួញដូរ។", "1697529334": "សំខាន់: គណនី <0>{{platform}} {{existing_account}} របស់អ្នក។", "1698624570": "2. ចុច Ok ដើម្បីបញ្ជាក់។", @@ -2640,7 +2639,6 @@ "-1101737402": "សូមជ្រើសរើស*", "-975118358": "គណនីរបស់អ្នកនឹងត្រូវបានបើកជាមួយ {{legal_entity_name}} ដែលត្រូវបានគ្រប់គ្រងដោយ Malta Financial Services Authority (MFSA) ហើយនឹងត្រូវស្ថិតក្រោមច្បាប់របស់ Malta។", "-2073934245": "សេវាកម្មប្រការពាណិជ្ជកម្មហិរញ្ញវត្ថុដែលផ្តល់ដោយគេហទំព័រនេះគឺសមស្របនឹងអតិថិជនដែលទទួលយកឱកាសនៃការបាត់បង់ប្រាក់រក្សាទុក។", - "-1035494182": "អ្នកប្រើបានពិតថាដោយសារគិតថ្លៃ គោលថ្លៃ នឹងយល់ដឹងថាយើងនឹងបើកគណនីសម្រាប់អ្នកហើយអនុញ្ញាតឱ្យអ្នកដាក់ប្រាក់របស់អ្នកទេ។ ដូច្នេះពេលណារយៈពេលទទួលការអនុញ្ញាតអំពីគោលថ្លៃ ៣០ថ្ងៃយើងនឹងសងប្រាក់ដែលបានឈ្នួលស្កន្តតាមវិធីដែលដែលអ្នកប្រើដើម្បីបង់ប្រាក់នេះតាមវិធីដែលអ្នកបានប្រកាស។", "-1125193491": "បន្ថែមគណនី", "-2068229627": "ខ្ញុំមិនមែនជាបុគ្គលដែលមានឋានានុក្រមខ្ពស់នោះទេ។", "-1209644365": "ខ្ញុំបញ្ជាក់ថាសំណើររបស់ខ្ញុំសម្រាប់ការបើកគណនីជាមួយ Deriv Investments (Europe) Ltd ត្រូវបានធ្វើឡើងដោយចេតនារបស់ខ្ញុំផ្ទាល់។", @@ -2757,9 +2755,9 @@ "-222105210": "ផ្ញើលេខកូដឡើងវិញ", "-1601377103": "ជំហានទី 3 ពី 3: បញ្ជាក់លេខរបស់អ្នក", "-121443071": "ជំហានទី 1 ពី 3: ត្រូវការការផ្ទៀងផ្ទាត់អ៊ីមែល", + "-1419026486": "បញ្ចូលលេខកូដ 6 ខ្ទង់ដែលបានផ្ញើទៅអ្នកតាមរយៈ {{phone_verification_type}} នៅ <1>{{users_phone_number}}។ <0>", "-652539141": "លេខកូដ OTP", "-1124039045": "លេខកូដផ្ទៀងផ្ទាត់", - "-1487715516": "{{ phone }} ត្រូវបានផ្ទៀងផ្ទាត់ថាជាលេខទូរស័ព្ទរបស់អ្នក។", "-1184626439": "មិនបានទទួលលេខកូដមែនទេ?{{resendCode}}", "-165489997": "កម្មវិធីផុតកំណត់", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "កំណត់បន្ទាត់តម្លៃគោលដៅដែលទាបជាងតម្លៃ Spot ។", "-635746838": "នៅខាងក្រោមកន្លែង", "-548979988": "តម្លៃដែលបានកំណត់", - "-1013686843": "ម៉ោងបច្ចុប្បន្ន", + "-1838512476": "រើសម៉ោងបញ្ចប់", "-1977959027": "ម៉ោង", - "-1084580778": "ផុតកំណត់នៅ", + "-591705950": "បញ្ចប់នៅ", + "-1013686843": "ម៉ោងបច្ចុប្បន្ន", + "-1727323033": "0 តិច", "-1068424721": "រយៈពេលអតិបរមា", "-718750246": "ភាគចំណែករបស់អ្នកនឹងកើនឡើងនៅ {{growth_rate}}% ក្នុងមួយ tick ត្រាតម្លៃសារធាតុបច្ចុប្បន្ននៅក្នុង ±{{tick_size_barrier_percentage}} ពីតម្លៃទីផ្សារមុន។", "-2131851017": "អត្រាកំណើន", @@ -3987,6 +3987,7 @@ "-1541404572": "TP ត្រូវបានបិទ។", "-1634963573": "SL ត្រូវបានបិទ។", "-337314714": "ថ្ងៃ", + "-1855256857": "ម៉ោង", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index df5ee26bd3bd..5f54ac93cc26 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -1282,7 +1282,6 @@ "1218546232": "피아트 온 램프는 무엇인가요?", "1219844088": "%1 진행", "1221250438": "인출을 활성화 하기 위해서는 귀하의 <0>신분 증명 (POI)과 <1>주소증명(POA)을 제출해 주시고 귀하의 계좌 설정에서 <2>재무평가 또한 완료해 주시기 바랍니다.", - "1221947449": "입력하신 {{users_phone_number}}로 전송된 6자리 코드를 입력하세요. <0>", "1222096166": "은행 통신망, 신용카드 및 전자지갑을 통해 예금하세요", "1222521778": "입금과 인출을 진행하는 것은 어렵습니다.", "1222544232": "우리는 귀하에게 이메일을 보내드렸습니다", @@ -1349,6 +1348,7 @@ "1274380814": "지급액은 <0>핍당 지급액에 최종 가격과 행사 가격 간의 차이 <1>핍 단위로 곱한 금액과 같습니다. 배당금이 초기 베팅 금액보다 높은 경우에만 수익을 얻을 수 있습니다.", "1274819385": "3. 불만사항 및 분쟁", "1276660852": "신분증명 제출", + "1276973471": "당사 웹사이트에서 제공하는 상품은 잠재적 손실 위험이 큰 복합 파생 상품입니다. CFD는 레버리지로 인해 손실이 급속히 커질 위험이 높은 복잡한 상품입니다. 본 업체에서 CFD를 거래하는 개인 투자자 계좌의 70.84% 가 손실을 보고 있습니다. 본인이 이러한 상품의 작동 방식을 이해하고 있는지, 높은 손실 위험을 감수할 수 있는지 고려해야 합니다.", "1279937041": "<0>참고: 일부 복잡한 전략은 Bot Builder에서 문제가 발생할 수 있습니다. 질문이 있으시면 <1/>를 통해 문의해 주세요.", "1281045211": "주어진 목록에서 항목들을 숫자 또는 알파벳값의 오름차순 또는 내림차순을 통해 정리합니다.", "1281290230": "선택하기", @@ -1419,7 +1419,6 @@ "1339613797": "규제 기관/외부 분쟁 해결", "1340286510": "봇이 중지되었지만 거래는 계속 진행 중일 수 있습니다. 보고서 페이지에서 확인할 수 있습니다.", "1341840346": "저널로 보기", - "1341921544": "트레이딩 계좌 및 펀드", "1344696151": "외환, 주식, 주식 지수, 원자재, 암호화폐 및 합성 지수.", "1346038489": "70보다 작아야 합니다.", "1346204508": "이익 실현", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Deriv MT5 계정", "1499080621": "유효하지 않은 연산 수행이 시도되었습니다", + "1499733992": "귀하의 전화번호로 확인되었습니다.", "1501691227": "바누아투 금융 서비스 위원회의 규제를 받는 Deriv (V) Ltd 아래에 귀하의 Deriv MT5 <0>{{account_type_name}} 계정을 추가하세요.", "1502039206": "{{barrier}} 오버", "1502325741": "비밀번호는 귀하의 이메일 주소와 같을 수 없습니다.", @@ -1775,7 +1775,6 @@ "1692912479": "파생 MT5, 파생 X", "1693614409": "시작 시간", "1694517345": "새로운 이메일 주소를 입력하세요", - "1694888104": "당사 웹사이트에서 제공하는 상품은 잠재적 손실 위험이 큰 복합 파생 상품입니다. CFD는 레버리지로 인해 손실이 급속히 커질 위험이 높은 복잡한 상품입니다. 본 업체에서 CFD를 거래하는 개인 투자자 계좌의 70.78% 가 손실을 보고 있습니다. 본인이 이러한 상품의 작동 방식을 이해하고 있는지, 높은 손실 위험을 감수할 수 있는지 고려해야 합니다.", "1696190747": "트레이딩은 본질적으로 위험을 수반하며, 시장 변동성 및 기타 예상치 못한 변수를 포함한 다양한 요인으로 인해 실제 수익이 변동될 수 있습니다. 따라서 거래에 참여하기 전에 주의를 기울이고 철저한 조사를 수행하시기 바랍니다.", "1697529334": "중요: 귀하의 <0>{{platform}} {{existing_account}} 계정입니다.", "1698624570": "2. 확인을 클릭하세요.", @@ -2640,7 +2639,6 @@ "-1101737402": "선택해 주세요*", "-975118358": "귀하의 계좌는 몰타 금융 서비스 당국 (MFSA) 에 의해 규제되는 {{legal_entity_name}} 을 통해 개설될 것이며, 몰타의 법률을 따를 것입니다.", "-2073934245": "이 사이트에서 제공되는 금융 거래 서비스는 투자한 금액을 모두 잃을 수 있는 가능성을 받아들이고 금융 계약의 구매에 연루되어 있는 위험에 대한 경험을 보유하신 고개분들만을 위한 것입니다. 금융 계약에서의 거래는 높은 수준의 위험을 수반합니다. 만약 귀하께서 구매하신 계약이 아무 가치가 없는 것으로 만기되면, 귀하께서는 해당되는 계약 프리미엄을 포함하는 투자하신 모든 부분을 잃게 될 것입니다.", - "-1035494182": "귀하는 회사의 재량, 관련 규정 및 내부 확인이 완료되는 경우, 고객 수락 절차가 진행되는 동안 당사가 귀하를 위해 계좌를 개설하고 자금을 입금할 수 있음을 인정합니다. 그러나 계좌 확인이 완료될 때까지는 거래, 출금 또는 추가 입금을 할 수 없습니다. 30일 이내에 관련 서류를 제출하지 않으면 입금할 때 사용한 결제수단을 통해 입금된 금액을 환불해 드립니다.", "-1125193491": "계좌 추가", "-2068229627": "저는 PEP가 아니며 지난 12개월간 PEP가 된 적이 없습니다.", "-1209644365": "본인은 Deriv Investments (Europe) Ltd에 계좌 개설을 요청하는 것이 본인의 주도로 이루어졌음을 확인합니다.", @@ -2757,9 +2755,9 @@ "-222105210": "코드 재전송", "-1601377103": "3단계 중 3단계: 번호를 인증하세요", "-121443071": "3단계 중 1단계: 이메일 인증 필요", + "-1419026486": "{{phone_verification_type}}를 통해 <1>{{users_phone_number}}으로 전송된 6자리 코드를 입력하세요. <0>", "-652539141": "OTP 코드", "-1124039045": "인증 코드", - "-1487715516": "{{phone}}가 귀하의 전화번호로 확인되었습니다.", "-1184626439": "코드를 받지 못하셨나요?{{resendCode}}", "-165489997": "세션이 만료되었습니다", "-1822545742": "이더리움 클래식", @@ -3948,9 +3946,11 @@ "-1858102926": "장벽이 현물 가격 아래에 설정됩니다.", "-635746838": "아래 스팟", "-548979988": "고정 가격", - "-1013686843": "현재 시간", + "-1838512476": "종료 시각을 선택하세요", "-1977959027": "시간", - "-1084580778": "종료 시각", + "-591705950": "종료 시각", + "-1013686843": "현재 시간", + "-1727323033": "0 분", "-1068424721": "최대 기간", "-718750246": "현재 현물 가격이 이전 현물 가격에서 ±{{tick_size_barrier_percentage}} 이내로 유지되는 한, 귀하의 지분은 틱당 {{growth_rate}}% 씩 증가합니다.", "-2131851017": "성장률", @@ -3987,6 +3987,7 @@ "-1541404572": "TP가 비활성화되었습니다.", "-1634963573": "SL이 비활성화되었습니다.", "-337314714": "일", + "-1855256857": "h", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/mn.json b/packages/translations/src/translations/mn.json index 95d9066b780a..08748041032e 100644 --- a/packages/translations/src/translations/mn.json +++ b/packages/translations/src/translations/mn.json @@ -6,7 +6,7 @@ "3215342": "Сүүлийн 30 хоног", "3420069": "Саатал гарахгүйн тулд <0>нэр, төрсөн <0>огноогоо яг таны иргэний үнэмлэх, бичиг баримт дээр байдгаар нь оруулна уу.", "4547840": "<0>Мөнгө шилжүүлэхийн тулд дансаа баталгаажуулна уу <1>Баталгажуулах", - "5149403": "Арилжааны төрлүүдийн талаар илүү ихийг олж мэдье", + "5149403": "Арилжааны төрлүүдийн талаар", "7100308": "00-ээс 23-н цагийн хооронд байх ёстой.", "9488203": "Deriv Bot бол дижитал options-г арилжаалах вэб дээр суурилсан стратеги юм. Drag-and-drop 'блокууд' ашиглан өөрийн автоматжуулсан арилжааны ботыг бүтээх боломжтой платформ юм.", "9757544": "Оршин суугаа хаягын нотлогоог илгээнэ үү.", @@ -43,7 +43,7 @@ "49404821": "Хэрэв та \"<0>{{trade_type}}\" опционыг худалдаж авбал эцсийн үнэ нь ажил хаялтын үнэ {{payout_status}} бол хугацаа дуусах үед ногдол авна. Үгүй бол таны “<0>{{trade_type}}” опционы хугацаа ашиглагдахгүй дуусна.", "50717678": "Илүү хурднаар дахин импортлохын тулд шинэчилсэн стратегийг хадгалж аваарай.", "53801223": "Хонг Конг 50", - "53964766": "5. Ботоо татаж авахын тулд Save дээр дарна уу. Та өөрийн ботыг төхөөрөмжрүүгээ эсвэл Google Drive дээрээ татаж авч болно.", + "53964766": "5. Ботоо татаж авахдаа Татаж авах товч дээр дарна уу. Та ботоо өөрийн төхөөрөмж рүү эсвэл Google Drive руу татаж авч болно.", "54185751": "100,000 доллараас бага", "54363400": "Бид <0>{{users_email}} руу баталгаажуулах код илгээсэн.", "55340304": "Одоогийн гэрээгээ хадгалах уу?", @@ -157,7 +157,7 @@ "151646545": "{{name}}файлыг унших боломжгүй", "152120783": "Анхаар: tUSDT хадгаламжийн хаяг өөрчлөгдлөө", "152415091": "Математик", - "152524253": "Хэрэглэгчид ээлтэй гэдгээрээ алартай платформоор дэлхийн зах зээл дээр арилжаалах боломж.", + "152524253": "Хэрэглэгчид ээлтэй гэдгээрээ алдартай платформоор дэлхийн зах зээл дээр арилжаалах боломж.", "153485708": "Zero Spread - BVI", "154274415": "Хугацаа дуусах үеийн төлбөр нь эцсийн үнэ болон саад бэрхшээлийн хоорондох зайгаар үржүүлсэн цэгт ногдох төлбөртэй тэнцүү байна.", "157593038": "{{ start_number }} -аас {{ end_number }}хүртэлх санамсаргүй бүхэл тоо", @@ -205,7 +205,7 @@ "203271702": "Дахин үзээрэй", "203297887": "Таны дөнгөж бүтээсэн Түргэн Стратеги нь ажлын талбарт ачаалагдах болно.", "203337807": "<0>Коммуналын төлбөр: Цахилгаан, ус, хий, эсвэл утасны төлбөр.", - "203924654": "Эхлэхийн <0>тулд Start товчийг дарж, зааврыг дагана уу.", + "203924654": "Эхлэхдээ <0>Start товчийг дарж, заавар зөвлөмжийг дагана уу.", "204797764": "Үйлчлүүлэгчид шилжүүлэх", "204863103": "Гарах цаг", "207521645": "Цаг дахин тохируулах", @@ -245,7 +245,7 @@ "245005091": "доод", "245187862": "DRC <0>гомдлын талаар шийдвэр гаргана (DRC шийдвэрээ зарлах хугацаа байхгүй байгааг анхаарна уу).", "245812353": "хэрэв {{ condition }} буцах бол {{ value }}", - "246428134": "Алхам алхам алхмаар", + "246428134": "Зааварчилгаа", "248153700": "Нууц үгээ дахин тохируулах", "248565468": "Өөрийн {{ identifier_title }} дансны имэйлийг шалгаад цааш үргэлжлүүлэхийн тулд имэйл дэх холбоосыг дарна уу.", "248909149": "Аюулгүй холбоос утсандаа илгээх", @@ -263,7 +263,7 @@ "260086036": "Таны bot ажиллаж эхлэх үед нэг удаа даалгавруудыг гүйцэтгэхийн тулд энд блокуудыг байрлуул.", "260361841": "Татварын үнэмлэх дугаар 25 тэмдэгтээс урт байж болохгүй.", "260393332": "Таны баримт бичиг хянагдаж байгаа хэвээр байгаа тул та цаашид хадгаламж хийх боломжгүй. Таны баталгаажуулалтыг баталгаажуулсны дараа бид танд 3 хоногийн дотор имэйлээр мэдэгдэх болно.", - "261074187": "4. Блокуудыг ажлын талбар дээр ачаалсны дараа, хэрэв та хүсвэл параметрүүдийг өөрчлөх, эсвэл арилжаа эхлэхийн тулд Run дээр дарна уу.", + "261074187": "4. Блокуудыг ажлын талбар дээр оруулсны дараа параметрүүдийг өөрчлөх, эсвэл арилжаагаа эхлэхдээ Эхлүүлэх товч дээр дарна уу.", "261250441": "Худал <0>даа дахин блокыг чирээд Repeat <0>хүртэл блокийн <0>do хэсэгт нэмнэ үү.", "262095250": "Хэрэв та <0>“Put” гэж сон говол эцсийн үнэ нь дуусах үед ажил хаялтын үнээс доогуур байвал төлбөрийг олох болно. Үгүй бол та төлбөр авахгүй.", "264976398": "3. 'Алда' нь нэн даруй шийдвэрлэх шаардлагатай зүйлийг тодруулахын тулд улаан өнгөтэй мессежийг харуулдаг.", @@ -528,7 +528,7 @@ "521872670": "зүйл", "522703281": "хуваагддаг", "523123321": "- Өгөгдсөн тооны хүчээр 10", - "524459540": "Би хувьсагчийг хэрхэн үүсгэх вэ?", + "524459540": " Хувьсагчийг хэрхэн үүсгэх вэ?", "527329988": "Энэ бол топ 100 нийтлэг нууц үг юм", "529056539": "Options", "531114081": "3. Гэрээний төрөл", @@ -572,7 +572,7 @@ "567163880": "{{platform}} нууц үг үүсгэх", "567755787": "Татварын үнэмлэх дугаар шаардлагатай.", "569057236": "Таны баримт бичгийг аль улсад гаргасан бэ?", - "572576218": "Хэлний сонголт", + "572576218": "Хэл сонгох", "573173477": "Лаа {{ input_candle }} хар уу?", "575668969": "3. Ашиг хүргэх арилжааны хувьд дараагийн арилжааны хувьцааг 2 ам.доллараар нэмэгдүүлнэ. Deriv Bot амжилттай арилжаа бүрт 2 ам.доллар нэмсээр байх болно. А1-ийг үзнэ үү.", "575702000": "Селфи, байшингийн зураг, эсвэл хамааралгүй зургууд татгалзах болно гэдгийг санаарай.", @@ -723,7 +723,7 @@ "705262734": "Таны түрийвч бэлэн боллоо", "705299518": "Дараа нь таны зургийг агуулсан паспортынхаа хуудсыг байршуулна уу.", "705697927": "2. Өөрийн дуртай нэгжийг тохируулна уу. Энэ жишээнд энэ нь 2 нэгж буюу 2 ам.доллар юм.", - "705821926": "Энэ арилжааны төрлийн талаар мэдэх", + "705821926": "Арилжааны төрлүүдтэй танилцах", "706727320": "Хоёртын сонголтуудын худалдааны давтамж", "706755289": "Энэ блок нь тригонометрийн функцийг гүйцэтгэдэг.", "706960383": "Хэрэв та гэрээгээ дуусахаас өмнө зарахаар сонгосон тохиолдолд бид энэ үнээр худалдан авах санал болгоно. Энэ нь одоогийн спот үнэ, үргэлжлэх хугацаа гэх мэт хэд хэдэн хүчин зүйл дээр тулгуурладаг Гэсэн хэдий ч үлдсэн хугацаа нь 60 секундээс доош байвал бид гэрээний үнэ цэнийг санал болгохгүй.", @@ -786,7 +786,7 @@ "758492962": "210+", "760528514": "“I” -ийн утгыг өөрчлөх нь жагсаалтын анхны зүйлийн утгыг өөрчлөхгүй гэдгийг анхаарна уу", "761576760": "Арилжаа эхлэхийн тулд дансаа санхүүжүүлнэ үү.", - "762926186": "Түргэн стратеги бол Deriv Bot дээр ашиглаж болох бэлэн стратеги юм. Танд сонгож болох 3 хурдан стратеги байдаг: Martingale, D'Alembert, болон Оскарын Grind.", + "762926186": "Тогтмол стратеги нь Deriv Bot дээр ашиглах боломжтой бэлэн стратеги юм. Та дараах 3 төрлийн тогтмол стратегиас сонгож болно: Martingale, D'Alembert, болон Oscar's Grind.", "764366329": "Арилжааны лимит", "766317539": "Хэл", "768301339": "Блокуудыг устгах", @@ -796,7 +796,7 @@ "773309981": "Oil/USD", "773336410": "Tether бол тоон байдлаар fiat валютын хэрэглээг хөнгөвчлөх зорилготой блокчейн идэвхжүүлсэн платформ юм.", "775679302": "{{pending_withdrawals}} хүлээгдэж буй төлбөр (ууд)", - "775706054": "Та худалдааны ботуудыг зардаг уу?", + "775706054": "Энд арилжааны ботууд зардаг уу?", "776085955": "Стратеги", "776432808": "Одоогоор амьдарч байгаа улсаа сонгоно уу.", "778172770": "Дерив CFD", @@ -908,7 +908,7 @@ "874461655": "QR кодыг утсаараа сканнерлаарай", "874472715": "Таны хөрөнгө таны одоо байгаа MT5 данс (ууд) -д үлдэх болно.", "874484887": "Ашиг авах нь эерэг тоо байх ёстой.", - "875101277": "Хэрэв би вэб хөтөчөө хаах юм бол Deriv Bot үргэлжлүүлэн ажиллуулах уу?", + "875101277": "Вэб хөтөчөө хаавал Deriv Bot ажилласаар байх уу?", "875532284": "Өөр төхөөрөмж дээр үйл явцыг дахин эхлүүлнэ үү", "876086855": "Санхүүгийн үнэлгээний маягтыг бөглөнө үү", "876292912": "Гарах", @@ -1018,7 +1018,7 @@ "982829181": "Саад бэрхшээл", "983295075": "Яагаад би татгалзан гаргасны дараа карт/цахим түрийвчнийхээ үлдэгдэл дээрх хөрөнгийг харж чадахгүй байна вэ?", "983423404": "<0>Алхам {{step}}/2:  {{title}}", - "983451828": "2. Хөрөнгө, худалдааны төрлийг сонгоно уу.", + "983451828": "2. Хөрөнгө, арилжааны төрлийг сонгоно уу.", "984175243": "Блокуудыг өргөжүүлэх", "986565137": "Бид таны орлогын нотолгоог хүлээн авсан", "987224688": "Сүүлийн 12 сард та санхүүгийн бусад хэрэгслүүдээр хэдэн арилжаа хийсэн бэ?", @@ -1109,7 +1109,7 @@ "1053556481": "Та гомдлоо ирүүлсний дараа бид хүлээн авсан гэдгээ баталгаажуулахын тулд танд хүлээн зөвшөөрөх имэйл илгээх болно.", "1055313820": "Баримт бичиг илрээгүй", "1056381071": "Худалдаа руу буцах", - "1056821534": "Та итгэлтэй байна уу?", + "1056821534": "Та дахин тохируулахдаа итгэлтэй байна уу?", "1057216772": "текст {{ input_text }} хоосон байна", "1057519018": "4. Хэрэв арилжаа нь ашгаар дуусвал дараах арилжааны хувьцааг анхны хувьцааны хэмжээ 1 ам.доллар болгон дахин тогтооно.", "1057749183": "Хоёр хүчин зүйлийн танилт (2FA)", @@ -1147,7 +1147,7 @@ "1088031284": "Ажил хаялт:", "1088138125": "Шалз {{current_tick}} - ", "1089085289": "Гар утасны дугаар", - "1089436811": "Хичээл", + "1089436811": "Заавар зөвлөмж", "1089687322": "Одоогийн ботоо зогсооно уу?", "1090041864": "{{block_type}} блок нь заавал байх ёстой бөгөөд устгах/идэвхгүй болгох боломжгүй.", "1090802140": "Нэмэлт мэдээлэл", @@ -1176,7 +1176,7 @@ "1113227831": "Тийм ээ, чи чадна. Гэсэн хэдий ч, таны дансанд нээлттэй албан тушаалын хамгийн их тоо, нээлттэй албан тушаалууд дээр хамгийн их агрегат төлбөр зэрэг хязгаар байдаг. Тиймээс олон албан тушаалыг нээхдээ эдгээр хязгаарыг санаж байгаарай. Та эдгээр хязгаарлалтын талаар дэлгэрэнгүй мэдээллийг Тохиргоо> Дансны хязгаардээрээс олж авах боломжтой.", "1113292761": "8MB-ээс бага", "1114679006": "Та энгийн стратеги ашиглан өөрийн ботыг амжилттай бүтээсэн.", - "1117281935": "Худалдах нөхцөл (заавал биш)", + "1117281935": "Борлуулах нөхцөл (заавал биш)", "1117863275": "Аюулгүй байдал ба хамгаалалт", "1118294625": "Та {{exclusion_end}}хүртэл манай вэбсайт дээр арилжаалахаас өөрийгөө хасахаар сонгосон. Хэрэв та өөрийгөө хасах хугацааныхаа дараа худалдаа, хадгаламж байршуулах боломжгүй бол шууд чатаар дамжуулан бидэнтэй холбоо барина уу.", "1119887091": "Баталгаажуулалт", @@ -1237,7 +1237,7 @@ "1173957529": "Deriv дээрх “Дансны тохиргоо” руу очно уу.", "1174186184": "Мэдээллээ зөв эсэхийг шалгана уу.", "1174542625": "- Хариу дахь чат ID өмчийг олох, мөн id үл хөдлөх хөрөнгийн үнэ цэнийг хуулбарлах", - "1174689133": "3. Худалдааны параметрүүдээ тохируулаад Runдээр дарна уу.", + "1174689133": "3. Арилжааны параметрүүдээ тохируулаад Эхлүүлэх товч дээр дарна уу.", "1174748431": "Төлбөрийн суваг", "1175183064": "Вануату", "1177396776": "Хэрэв та “Азийн намар” -г сонговол сүүлийн шалз нь хачгийн дунджаас доогуур байвал төлбөрийг хожих болно.", @@ -1264,7 +1264,7 @@ "1197649109": "{{searchTerm}}үр дүн гараагүй", "1198368641": "Харьцангуй хүч чадлын индекс (RSI)", "1199281499": "Сүүлийн цифрүүдийн жагсаалт", - "1201533528": "Гэрээнүүд хожсон", + "1201533528": "Хожсон гэрээ", "1201773643": "тоон", "1203297580": "Энэ блок нь Telegram суваг руу мессеж илгээдэг.", "1203380736": "D'Alembert стратеги нь Martingale-ээс бага эрсдэлтэй боловч арилжаа хийхээсээ өмнө энэ стратегийн тусламжтайгаар таны хөрөнгө хэр удаан үргэлжлэхийг тодорхойлж чадна. Зүгээр л энэ томъёог ашиглана уу.", @@ -1282,7 +1282,6 @@ "1218546232": "Fiat onramp гэж юу вэ?", "1219844088": "%1хүртэл", "1221250438": "Гараах төлбөрийг идэвхжүүлэхийн тулд өөрийн <0>үнэмлэхийг баталгаажуулах (POI) болон Х <1>аягийн баталгаа (POA) -ийг ирүүлж, мөн <2>санхүүгийн үнэл гээг дансныхаа тохиргоонд бөглөнө үү.", - "1221947449": "Та {{users_phone_number}} руу илгээгдсэн {{phone_verification_type}}-ийн 6 оронтой кодыг оруулна уу. <0>", "1222096166": "Банк, кредит карт, цахим хэтэвчээр дамжуулан мөнгө байршуулах", "1222521778": "Хадгаламж, зарлагын гүйлгээ хийх нь хэцүү байдаг.", "1222544232": "Бид таньруу имэйл илгээсэн", @@ -1349,6 +1348,7 @@ "1274380814": "Таны төлбөр нь ялгаагаар үржүүлсэн <0>pip тутамд төлбөртэй тэнцүү, <1>пипээр, эцсийн үнэ болон ажил хаялтын үнийн хооронд. Таны төлбөр таны анхны хувьцаанаас өндөр байгаа тохиолдолд л ашиг олох болно.", "1274819385": "3. Гомдол, маргаан", "1276660852": "Иргэний үнэмлэхээ баталгаажуулна уу", + "1276973471": "Манай вэбсайт дээр санал болгож буй бүтээгдэхүүнүүд нь болзошгүй алдагдал ихээхэн эрсдэлийг дагуулдаг нарийн төвөгтэй дериватив бүтээгдэхүүн юм. CFD нь хөшүүргийн улмаас хурдацтай мөнгө алдах өндөр эрсдэлтэй нарийн төвөгтэй хэрэгсэл юм. 70.84% нь жижиглэнгийн хөрөнгө оруулагчийн дансууд энэ үйлчилгээ үзүүлэгчтэй CFD арилжаалахдаа мөнгө алддаг. Та эдгээр бүтээгдэхүүн хэрхэн ажилладаг, та мөнгөө алдах өндөр эрсдэлийг авч төлж чадах эсэхийг ойлгож байгаа эсэхийг авч үзэх хэрэгтэй.", "1279937041": "<0>Анхаарал: Зарим төвөгтэй стратегиуд Bot Builder дээр асуудалтай тулгарч болзошгүй. Хэрэв асуулт байвал <1/> холбоо барина уу.", "1281045211": "Өгөгдсөн жагсаалтын зүйлсийг тоон болон цагаан толгойн үнийн дүнгээр нь өсөх эсвэл уруудах дарааллаар нь эрэмбэлэнэ.", "1281290230": "Сонгох", @@ -1419,7 +1419,6 @@ "1339613797": "Зохицуулагч/Гадаад маргааны шийдвэр", "1340286510": "Бот зогссон боловч таны худалдаа хэвээр байгаа байж магадгүй юм. Та үүнийг Тайлан хуудсан дээрээс шалгаж болно.", "1341840346": "Сэтгүүл дээрээс харах", - "1341921544": "Арилжааны данс ба хөрөнгө", "1344696151": "Forex, хувьцаа, хувьцааны индекс, түүхий эд, криптовалют, синтетик индекс.", "1346038489": "70-аас бага байх ёстой.", "1346204508": "Ашигаа авах", @@ -1468,7 +1467,7 @@ "1387503299": "Нэвтрэх", "1388770399": "Иргэний үнэмлэхийг баталгаажуулах шаардлагатай", "1389197139": "Импортын алдаа", - "1390792283": "Худалдааны параметрүүд", + "1390792283": "Арилжааны параметрүүд", "1391174838": "Боломжит төлбөр:", "1392985917": "Энэ нь түгээмэл хэрэглэгддэг нууц үгтэй төстэй юм", "1393559748": "Хүчин төгөлдөр бус огноо/цаг: {{ datetime_string }}", @@ -1523,7 +1522,7 @@ "1430632931": "Арилжаа авахын тулд хэн бэ, хаана амьдарч байгаагаа баталгаажуулна уу.", "1433367863": "Уучлаарай, таны хүсэлтийг боловсруулах явцад алдаа гарсан.", "1434382099": "Зурвас бүхий харилцах цонхыг харуулна", - "1434767075": "Deriv Bot дээр эхлээрэй", + "1434767075": "Deriv Bot эхлүүлэх", "1434976996": "Зарлал", "1435363248": "Энэ блок нь Unix Epoch-ээс хойшхи секундын тоог 2019-08-01 00:00:00 гэх мэт огноо, цагийн формат руу хөрвүүлдэг.", "1437529196": "Цалингийн хуудас", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Дерив MT5 дансууд", "1499080621": "Хүчин төгөлдөр бус үйлдэл хийхийг оролдсон.", + "1499733992": "таны утасны дугаар баталгаажуулсан.", "1501691227": "Вануату Санхүүгийн Үйлчилгээний Коми <0>ссоос зохицуулсан Deriv (V) Ltd-ийн дагуу өөрийн Deriv MT5{{account_type_name}} дансаа нэмнэ үү.", "1502039206": "{{barrier}}-ийн тухай", "1502325741": "Таны нууц үг таны имэйл хаягтай адилхан байж болохгүй.", @@ -1644,7 +1644,7 @@ "1562374116": "Оюутнууд", "1565273609": "Акуммуляторууд одоо Deriv Bot дээр байна", "1566037033": "Худалдан авсан: {{longcode}} (ID: {{transaction_id}})", - "1566717687": "Мөн бид танд энгийн стратегийг хэрхэн бүтээж, гүйцэтгэх боломжтойг харуулахын тулд Tutorial tab дээр гарын авлагыг өгдөг.", + "1566717687": "Бид мөн 'Заавар зөвлөмж' таб дээр танд энгийн стратегийг хэрхэн байгуулах талаар зааварчилгаа санал болгодог.", "1567745852": "Ботын нэр", "1569527365": "Баталгаажуулалт амжилтгүй болсон. Дэлгэрэнгүй мэдээллээ дахин ирүүлнэ үү.", "1569624004": "Анхааруулгыг халах", @@ -1698,7 +1698,7 @@ "1622944161": "Одоо дахин эхлүүлэх <0>арилжааны нөхцлийн блок руу оч но уу.", "1623706874": "Үржүүлэгчийг өөрийн худалдааны төрөл болгон ашиглахыг хүссэн үедээ энэ блокыг ашиглана уу.", "1623723710": "<0>Accumulators-тэй хамт таны арилжааны стратегиийг сайжруулна уу", - "1628981793": "Би Deriv Bot дээр криптовалют арилжаа хийж болох уу?", + "1628981793": "Deriv Bot дээр криптовалют арилжаа хийж болох уу?", "1630317389": "Хэрэв та “<0>No Touch” -г сонговол зах зээл гэрээний хугацаанд ямар ч үед саад бэрхшээлийг хэзээ ч хөндөхгүй бол төлбөрийг хождог.", "1630417358": "Таны дансны тохиргоо руу орж, зарлагын гүйлгээ идэвхжүүлэхийн тулд хувийн мэдээллийг бөглөнө үү.", "1631281562": "GBP сагс", @@ -1757,14 +1757,14 @@ "1675030608": "Эхлээд энэ бүртгэлийг үүсгэхийн тулд бид хаягийн нотолгоогоо дахин ирүүлэх хэрэгтэй.", "1676549796": "Динамик хөшүүрэг", "1677027187": "Форекс", - "1679743486": "1. Түргэн стратеги руу очоод хүссэн стратегиа сонгоно уу.", + "1679743486": "1. Тогтмол стратеги руу очоод хүссэн стратегиа сонгоно уу.", "1680666439": "Нэр, дансны дугаар, гүйлгээний түүхийг харуулсан банкны хуулгаа байршуулна уу.", "1681765749": "Мартингейл томъёо 2", "1682409128": "Гарчиггүй стратеги", "1682636566": "И-мэйлийг дахин илгээх", "1683383299": "Таны ашиг энэ хэмжээнээс илүү буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагддаг. Энэ блокыг зөвхөн аккумуляторын худалдааны төрлөөр ашиглах боломжтой.", "1683963454": "Таны гэрээг {{timestamp}}дээр {{date}} дээр дараагийн боломжтой хөрөнгийн үнээр автоматаар хаах болно.", - "1684419981": "Энэ юу вэ?", + "1684419981": "гэж юу вэ?", "1686800117": "{{error_msg}}", "1689103988": "Эрин үеэс хойш хоёрдугаарт", "1689258195": "Таны өгсөн дэлгэрэнгүй мэдээллийг бид таны хаягийг баталгаажуулах боломжгүй байсан. Шалгаж, дахин ирүүлнэ үү эсвэл өөр баримт бичгийн төрлийг сонгоно уу.", @@ -1775,7 +1775,6 @@ "1692912479": "Дерив MT5, Дерив X", "1693614409": "Эхлэх цаг", "1694517345": "Шинэ и-мэйл хаяг оруулна уу", - "1694888104": "Манай вэбсайт дээр санал болгож буй бүтээгдэхүүнүүд нь болзошгүй алдагдал ихээхэн эрсдэлийг дагуулдаг нарийн төвөгтэй дериватив бүтээгдэхүүн юм. CFD нь хөшүүргийн улмаас хурдацтай мөнгө алдах өндөр эрсдэлтэй нарийн төвөгтэй хэрэгсэл юм. 70.78% нь жижиглэнгийн хөрөнгө оруулагчийн дансууд энэ үйлчилгээ үзүүлэгчтэй CFD арилжаалахдаа мөнгө алддаг. Та эдгээр бүтээгдэхүүн хэрхэн ажилладаг, та мөнгөө алдах өндөр эрсдэлийг авч төлж чадах эсэхийг ойлгож байгаа эсэхийг авч үзэх хэрэгтэй.", "1696190747": "Арилжаа хийх нь угаасаа эрсдэлтэй бөгөөд бодит ашиг нь янз бүрийн хүчин зүйлс, түүний дотор зах зээлийн хэлбэлзэл болон бусад урьдчилан таамаглаагүй хувьсагчуудаас шалтгаалан хэлбэлзэж болно. Иймээс аливаа арилжааны үйл ажиллагаанд оролцохоосоо өмнө болгоомжтой хандаж, нарийн судалгаа хийгээрэй.", "1697529334": "Чухал: Таны <0>{{platform}} {{existing_account}} данс.", "1698624570": "2. Баталгаажуулахын тулд Ok дээр дарна уу.", @@ -1847,7 +1846,7 @@ "1747652849": "Хэрэв та take profit функцийг сонговол гэрээний хугацаанд ашиг олох ашгийн хэмжээ хүрэх эсвэл түүнээс хэтэрсэн үед таны худалдаа хамгийн ойрын боломжтой хөрөнгийн үнээр автоматаар хаах болно. Таны ашиг хаалтын үед зах зээлийн үнээс хамаарч оруулсан хэмжээнээс илүү байж болох юм. Та ашиглалтын ашгийн хэмжээг хугацаа дуусахаас 15 секундын өмнө өөрчилж болно.", "1747674345": "Бутархай тоонуудын аравтын тусгаарлагч болгон `.` ашиглана уу.", "1747682136": "Гэрээг цуцалсан.", - "1748754976": "Гүйлт", + "1748754976": "Эхлүүлэх", "1753082252": "Энэ нийтлэл нь Forex, Commodities, Derived Index зэрэг хөрөнгийг арилжаалах зорилготой олон талын арилжааны бот болох Deriv Bot-д нэгтгэсэн стратегийг судалдаг. Бид стратегийн үндсэн үзүүлэлтүүд, түүний хэрэглээг судалж, ботыг үр дүнтэй ашиглахыг хүсч буй худалдаачдад зайлшгүй шаардлагатай мэдээллүүдийг өгөх болно.", "1753183432": "Бид бүх гомдлыг нухацтай авч, аль болох хурдан, шударга шийдвэрлэхийг зорьж байна. Хэрэв та манай үйлчилгээний аль нэг тал дээр сэтгэл хангалуун бус байгаа бол доорх удирдамжийг ашиглан гомдол ирүүлэх замаар бидэнд мэдэгдэнэ үү.", "1753226544": "устгах", @@ -1879,11 +1878,11 @@ "1780442963": "{{ platform }}татаж авахын тулд QR кодыг сканнерлаарай.", "1780770384": "Энэ блок нь танд 0.0 - 1.0 хооронд санамсаргүй фракцийг өгдөг.", "1780805104": "Энэ хаяг руу зөвхөн {{currency_name}} ({{currency_code}}) илгээх.", - "1782308283": "Түргэн стратеги", + "1782308283": "Товч мэдээлэл өгөх стратеги", "1782395995": "Сүүлийн цифрийн таамагла", "1782690282": "Блокуудын цэс", "1782703044": "Бүртгүүлэх", - "1783526986": "Би арилжааны ботыг хэрхэн бүтээх вэ?", + "1783526986": "Арилжааны ботыг хэрхэн бүтээх вэ?", "1783740125": "Селфигээ байршуулна уу", "1785298924": "Д'Алемберт томъёо 1", "1786644593": "Дэмжигдсэн форматууд: Зөвхөн JPEG, JPG, PNG, PDF, GIF", @@ -1977,13 +1976,13 @@ "1869787212": "Тэр ч байтугай", "1870933427": "Крипто", "1871196637": "Сүүлийн худалдааны үр дүн сонгон шалгаруулалттай таарч байвал үнэн", - "1871377550": "Та Deriv Bot дээр урьдчилан бүтээсэн худалдааны ботуудыг санал болгож байна уу?", + "1871377550": "Deriv Bot дээр урьдчилан бүтээсэн арилжааны ботуудыг санал болгох уу?", "1871664426": "Тайлбар", "1874481756": "Хүссэн тодорхой гэрээгээ худалдан авахын тулд энэ блокыг ашиглана уу. Та худалдан авалтын нөхцөлөө тодорхойлохын тулд нөхцөлтэй блокуудтай хамт олон Худалдан авалтын блокуудыг нэмж болно. Энэ блокыг зөвхөн Худалдан авах нөхцлийн блок дотор ашиглах боломжтой.", "1874737957": "Үржүүлэгчийг арилжаалахын тулд эхлээд Deriv Apps данс аваарай.", "1874756442": "БВИ", "1875090343": "Огнооны хүрээг сонгоно уу", - "1875702561": "Өөрийн ботыг ачаалах эсвэл бүтээх", + "1875702561": "Өөрийн ботыг ажиллуулах эсвэл бүтээх", "1876015808": "Нийгмийн аюулгүй байдал ба үндэсний даатгалын итгэлцэл", "1876325183": "Минут", "1876333357": "Татварын үнэмлэх дугаар хүчин төгөлдөр бус байна.", @@ -2003,7 +2002,7 @@ "1881142897": "Tick Delayed ажиллуулах", "1881380263": "Таны дансанд байгаа нийт хөрөнгө.", "1881587673": "Таны статистикийг хамгийн сүүлд цэвэрлэснээс хойшхи нийт хувьцаа.", - "1882825238": "Худалдааны нөхцлийг дахин эхлүүлэх", + "1882825238": "Арилжааны нөхцөлийг дахин эхлүүлэх", "1883531976": "Бичиг хэргийн ажилтнууд", "1885708031": "#", "1887257727": "R гэдэг нь тодорхой алдагдлын босгыг харгалзан худалдаачин тогтвортой байлгаж чадах тойргийн тоо юм.", @@ -2116,7 +2115,7 @@ "1988302483": "Ашиг аваарай:", "1990331072": "Эзэмшлийн нотолгоо", "1990735316": "Өсөх тэнцүү", - "1991055223": "Өөрийн дуртай хөрөнгийн зах зээлийн үнийг үзээрэй.", + "1991055223": "Өөрийн сонирхож буй хөрөнгийн зах зээлийн үнийг харах.", "1991448657": "Татварын үнэмлэхний дугаараа мэдэхгүй байна уу? Илүү <0>ихийг мэдэхийн тулд энд дарна уу.", "1991524207": "Jump 100 Индекс", "1994023526": "Таны оруулсан имэйл хаяг нь алдаатай байсан (бидэнд хамгийн их тохиолддог).", @@ -2271,7 +2270,7 @@ "2136246996": "Селфи байршуулсан", "2136480755": "Таны баримт бичгийн зарим дэлгэрэнгүй мэдээлэл хүчин төгөлдөр бус, алга болсон, эсвэл тодорхойгүй мэт харагдаж байна.", "2137645254": "Хэрэв та “Дуу <0>длага” гэж сонговол <2>эцсийн үнэ нь дуусах үед <1>ажил хаялтын үн ээс дээш байвал төлб <3>өрийг олох болно<4>. Үгүй бол та төлбөр авахгүй.", - "2137901996": "Энэ нь хураангуй, гүйлгээ, сэтгүүлийн самбар дахь бүх өгөгдлийг арилгах болно. Бүх тоолуурыг тэг болгон дахин тохируулах болно.", + "2137901996": "Энэ нь хураангуй, гүйлгээ, сэтгүүлийн самбар дахь бүх өгөгдлийг арилгах ба бүх тоолуурыг тэгээс эхлүүлэн дахин тохируулах болно.", "2137993569": "Энэ блок нь хоёр утгыг харьцуулж, нөхцөлтэй бүтцийг бүтээхэд ашиглагддаг.", "2138861911": "Сканер, гэрэл зургийг хүлээн зөвшөөрөхгүй", "2139171480": "Дахин тохируулах/Дахин тохируулах", @@ -2285,7 +2284,7 @@ "2146698770": "Pro зөвлөгөө: Та мөн хүссэн блокыг дарж татаж болно", "2146751355": "Бид Current-tick-action механизмыг ашигладаг бөгөөд энэ нь худалдааны нээлтийг манай серверүүдээр боловсруулсан үед хамгийн сүүлийн үеийн хөрөнгийн үнэ болох Тогтлолын индекс, сагсны индекс, үсрэлтийн индекс, Crash/Boom индексүүд.", "2146892766": "Хоёртын сонголтын арилжааны туршлага", - "2147244655": "Би өөрийн худалдааны ботыг Deriv Bot руу хэрхэн импортлох вэ?", + "2147244655": "Өөрийн арилжааны ботыг Deriv Bot руу хэрхэн импортлох вэ?", "-931052769": "Баталгаажуулалт явуулах", "-1004605898": "зөвлөмжүүд", "-1938142055": "Баримт бичиг байршуулсан", @@ -2515,7 +2514,7 @@ "-2120290581": "Дансны зориулалтын хэрэглээ шаардлагатай.", "-594456225": "Хаягийн хоёр дахь мөр", "-1964954030": "Шуудан/зип код", - "-1541554430": "Дараагийнх", + "-1541554430": "Дараагийн", "-71696502": "Өмнөх", "-516397235": "Энэ токеныг хэнтэй хуваалцаж байгаагаа болгоомжтой байгаарай. Энэ токентай хэн ч таны дансны өмнөөс дараах үйлдлүүдийг хийж болно", "-989216986": "Данс нэмэх", @@ -2640,7 +2639,6 @@ "-1101737402": "Сонгоно уу*", "-975118358": "Таны данс {{legal_entity_name}}-ээр нээгдэх болно, Мальта Санхүүгийн Үйлчилгээний Газар (MFSA) зохицуулсан бөгөөд Мальта улсын хууль тогтоомжид захирагдах болно.", "-2073934245": "Энэ сайт дээр санал болгож буй санхүүгийн арилжааны үйлчилгээ нь зөвхөн хөрөнгө оруулалт хийсэн бүх мөнгөө алдах боломжийг хүлээн зөвшөөрч, санхүүгийн гэрээг худалдан авахад оролцож буй эрсдэлийг ойлгож, туршлагатай хэрэглэгчдэд тохиромжтой. Санхүүгийн гэрээ хэлцэл нь өндөр эрсдэл дагуулдаг. Хэрэв таны худалдан авсан гэрээний хугацаа үнэ цэнэгүй гэж дуусвал гэрээний шимтгэлийг багтаасан бүх хөрөнгө оруулалтаа алдах болно.", - "-1035494182": "Компанийн үзэмжтэй байдал, холбогдох дүрэм журам, дотоод шалгалтыг биелүүлсний дагуу бид танд данс нээж, үйлчлүүлэгчийг хүлээн авах журмын үеэр хөрөнгө байршуулах боломжийг олгоно гэдгийг та хүлээн зөвшөөрдөг. Гэсэн хэдий ч, таны дансны баталгаажуулалт дуусах хүртэл та арилжаа хийх, татан авах эсвэл цаашид хадгаламж хийх боломжгүй болно. Хэрэв та 30 хоногийн дотор холбогдох баримт бичгийг өгөхгүй бол бид хадгаламж ашигласан ижил төлбөрийн аргаар хадгалуулсан дүнг буцаан олгоно.", "-1125193491": "Данс нэмэх", "-2068229627": "Би PEP биш, би сүүлийн 12 сард PEP болж байгаагүй.", "-1209644365": "Дерив Инвестментс (Европ) ХХК-д данс нээх хүсэлтээ өөрийн санаачилгаар хийснийг би үүгээр баталж байна.", @@ -2701,8 +2699,8 @@ "-773766766": "И-мэйл ба нууц үг", "-1144318594": "Нуусны нууц үг", "-1466827732": "Өөрийгөө хасах", - "-241588481": "Нэвтрэсэн түүх", - "-966136867": "Холбогдсон програмууд", + "-241588481": "Нэвтэрсэн түүх", + "-966136867": "Холбогдсон аппликейшнүүд", "-213009361": "Хоёр хүчин зүйлийн баталгаажуулалт", "-526636259": "Алдаа 404", "-870902742": "Онлайн арилжаатай холбоотой танд хэр их мэдлэг, туршлага байна вэ?", @@ -2745,7 +2743,7 @@ "-259515058": "Анхдагчаар бүх {{brand_website_name}} үйлчлүүлэгчид жижиглэн худалдааны үйлчлүүлэгчид боловч хэн ч мэргэжлийн үйлчлүүлэгчээр хандах хүсэлт гаргаж болно.", "-1463348492": "Би мэргэжлийн үйлчлүүлэгч шиг хандахыг хүсч байна.", "-1958764604": "Имэйл хүлээж авах", - "-2068064150": "Deriv-ийн бүтээгдэхүүн, үйлчилгээний талаархи шинэ мэдээллүүдийг хүлээж аваарай.", + "-2068064150": "Deriv-ийн бүтээгдэхүүн, үйлчилгээний талаар шинэ мэдээллүүдийг хүлээж аваарай.", "-164389553": "Баталгаажсан", "-1283020225": "Баталгаажуулах{{resendCode}}", "-1060822567": "Хэрэв та цуцалбал, бүх дүнг алдана.", @@ -2757,9 +2755,9 @@ "-222105210": "Кодуудыг дахин илгээх", "-1601377103": "3 алхмын 3-р алхам: Дугаараа баталгаажуулна уу", "-121443071": "3 алхмын 1-р алхам: И-мэйл баталгаажуулалт шаардагдаж байна", + "-1419026486": "{{phone_verification_type}}-аар танд илгээсэн 6 оронтой кодыг <1>{{users_phone_number}} руу оруулна уу. <0>", "-652539141": "OTP код", "-1124039045": "Баталгаажуулалтын код", - "-1487715516": "{{ phone }} нь таны утасны дугаарын баталгаажуулсан байна.", "-1184626439": "Кодыг аваагүй юу?{{resendCode}}", "-165489997": "Сессийн хугацаа дууссан", "-1822545742": "Эфир сонгодог", @@ -2854,10 +2852,10 @@ "-2021135479": "Энэ талбар шаардлагатай.", "-1002044401": "Баримтаа сонгох*", "-1272489896": "Энэ талбарыг бөглөнө үү.", - "-721346138": "Сонголт ба үржүүлэгчийн арилжааны платформ.", + "-721346138": "Олон сонголт ба үржүүлэгч санал болгодог арилжааны платформ.", "-1874136267": "Бот арилжааны платформ.", - "-415943890": "Өмчийн сонголтуудын арилжааны платформ.", - "-2018495421": "Үржүүлэгч болон аккумуляторыг арилжаалах гар утасны програм.", + "-415943890": "Өмчийн сонголт бүхий арилжааны платформ.", + "-2018495421": "Үржүүлэгч болон аккумулятороор арилжаалах гар утасны аппликейшн.", "-897826065": "Үржүүлэгчдийн арилжааны платформ.", "-2115275974": "CFD", "-1585707873": "Financial Commission", @@ -2889,7 +2887,7 @@ "-1473281803": "Зах зээлийг урьдчилан таамаглаж зөв таамаглаж чадвал ашиг олох ба үгүй бол та зөвхөн байршуулсан мөнгөө эрсдэлд оруулна. <0>Дэлгэрэнгүй мэдээллийг энд дарж уншина уу", "-2134770229": "Таны Deriv Apps болон Deriv MT5 CFDs демо дансны нийт хөрөнгө.", "-1277942366": "Нийт хөрөнгө", - "-1255879419": "Арилжаачдын төв", + "-1255879419": "Trader's Hub", "-493788773": "ЕХ-ны бус", "-673837884": "ЕХ", "-230566990": "Таны ирүүлсэн дараахь баримт бичгүүд манай шалгалтад тэнцээгүй:", @@ -3122,7 +3120,7 @@ "-2107238266": "D'Alembert систем нь хяналттай хувьцааны прогрессоор илүү тэнцвэртэй арилжааг санал болгодог. Хувьцааны хязгаар шиг болгоомжтой эрсдэлийн менежментийн тусламжтайгаар үүнийг Deriv Bot-д үр дүнтэй автоматжуулах боломжтой. Гэсэн хэдий ч худалдаачид эрсдэлийн дур сонирхлоо сайтар үнэлэх, бодит мөнгөөр арилжаа хийхээсээ өмнө арилжааны хэв маягтайгаа нийцүүлэхийн тулд демо данс дээр стратегийг туршиж үзэх хэрэгтэй. Энэ нь арга барилыг оновчтой болгох, эрсдэлийг удирдахын зэрэгцээ боломжит ашиг, алдагдлын тэнцвэрийг бий болгох боломжийг олгодог.", "-500873566": "Мэдэгдэл:", "-344769349": "Бид зураглал хийхэд бөөрөнхий тоог ашиглаж болох боловч тодорхой хэмжээний хувьцаа нь амжилттай арилжаанд яг тодорхой хэмжээний баталгаа өгдөггүй гэдгийг анхаарна уу. Жишээлбэл, 1 ам.долларын хувьцаа нь амжилттай арилжаанд 1 ам.долларын ашигтай тэнцэх албагүй.", - "-818800551": "Deriv Bot дахь Мартингалийн стратегийг судлах", + "-818800551": "Deriv Bot-ын Martingale-ийн стратегийг судлах", "-533490374": "Эдгээр нь Martingale стратеги бүхий Deriv Bot-д ашигладаг худалдааны параметрүүд юм.", "-1507161059": "Үржүүлэгч: Хэрэв та арилжаа алдаж байгаа бол хувьцаагаа нэмэгдүүлэхэд ашигладаг үржүүлэгч. Утга нь 1-ээс их байх ёстой.", "-1333404686": "Мартингалийн стратегийн жишээ", @@ -3171,16 +3169,16 @@ "-1842451303": "Deriv Bot-д тавтай морилно уу!", "-1391310674": "Таны ботыг бүтээх талаар илүү ихийг мэдэхийн тулд эдгээр гарын авлага болон Түгээмэл асуултуудыг үзээрэй:", "-2066779239": "Түгээмэл асуултууд", - "-280324365": "Deriv Бот гэж юу вэ?", - "-155173714": "Бот бүтээцгээе!", + "-280324365": "Deriv Bot гэж юу вэ?", + "-155173714": "Бот бүтээх", "-2093569327": "Deriv Bot ашиглан арилжааны үндсэн ботыг хэрхэн бүтээх вэ", "-2072114761": "Deriv Bot дээр Martingale стратегийг хэрхэн ашиглах вэ", "-1254483618": "Deriv Bot дээр Акуммулятор сонголтуудыг танилцуулах: Автомат худалдаанд зориулан бэлэн", "-1919212468": "3. Та мөн категориудын дээрх хайлтын мөрийг ашиглан хүссэн блокуудыг хайж болно.", "-980360663": "3. Хүссэн блокоо сонгоод ажлын талбар руу чирнэ үү.", - "-1493168314": "Түргэн стратеги гэж юу вэ?", - "-1680391945": "Хурдан стратеги ашиглах", - "-1177914473": "Би стратегиа хэрхэн хадгалах вэ?", + "-1493168314": "Тогтмол стратеги гэж юу вэ?", + "-1680391945": "Тогтмол стратеги ашиглах", + "-1177914473": "Стратегиа хэрхэн хадгалах вэ?", "-271986909": "Bot Builderдээр өөрийн ботыг татаж авахын тулд дээд талын toolbar дээр Save дарна уу. Өөрийн ботыг нэр өг, мөн өөрийн ботыг төхөөрөмж эсвэл Google Drive руу татаж авахыг сонгоно уу. Таны ботыг XML файл хэлбэрээр татаж авах болно.", "-1149045595": "1. Импорт-г дарсны дараа Local -г сонгоод Үргэлжлүүлэхдээр дарна уу.", "-288041546": "2. XML файлаа сонгоод Openдээр дарна уу.", @@ -3188,19 +3186,19 @@ "-1311297611": "1. Импорт-г дарсны дараа Google Drive -г сонгоод үргэлжлүүлэхдээр дарна уу.", "-1549564044": "Ажлын талбарыг хэрхэн дахин тохируулах вэ?", "-1127331928": "Bot Builderдээр дээд талын toolbar дээр Reset дээр дарна уу. Энэ нь ажлын талбарыг цэвэрлэх болно. Хадгалагдаагүй өөрчлөлтүүд алдагдах болно гэдгийг анхаарна уу.", - "-1720444288": "Би Deriv Bot ашиглан алдагдлаа хэрхэн хянах вэ?", + "-1720444288": "Deriv Bot ашиглан алдагдлаа хэрхэн хянах вэ?", "-1142295124": "Deriv Bot ашиглан алдагдлаа хянах хэд хэдэн арга байдаг. Стратегидаа алдагдлын хяналтыг хэрхэн хэрэгжүүлж болох энгийн жишээг энд оруулав:", "-2129119462": "1. Дараах хувьсагчуудыг үүсгээд доор байрлуулэхлэх үед нэг удаа ажиллуулна уу:", "-1918487001": "Жишээ нь:", "-468926787": "Таны худалдааны параметрүүд, хувьсагчид, худалдааны сонголтууд иймэрхүү харагдах ёстой:", - "-1565344891": "Би вэб хөтөчдөө олон табууд дээр Deriv Bot ажиллуулж болох уу?", + "-1565344891": "Вэб хөтөч дээрх олон табууд дээр Deriv Bot ажиллуулж болох уу?", "-213872712": "Үгүй ээ, бид Deriv Bot дээр криптовалют санал болгодоггүй.", - "-2147346223": "Deriv Bot аль улс орнуудад байдаг вэ?", - "-792737139": "Манай нөхцөл, нөхцөлд дурдсан -ээс бусад бүх улс оронд үйлчилгээгээ санал болгож байна.", - "-352345777": "Автомат арилжааны хамгийн алдартай стратеги юу вэ?", + "-2147346223": "Deriv Bot-ыг аль улс орнуудад ашиглах боломжтой вэ?", + "-792737139": "Бид манай нөхцөл, болзолд дурдсан. улс орнуудаас бусад бүх улс оронд өөрийн үйлчилгээг санал болгодог", + "-352345777": "Автоматжуулсан арилжааны хамгийн түгээмэл стратегиуд юу вэ?", "-552392096": "Автомат арилжаанд хамгийн түгээмэл хэрэглэгддэг стратегийн гурав нь Martingale, D'Alembert, болон Oscar's Grind - та бүгдийг нь бэлэн болгож, таныг хүлээж байгаа Deriv Bot-д олж болно.", "-1036999457": "Энэ видеог үзээрэй Deriv Bot дээр худалдааны бот хэрхэн байгуулахаар зааварчилгаа авах. Мөн, энэ блогийн бичвэрийг худалдааны ботыг байгуулах талаар уншаарай.", - "-1630262763": "Мартингалийн тухай", + "-1630262763": "Martingale-ийн тухай", "-413928457": "Оскарын Гриндийн тухай", "-1497015866": "Реверс Д'Алембертийн тухай", "-437005403": "1-3-2-6 орчим", @@ -3210,7 +3208,7 @@ "-746652890": "Мэдэгдэл", "-824109891": "Систем", "-507620484": "Хадгалагдаагүй", - "-764102808": "Google Драйв", + "-764102808": "Google Drive", "-749186458": "Таны бот ажиллаж байх үед данс солих идэвхгүй болно. Дансаа солихоосоо өмнө ботоо зогсооно уу.", "-597939268": "Гэрээгээ хадгалаарай", "-1322453991": "Та ботыг ажиллуулахын тулд нэвтэрч орох хэрэгтэй.", @@ -3335,16 +3333,16 @@ "-584289785": "Үгүй ээ, би үлдэх болно", "-1435060006": "Хэрэв та орхих юм бол таны одоогийн гэрээ дуусах болно, гэхдээ таны bot нэн даруй ажиллуулахаа болино.", "-783058284": "Нийт хувьцаа", - "-2077494994": "Нийт төлбөр", - "-1073955629": "Гүйлтийн тоо", - "-1729519074": "Гэрээ алдсан", + "-2077494994": "Нийт ногдол", + "-1073955629": "No. of runs", + "-1729519074": "Aлдсан гэрээ ", "-42436171": "Нийт ашиг/алдагдал", "-1856204727": "Дахин тохируулах", "-1137823888": "Таны статистикийг хамгийн сүүлд цэвэрлэснээс хойшхи нийт төлбөр.", "-992662695": "Таны статистикийг хамгийн сүүлд цэвэрлэснээс хойш таны bot хэдэн удаа ажиллуулсан. Гүйлт бүр нь бүх root блокуудыг гүйцэтгэхийг агуулдаг.", "-1382491190": "Таны статистикийг хамгийн сүүлд цэвэрлэснээс хойш таны нийт ашиг/алдагдал. Энэ нь таны нийт төлбөр болон таны нийт хувьцааны хоорондох ялгаа юм.", - "-24780060": "Худалдаа хийхэд бэлэн болсон үед дарна уу ", - "-2147110353": ". Та өөрийн ботын гүйцэтгэлийг эндээс хянах боломжтой болно.", + "-24780060": "Хэрэв та арилжаа хийхэд бэлэн бол ", + "-2147110353": " товч дээр дарна уу . Та өөрийн ботын гүйцэтгэлийг эндээс хянах боломжтой.", "-411060180": "TradingView график", "-627895223": "Гарах цэг", "-2140412463": "Худалдан авах үнэ", @@ -3384,7 +3382,7 @@ "-907562847": "Жагсаалтууд", "-1646497683": "гогцоонууд", "-251326965": "Төрөл бүрийн", - "-1136893592": "Мэдээлэл", + "-1136893592": "Зарлал", "-195234787": "<0>Анхаарал: Төвөгтэй стратегиудыг тайлбарлах нь зарим хугацаа авахад хүргэж болзошгүй. Deriv Bot-оос хадгалбал дараа нь хурдан нэвтрэх боломжтой. Хэрэв асуулт байвал <1/> холбоо барина уу.", "-206059150": "Google Blockly v10 шинэчлэх", "-523557619": "Сайн аюулгүй байдал.", @@ -3403,14 +3401,14 @@ "-1372891985": "Хадгалах.", "-1003476709": "Цуглуулга болгон хадгалах", "-636521735": "Стратеги хадгалах", - "-1692205739": "Өөрийн компьютер эсвэл Google Drive-ээс ботыг импортлох, эхнээс нь бүтээх, эсвэл хурдан стратегиас эхэлнэ үү.", + "-1692205739": "Өөрийн компьютер эсвэл Google Drive-аас ботыг импортлох, ботоо эхнээс нь бүтээх, эсвэл товч мэдээлэл өгөх стратегиас эхэлнэ үү.", "-563774117": "Хяналтын самбар", "-683790172": "Одоо стратегийг <0>туршихын тулд ботыг ажилл уулна уу.", - "-1127164953": "Сайн уу! Түргэн <0>аялал хийхийн тулд Start дээр дарна уу.", - "-358288026": "Тэмдэглэл: Та мөн энэ зааврыг Хичээл таб <0>дээрээс олж болно.", + "-1127164953": "Сайн уу! <0> Start товч дээр дарж танилцаарай.", + "-358288026": "Тэмдэглэл: Та энэ заавар зөвлөмжийг Заавар зөвлөмж таб <0>дээрээс мөн үзэх боломжтой.", "-129587613": "Ойлголоо, баярлалаа!", - "-1793577405": "Эхнээс нь бүтээх", - "-358753028": "Манай чирж унагах блокуудыг ашиглан ботоо үүсгэх эсвэл ашиглахад бэлэн ботын загваруудаас сонгохын тулд Түргэн стратеги дээр дарна уу.", + "-1793577405": "Эхнээс нь эхлүүлэх", + "-358753028": "Блокуудыг чирж зөөвөрлөн өөрийн ботыг үүсгэх эсвэл Quick strategy дээр дарж бэлэн ботын загваруудаас сонгоно уу.", "-1212601535": "Зах зээлийг хянах", "-21136101": "Таны бот бодит цаг хугацаанд хэрхэн ажиллаж байгааг хараарай.", "-631097919": "Арил <0>жаа эхлэхийг хүссэн үедээ R un дээр дарна уу, <0>зогсоохыг хүссэн үедээ Stop дээр дарна уу.", @@ -3436,10 +3434,10 @@ "-736400802": "Алхам 6:", "-732067680": "Эцэст нь дахин эхлүүлэх <0>арилжааны нөхцөл блок руу бү <0>хэлд нь Repeat блокыг чирж, нэмн э үү.", "-1411787252": "Алхам 1", - "-1109392787": "Энгийн стратеги ашиглан ботоо эхнээс нь хэрхэн бүтээхийг сур.", + "-1109392787": "Энгийн стратеги ашиглан ботоо эхнээс нь хэрхэн бүтээхийг сурах.", "-1263822623": "Та хөдөлгөөнт төхөөрөмжөөсөө эсвэл Google хөтчөөс ботыг импортлох, bot бүтээгч дээр урьдчилан харах, ботыг ажиллуулах замаар арилжаа хийж эхлэх боломжтой.", "-563921656": "Bot Builder гарын авлага", - "-1596172043": "Стратегийн түргэн гарын авлага", + "-1596172043": "Тогтмол стратеги ашиглах зааварчилгаа", "-1765276625": "Үржүүлэгчийн унах цэсийг дарж, арилжаа хийхийг хүсч буй үржүүлэгчийн утгыг сонгоно уу.", "-1872233077": "Таны боломжит ашгийг таны сонгосон үржүүлэгч утгаар үржүүлнэ.", "-614454953": "Үржүүлэгчдийн талаар илүү ихийг мэдэхийг хүсвэл Үржүүлэгчдийн хуудас руу <0>орно уу.", @@ -3948,9 +3946,11 @@ "-1858102926": "Доор байрлах бариал үнийг тогтоосон.", "-635746838": "Точийн доор", "-548979988": "Тогтмол үнэ", - "-1013686843": "Одоогийн цаг", + "-1838512476": "Төгсгөлийн цагийг сонгоно уу", "-1977959027": "цаг", - "-1084580778": "Дуусах хугацаа", + "-591705950": "Төгсгөл дээр", + "-1013686843": "Одоогийн цаг", + "-1727323033": "0 минут", "-1068424721": "Хамгийн их хугацаа", "-718750246": "Одоогийн спот үнэ өмнөх спот үнээс ±{{tick_size_barrier_percentage}} дотор үлдсэн цагт таны хувьцаа нэг шалк тутамд {{growth_rate}}% -ээр өсөх болно.", "-2131851017": "Өсөлтийн үзүүлэлт", @@ -3987,6 +3987,7 @@ "-1541404572": "TP унтарсан.", "-1634963573": "SL унтарсан.", "-337314714": "хоног", + "-1855256857": "цаг", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", @@ -4241,8 +4242,8 @@ "-46523443": "Хугацааны утгыг зөвшөөрөхгүй. Ботыг ажиллуулахын тулд {{min}} -ээс {{max}}хооронд утгыг оруулна уу.", "-1483427522": "Худалдааны төрөл: {{ trade_type_category }} > {{ trade_type }}", "-323348124": "1. Худалдааны параметрүүд", - "-1671903503": "Эхлэхэд нэг удаа ажиллуулна уу:", - "-783173909": "Худалдааны сонголтууд:", + "-1671903503": "Эхлэхдээ нэг удаа ажиллуулна уу:", + "-783173909": "Арилжааны сонголтууд:", "-376956832": "Энд та гэрээний параметрүүдийг тодорхойлдог.", "-1244007240": "хэрэв {{ condition }} бол", "-1577206704": "өөр бол", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index eaee92a8ec3d..9309a182f279 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -1282,7 +1282,6 @@ "1218546232": "Czym jest on-ramp dla waluty fiducjarnej?", "1219844088": "zrealizuj %1", "1221250438": "Aby aktywować wypłaty, prześlij <0>potwierdzenie tożsamości (POI) oraz <1>potwierdzenie danych adresowych (POA) i ukończ <2>ocenę finansową w sekcji ustawień na swoim koncie.", - "1221947449": "Wprowadź 6-cyfrowy kod wysłany do ciebie za pośrednictwem {{phone_verification_type}} na {{users_phone_number}}. <0>", "1222096166": "Wpłacaj środki przez przelew bankowy lub przy użyciu karty kredytowej lub e-portfela", "1222521778": "Dokonywanie wpłat i wypłat jest skomplikowane.", "1222544232": "Wysłaliśmy Ci wiadomość e-mail", @@ -1349,6 +1348,7 @@ "1274380814": "Państwa wypłata jest równa <0>wypłacie za pips pomnożonej przez różnicę <1>w pipsach między ceną końcową a ceną wykonania. Zysk zostanie osiągnięty tylko wtedy, gdy wypłata będzie wyższa niż początkowa stawka.", "1274819385": "3. Skargi i spory", "1276660852": "Prześlij dowód tożsamości", + "1276973471": "Produkty oferowane na naszej stronie internetowej to złożone produkty pochodne, które niosą ze sobą znaczne ryzyko potencjalnej straty. Kontrakty CFD to złożone instrumenty o wysokim ryzyku szybkiej utraty pieniędzy z powodu dźwigni finansowej. 70,84% kont inwestorów detalicznych traci pieniądze podczas handlu kontraktami CFD u tego dostawcy. Powinieneś rozważyć, czy rozumiesz, jak działają te produkty i czy możesz sobie pozwolić na podjęcie wysokiego ryzyka utraty pieniędzy.", "1279937041": "<0>Uwaga: Niektóre skomplikowane strategie mogą napotkać problemy w Konstruktorze Botów. Jeśli masz pytania, skontaktuj się z nami przez <1/>.", "1281045211": "Sortuje elementy na określonej liście w zależności od ich wartości numerycznej lub alfabetycznej, rosnąco lub malejąco.", "1281290230": "Wybierz", @@ -1419,7 +1419,6 @@ "1339613797": "Regulator/Zewnętrzne rozstrzyganie sporów", "1340286510": "Bot został zatrzymany, ale Państwa transakcja może być nadal aktywna. Mogą to Państwo sprawdzić na stronie Raporty.", "1341840346": "Zobacz w Dzienniku", - "1341921544": "Konta handlowe i fundusze", "1344696151": "Forex, akcje, indeksy giełdowe, towary, kryptowaluty i indeksy syntetyczne.", "1346038489": "Wartość powinna być mniejsza niż 70.", "1346204508": "Uzyskaj zysk", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Konta Deriv MT5", "1499080621": "Próba wykonania nieprawidłowej operacji.", + "1499733992": "jest weryfikowany jako Twój numer telefonu.", "1501691227": "Dodaj swoje konto Deriv MT5 <0>{{account_type_name}} w Deriv (V) Ltd, podlegającej regulacjom komisji Vanuatu Financial Services Commission.", "1502039206": "Ponad {{barrier}}", "1502325741": "Twoje hasło nie może być takie samo jak adres e-mail.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Godzina rozpoczęcia", "1694517345": "Wprowadź nowy adres e-mail", - "1694888104": "Produkty oferowane na naszej stronie internetowej to złożone produkty pochodne, które niosą ze sobą znaczne ryzyko potencjalnej straty. Kontrakty CFD to złożone instrumenty o wysokim ryzyku szybkiej utraty pieniędzy z powodu dźwigni finansowej. 70,78% kont inwestorów detalicznych traci pieniądze podczas handlu kontraktami CFD u tego dostawcy. Powinieneś rozważyć, czy rozumiesz, jak działają te produkty i czy możesz sobie pozwolić na podjęcie wysokiego ryzyka utraty pieniędzy.", "1696190747": "Handel z natury wiąże się z ryzykiem, a rzeczywiste zyski mogą się wahać z powodu różnych czynników, w tym zmienności rynku i innych nieprzewidzianych zmiennych. W związku z tym należy zachować ostrożność i przeprowadzić dokładne badania przed podjęciem jakichkolwiek działań handlowych.", "1697529334": "Ważne: Twoje <0>{{platform}} {{existing_account}} konto.", "1698624570": "2. Uderzenie Ok , aby potwierdzić.", @@ -2640,7 +2639,6 @@ "-1101737402": "Wybierz*", "-975118358": "Twoje konto zostanie otwarte przez {{legal_entity_name}}, regulowaną przez Malta Financial Services Authority (MFSA) i będzie podlegać prawu Malty.", "-2073934245": "Usługi zawierania transakcji finansowych oferowane na niniejszym portalu są odpowiednie tylko dla klientów, którzy akceptują możliwość straty wszystkich zainwestowanych pieniędzy i którzy rozumieją ryzyko związane z zakupem kontraktów finansowych i mają doświadczenie w tym zakresie. Takie transakcje finansowe niosą ze sobą wysokie ryzyko. Jeśli zakupione przez Ciebie kontrakty zakończą się bez wartości, stracisz całą zainwestowaną sumę, która obejmuje premię z kontraktu.", - "-1035494182": "Użytkownik przyjmuje do wiadomości, że z zastrzeżeniem uznania Spółki, obowiązujących przepisów i kontroli wewnętrznych, otworzymy dla Ciebie konto i pozwolimy Ci wpłacić środki podczas procedury akceptacji klienta. Jednak do czasu zakończenia weryfikacji konta nie będziesz mógł handlować, wypłacać ani dokonywać dalszych wpłat. Jeśli nie dostarczysz odpowiednich dokumentów w ciągu 30 dni, zwrócimy zdeponowaną kwotę za pomocą tej samej metody płatności, której użyłeś do wpłaty.", "-1125193491": "Dodaj konto", "-2068229627": "Nie jestem osobą zajmującą eksponowane stanowiska polityczne i nie byłem/am taką osobą w ciągu ostatnich 12 miesięcy.", "-1209644365": "Niniejszym potwierdzam, że mój wniosek o otwarcie rachunku w Deriv Investments (Europe) Ltd został złożony z mojej własnej inicjatywy.", @@ -2757,9 +2755,9 @@ "-222105210": "Wyślij kod ponownie", "-1601377103": "Krok 3 z 3: Zweryfikuj swój numer", "-121443071": "Krok 1 z 3: Wymagana weryfikacja e-mail", + "-1419026486": "Wprowadź 6-cyfrowy kod wysłany do Ciebie za pośrednictwem {{phone_verification_type}} na <1>{{users_phone_number}}. <0>", "-652539141": "Kod OTP", "-1124039045": "Kod weryfikacyjny", - "-1487715516": "{{ phone }} jest zweryfikowany jako twój numer telefonu.", "-1184626439": "Nie otrzymałeś kodu?{{resendCode}}", "-165489997": "Sesja wygasła", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "Ustalona bariera poniżej ceny rynkowej.", "-635746838": "Poniżej punktu", "-548979988": "Ustalona cena", - "-1013686843": "Obecny czas.", + "-1838512476": "Wybierz czas zakończenia", "-1977959027": "godziny", - "-1084580778": "Kończy się o", + "-591705950": "Kończy się o", + "-1013686843": "Obecny czas.", + "-1727323033": "0 min", "-1068424721": "Maks. czas trwania", "-718750246": "Twoja stawka wzrośnie do {{growth_rate}}% za tick, o ile aktualna cena spot pozostanie w granicach ±{{tick_size_barrier_percentage}} w stosunku do poprzedniej ceny spot.", "-2131851017": "Tempo wzrostu", @@ -3987,6 +3987,7 @@ "-1541404572": "TP zostało wyłączone.", "-1634963573": "SL zostało wyłączone.", "-337314714": "dni", + "-1855256857": "godz.", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index a61e0b7dc3ac..3b1792a9be3a 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -1282,7 +1282,6 @@ "1218546232": "O que é Fiat onramp?", "1219844088": "faça %1", "1221250438": "Para permitir levantamentos, apresente o seu <0>Comprovativo de identidade (POI) e <1>Comprovativo de morada (POA) e preencha também a <2>avaliação financeira nas definições da sua conta.", - "1221947449": "Introduza o código de 6 dígitos enviado por {{phone_verification_type}} para o número {{users_phone_number}}. <0>", "1222096166": "Depositar através de transferência bancária, cartão de crédito e carteira eletrónica", "1222521778": "É difícil efetuar depósitos e levantamentos.", "1222544232": "Enviámos um e-mail", @@ -1349,6 +1348,7 @@ "1274380814": "O seu pagamento é igual ao <0>pagamento por pip multiplicado pela diferença, <1>em pips, entre o preço final e o preço de exercício. Só terá lucro se o seu pagamento for superior à sua entrada inicial.", "1274819385": "3. Reclamações e Litígios", "1276660852": "Envie o seu comprovativo de identidade", + "1276973471": "Os produtos oferecidos no nosso site são produtos derivados complexos que comportam um risco significativo de perda potencial. Os CFDs são instrumentos complexos que apresentam um elevado risco de perda rápida de dinheiro devido à alavancagem. 70,84% das contas de investidores não profissionais perdem dinheiro ao negociar CFDs com este fornecedor. Deve considerar se compreende o funcionamento destes produtos e se pode correr o risco elevado de perder o seu dinheiro.", "1279937041": "<0>Nota: Algumas estratégias complexas podem enfrentar problemas no Bot Builder. Se tiver dúvidas, contacte-nos via <1/>.", "1281045211": "Classifica os itens em uma determinada lista, por seu valor numérico ou alfabético, em ordem crescente ou decrescente.", "1281290230": "Selecionar", @@ -1419,7 +1419,6 @@ "1339613797": "Regulador/Resolução externa de litígios", "1340286510": "O bot parou, mas a sua negociação pode estar ainda a decorrer. Pode verificá-la na página Relatórios.", "1341840346": "Exibir no diário", - "1341921544": "Contas de negociação e fundos", "1344696151": "Forex, ações, índices de ações, matérias-primas, criptomoedas e índices sintéticos.", "1346038489": "Deve ser inferior a 70.", "1346204508": "Take profit", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Contas Deriv MT5", "1499080621": "Tentou efetuar uma operação inválida.", + "1499733992": "foi validado como o seu número de telefone.", "1501691227": "Adicione a sua conta Deriv MT5 <0>{{account_type_name}} sob a Deriv (V) Ltd, regulamentada pela Vanuatu Financial Services Commission.", "1502039206": "Acima de {{barrier}}", "1502325741": "A palavra-passe não pode ser igual ao endereço de e-mail.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Hora de início", "1694517345": "Insira um novo endereço de e-mail", - "1694888104": "Os produtos oferecidos no nosso site são produtos derivados complexos que comportam um risco significativo de perda potencial. Os CFDs são instrumentos complexos que apresentam um elevado risco de perda rápida de dinheiro devido à alavancagem. 70.78% das contas de investidores não profissionais perdem dinheiro ao negociar CFDs com este fornecedor. Deve considerar se compreende o funcionamento destes produtos e se pode correr o risco elevado de perder o seu dinheiro.", "1696190747": "A negociação envolve riscos inerentes e os lucros efetivos podem variar devido a vários fatores, nomeadamente a volatilidade do mercado e outras variáveis imprevistas. Portanto, seja prudente e faça uma pesquisa exaustiva antes de se envolver em quaisquer atividades de negociação.", "1697529334": "Importante: A sua conta <0>{{platform}} {{existing_account}}.", "1698624570": "2. Pressione Ok para confirmar.", @@ -2640,7 +2639,6 @@ "-1101737402": "Por favor, selecione*", "-975118358": "A sua conta será aberta com {{legal_entity_name}}, regulada pela Autoridade de Serviços Financeiros de Malta (MFSA) e estará sujeita às leis de Malta.", "-2073934245": "Os serviços financeiros de negociação oferecidos neste site só são adequados para clientes que aceitem a possibilidade de perder todo o dinheiro que investem e que compreendem e tenham experiência do risco envolvido na compra de contratos financeiros. As transações em contratos financeiros implicam um elevado grau de risco. Se os contratos que adquiriu expirarem sem qualquer valor, perderá todo o seu investimento, incluindo o prémio do contrato.", - "-1035494182": "Reconhece que, sujeito ao critério da Empresa, regulamentos aplicáveis e verificações internas a serem cumpridas, iremos abrir uma conta para si e permitir-lhe depositar fundos durante o procedimento de aceitação do cliente. No entanto, até que a validação da sua conta esteja concluída, não será possível negociar, levantar ou efetuar mais depósitos. Se não fornecer os documentos relevantes no prazo de 30 dias, iremos reembolsar o montante depositado através do mesmo método de pagamento que utilizou para efetuar o depósito.", "-1125193491": "Adicionar conta", "-2068229627": "Não sou uma PPE e não fui uma PPE nos últimos 12 meses.", "-1209644365": "Confirmo que o pedido de abertura de conta na Deriv Investments (Europe) Ltd foi efetuado por iniciativa própria.", @@ -2757,9 +2755,9 @@ "-222105210": "Reenviar código", "-1601377103": "Passo 3 de 3: Valide o seu número", "-121443071": "Passo 1 de 3: É requerida a verificação por e-mail", + "-1419026486": "Introduza o código de 6 dígitos enviado por {{phone_verification_type}} para o número <1>{{users_phone_number}}. <0>", "-652539141": "Código da senha de utilização única", "-1124039045": "Código de verificação", - "-1487715516": "{{ phone }} foi validado como o seu número de telefone.", "-1184626439": "Não recebeu o código?{{resendCode}}", "-165489997": "A sessão expirou", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "Barreira estabelecida abaixo do preço à vista.", "-635746838": "Abaixo do preço atual", "-548979988": "Preço fixo", - "-1013686843": "Hora atual", + "-1838512476": "Escolha uma hora de término", "-1977959027": "horas", - "-1084580778": "Termina às", + "-591705950": "Termina a", + "-1013686843": "Hora atual", + "-1727323033": "0 min", "-1068424721": "Duração máx", "-718750246": "A sua entrada aumenta {{growth_rate}}% por tick, desde que o preço à vista atual se mantenha dentro de ±{{tick_size_barrier_percentage}} do preço à vista anterior.", "-2131851017": "Taxa de crescimento", @@ -3987,6 +3987,7 @@ "-1541404572": "O TP foi desativado.", "-1634963573": "O SL foi desativado.", "-337314714": "dias", + "-1855256857": "h", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index f2cb0e46ba4b..c3895e73f5e1 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -310,7 +310,7 @@ "294305803": "Управление настройками счета", "294335229": "Продать по рыночной цене", "296017162": "Назад к боту", - "299867329": "Для получения дополнительной информации ознакомьтесь с этой статьей в блоге, посвященной основам создания торгового бота.", + "299867329": "Подробнее о создании торгового бота можно узнать в этой статье.", "301315130": "Сумма, которую вы хотите получить по истечении срока действия контракта за каждый пункт изменения между конечной ценой и барьером.", "301441673": "Укажите гражданство так, как оно указано в вашем паспорте или другом государственном удостоверении личности.", "304309961": "Мы рассматриваем ваш запрос на вывод средств. Вы можете отменить эту транзакцию до того, как мы начнем обрабатывать запрос.", @@ -1282,7 +1282,6 @@ "1218546232": "Что такое Fiat onramp?", "1219844088": "выполнить %1", "1221250438": "Чтобы активировать вывод средств, отправьте нам <0>удостоверение личности (POI) и <1>подтверждение адреса (POA), а также заполните <2>финансовую оценку в настройках счета.", - "1221947449": "Введите 6-значный код, отправленный вам в {{phone_verification_type}} на {{users_phone_number}}. <0>", "1222096166": "Пополнение через банковский перевод, кредитную карту или электронный кошелек", "1222521778": "Сложно пополнять счет и выводить средства.", "1222544232": "Мы отправили вам электронное письмо", @@ -1349,6 +1348,7 @@ "1274380814": "Ваша выплата равна <0>выплате за пункт, умноженной на разницу, <1>в пунктах, между конечной ценой и ценой исполнения. Вы получите прибыль только в том случае, если Ваша выплата будет больше, чем Ваша первоначальная ставка.", "1274819385": "3. Жалобы и споры", "1276660852": "Отправьте подтверждение личности", + "1276973471": "Продукты, предлагаемые на нашем сайте, являются сложными деривативами и несут значительный риск потенциальных потерь. CFD — это сложные инструменты с высоким риском быстрой потери денег из-за кредитного плеча. 70.84% розничных счетов теряют деньги на торговле CFD с этим провайдером. Оцените понимание этих продуктов и свою готовность к высокому риску потерь.", "1279937041": "<0>Примечание: Некоторые сложные стратегии могут столкнуться с проблемами в конструкторе ботов. Если у вас есть вопросы, свяжитесь с нами через <1/>.", "1281045211": "Сортирует элементы в заданном списке по их числовому или алфавитному значению в порядке возрастания или убывания.", "1281290230": "Выбрать", @@ -1419,7 +1419,6 @@ "1339613797": "Регулирующие органы/Внешнее разрешение споров", "1340286510": "Бот остановлен, но ваш контракт может все еще продолжаться. Это можно проверить на странице Отчеты.", "1341840346": "Смотреть в журнале", - "1341921544": "Торговые счета и средства", "1344696151": "Forex, акции, фондовые индексы, сырьевые товары, криптовалюты и синтетические индексы.", "1346038489": "Значение должно быть меньше 70.", "1346204508": "Тейк профит", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Счета Deriv MT5", "1499080621": "Попытка выполнить недопустимую операцию.", + "1499733992": "подтвержден как ваш номер телефона.", "1501691227": "Этот <0>{{account_type_name}} счет Deriv MT5 будет открыт в Deriv (V) Ltd. Компания регулируется Vanuatu Financial Services Commission.", "1502039206": "Выше {{barrier}}", "1502325741": "Пароль и адрес электронной почты не могут совпадать.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Время начала", "1694517345": "Введите новый адрес эл. почты", - "1694888104": "Продукты, предлагаемые на нашем сайте, являются сложными производными продуктами и несут значительный риск потенциальных потерь. CFD — это сложные инструменты с высоким риском быстрой потери денег из-за кредитного плеча. 70.78% розничных счетов теряют деньги на CFD с этим провайдером. Оцените понимание этих продуктов и свою готовность к высокому риску потерь.", "1696190747": "Торговля по своей сути связана с рисками, и фактическая прибыль может колебаться под влиянием различных факторов, включая волатильность рынка и другие непредвиденные переменные. Поэтому проявляйте осторожность и проводите тщательное исследование, прежде чем приступать к какой-либо торговой деятельности.", "1697529334": "Важно: ваш счет <0>{{platform}} {{existing_account}}.", "1698624570": "2. Нажмите Ok для подтверждения.", @@ -2640,7 +2639,6 @@ "-1101737402": "Пожалуйста, выберите*", "-975118358": "Ваш счет будет открыт в {{legal_entity_name}}. Компания регулируется Malta Financial Services Authority (MFSA) и подчиняется законодательству Мальты.", "-2073934245": "Финансовые услуги, предоставляемые на этом сайте, подходят только для клиентов, готовых нести ответственность за возможную потерю всех инвестированных средств, а также осознающих все риски и имеющих опыт покупки финансовых контрактов. Заключение сделок на финансовых контрактах предполагает высокий уровень риска. Если приобретённые контракты истекут, не принеся прибыли, вы потеряете всю инвестированную сумму.", - "-1035494182": "Вы подтверждаете, что в соответствии с усмотрением Компании, применимыми правилами и внутренними проверками мы откроем вам счет и разрешим вам внести средства во время процедуры приема клиентов. Однако до завершения проверки вашего счета вы не сможете торговать, выводить средства и вносить другие депозиты. Если вы не предоставите соответствующие документы в течение 30 дней, мы вернем внесенную сумму тем же платежным методом, который вы использовали для внесения депозита.", "-1125193491": "Добавить счёт", "-2068229627": "Я не являюсь ПЗЛ и не являлся ПЗЛ в течение последних 12 месяцев.", "-1209644365": "Настоящим я подтверждаю, что запрос на открытие счета в Deriv Investments (Europe) Ltd сделан по моей собственной инициативе.", @@ -2757,9 +2755,9 @@ "-222105210": "Повторная отправка кода", "-1601377103": "Шаг 3 из 3: Подтвердите свой номер", "-121443071": "Шаг 1 из 3: Требуется проверка электронной почты", + "-1419026486": "Введите 6-значный код, отправленный вам в {{phone_verification_type}} на <1>{{users_phone_number}}. <0>", "-652539141": "Код OTP", "-1124039045": "Код верификации", - "-1487715516": "{{ phone }} подтвержден как ваш номер телефона.", "-1184626439": "Не получили код?{{resendCode}}", "-165489997": "Сессия истекла", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "Барьер установлен ниже рыночной цены.", "-635746838": "Нижний уровень", "-548979988": "Фиксированная цена", - "-1013686843": "Текущее время", + "-1838512476": "Выберите время окончания", "-1977959027": "час.", - "-1084580778": "Заканчивается в", + "-591705950": "Заканчивается", + "-1013686843": "Текущее время", + "-1727323033": "0 мин", "-1068424721": "Макс. длительность", "-718750246": "Ваша ставка будет расти на {{growth_rate}}% за тик до тех пор, пока текущая спот-цена остается в пределах ±{{tick_size_barrier_percentage}} от предыдущей спот-цены.", "-2131851017": "Темп роста", @@ -3987,6 +3987,7 @@ "-1541404572": "ТП отключен.", "-1634963573": "СЛ отключен.", "-337314714": "дн.", + "-1855256857": "ч", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/si.json b/packages/translations/src/translations/si.json index e2efb1f051c7..46b0ec8768d2 100644 --- a/packages/translations/src/translations/si.json +++ b/packages/translations/src/translations/si.json @@ -1282,7 +1282,6 @@ "1218546232": "Fiat onramp යනු කුමක්ද?", "1219844088": "%1 කරන්න", "1221250438": "මුදල් ආපසු ගැනීම් සබල කිරීමට, කරුණාකර ඔබේ <0>අනන්‍යතාව සනාථ කිරීම (POI) සහ <1>ලිපිනය සනාථ කිරීම (POA) සහ ඔබේ ගිණුම් සැකසීම් තුළ <2>මූල්‍ය තක්සේරුව සම්පූර්ණ කරන්න.", - "1221947449": "ඔබට {{users_phone_number}} සඳහා {{phone_verification_type}} මඟින් ඔබට එවූ 6 අංකිත කේතය ඇතුල් කරන්න. <0>", "1222096166": "බැංකු වයර්, ක්‍රෙඩිට් කාඩ් සහ ඉ-පසුම්බිය හරහා තැන්පත් කරන්න", "1222521778": "තැන්පතු සහ මුදල් ආපසු ගැනීම දුෂ්කර ය.", "1222544232": "අපි ඔබට ඊ-තැපෑලක් එවා ඇත", @@ -1349,6 +1348,7 @@ "1274380814": "ඔබේ ගෙවීම අවසන් මිල සහ වර්ජන මිල අතර වෙනස වන <1>ලක්ෂ්‍යයේ ප්‍රතිශතවල ගුණ කළ <0>ලක්ෂ්‍යයේ ප්‍රතිශතයකට ගෙවීමට සමාන වේ. ඔබ ලාභයක් උපයා ගන්නේ ඔබේ ගෙවීම ඔබේ මුල් කොටසට වඩා වැඩි නම් පමණි.", "1274819385": "3. පැමිණිලි හා මත භේද", "1276660852": "ඔබේ අනන්‍යතාව සනාථ කිරීම ඉදිරිපත් කරන්න", + "1276973471": "අපගේ වෙබ් අඩවියේ ඉදිරිපත් කර ඇති නිෂ්පාදන සංකීර්ණ ව්‍යුත්පන්න නිෂ්පාදන වන අතර ඒවා විය හැකි අලාභයේ සැලකිය යුතු අවදානමක් දරයි. CFD යනු උත්තෝලනය හේතුවෙන් වේගයෙන් මුදල් අහිමි වීමේ ඉහළ අවදානමක් සහිත සංකීර්ණ මෙවලම් වේ. මෙම සැපයුම්කරු සමඟ CFD ගනුදෙනු කිරීමේදී සිල්ලර ආයෝජක ගිණුම්වලින් 70.84%කට මුදල් අහිමි වේ. මෙම නිෂ්පාදන ක්‍රියා කරන ආකාරය ඔබ තේරුම් ගන්නේද යන්න සහ ඔබේ මුදල් අහිමි වීමේ ඉහළ අවදානමක් දැරීමට ඔබට හැකියාව තිබේද යන්න ඔබ විසින් සලකා බැලිය යුතුය.", "1279937041": "<0>සටහන: සමහර කුළුපන් පරිසරවලදී ප්‍රශ්න පැමිණිය හැක. ඔබට ප්‍රශ්න ඇත්නම්, අපව <1/> හරහා අමතන්න.", "1281045211": "දී ඇති ලැයිස්තුවක ඇති අයිතම, ඒවායේ සංඛ්‍යාත්මක හෝ අකාරාදී අගය අනුව, ආරෝහණ හෝ අවරෝහණ අනුපිළිවෙලින් වර්ග කරයි.", "1281290230": "තෝරන්න", @@ -1419,7 +1419,6 @@ "1339613797": "නියාමක/බාහිර මත භේද විසඳීම", "1340286510": "බොට් නැවතී ඇත, නමුත් ඔබේ ගනුදෙනුව තවමත් ක්‍රියාත්මක විය හැක. ඔබට එය වාර්තා පිටුවෙන් පරීක්ෂා කළ හැකිය.", "1341840346": "ජර්නලයේ බලන්න", - "1341921544": "ගනුදෙනු ගිණුම් සහ අරමුදල්", "1344696151": "Forex, කොටස්, කොටස් දර්ශක, වෙළඳ භාණ්ඩ, ක්‍රිප්ටෝ මුදල් සහ කෘත්‍රිම​ දර්ශක.", "1346038489": "70 ට වඩා අඩු විය යුතුය.", "1346204508": "Take profit", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Deriv MT5 ගිණුම්", "1499080621": "අවලංගු මෙහෙයුමක් කිරීමට උත්සාහ කළා.", + "1499733992": "ඔබගේ දුරකථන අංකයක් ලෙස තහවුරු කර ඇත.", "1501691227": "Vanuatu Financial Services Commission විසින් නියාමනය කරනු ලබන, Deriv (V) Ltd යටතේ ඔබේ Deriv MT5 <0>{{account_type_name}} ගිණුම එක් කරන්න.", "1502039206": "{{barrier}}ට වැඩි", "1502325741": "ඔබේ මුරපදය ඔබේ ඊ-තැපැල් ලිපිනයට සමාන විය නොහැක.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "ආරම්භක වේලාව", "1694517345": "නව ඊ-තැපැල් ලිපිනයක් ඇතුළත් කරන්න", - "1694888104": "අපගේ වෙබ් අඩවියේ ඉදිරිපත් කර ඇති නිෂ්පාදන සංකීර්ණ ව්‍යුත්පන්න නිෂ්පාදන වන අතර ඒවා විය හැකි අලාභයේ සැලකිය යුතු අවදානමක් දරයි. CFD යනු උත්තෝලනය හේතුවෙන් වේගයෙන් මුදල් අහිමි වීමේ ඉහළ අවදානමක් සහිත සංකීර්ණ මෙවලම් වේ. මෙම සැපයුම්කරු සමඟ CFD ගනුදෙනු කිරීමේදී සිල්ලර ආයෝජක ගිණුම්වලින් 70.78%කට මුදල් අහිමි වේ. මෙම නිෂ්පාදන ක්‍රියා කරන ආකාරය ඔබ තේරුම් ගන්නේද යන්න සහ ඔබේ මුදල් අහිමි වීමේ ඉහළ අවදානමක් දැරීමට ඔබට හැකියාව තිබේද යන්න ඔබ විසින් සලකා බැලිය යුතුය.", "1696190747": "ගනුදෙනුවලට සහජයෙන්ම අවදානම් ඇතුළත් වන අතර වෙළඳපල අස්ථාවරත්වය සහ අනෙකුත් අනපේක්ෂිත විචල්‍යයන් ඇතුළු විවිධ සාධක හේතුවෙන් සැබෑ ලාභ උච්චාවචනය විය හැක. එබැවින්, ගනුදෙනු සම්බන්ධ ඕනෑම කටයුත්තක නියැලීමට පෙර ප්‍රවේශම් වන්න සහ ගැඹුරින් සොයා බලන්න.", "1697529334": "වැදගත්: ඔබගේ <0>{{platform}} {{existing_account}} ගිණුම.", "1698624570": "2. තහවුරු කිරීමට හරි ක්ලික් කරන්න.", @@ -2640,7 +2639,6 @@ "-1101737402": "කරුණාකර තෝරන්න*", "-975118358": "ඔබේ ගිණුම {{legal_entity_name}} නාමයෙන් විවෘත කර, Malta Financial Services Authority (MFSA) විසින් නියාමනය කරනු ලබන අතර එය මෝල්ටාවේ නීතිවලට යටත් වනු ඇත.", "-2073934245": "මෙම වෙබ් අඩවියේ පිරිනමනු ලබන මූල්‍ය ගනුදෙනු සේවා සුදුසු වන්නේ ආයෝජනය කරන සියලුම මුදල් අහිමි වීමේ හැකියාව පිළිගන්නා සහ මූල්‍ය ගිවිසුම් මිලදී ගැනීමේදී ඇති අවදානම තේරුම් ගත් සහ ඒ පිළිබඳ අත්දැකීම් ඇති ගනුදෙනුකරුවන්ට පමණි. මූල්‍ය ගිවිසුම්වල ගනුදෙනු ඉහළ අවදානමක් දරයි. ඔබ මිල දී ගත් ගිවිසුම් නිෂ්ඵල ලෙස කල් ඉකුත් වුවහොත්, ගිවිසුම් වාරිකය ඇතුළු ඔබේ සියලුම ආයෝජන ඔබට අහිමි වනු ඇත.", - "-1035494182": "සමාගමේ අභිමතය පරිදි, අදාළ රෙගුලාසි සහ අභ්‍යන්තර චෙක්පත් සපුරාලීමට යටත්ව, අපි ඔබ වෙනුවෙන් ගිණුමක් විවෘත කරන අතර සේවාලාභී පිළිගැනීමේ ක්‍රියාපටිපාටිය තුළ අරමුදල් තැන්පත් කිරීමට ඔබට ඉඩ දෙන බව ඔබ පිළිගනී. කෙසේ වෙතත්, ඔබේ ගිණුමේ සත්‍යාපනය අවසන් වන තුරු, ඔබට ගනුදෙනු කිරීමට, මුදල් ආපසු ගැනීමට හෝ වැඩිදුර තැන්පතු සිදු කිරීමට නොහැකි වනු ඇත. ඔබ දින 30ක් ඇතුළත අදාළ ලියකියවිලි ලබා නොදෙන්නේ නම්, අපි ඔබ තැන්පත් කිරීමට භාවිත කළ ගෙවීම් ක්‍රමය හරහාම තැන්පත් කළ මුදල ආපසු ගෙවන්නෙමු.", "-1125193491": "ගිණුම එක් කරන්න", "-2068229627": "මම PEP නොවේ, පසුගිය මාස 12 ඇතුළත මම PEP නොවුණෙමි.", "-1209644365": "Deriv Investments (Europe) Ltd සමඟ ගිණුමක් ආරම්භ කිරීම සඳහා වන මගේ ඉල්ලීම මගේම මූලිකත්වයෙන් සිදු වූවක් බව මම මෙයින් තහවුරු කරමි.", @@ -2757,9 +2755,9 @@ "-222105210": "කේතය නැවත යවන්න", "-1601377103": "අවස්ථාව 3ෙන් 3: ඔබගේ අංකය සත්‍යාපනය කරන්න", "-121443071": "අවස්ථාව 1ෙන් 3: ඊ-තැපෑල සත්‍යාපනය අවශ්‍යයි", + "-1419026486": "{{phone_verification_type}} මගින් ඔබට එවූ 6-අංක කේතය <1>{{users_phone_number}} හි ඇතුලත් කරන්න. <0>", "-652539141": "OTP කේතය", "-1124039045": "සත්‍යාපන කේතය", - "-1487715516": "{{ phone }} ඔබේ ජංගම දුරකථන අංකය ලෙස සත්‍යාපනය කර ඇත.", "-1184626439": "කේතය නොලැබුණාද?{{resendCode}}", "-165489997": "සැසි කල් ඉකුත් විය", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "දර්ශක මිල ස්ථානයට වඩා පහළට පිහිටුවා ඇත.", "-635746838": "Low ස්ථානය.", "-548979988": "ස්ථිර මිල", - "-1013686843": "වත්මන් වේලාව", + "-1838512476": "අවසන් වේලාව තෝරන්න", "-1977959027": "පැය", - "-1084580778": "අවසන් වේලාවේ", + "-591705950": "අවසන් වේලාවේ", + "-1013686843": "වත්මන් වේලාව", + "-1727323033": "0 අවම", "-1068424721": "උපරිම කාලය", "-718750246": "වත්මන් ස්ථාන මිල පෙර ස්ථාන මිලට වඩා ±{{tick_size_barrier_percentage}} ක් තුළ පවතින තෙක් ඔබේ කොටස් tick එකකට {{growth_rate}}% බැගින් වර්ධනය වේ.", "-2131851017": "වර්ධන වේගය", @@ -3987,6 +3987,7 @@ "-1541404572": "TP නිවා දී ඇත.", "-1634963573": "SL නිවා දී ඇත.", "-337314714": "දින", + "-1855256857": "ඳ", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/sw.json b/packages/translations/src/translations/sw.json index 2374a0e6cd37..728a7f3a4997 100644 --- a/packages/translations/src/translations/sw.json +++ b/packages/translations/src/translations/sw.json @@ -310,7 +310,7 @@ "294305803": "Simamia mipangilio ya akaunti", "294335229": "Kuuza kwa bei ya soko", "296017162": "Rudi kwenye Bot", - "299867329": "Kwa habari zaidi, angalia chapisho hili la blogi juu ya misingi ya kujenga bot ya biashara.", + "299867329": "Kwa habari zaidi, angalia chapisho hili la blogu juu ya misingi ya kujenga bot ya biashara.", "301315130": "Kiasi unachochagua kupokea wakati wa kumalizika kwa kila hatua ya mabadiliko kati ya bei ya mwisho na kizuizi.", "301441673": "Chagua uraia/utaifa wako kama inavyoonekana kwenye pasipoti yako au kitambulisho kingine kinachotolewa na serikali.", "304309961": "Tunakagua ombi lako la utoaji pesa. Bado unaweza kughairi muamala huu ikiwa unataka. Mara tu tunapoanza ushughulikiaji, hautaweza kughairi.", @@ -380,7 +380,7 @@ "367978153": "Imeondolewa kutoka zinazopendwa", "368160866": "katika orodha", "369035361": "<0>•Nambari yako ya akaunti", - "369409629": "Tumesasisha mfumo wetu wa Blockly katika Deriv Bot kutoka <0 different='version 3' to='version 10'>. Hii inakuja na:", + "369409629": "Tumesasisha mfumo wetu wa Blockly katika Deriv Bot kutoka <0>toleo la 3 hadi toleo 10. Hii inaleta:", "371151609": "Imetumika mwisho", "371710104": "Upeo huu utaruhusu programu za tatu za tatu kununua na kuuza mikataba kwako, upya ununuzi wako uliomalizika, na kujaza akaunti zako za onyesho.", "372291654": "Kuondoa wakati lazima uwe baada ya leo.", @@ -416,7 +416,7 @@ "411482865": "Ongeza akaunti ya {{deriv_account}}", "412433839": "Nakubaliana na <0>vigezo na masharti.", "413594348": "Herufi tu, nambari, nafasi, kipindi, kipindi, na kipindi cha mbele zinaruhusiwa.", - "415677940": "Utendaji bora.", + "415677940": "Utendaji wa haraka.", "417864079": "Hutaweza kubadilisha sarafu mara tu utakapoweka amana.", "419485005": "Sehemu", "419496000": "Mkataba wako umefungwa moja kwa moja wakati faida yako ni zaidi au sawa na kiasi hiki. Kizuizi hiki kinaweza kutumika tu na aina ya biashara ya viongezeka.", @@ -532,11 +532,11 @@ "527329988": "Hili ni nenosiri la kawaida kati ya 100 bora", "529056539": "Chaguzi", "531114081": "3. Aina ya Mkataba", - "531453415": "Anzisha upya uthibitishaji wa nambari yako ya simu.", + "531453415": "Anza upya uthibitishaji wa nambari yako ya simu.", "531675669": "Euro", "532724086": "Mkataba wa ajira", "533403953": "Akaunti zako zilizopo <0>{{platform}} {{type}} {{from_account}} zitaendelea kupatikana.", - "535021574": "Kimbia mkakati wako uliofasiriwa ili kuangalia utendaji wake.", + "535021574": "Tumia mkakati wako mpya ili kuangalia utendaji wake.", "535041346": "Max. jumla ya hisa kwa siku", "536277802": "Historia ya TP & SL", "537788407": "Jukwaa lingine la CFDs", @@ -605,7 +605,7 @@ "597481571": "TAARIFA", "597707115": "Tuambie kuhusu uzoefu wako wa biashara.", "599469202": "{{secondPast}}s iliyopita", - "601772576": "Tunakubali tu aina hizi za nyaraka kama uthibitisho wa anwani yako. Hati lazima iwe ya hivi karibuni (iliyotolewa ndani ya miezi {{expiry_in_months}} iliyopita) na ijumuishe jina lako na anwani:", + "601772576": "Tunakubali tu aina hizi za hati kama uthibitisho wa anwani yako. Hati lazima iwe iliyotolewa ndani ya miezi {{expiry_in_months}} iliyopita na iwe na jina lako kamili na anwani:", "602278674": "Thibiti utambulisho", "603849445": "Bei ya mgomo", "603849863": "Tafuta <0>Rudia Wakati/Mpaka, na ubofye ikoni + ili kuongeza kizuizi kwenye eneo la nafasi ya kazi.", @@ -837,7 +837,7 @@ "816580787": "Karibu tena! Jumbe zako zimerejeshwa.", "816738009": "<0/><1/>Unaweza pia kuibua mgogoro wako ambao haujatatuliwa kwenda <2>Ofisi ya Msuluhishi wa Huduma za Kifedha.", "818447476": "Ungependa kubadilisha akaunti?", - "820517828": "Tuma hati yako", + "820517828": "Wasilisha hati yako", "820877027": "Tafadhali thibitisha uthibitisho wako wa utambulisho", "821163626": "Matengenezo ya seva hufanyika kila Jumamosi ya kwanza ya mwezi kutoka saa 7 hadi 10 GMT. Unaweza kupata usumbufu wa huduma wakati huu.", "822011242": "Tafadhali angalia <0>vigezo na masharti yetu yaliyosasishwa.", @@ -870,7 +870,7 @@ "843333337": "Unaweza tu kufanya amana. Tafadhali kamilisha tath <0>mini ya kifedha ili kufungua uondoaji.", "845106422": "Utabiri wa tarakimu mwisho", "845304111": "Kipindi cha polepole cha EMA {{ input_number }}", - "846973078": "Nambari tayari ipo katika mfumo wetu. Weka mpya au wasiliana nasi kupitia <0>chat ya moja kwa moja kwa msaada.", + "846973078": "Nambari tayari ipo katika mfumo wetu. Weka mpya au wasiliana nasi kupitia <0>mazungumzo mubashara kwa msaada.", "847209411": "{{formatted_opening_time}} (GMT), {{opening_date}}", "848083350": "Malipo yako ni sawa na <0>malipo kwa kila pointi zidisha na tofauti kati ya bei ya mwisho na bei ya ushindani. Utapata faida ikiwa tu malipo yako ni makubwa kuliko dau lako la awali.", "848203102": "Omba kiunganishi kipya cha uthibitishaji kupitia barua pepe.", @@ -912,7 +912,7 @@ "875532284": "Anzisha upya mchakato kwenye kifaa tofauti", "876086855": "Kamilisha fomu ya tathmini ya kifedha", "876292912": "Toka", - "876826584": "Tafadhali ingiza nambari halali ya simu, ikiwa ni pamoja na kodi ya nchi (mfano: +15417541234).", + "876826584": "Tafadhali ingiza nambari sahihi ya simu, ikiwa ni pamoja na msimbo wa nchi (mfano: +15417541234).", "879014472": "Imefikia idadi kubwa ya desimali", "879647892": "Unaweza kuuza mkataba hadi sekunde 60 kabla ya kumalizika. Ukifanya hivyo, tutakulipa <0>thamani ya mkataba.", "880552407": "Tamko la makazi rasmi au hati ya kiapo", @@ -971,7 +971,7 @@ "938500877": "{{ text }}. <0> Unaweza kutazama muhtasari wa muamala huu kwenye barua pepe yako.", "938947787": "Utoaji pesa {{currency}}", "938988777": "Kizuizi cha juu", - "940624996": "Kuhamasisha mikakati kwenda Deriv Bot", + "940624996": "Kuhamisha mikakati kwenda Deriv Bot", "942015028": "Kielelezo cha Hatua 500", "944499219": "Max. nafasi za kufungua", "945532698": "Mkataba uliouzwa", @@ -1056,7 +1056,7 @@ "1019508841": "Kizuizi 1", "1021090237": "Boresha akaunti yako ya <0>{{account_1}} <1/>na<0>{{account_2}} {{platform}} ", "1021679446": "Multipliers tu", - "1022923711": "Kanuni isiyo sahihi. Jaribu tena.", + "1022923711": "Msimbo si sahihi. Jaribu tena.", "1022934784": "Dakika 1", "1022971288": "Malipo kwa pip", "1023237947": "1. Katika mfano hapa chini, maagizo hurudiwa maadamu thamani ya x ni ya chini au sawa na 10. Mara tu thamani ya x inazidi 10, mzunguko husitishwa.", @@ -1100,7 +1100,7 @@ "1049384824": "Rise", "1050063303": "Video kwenye Deriv Bot", "1050128247": "Ninathibitisha kuwa nimehakiki taarifa ya uhamishaji pesa kwa wakala wa malipo.", - "1050433789": "Tafadhali ingiza nambari halali ya simu (m.f. +15417541234).", + "1050433789": "Tafadhali ingiza nambari sahihi ya simu (m.f. +15417541234).", "1050844889": "Ripoti", "1052779010": "Uko kwenye akaunti yako ya demo", "1052921318": "{{currency}} Wallet", @@ -1282,7 +1282,6 @@ "1218546232": "Fiat onramp ni nini?", "1219844088": "hadi %1", "1221250438": "Ili kuwezesha utoaji pesa, tafadhali wasilisha <0>Uthibitisho wako wa Kitambulisho (POI)<0> na <1> Uthibitisho wa Anwani (POA) na pia kamilisha <2>tathmini ya kifedha katika mipangilio ya akaunti yako.", - "1221947449": "Ingiza nambari ya vidigitali 6 iliyotumwa kwako kupitia {{phone_verification_type}} kwenye {{users_phone_number}}. <0>", "1222096166": "Weka pesa kupitia benki wire, credit kadi, na e-wallet", "1222521778": "Ni vigumu kuweka pesa na kutoa wakati huo huo.", "1222544232": "Tumekutumia barua pepe", @@ -1349,7 +1348,8 @@ "1274380814": "Malipo yako ni sawa na <0>malipo kwa kila pip zidisha na tofauti <1>katika pips, kati ya bei ya mwisho na bei ya ushindani. Utapata faida tu ikiwa malipo yako ni makubwa kuliko dau lako la awali.", "1274819385": "3. Malalamiko na Migogoro", "1276660852": "Wasilisha ushahidi wako wa utambulisho", - "1279937041": "<0>Kumbuka: Mikakati mingine ngumu inaweza kukutana na matatizo katika Bot Builder. Ikiwa una maswali, tutafika nasi kupitia <1/>.", + "1276973471": "Bidhaa zinazotolewa kwenye wavuti yetu ni bidhaa ngumu za matokeo ambazo zina hatari kubwa ya upotezaji. CFD ni zana ngumu zilizo na hatari kubwa ya kupoteza pesa haraka kutokana na ufanisi. 70.84% ya akaunti za wawekezaji wa rejareja hupoteza pesa wakati wa kufanya biashara ya CFD na mtoa huduma huyu. Unapaswa kuzingatia ikiwa unaelewa jinsi bidhaa hizi zinavyofanya kazi na ikiwa unaweza kumudu kuchukua hatari kubwa ya kupoteza pesa zako.", + "1279937041": "<0>Kumbuka: Baadhi ya mikakati tata huenda ikukutana na matatizo katika Bot Builder. Ikiwa una maswali, wasiliana nasi kupitia <1/>.", "1281045211": "Hupanga vitu katika orodha fulani, kwa thamani yao ya nambari au alfabeti, kwa utaratibu wa kupanda au kushuka.", "1281290230": "Chagua", "1282951921": "Only Downs", @@ -1419,7 +1419,6 @@ "1339613797": "Udhibiti/Utatuzi wa migogoro ya nje", "1340286510": "Bot imesimama, lakini biashara yako bado inaweza kuendelea. Unaweza kuiangalia kwenye ukurasa wa Ripoti.", "1341840346": "Tazama katika Jarida", - "1341921544": "Akaunti za biashara na fedha", "1344696151": "Forex, hisa, indeksi za hisa, bidhaa, cryptocurrencies na sintetiki indeksi.", "1346038489": "Inapaswa kuwa chini ya 70.", "1346204508": "Chukua faida", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Deriv MT5 akaunti", "1499080621": "Alijaribu kufanya operesheni batili.", + "1499733992": "imethibitishwa kama nambari yako ya simu.", "1501691227": "Ongeza akaunti yako ya Deriv MT5 <0>{{account_type_name}} chini ya Deriv (V) Ltd, inayodhibitiwa na Vanuatu Financial Service Commission.", "1502039206": "Over {{barrier}}", "1502325741": "Nenosiri lako haliwezi kuwa sawa na anwani yako ya barua pepe.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Wakati wa kuanza", "1694517345": "Ingiza anwani mpya ya barua pepe", - "1694888104": "Bidhaa zinazotolewa kwenye wavuti yetu ni bidhaa ngumu za matokeo ambazo zina hatari kubwa ya upotezaji. CFD ni zana ngumu zilizo na hatari kubwa ya kupoteza pesa haraka kutokana na ufanisi. 70.78% ya akaunti za wawekezaji wa rejareja hupoteza pesa wakati wa kufanya biashara ya CFD na mtoa huduma huyu. Unapaswa kuzingatia ikiwa unaelewa jinsi bidhaa hizi zinavyofanya kazi na ikiwa unaweza kumudu kuchukua hatari kubwa ya kupoteza pesa zako.", "1696190747": "Biashara kwa asilia inahusisha hatari, na faida halisi inaweza kubadilika kutokana na sababu mbalimbali, ikiwa ni pamoja na kuyumba kwa soko na vigezo vingine visivyotarajiwa, kwa hivyo, chukua tahadhari na fanya utafiti wa kina kabla ya kujihusisha na shughuli zozote za biashara.", "1697529334": "Muhimu: Akaunti yako ya <0>{{platform}} {{existing_account}}.", "1698624570": "2. Bonyeza Sawa ili kuthibitisha.", @@ -1900,7 +1899,7 @@ "1794815502": "Pakua historia yako ya miamala.", "1796270910": "{{days}} zilizopita", "1796787905": "Tafadhali pakia hati zifuatazo.", - "1797139903": "Pakua mkakati wako katika muundo wa XML na uagizie kwenye Deriv Bot.", + "1797139903": "Pakua mkakati wako katika muundo wa XML na uingize kwenye Deriv Bot.", "1798943788": "Unaweza kuweka pesa tu.", "1801093206": "Pata orodha ya candle", "1801270786": "Je, uko tayari kubadilisha mkakati wako wa biashara bila kuandika msimbo wowote? Umefika mahali sahihi.", @@ -2000,7 +1999,7 @@ "1880377568": "Mfano wa mkakati wa D'Alembert", "1880875522": "Unda “pata %1”", "1881018702": "saa", - "1881142897": "Ukimbiaji Tick Delayed", + "1881142897": "Ukimbiaji Tick Uliochelewa", "1881380263": "Jumla ya mali katika akaunti yako.", "1881587673": "Jumla ya dau tangu ulipofuta takwimu zako za mwisho.", "1882825238": "Anzisha upya hali ya biashara", @@ -2080,7 +2079,7 @@ "1960005187": "Fuata hatua hizi ili kuhamasisha mikakati yako kwa urahisi", "1960240336": "barua ya kwanza", "1964165648": "Uunganisho upote", - "1965358881": "Hatua ya 2 ya 3: Thibitisha nambari yako ya simu", + "1965358881": "Hatua ya 2 kati ya 3: Thibitisha nambari yako ya simu", "1965916759": "Chaguzi za Asia hutolewa kwa kulinganisha alama ya mwisho na sehemu ya wastani kwa kipindi hicho.", "1966023998": "2FA imewezeshwa", "1966281100": "Thamani ya Console {{ message_type }} : {{ input_message }}", @@ -2219,7 +2218,7 @@ "2086048243": "Cheti cha usajili", "2086383634": "Unaongeza akaunti yako ya {{platform}} {{product}} chini ya {{company}}, iliyodhibitiwa na Tume ya Huduma za Fedha ya Visiwa vya Virgin ya Uingereza (leseni no. SIBA/L/18/1114).", "2086792088": "Vizuizi vyote vinapaswa kuwa wa kawaida au kamili", - "2087416013": "Tuma tena nambari{{resendCode}}", + "2087416013": "Tuma tena msimbo{{resendCode}}", "2088344208": "Forex (standard), indeksi za hisa, bidhaa, cryptocurrencies, hisa, ETFs, sintetiki indeksi, indeksi kikapu na derived FX", "2088735355": "Kikomo cha kipindi na kuingia", "2089087110": "Indeksi kikapu", @@ -2262,7 +2261,7 @@ "2121227568": "NEO/USD", "2122152120": "Mali", "2127564856": "Utoaji pesa umefungwa", - "2128250969": "Tumia anwani ile ile inayot εμφανίζονται kwenye uthibitisho wako wa anwani (kielelezo cha matumizi, taarifa ya benki, nk.).", + "2128250969": "Tumia anwani ile ile inayoonekana kwenye uthibitisho wako wa anwani (bili ya huduma, taarifa ya benki, nk).", "2129807378": "Sasisha wasifu", "2133075559": "Hii inamaanisha baada ya raundi 10 za hasara mfululizo, mfanyabiashara huyu atapoteza USD 100. Hii inafikia kizingiti cha hasara cha USD 100, na kuzuia bot.", "2133451414": "Muda", @@ -2484,7 +2483,7 @@ "-1995979930": "Mstari wa kwanza wa anwani unahitajika.", "-703454156": "Tafadhali ingiza msimbo wa posta/zip chini ya herufi 20.", "-2113555886": "Herufi, nambari, nafasi, na alama ya vistari (-) tu zinaruhusiwa.", - "-379642178": "Ingiza nambari halali ya simu.", + "-379642178": "Ingiza nambari sahihi ya simu.", "-1103497546": "Mapato ya kodi", "-700600899": "Uthibitisho wa anwani ya biashara", "-1073862586": "Mkataba", @@ -2640,7 +2639,6 @@ "-1101737402": "Tafadhali chagua*", "-975118358": "Akaunti yako itafunguliwa kwa {{legal_entity_name}}, itadhibitiwa na Malta Financial Service Authority (MFSA), na itakuwa chini ya sheria za Malta.", "-2073934245": "Huduma za biashara ya kifedha zinazotolewa kwenye tovuti hii zinafaa tu kwa wateja ambao wanakubali uwezekano wa kupoteza pesa zote wanazowekeza na ambao wanaelewa na wana uzoefu wa hatari inayohusika katika ununuzi wa mikataba ya kifedha. Miamala katika mikataba ya kifedha ina kiwango kikubwa cha hatari. Ikiwa mikataba uliyonunua itaisha bila thamani, utapoteza uwekezaji wako wote, ikiwa ni pamoja na mkataba wa premium.", - "-1035494182": "Unakubali kwamba, kulingana na uamuzi wa Kampuni, kanuni zinazotumika, na ukaguzi wa ndani ukitimizwa, tutakufungulia akaunti na kukuruhusu kuweka pesa wakati wa utaratibu wa kukubalika kwa mteja. Hata hivyo, hadi uthibitishaji wa akaunti yako utakapokamilika, hautaweza kufanya biashara, kutoa au kuweka pesa zaidi. Ikiwa hutatoa hati muhimu za uthibitishaji ndani ya siku 30, tutarejesha kiasi kilichowekwa kupitia njia ile ile ya malipo uliyotumia kuweka pesa.", "-1125193491": "Ongeza akaunti", "-2068229627": "Mimi sio PEP, na sikuwa PEP katika kipindi cha miezi 12 iliyopita.", "-1209644365": "Ninathibitisha kwamba ombi langu la kufungua akaunti na Deriv Investments (Europe) Ltd nimelifanya kwa hiari yangu mwenyewe.", @@ -2692,7 +2690,7 @@ "-1858215754": "Hati lazima iwe ya sasa na iwe imetiwa saini na mamlaka ya utoaji.", "-718917527": "Hati zisizo sahihi au ambazo hazija kamilika zitakataliwa.", "-682267922": "<0>Hati ya kifedha, kisheria, au kiserikali: taarifa ya hivi karibuni ya benki, hati ya kiapo, au barua iliyotolewa na serikali.", - "-214582149": "Bill ya huduma (umeme, maji, gesi)", + "-214582149": "Bill ya matumizi (umeme, maji, gesi)", "-506510414": "Tarehe na muda", "-1708927037": "Anwani ya IP", "-189310067": "Akaunti imefungwa", @@ -2738,7 +2736,7 @@ "-1012699451": "Uzoefu wa biashara ya CFD", "-1894668798": "Uzoefu wa vyombo vingine vya biashara", "-1026468600": "Mzunguko wa vyombo vingine vya biashara", - "-178498188": "Ili kubadilisha nambari yako ya simu iliyothibitishwa, wasiliana nasi kupitia <0>.", + "-178498188": "Ili kubadili nambari yako ya simu iliyothibitishwa, wasiliana nasi kupitia <0>.", "-1044302070": "Nambari tayari ipo kwenye mfumo wetu. Ingiza mpya au wasiliana nasi kupitia <0> kwa msaada", "-136976514": "Nchi ya makazi*", "-1124948631": "Mteja wa Mtaalamu", @@ -2751,17 +2749,17 @@ "-1060822567": "Ukifuta, utapoteza maendeleo yote.", "-1239477911": "pili", "-1603581277": "dakika", - "-667223033": "Pata nambari kupitia SMS", + "-667223033": "Pata msimbo kupitia SMS", "-211241628": "Pata nambari kupitia WhatsApp", - "-690422971": "Omba nambari mpya katika {{next_phone_number_attempt_timestamp}}.", - "-222105210": "Tuma tena nambari", - "-1601377103": "Hatua ya 3 ya 3: Thibitisha nambari yako", - "-121443071": "Hatua ya 1 ya 3: Uthibitishaji wa barua pepe unahitajika", - "-652539141": "Nambari ya OTP", - "-1124039045": "Nambari ya uthibitishaji", - "-1487715516": "{{ phone }} imethibitishwa kama nambari yako ya simu.", - "-1184626439": "Haukupata nambari?{{resendCode}}", - "-165489997": "Kikao kimeisha", + "-690422971": "Omba msimbo mpya katika {{next_phone_number_attempt_timestamp}}.", + "-222105210": "Tuma tena msimbo", + "-1601377103": "Hatua ya 3 kati ya 3: Thibitisha nambari yako", + "-121443071": "Hatua ya 1 kati ya 3: Uthibitishaji wa barua pepe unahitajika", + "-1419026486": "Ingiza tarakimu-6 za msimbo zilizotumwa kwako kupitia {{phone_verification_type}} kwenye <1>{{users_phone_number}}. <0>", + "-652539141": "Msimbo wa OTP", + "-1124039045": "Msimbo wa uthibitishaji", + "-1184626439": "Haukupata msimbo?{{resendCode}}", + "-165489997": "Kipindi kimekwisha", "-1822545742": "Ether Classic", "-1334641066": "Litecoin", "-1214036543": "Dola ya Marekani", @@ -2884,7 +2882,7 @@ "-1749409935": "Hebu twende", "-145462920": "Deriv cTrader", "-982095728": "Pata", - "-390793294": "CFDs kwenye vyombo vya kifedha na derived, <0>zinaendeshwa na TradingView.", + "-390793294": "CFDs kwenye vyombo vya kifedha na derived, <0>inawezeshwa na TradingView.", "-45873457": "MPYA", "-1473281803": "Tabiri katika soko, pata faida ikiwa uko sahihi, chukua hatari pekee ya unachoweka. <0>Jifunze zaidi", "-2134770229": "Jumla ya mali katika Deriv Apps na Deriv MT5 CFDs demo akaunti.", @@ -3199,7 +3197,7 @@ "-792737139": "Tunatoa huduma zetu katika nchi zote, isipokuwa zile zilizotajwa katika sheria na masharti yetu.", "-352345777": "Je, ni mikakati gani maarufu zaidi kwa biashara ya kiotomatiki?", "-552392096": "Mikakati mitatu inayotumiwa sana katika biashara ya kiotomatiki ni Martingale, D'Alembert, na Oscar's Grind - unaweza kuipata imetengenezwa tayari na ina kungojea katika Deriv Bot.", - "-1036999457": "Tazama video hii ili ujifunze jinsi ya kujenga bot ya biashara kwenye Deriv Bot. Pia, angalia chapisho hili la blogi juu ya kujenga bot ya biashara.", + "-1036999457": "Tazama video hii ili ujifunze jinsi ya kujenga bot ya biashara kwenye Deriv Bot. Pia, angalia chapisho hili la blogu juu ya kujenga bot ya biashara.", "-1630262763": "Kuhusu Martingale", "-413928457": "Kuhusu Oscar's Grind", "-1497015866": "Kuhusu Reverse D'Alembert", @@ -3385,12 +3383,12 @@ "-1646497683": "Mzunguko", "-251326965": "Anuwai", "-1136893592": "Matangazo", - "-195234787": "<0>Kumbuka: Kuweka mikakati ngumu kunaweza kuchukua muda. Kuuhifadhi kutoka Deriv Bot kunaweza kuhakikisha upatikanaji wa haraka baadaye. Ikiwa una maswali, tutafika nasi kupitia <1/>.", - "-206059150": "Tsasisha Google Blockly v10", + "-195234787": "<0>Kumbuka: Kupakia mikakati tata kunaweza kuchukua muda. Kuihifadhi kwenye Deriv Bot huhakikisha upatikanaji wa haraka baadae. Ikiwa una maswali, wasiliana nasi kupitia <1/>.", + "-206059150": "Google Blockly v10 update", "-523557619": "Usalama bora.", "-1317334545": "Accumulators sasa ziko kwenye Deriv Bot", "-25869504": "Dhibiti hatari huku ukitumia fursa za soko.", - "-1766767803": "Tumesasisha mfumo wetu wa Blockly katika Deriv Bot kutoka to the version 3 to version 10.", + "-1766767803": "Tumesasisha mfumo wetu wa Blockly katika Deriv Bot kutoka toleo la 3 hadi toleo la 10.", "-1150390589": "Ilirekebishwa mara ya mwisho", "-1393876942": "Boti zako:", "-1545070554": "Futa bot", @@ -3706,7 +3704,7 @@ "-1271218821": "Akaunti imeongezwa", "-197631101": "Fedha zako zitapatikana kwa biashara mara tu uthibitishaji wa akaunti yako utakapokamilika.", "-2055364427": "Vigezo na Masharti Yaliyosasishwa", - "-356910979": "Kwa kuendelea, unafahamu na kukubali mabadiliko.", + "-356910979": "Kwa kuendelea unaelewa na kukubali mabadiliko.", "-835056719": "Tumepokea hati zako", "-55435892": "Tutahitaji siku 1 hadi 3 kukagua hati zako na kukujulisha kwa barua pepe. Unaweza kufanya mazoezi na akaunti za demo wakati huo.", "-554054753": "Anza", @@ -3948,9 +3946,11 @@ "-1858102926": "Vizuizi vilivyowekwa chini ya bei ya iliyopo.", "-635746838": "Bei ya chini", "-548979988": "Bei iliyowekwa", - "-1013686843": "Wakati wa sasa", + "-1838512476": "Chagua tarehe ya mwisho", "-1977959027": "saa", - "-1084580778": "Inamalizika saa", + "-591705950": "Inamalizika saa", + "-1013686843": "Wakati wa sasa", + "-1727323033": "dakika 0", "-1068424721": "Muda wa juu", "-718750246": "Dau lako litaongezeka kwa {{growth_rate}}% kwa kila tick maadamu bei ya sasa itabaki ndani ya ±{{tick_size_barrier_percentage}} kutoka kwa bei ya hapo awali.", "-2131851017": "Kiwango cha ukuaji", @@ -3987,6 +3987,7 @@ "-1541404572": "TP imezimwa.", "-1634963573": "SL imezimwa.", "-337314714": "siku", + "-1855256857": "saa", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", @@ -4178,7 +4179,7 @@ "-166816850": "Unda orodha ya thamani za candle (1)", "-1174859923": "Soma thamani ya candle iliyochaguliwa", "-1972165119": "Soma thamani ya candle (1)", - "-322623215": "Current stat list", + "-322623215": "Orodha ya sasa ya takwimu", "-1956100732": "Unaweza kutumia kizuizi hiki kuchambua ticks, bila kujali biashara zako", "-443243232": "Maudhui ya kizuizi hiki huitwa kwenye kila alama. Weka kizuizi hiki nje ya kizuizi chochote cha mizizi.", "-641399277": "Tick ya Mwisho", @@ -4382,7 +4383,7 @@ "-3423966": "Chukua faida <0 /> Zuia hasara", "-1131753095": "Taarifa ya mkataba wa {{trade_type_name}} hazipatikani kwa sasa. Tunafanya kazi kuzifanya zipatikane hivi karibuni.", "-360975483": "Hujafanya miamala ya aina hii katika kipindi hiki.", - "-507216312": "CFDs kwenye vyombo vya kifedha na derived, zinaendeshwa na TradingView.", + "-507216312": "CFDs kwenye vyombo vya kifedha na derived, inawezeshwa na TradingView.", "-1715390759": "Nataka kufanya hili baadae", "-56163366": "Sina yoyote kati ya hizi", "-2082644096": "Dau la sasa", @@ -4462,10 +4463,10 @@ "-1420737287": "{{hours_passed}} zilizopita", "-2092611555": "Samahani, app hii haipatikani katika eneo ulilipo sasa.", "-1488537825": "Ikiwa una akaunti, ingia ili kuendelea.", - "-2079171087": "Hatuna uwezo wa kutuma nambari kupitia {{ current_carrier }} kwa sasa. Pata nambari yako kupitia {{other_carriers}}.", - "-1366327411": "Muda wa msimbo umekwisha. Pata mpya.", - "-227482563": "Muda wa msimbo umekwisha. Pata nambari mpya.", - "-1867522447": "Nambari isiyo sahihi. Jaribu tena au pata nambari mpya.", + "-2079171087": "Hatuwezi kutuma msimbo kupitia {{ current_carrier }} kwa sasa. Pata msimbo wako kupitia {{other_carriers}}.", + "-1366327411": "Msimbo huu umeisha muda wa matumizi. Pata mpya.", + "-227482563": "Msimbo huu umeisha muda wa matumizi. Pata msimbo mwingine.", + "-1867522447": "Msimbo si sahihi. Jaribu tena au pata msimbo mpya.", "-886317740": "<0>Tarehe ya kuzaliwa kwenye hati yako ya kitambulisho haifanani na uliyoweka katika wasifu wako.", "-1606307809": "Hatukuweza kuthibitisha hati ya kitambulisho na maelezo yaliyotolewa.", "-475787720": "Hali ya uthibitishaji ilikuwa tupu, imekataliwa kwa ukosefu wa taarifa.", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index f598aa6dffe9..f0ab95cb3fe9 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -1282,7 +1282,6 @@ "1218546232": "การแปลงเงินตรารัฐบาลเป็นคริปโต (Fiat onramp) คืออะไร?", "1219844088": "ทำ %1", "1221250438": "หากต้องการเปิดใช้งานการถอนเงิน กรุณาส่ง <0>หลักฐานแสดงตัว (POI) และ <1>หลักฐานที่อยู่ (POA) และกรอก <2>การประเมินทางการเงิน ในการตั้งค่าบัญชีของคุณ", - "1221947449": "ป้อนรหัส 6 หลักที่ส่งถึงคุณผ่าน {{phone_verification_type}} ที่ {{users_phone_number}} <0>", "1222096166": "ทำการฝากเงินโดยการโอนผ่านธนาคาร ผ่านบัตรเครดิต และผ่านอีวอลเล็ท", "1222521778": "การฝากเงินและถอนเงินนั้นทำได้ยาก", "1222544232": "เราได้ส่งอีเมล์ถึงคุณแล้ว", @@ -1349,6 +1348,7 @@ "1274380814": "เงินผลตอบแทนของคุณจะเท่ากับการเอา <0>เงินได้ต่อจุดพิพ มาคูณด้วยส่วนต่าง <1>ในรูปแบบตัวเลขจุดพิพ ระหว่างราคาสุดท้ายและราคาใช้สิทธิ โดยคุณจะได้รับผลกำไรก็ต่อเมื่อเงินผลตอบแทนของคุณสูงกว่าเงินทุนทรัพย์เริ่มแรก", "1274819385": "3. การร้องเรียนและข้อพิพาท", "1276660852": "ส่งหลักฐานยืนยันตัวตนของคุณ", + "1276973471": "ผลิตภัณฑ์ที่นำเสนอบนเว็บไซต์ของเรานั้นเป็นผลิตภัณฑ์อนุพันธ์ที่ซับซ้อนซึ่งมาพร้อมกับความเสี่ยงสูงที่จะขาดทุนสูญเสีย สัญญาการเทรดส่วนต่างหรือ CFD เป็นตราสารที่ซับซ้อนและมาพร้อมกับความเสี่ยงสูงที่จะสูญเสียเงินอย่างรวดเร็วเนื่องจากเลเวอเรจ 70.84% ของบัญชีนักลงทุนรายย่อยสูญเสียเงินเมื่อเทรด CFD กับผู้ให้บริการรายนี้ ดังนั้นคุณควรพิจารณาว่าคุณเข้าใจวิธีการทำงานของผลิตภัณฑ์เหล่านี้หรือไม่ และคุณสามารถที่จะรับความเสี่ยงสูงในการสูญเสียเงินได้หรือไม่", "1279937041": "<0>หมายเหตุ: กลยุทธ์ที่ซับซ้อนบางอย่างอาจประสบปัญหาใน Bot Builder หากคุณมีคำถาม โปรดติดต่อเราผ่านทาง <1/>", "1281045211": "เรียงลําดับรายการในลิสต์รายการที่กําหนด ตามมูลค่าตัวเลขหรือตัวอักษรทั้งในลําดับจากน้อยไปหามากหรือจากมากไปหาน้อย", "1281290230": "เลือก", @@ -1419,7 +1419,6 @@ "1339613797": "หน่วยงานกำกับดูแล/การระงับข้อพิพาทภายนอก", "1340286510": "บอทได้หยุดทำงาน แต่การเทรดของคุณอาจจะยังคงทำงานอยู่ คุณสามารถตรวจสอบได้ในหน้ารายงาน", "1341840346": "ดูในบันทึก", - "1341921544": "บัญชีการเทรดและเงินทุน", "1344696151": "Forex หุ้น ดัชนีหุ้น สินค้าโภคภัณฑ์ คริปโตเคอเรนซี่ และดัชนี Synthetic", "1346038489": "ควรมีค่าน้อยกว่า 70", "1346204508": "ตัวปิดเทรดเอากำไร", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "บัญชี Deriv MT5", "1499080621": "พยายามดำเนินการที่ไม่ถูกต้อง", + "1499733992": "ได้รับการยืนยันว่าเป็นหมายเลขโทรศัพท์ของคุณ", "1501691227": "เพิ่มบัญชี Deriv MT5 <0>{{account_type_name}} ของคุณภายใต้บริษัท Deriv (V) Ltd ซึ่งถูกควบคุมดูแลโดยคณะกรรมาธิการบริการทางการเงินวานูอาตู", "1502039206": "เกินกว่า {{barrier}}", "1502325741": "รหัสผ่านของคุณไม่สามารถเหมือนกับที่อยู่อีเมล์ของคุณได้", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "เวลาเริ่มต้น", "1694517345": "ป้อนที่อยู่อีเมล์ใหม่", - "1694888104": "ผลิตภัณฑ์ที่นำเสนอบนเว็บไซต์ของเรานั้นเป็นผลิตภัณฑ์อนุพันธ์ที่ซับซ้อนซึ่งมาพร้อมกับความเสี่ยงสูงที่จะขาดทุนสูญเสีย สัญญาส่วนต่างหรือ CFD เป็นตราสารที่ซับซ้อนและมาพร้อมกับความเสี่ยงสูงที่จะสูญเสียเงินอย่างรวดเร็วเนื่องจากการใช้เลเวอเรจ ทั้งนี้ 70.78% ของบัญชีนักลงทุนรายย่อยสูญเสียเงินเมื่อเทรด CFD กับผู้ให้บริการรายนี้ ดังนั้นคุณควรพิจารณาว่าคุณเข้าใจวิธีการทำงานของผลิตภัณฑ์เหล่านี้หรือไม่ และคุณสามารถที่จะรับความเสี่ยงสูงในการสูญเสียเงินของคุณได้หรือไม่", "1696190747": "การเทรดโดยธรรมชาติแล้วจะเกี่ยวข้องกับความเสี่ยง และกำไรที่จะได้จริงๆ นั้นก็อาจผันผวนไปตามปัจจัยต่างๆ รวมถึงความผันผวนของตลาดและตัวแปรอื่นๆ ที่ไม่คาดฝัน ดังนั้นจึงต้องใช้ความระมัดระวังและต้องทำการศึกษาอย่างละเอียดก่อนที่จะเข้ามามีส่วนร่วมในกิจกรรมการเทรดหรือเทรดใดๆ", "1697529334": "สำคัญ: บัญชี <0>{{platform}} {{existing_account}} ของคุณ", "1698624570": "2. กด ตกลง เพื่อยืนยัน", @@ -2640,7 +2639,6 @@ "-1101737402": "โปรดระบุเลือก*", "-975118358": "บัญชีของคุณจะเปิดขึ้นกับ {{legal_entity_name}} ซึ่งถูกควบคุมดูแลโดยองค์กร Malta Financial Services Authority (MFSA) และจะอยู่ภายใต้กฎหมายของมอลตา", "-2073934245": "บริการซื้อขายทางการเงินที่นำเสนอในเว็บไซต์นี้เหมาะเฉพาะสำหรับลูกค้าที่ยอมรับความเป็นไปได้ของการขาดทุนเงินทั้งหมดที่พวกเขาลงทุนไปและผู้ที่มีความเข้าใจและมีประสบการณ์เกี่ยวกับความเสี่ยงที่เกี่ยวข้องกับการซื้อสัญญาทางการเงินเท่านั้น การทำธุรกรรมในสัญญาทางการเงินมีความเสี่ยงสูง หากสัญญาที่คุณซื้อหมดอายุคุณก็จะสูญเสียเงินลงทุนทั้งหมดซึ่งรวมถึงค่าธรรมเนียมของสัญญาดังกล่าวด้วย", - "-1035494182": "คุณรับทราบว่า เราจะเปิดบัญชีให้คุณและอนุญาตให้คุณฝากเงินในระหว่างขั้นตอนการยอมรับลูกค้า โดยจะอยู่ภายใต้ดุลยพินิจของบริษัท กฎระเบียบที่เกี่ยวข้อง และขึ้นอยู่กับการตรวจสอบภายในที่กำลังนำปฏิบัติ อย่างไรก็ตาม คุณจะไม่สามารถเทรด ถอนเงิน หรือฝากเงินเพิ่มเติมได้ จนกว่าการยืนยันบัญชีของคุณจะเสร็จสิ้น หากคุณไม่ให้เอกสารที่เกี่ยวข้องภายใน 30 วัน เราจะคืนเงินจำนวนเงินที่ฝากเข้ามานั้นโดยชำระผ่านวิธีการชำระเงินเดียวกับที่คุณใช้ฝาก", "-1125193491": "เพิ่มบัญชี", "-2068229627": "ฉันไม่ใช่บุคคลที่มีสถานภาพทางการเมืองหรือ PEP และฉันไม่ได้เป็น PEP ในช่วง 12 เดือนที่ผ่านมา", "-1209644365": "ฉันยืนยันว่าคำขอของฉันเพื่อเปิดบัญชีกับ Deriv Investments (Europe) Ltd ทำขึ้นโดยความคิดริเริ่มของฉันเอง", @@ -2757,9 +2755,9 @@ "-222105210": "ส่งรหัสอีกครั้ง", "-1601377103": "ขั้นตอนที่ 3 จาก 3: ยืนยันหมายเลขของคุณ", "-121443071": "ขั้นตอนที่ 1 จาก 3: ต้องการการยืนยันทางอีเมล์", + "-1419026486": "ป้อนรหัส 6 หลักที่ส่งถึงคุณผ่าน {{phone_verification_type}} ที่ <1>{{users_phone_number}} <0>", "-652539141": "รหัส OTP", "-1124039045": "รหัสตรวจสอบยืนยัน", - "-1487715516": "{{ phone }} ได้รับการยืนยันว่าเป็นหมายเลขโทรศัพท์ของคุณ", "-1184626439": "ไม่ได้รับรหัส?{{resendCode}}", "-165489997": "เซสชั่นหมดอายุ", "-1822545742": "อีเธอร์คลาสสิก", @@ -3948,9 +3946,11 @@ "-1858102926": "ตั้งเส้นระดับราคาเป้าหมายที่ต่ำกว่าราคาสปอต", "-635746838": "ด้านล่างจุด", "-548979988": "ราคาที่ตั้งไว้", - "-1013686843": "เวลาปัจจุบัน", + "-1838512476": "เลือกเวลาสิ้นสุด", "-1977959027": "ชั่วโมง", - "-1084580778": "สิ้นสุดที่", + "-591705950": "สิ้นสุดที่", + "-1013686843": "เวลาปัจจุบัน", + "-1727323033": "0 นาที", "-1068424721": "ระยะเวลาสูงสุด", "-718750246": "เงินทุนทรัพย์ของคุณจะเติบโต {{growth_rate}}% ในทุกจุด Tick ตราบใดที่ราคายังคงอยู่ในช่วง ±{{tick_size_barrier_percentage}} จากราคาอันก่อนหน้า", "-2131851017": "อัตราการเติบโต", @@ -3987,6 +3987,7 @@ "-1541404572": "TP ได้ถูกปิดแล้ว", "-1634963573": "SL ได้ถูกปิดแล้ว", "-337314714": "วัน", + "-1855256857": "ชม.", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index c9533aa24f34..386290d3b537 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -1282,7 +1282,6 @@ "1218546232": "Fiat onramp nedir?", "1219844088": "yap %1", "1221250438": "Para çekme işlemlerini etkinleştirmek için lütfen <0>Kimlik Kanıtı (POI) ve <1>Adres Kanıtı (POA) belgelerinizi gönderin ve ayrıca hesap ayarlarınızdan <2>finansal değerlendirmeyi doldurun.", - "1221947449": "{{users_phone_number}} numaranıza gönderilen 6 haneli kodu girin {{phone_verification_type}} üzerinden. <0>", "1222096166": "Banka havalesi, kredi kartı ve e-cüzdan ile para yatırın", "1222521778": "Deposit ve para çekme işlemleri yapmak zordur.", "1222544232": "Size bir e-posta gönderdik", @@ -1349,6 +1348,7 @@ "1274380814": "Ödemeniz, <0>pip başına ödemenin nihai fiyat ile kullanım fiyatı arasındaki <1>pip cinsinden farkla çarpımına eşittir. Yalnızca ödemeniz ilk bahis miktarınızdan yüksekse kâr elde edersiniz.", "1274819385": "3. Şikayetler ve Anlaşmazlıklar", "1276660852": "Kimlik belgenizi gönderin", + "1276973471": "Web sitemizde sunulan ürünler, önemli ölçüde potansiyel kayıp riski taşıyan karmaşık türev ürünlerdir. CFD'ler, kaldıraç nedeniyle hızla para kaybetme riski yüksek olan karmaşık araçlardır. Perakende yatırımcı hesaplarının %70.84'ü bu sağlayıcı ile CFD ticareti yaparken para kaybetmektedir. Bu ürünlerin nasıl çalıştığını anlayıp anlamadığınızı ve paranızı kaybetme riskini göze alıp alamayacağınızı düşünmelisiniz.", "1279937041": "<0>Not: Bazı karmaşık stratejiler Bot Builder'da sorunlarla karşılaşabilir. Sorularınız varsa, bizimle <1/> üzerinden iletişime geçin.", "1281045211": "Belirli bir listedeki öğeleri, artan veya azalan sırada sayısal veya alfabetik değerlerine göre sıralar.", "1281290230": "Seç", @@ -1419,7 +1419,6 @@ "1339613797": "Düzenleyici/Dış uyuşmazlık çözümü", "1340286510": "Bot durdu, ancak işleminiz hala çalışıyor olabilir. Raporlar sayfasından kontrol edebilirsiniz.", "1341840346": "Günlükte Görüntüle", - "1341921544": "Ticari hesaplar ve fonlar", "1344696151": "Forex, hisse senetleri, hisse senedi endeksleri, emtialar, kripto para birimleri ve sentetik endeksler.", "1346038489": "70'den az olmalıdır.", "1346204508": "Kar al", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Deriv MT5 accounts", "1499080621": "Geçersiz bir işlem gerçekleştirilmeye çalışıldı.", + "1499733992": "telefon numaranız olarak doğrulanmıştır.", "1501691227": "Deriv MT5'inizi Ekleyin <0>{{account_type_name}} Vanuatu Financial Services Commission tarafından düzenlenen Deriv (V) Ltd altındaki hesap.", "1502039206": "{{barrier}} üzerinde", "1502325741": "Parolanız e-posta adresinizle aynı olamaz.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Başlangıç zamanı", "1694517345": "Yeni bir e-posta adresi girin", - "1694888104": "Web sitemizde sunulan ürünler, önemli ölçüde potansiyel kayıp riski taşıyan karmaşık türev ürünlerdir. CFD'ler, kaldıraç nedeniyle hızla para kaybetme riski yüksek olan karmaşık araçlardır. Perakende yatırımcı hesaplarının %70.78'i bu sağlayıcı ile CFD ticareti yaparken para kaybetmektedir. Bu ürünlerin nasıl çalıştığını anlayıp anlamadığınızı ve paranızı kaybetme riskini göze alıp alamayacağınızı düşünmelisiniz.", "1696190747": "Alım satım doğası gereği risk içerir ve gerçek kârlar, piyasa oynaklığı ve diğer öngörülemeyen değişkenler dahil olmak üzere çeşitli faktörler nedeniyle dalgalanabilir. Bu nedenle, herhangi bir alım satım faaliyetine başlamadan önce dikkatli olun ve kapsamlı bir araştırma yapın.", "1697529334": "Önemli: Bu sizin <0>{{platform}} {{existing_account}} hesabınız.", "1698624570": "2. Onaylamak için Ok ögesine tıklayın.", @@ -2640,7 +2639,6 @@ "-1101737402": "Lütfen seçin*", "-975118358": "Hesabınız, Malta Financial Services Authority (MFSA) tarafından düzenlenen {{legal_entity_name}} ile açılacak ve Malta yasalarına tabi olacaktır.", "-2073934245": "Bu sitede sunulan finansal ticaret hizmetleri, yalnızca yatırım yaptıkları tüm parayı kaybetme olasılığını kabul eden ve finansal sözleşmelerin satın alınmasıyla ilgili riskleri anlayan ve deneyimleyen müşteriler için uygundur. Finansal sözleşmelerdeki işlemler yüksek derecede risk taşır. Satın aldığınız sözleşmeler değersiz olarak sona ererse, sözleşme primi dahil tüm yatırımınızı kaybedersiniz.", - "-1035494182": "Şirketin takdirine, geçerli düzenlemelere ve dahili kontrollerin yerine getirilmesine bağlı olarak, sizin için bir hesap açacağımızı ve müşteri kabul prosedürü sırasında para yatırmanıza izin vereceğimizi kabul edersiniz. Ancak, hesabınızın doğrulanması tamamlanana kadar işlem yapamayacak, para çekemeyecek veya daha fazla para yatıramayacaksınız. İlgili belgeleri 30 gün içinde sağlamazsanız, yatırdığınız tutarı yatırmak için kullandığınız aynı ödeme yöntemiyle iade edeceğiz.", "-1125193491": "Hesap ekle", "-2068229627": "PEP değilim ve son 12 ay içinde PEP olmadım.", "-1209644365": "Deriv Investments (Europe) Ltd'de bir hesap açma talebimin kendi inisiyatifimle yapıldığını onaylıyorum.", @@ -2757,9 +2755,9 @@ "-222105210": "Kodu yeniden gönder", "-1601377103": "Adım 3/3: Numaranızı doğrulayın", "-121443071": "Adım 1/3: E-posta doğrulaması gerekiyor", + "-1419026486": "<1>{{users_phone_number}} numarasına gönderilen {{phone_verification_type}} ile gönderilen 6 haneli kodu girin. <0>", "-652539141": "OTP kodu", "-1124039045": "Doğrulama kodu", - "-1487715516": "{{ phone }} telefon numaranız olarak doğrulandı.", "-1184626439": "Kodu almadınız mı?{{resendCode}}", "-165489997": "Oturum süresi doldu", "-1822545742": "Ether Klasik", @@ -3948,9 +3946,11 @@ "-1858102926": "Engel, piyasa fiyatının altına ayarlanmıştır.", "-635746838": "Düşük nokta", "-548979988": "Sabit fiyat", - "-1013686843": "Geçerli saat", + "-1838512476": "Bir bitiş saati seçin", "-1977959027": "saat", - "-1084580778": "Bitiş tarihi", + "-591705950": "Bitiş zamanı", + "-1013686843": "Geçerli saat", + "-1727323033": "0 dakika", "-1068424721": "Maksimum süre", "-718750246": "Mevcut spot fiyat önceki spot fiyattan ±{{tick_size_barrier_percentage}} içinde kaldığı sürece bahisiniz tik başına {{growth_rate}}% oranında artacaktır.", "-2131851017": "Büyüme oranı", @@ -3987,6 +3987,7 @@ "-1541404572": "TP kapatıldı.", "-1634963573": "SL kapatıldı.", "-337314714": "gün", + "-1855256857": "s", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/uz.json b/packages/translations/src/translations/uz.json index ec3be23c57ac..7ef9479e9916 100644 --- a/packages/translations/src/translations/uz.json +++ b/packages/translations/src/translations/uz.json @@ -1282,7 +1282,6 @@ "1218546232": "Fiat onramp nima?", "1219844088": "bajarish %1", "1221250438": "Pul yechib olishni yoqish uchun <0>Shaxsni tasdiqlovchi hujjat (POI) va <1>Manzilni tasdiqlovchi hujjatni (POA) yuboring hamda hisobingizdagi <2>moliyaviy baholashni bajaring husob sozlamalda.", - "1221947449": "{{users_phone_number}} raqamingizga {{phone_verification_type}} orqali yuborilgan 6 raqamli kodni kiriting. <0>", "1222096166": "Bank o'tkazmasi, kredit karta va elektron hamyon orqali depozit qo'ying", "1222521778": "Depozit qo'yish va yechib olish qiyin.", "1222544232": "Biz sizga email yubordik", @@ -1349,6 +1348,7 @@ "1274380814": "Sizning to'lovingiz <0>pip uchun to'lov ning yakuniy narx va ogohlantirish narxi o'rtasidagi <1>pips dagi farqga ko'paytirilganiga teng. Agar sizning to'lovingiz dastlabki ulushingizdan yuqori bo'lsa, siz faqat foyda olasiz.", "1274819385": "3. Shikoyatlar va nizolar", "1276660852": "Shaxsingizni tasdiqlovchi hujjatni taqdim eting", + "1276973471": "Bizning veb-saytimizda taqdim etilgan mahsulotlar potentsial yo'qotish xavfi katta bo'lgan murakkab lotin mahsulotlardir. CFDlar leverage tufayli pulni tezda yo'qotish xavfi yuqori bo'lgan murakkab vositalardir. Chakana investor hisoblarining 70,84% ushbu provayder bilan CFD savdosi paytida pul yo'qotadi. Siz ushbu mahsulotlar qanday ishlashini tushunasizmi va pulingizni yo'qotish xavfini o'z zimmangizga olasizmi, deb o'ylashingiz kerak.", "1279937041": "<0>Diqqat: Ba'zi murakkab strategiyalar Bot Builder'da muammolarni yuzaga keltirishi mumkin. Agar sizda savollaringiz bo'lsa, biz bilan <1/> orqali bog'laning.", "1281045211": "Berilgan roʻyxatdagi elementlarni raqamli yoki alifbo tartibida oʻsish yoki kamayish tartibida tartiblaydi.", "1281290230": "Tanlang", @@ -1419,7 +1419,6 @@ "1339613797": "Regulyator/Tashqi nizolarni hal qilish", "1340286510": "Bot to'xtatildi, ammo sizning savdongiz davom etishi mumkin. Siz buni Hisobotlar sahifasida tekshirishingiz mumkin.", "1341840346": "Jurnalda ko'rish", - "1341921544": "Savdo hisoblari va mablag'lari", "1344696151": "Forex, aktsiyalar, fond indekslari, tovarlar, kriptovalyutalar va sintetik indekslar.", "1346038489": "70 dan kam bo'lishi kerak.", "1346204508": "Take Profit", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Deriv MT5 hisoblari", "1499080621": "Noto‘g‘ri operatsiyani bajarishga harakat qildi.", + "1499733992": "telefon raqamingiz sifatida tasdiqlandi.", "1501691227": "Ushbu <0>{{account_type_name}} Deriv MT5 hisobi Deriv (V) Ltd. da ochiladi. Kompaniya Vanuatu Financial Services Commission tomonidan tartibga solinadi.", "1502039206": "{{barrier}} ustidan", "1502325741": "Sizning parolingiz email manzilingiz bilan bir xil bo'lishi mumkin emas.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Boshlanish vaqti", "1694517345": "Yangi email manzilini kiriting", - "1694888104": "Bizning veb-saytimizda taqdim etilgan mahsulotlar potentsial yo'qotish xavfi katta bo'lgan murakkab lotin mahsulotlardir. CFDlar leverage tufayli pulni tezda yo'qotish xavfi yuqori bo'lgan murakkab vositalardir. Chakana investor hisoblarining 70,78% ushbu provayder bilan CFD savdosi paytida pul yo'qotadi. Siz ushbu mahsulotlar qanday ishlashini tushunasizmi va pulingizni yo'qotish xavfini o'z zimmangizga olasizmi, deb o'ylashingiz kerak.", "1696190747": "Savdo tabiatan xavflarni o'z ichiga oladi va haqiqiy foyda turli omillar, jumladan bozor o'zgaruvchanligi va boshqa kutilmagan o'zgaruvchilar tufayli o'zgarishi mumkin. Shunday qilib, har qanday savdo faoliyati bilan shug'ullanishdan oldin ehtiyot bo'ling va chuqur tadqiqot o'tkazing.", "1697529334": "Muhim: Sizning <0>{{platform}} {{existing_account}} hisobingiz.", "1698624570": "2. Tasdiqlash uchun Ok tugmasini bosing.", @@ -2640,7 +2639,6 @@ "-1101737402": "Iltimos, tanlang*", "-975118358": "Hisobingiz Malta Financial Services Authority (MFSA) tomonidan tartibga solinadigan {{legal_entity_name}} bilan ochiladi va Malta qonunlariga bo‘ysunadi.", "-2073934245": "Ushbu saytda taqdim etiladigan moliyaviy savdo xizmatlari faqat o'zlari investitsiya qilgan barcha pullarini yo'qotish imkoniyatini qabul qiladigan va moliyaviy shartnomalarni sotib olish bilan bog'liq xavfni tushunadigan va tajribaga ega bo'lgan mijozlar uchun mos keladi. Moliyaviy shartnomalar bo'yicha operatsiyalar yuqori darajadagi xavfga ega. Agar siz sotib olgan shartnomalar bekor bo'lsa, siz barcha investitsiyalaringizni, shu jumladan shartnoma mukofotini yo'qotasiz.", - "-1035494182": "Siz tan olasizki, Kompaniyaning ixtiyoriga, amaldagi qoidalarga va ichki tekshiruvlar bajarilishiga qarab, biz siz uchun hisob ochamiz va mijozlarni qabul qilish jarayonida pul mablag'larini kiritishga ruxsat beramiz. Biroq, hisobingizni tekshirish tugaguniga qadar siz savdo qila olmaysiz, yechib ololmaysiz yoki boshqa depozitlarni kirita olmaysiz. Agar siz 30 kun ichida tegishli hujjatlarni taqdim qilmasangiz, biz omonatga qoʻygan summani siz kiritgan toʻlov usuli orqali qaytaramiz.", "-1125193491": "Hisob qo'shish", "-2068229627": "Men PEP emasman va oxirgi 12 oy ichida PEP bo'lmaganman.", "-1209644365": "Men Deriv Investments (Europe) Ltd kompaniyasida hisob ochish haqidagi so‘rovim o‘z tashabbusim bilan qilinganligini shu bilan tasdiqlayman.", @@ -2757,9 +2755,9 @@ "-222105210": "Kodni qayta yuboring", "-1601377103": "3 dan 3-qadam: Raqamingizni tasdiqlang", "-121443071": "3 dan 1-qadam: Email tasdiqlash kerak", + "-1419026486": "<1>{{users_phone_number}} raqamiga {{phone_verification_type}} orqali yuborilgan 6 raqamli kodni kiriting. <0>", "-652539141": "OTP kod", "-1124039045": "Tasdiqlash kodi", - "-1487715516": "{{ phone }} sizning telefon raqamingiz sifatida tasdiqlandi.", "-1184626439": "Kod kelmadimi?{{resendCode}}", "-165489997": "Sessiya muddati tugadi", "-1822545742": "Ether Classic", @@ -3066,7 +3064,7 @@ "-2059278156": "Eslatma: {{website_name}} hech qanday transfer toʻlovini olmaydi.", "-1201279468": "Pul mablag'larini yechib olish uchun omonat qo'yishda foydalangan to'lov usulini tanlang.", "-873886836": "Dastlabki tanga taklifi (ICO) xaridi yoki olomon savdosi bilan bog'langan manzilni kiritmang. Agar shunday qilsangiz, dastlabki tanga taklifi (ICO) tokenlari sizning hisobingizga tushmaydi.", - "-130833284": "E'tibor bering, maksimal va minimal pul olish chegaralari belgilanmagan. Ular kriptovalyutaning yuqori volatilligi tufayli o'zgaradi.", + "-130833284": "Esda tutingki, maksimal va minimal pul yechib olish chegaralari belgilanmagan. Ular kriptovalyutaning yuqori volatility tufayli o`zgaradi.", "-2004264970": "Sizning hamyoningiz manzili 25 dan 64 gacha belgidan iborat bo'lishi kerak.", "-1707299138": "{{currency_symbol}} hamyoningiz manzili", "-1430080977": "Prioritet olib tashlash", @@ -3948,9 +3946,11 @@ "-1858102926": "To'siq spot narxidan pastda.", "-635746838": "Pastki nuqta", "-548979988": "Belgilangan narx", - "-1013686843": "Joriy vaqt", + "-1838512476": "Tugash vaqtini tanlang", "-1977959027": "soatlar", - "-1084580778": "Tugaydi", + "-591705950": "Tugaydi", + "-1013686843": "Joriy vaqt", + "-1727323033": "0 daqiqa", "-1068424721": "Maks. davomiyligi", "-718750246": "Joriy nuqta narx avvalgi nuqta narxidan ±{{tick_size_barrier_percentage}} ichida qolsa, stavkagiz har bir tik uchun {{growth_rate}}% ga oshadi.", "-2131851017": "O'sish surati", @@ -3987,6 +3987,7 @@ "-1541404572": "TP o'chirilgan.", "-1634963573": "SL o'chirilgan.", "-337314714": "kunlar", + "-1855256857": "s", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index ddfbe332ab38..0e83a36e96c8 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -1282,7 +1282,6 @@ "1218546232": "Fiat onramp là gì?", "1219844088": "làm %1", "1221250438": "Để có thể rút tiền, vui lòng gửi <0>Giấy tờ xác thực danh tính (Proof of Identity - POI) và <1>Giấy tờ xác thực địa chỉ (Proof of Address - POA) của bạn, đồng thời hoàn thành <2>đánh giá tài chính trong phần cài đặt tài khoản.", - "1221947449": "Nhập mã 6 chữ số được gửi cho bạn qua {{phone_verification_type}} tại {{users_phone_number}}. <0>", "1222096166": "Nạp tiền qua chuyển khoản ngân hàng, thẻ tín dụng, và ví điện tử", "1222521778": "Khiến cho việc rút và nạp tiền gặp khó khăn.", "1222544232": "Chúng tôi đã gửi cho bạn một email", @@ -1349,6 +1348,7 @@ "1274380814": "Khoản chi trả của bạn sẽ bằng <0>khoản chi trả ở mỗi pip nhân với chênh lệch giữa giá cuối cùng và giá thực hiện <1> tính bằng pips. Bạn sẽ chỉ kiếm được lợi nhuận nếu khoản chi trả của bạn cao hơn số tiền đầu tư ban đầu.", "1274819385": "3. Khiếu nại và tranh chấp", "1276660852": "Gửi giấy tờ xác thực danh tính của bạn", + "1276973471": "Các sản phẩm được cung cấp trên trang web của chúng tôi là các sản phẩm phái sinh phức tạp có nguy cơ mất mát đáng kể. CFD là công cụ phức tạp có nguy cơ mất tiền nhanh chóng do đòn bẩy. 70.84% tài khoản nhà đầu tư bán lẻ bị mất tiền khi giao dịch CFD với nhà cung cấp này. Bạn nên xem xét liệu bạn có hiểu cách thức hoạt động của các sản phẩm này và liệu bạn có đủ khả năng để chấp nhận rủi ro mất tiền cao hay không.", "1279937041": "<0>Chú ý: Một số chiến lược phức tạp có thể gặp vấn đề trong Bot Builder. Nếu bạn có câu hỏi, hãy liên hệ với chúng tôi qua <1/>.", "1281045211": "Sắp xếp các mục trong một danh sách nhất định, theo giá trị số hoặc bảng chữ cái và theo thứ tự tăng dần hoặc giảm dần.", "1281290230": "Chọn", @@ -1419,7 +1419,6 @@ "1339613797": "Cơ quan Quản lý/Giải quyết tranh chấp bên ngoài", "1340286510": "Bot đã dừng, nhưng giao dịch của bạn có thể vẫn đang chạy. Bạn có thể kiểm tra giao dịch trên trang Báo cáo.", "1341840346": "Xem trên Nhật ký", - "1341921544": "Tài khoản giao dịch và số tiền", "1344696151": "Forex, cổ phiếu, chỉ số chứng khoán, hàng hóa, tiền điện tử và chỉ số tổng hợp.", "1346038489": "Nên ít hơn 70.", "1346204508": "Chốt lời", @@ -1590,6 +1589,7 @@ "1496810530": "GBP/AUD", "1497773819": "Tài khoản Deriv MT5", "1499080621": "Đã cố gắng thực hiện một hoạt động không hợp lệ.", + "1499733992": "được xác minh là số điện thoại của bạn.", "1501691227": "Thêm tài khoản Deriv MT5 <0>{{account_type_name}} của bạn thông qua Deriv (V) Ltd, được quản lý bởi Vanuatu Financial Services Commission.", "1502039206": "Quá {{barrier}}", "1502325741": "Mật khẩu không được trùng với mật khẩu email của bạn.", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5, Deriv X", "1693614409": "Thời gian bắt đầu", "1694517345": "Nhập địa chỉ email mới", - "1694888104": "Các sản phẩm được cung cấp trên trang web của chúng tôi là các sản phẩm phái sinh phức tạp có nguy cơ mất mát đáng kể. CFD là công cụ phức tạp có nguy cơ mất tiền nhanh chóng do đòn bẩy. 70.78% tài khoản nhà đầu tư bán lẻ bị mất tiền khi giao dịch CFD với nhà cung cấp này. Bạn nên xem xét liệu bạn có hiểu cách thức hoạt động của các sản phẩm này và liệu bạn có đủ khả năng để chấp nhận rủi ro mất tiền cao hay không.", "1696190747": "Giao dịch vốn liên quan đến rủi ro và lợi nhuận thực tế có thể biến động do nhiều yếu tố khác nhau, bao gồm biến động thị trường và các biến số không lường trước được khác. Do đó, hãy thận trọng và tiến hành nghiên cứu kỹ lưỡng trước khi tham gia vào bất kỳ hoạt động giao dịch nào.", "1697529334": "Quan trọng: Đây là tài khoản <0>{{platform}} {{existing_account}} của bạn.", "1698624570": "2. Nhấp Ok để xác nhận.", @@ -2640,7 +2639,6 @@ "-1101737402": "Vui lòng chọn*", "-975118358": "Tài khoản của bạn sẽ được mở với {{legal_entity_name}}, được quản lý bởi Malta Financial Services Authority (MFSA), và sẽ tuân theo luật pháp của Malta.", "-2073934245": "Các dịch vụ giao dịch tài chính được cung cấp trên trang web này chỉ phù hợp cho những khách hàng chấp nhận khả năng mất tất cả số tiền họ đầu tư cũng như hiểu và có kinh nghiệm về các rủi ro liên quan đến việc mua bán hợp đồng tài chính. Các giao dịch hợp đồng tài chính có mức độ rủi ro cao. Nếu hợp đồng bạn mua khi hết hạn trở nên vô giá trị, bạn sẽ bị mất toàn bộ số tiền đầu tư, bao gồm cả phí bảo hiểm hợp đồng.", - "-1035494182": "Bạn hiểu rằng, theo quyết định của công ty, các quy định hiện hành và kiểm tra nội bộ đang được thực hiện, chúng tôi sẽ mở một tài khoản cho bạn và bạn có thể nạp tiền trong quá trình xét duyệt. Tuy nhiên, cho đến khi quá trình xác minh tài khoản của bạn hoàn tất, bạn sẽ không thể giao dịch, rút tiền hoặc nạp tiền thêm. Nếu bạn không thể cung cấp các giấy tờ liên quan trong vòng 30 ngày, chúng tôi sẽ hoàn lại số tiền bạn đã nạp qua phương thức thanh toán mà bạn đã sử dụng để nạp tiền.", "-1125193491": "Thêm tài khoản", "-2068229627": "Tôi hiện tại không phải là PEP, cũng như trong 12 tháng qua.", "-1209644365": "Tôi xác nhận rằng yêu cầu mở tài khoản của tôi với Deriv Investments (Europe) Ltd được thực hiện theo sáng kiến của riêng tôi.", @@ -2757,9 +2755,9 @@ "-222105210": "Gửi lại mã", "-1601377103": "Bước 3 trong 3: Xác minh số của bạn", "-121443071": "Bước 1 trong 3: Cần xác minh email", + "-1419026486": "Nhập mã 6 chữ số đã được gửi cho bạn qua {{phone_verification_type}} tại <1>{{users_phone_number}}. <0>", "-652539141": "Mã OTP", "-1124039045": "Mã xác minh", - "-1487715516": "{{ phone }} đã được xác minh là số điện thoại của bạn.", "-1184626439": "Bạn đã không nhận được mã?{{resendCode}}", "-165489997": "Phiên làm việc đã hết hạn", "-1822545742": "Ether Classic", @@ -3948,9 +3946,11 @@ "-1858102926": "Rào cản được thiết lập dưới giá giao ngay.", "-635746838": "Dưới mức giá", "-548979988": "Giá cố định", - "-1013686843": "Thời gian hiện tại", + "-1838512476": "Chọn thời gian kết thúc", "-1977959027": "giờ", - "-1084580778": "Kết thúc vào", + "-591705950": "Kết thúc vào", + "-1013686843": "Thời gian hiện tại", + "-1727323033": "0 tối thiểu", "-1068424721": "Thời lượng tối đa", "-718750246": "Tiền cược của bạn sẽ tăng ở mức {{growth_rate}}% cho mỗi tick, miễn là giá giao ngay hiện tại vẫn nằm trong ±{{tick_size_barrier_percentage}} so với giá giao ngay trước đó.", "-2131851017": "Tốc độ tăng trưởng", @@ -3987,6 +3987,7 @@ "-1541404572": "TP đã bị tắt.", "-1634963573": "SL đã bị tắt.", "-337314714": "ngày", + "-1855256857": "h", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index e1e234c0f309..736d7c75246a 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -1282,7 +1282,6 @@ "1218546232": "什么是法币通道 ?", "1219844088": "执行 %1", "1221250438": "要启用提款,请提交<0>身份证明 (POI) 和 <1>地址证明 (POA),并在账户设置中完成<2>财务评估 。", - "1221947449": "输入通过 {{phone_verification_type}} 向 {{users_phone_number}} 发送的 6 位数验证码。<0>", "1222096166": "通过银行电汇、信用卡、电子钱包存入资金", "1222521778": "存款和取款有困难。", "1222544232": "我们已给您发送电子邮件", @@ -1349,6 +1348,7 @@ "1274380814": "赔付额等于<0>每点赔付额乘以最终价格与行权价格之间的差额(<1>以点为单位)。只有当赔付高于初始投注时,才会赚取利润。", "1274819385": "3. 投诉与纠纷", "1276660852": "提交身份证明", + "1276973471": "网站上提供的产品是复杂的衍生产品,潜在的亏损风险很高。差价合约是复杂的工具,并且由于杠杆作用,具有快速亏损的高风险。70.84%的零售投资者账户在与该提供商交易差价合约时会亏损。您必须考虑自己是否了解这些产品的运作方式,以及是否有能力承担损失资金的高风险。", "1279937041": "<0>注意:部分复杂策略可能会在 Bot Builder 遇到问题。如果有疑问,请通过<1/>与我们联系。", "1281045211": "在提供列表中将项目按其数字或字母值以升序或降序排序。", "1281290230": "选择", @@ -1419,7 +1419,6 @@ "1339613797": "监管机构/外部争议解决", "1340286510": " Bot已经停止,但交易可能仍在运行。可以在报告页面查看。", "1341840346": "日志中查看", - "1341921544": "交易账户和基金", "1344696151": "外汇、股票、股票指数、大宗商品、加密货币和综合指数。", "1346038489": "必须少于70.", "1346204508": "止盈", @@ -1590,6 +1589,7 @@ "1496810530": "英镑/澳元", "1497773819": "Deriv MT5 账户", "1499080621": "尝试执行无效的操作。", + "1499733992": "已验证为您的电话号码。", "1501691227": "通过由瓦努阿图金融服务委员会监管的 Deriv (V) 有限公司添加 Deriv MT5 <0>{{account_type_name}}账户。", "1502039206": "Over {{barrier}}", "1502325741": "密码不可与电子邮件地址相同。", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5、Deriv X", "1693614409": "开始时间", "1694517345": "输入新的的电子邮件地址", - "1694888104": "网站上提供的产品是复杂的衍生产品,潜在的亏损风险很高。差价合约是复杂的工具,并且由于杠杆作用,具有快速亏损的高风险。70.78%的零售投资者账户在与该提供商交易差价合约时会亏损。您必须考虑自己是否了解这些产品的运作方式,以及是否有能力承担损失资金的高风险。", "1696190747": "交易本身存在风险,实际利润可能因各种因素而波动,包括市场波动和其他不可预见的变量。因此,在参与任何交易活动之前,请谨慎行事并进行全面研究。", "1697529334": "重要提示: 您的<0>{{platform}} {{existing_account}}账户。", "1698624570": "2. 点击Ok确认。", @@ -2640,7 +2639,6 @@ "-1101737402": "请选择*", "-975118358": "账户将通过{{legal_entity_name}} 开立, 并由 Malta Financial Services Authority (MFSA) 监管,以及受马耳他的法律管辖。", "-2073934245": "本网站提供的金融交易服务仅适合这样的客户:能够接受全部投入资金亏损的可能性,了解购买金融合约的风险并具有相关经验。金融合约交易有很高的风险。如果购买的合约到期时一文不值,您将损失全部投资,包括合约费用。", - "-1035494182": "您确认,根据公司的判断、适用法规以及内部检查,我们将为您开立账户,并允许您在客户验收程序中存入资金。但是,在账户验证完成之前,将无法交易、取款或进一步存款。如果您在 30 天内未提供相关文件,我们将通过存款时使用的付款方式退还存款金额。", "-1125193491": "添加账户", "-2068229627": "本人不是政治公众人士,而且在过去的12个月中,我未曾当过政治公众人士。", "-1209644365": "本人确认,在 Deriv Investments (Europe) Ltd 开立账户的申请是本人主动提出的。", @@ -2757,9 +2755,9 @@ "-222105210": "重新发送验证码", "-1601377103": "步骤 3 之 3: 验证号码", "-121443071": "步骤 3 之 1: 需要电子邮件验证", + "-1419026486": "输入通过 {{phone_verification_type}} 向<1>{{users_phone_number}}发送的 6 位数验证码。<0>", "-652539141": "OTP 验证码", "-1124039045": "验证码", - "-1487715516": "{{ phone }} 已验证为您的电话号码。", "-1184626439": "没收到验证码?{{resendCode}}", "-165489997": "会话已过期", "-1822545742": "古典以太币", @@ -3948,9 +3946,11 @@ "-1858102926": "障碍设置在现货价格之下。", "-635746838": "低于现货价", "-548979988": "固定价格", - "-1013686843": "当前时间", + "-1838512476": "挑选结束时间", "-1977959027": "小时", - "-1084580778": "结束于", + "-591705950": "结束于", + "-1013686843": "当前时间", + "-1727323033": "0 分钟", "-1068424721": "最大持续时间", "-718750246": "只要当前入市现价保持在前一个现货价的±{{tick_size_barrier_percentage}} 范围内,投注额将以每一跳动价的 {{growth_rate}}%增长。", "-2131851017": "增长率", @@ -3987,6 +3987,7 @@ "-1541404572": "止盈已关闭。", "-1634963573": "止损已关闭。", "-337314714": "天", + "-1855256857": "小时", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index 53bbd170c029..7809034eb50c 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -1282,7 +1282,6 @@ "1218546232": "什麼是法定幣通道 ?", "1219844088": "執行 %1", "1221250438": "要啟用提款,請提交<0>身份證明 (POI) 和 <1>地址證明 (POA),並在帳戶設定中完成<2>財務評估。", - "1221947449": "輸入在 {{users_phone_number}} 透過 {{phone_verification_type}} 傳送的 6 位數驗證碼。<0>", "1222096166": "透過銀行電匯、信用卡、和電子錢包存款", "1222521778": "存款和取款有困難。", "1222544232": "已給您傳送電子郵件", @@ -1349,6 +1348,7 @@ "1274380814": "賠付額等於<0>每點賠付額乘以最終價格與行權價之間的差額(<1>以點為單位)。只有當賠付高於初始投注時,才會賺取利潤。", "1274819385": "3. 投訴與糾紛", "1276660852": "提交身份證明", + "1276973471": "網站上提供的產品是複雜的衍生產品,可能虧損的風險很高。差價合約是複雜的工具,並且由於槓桿作用,具有快速虧損的高風險。 70.84% 的零售投資者帳戶在與該供應商交易差價合約時損失。您必須考慮自己是否了解這些產品的運作方式,以及是否有能力承擔損失資金的高風險。", "1279937041": "<0>注意:某些複雜策略可能會在 Bot Builder 遇到問題。如果有任何問題,請透過<1/>聯繫我們。", "1281045211": "在提供清單中將項目按其數字或字母值以升序或降序排序。", "1281290230": "選擇", @@ -1419,7 +1419,6 @@ "1339613797": "監管機構/外部爭議解決", "1340286510": " Bot已停止,但交易可能仍在運行。可以在「報告」頁面查看。", "1341840346": "日誌中檢視", - "1341921544": "交易帳戶和資金", "1344696151": "外匯,股票,股票指數,大宗商品,加密貨幣和綜合指數。", "1346038489": "必須大於70.", "1346204508": "止盈", @@ -1590,6 +1589,7 @@ "1496810530": "英鎊/澳元", "1497773819": "Deriv MT5 帳戶", "1499080621": "嘗試執行無效的操作。", + "1499733992": "已驗證為您的電話號碼。", "1501691227": "透過由萬那杜金融服務委員會監管的 Deriv(V)有限公司新增 Deriv MT5 <0>{{account_type_name}}帳戶。", "1502039206": "Over {{barrier}}", "1502325741": "密碼不可與電子郵件地址相同。", @@ -1775,7 +1775,6 @@ "1692912479": "Deriv MT5、Deriv X", "1693614409": "開始時間", "1694517345": "輸入新的電子郵件地址", - "1694888104": "網站上提供的產品是複雜的衍生產品,可能虧損的風險很高。差價合約是複雜的工具,並且由於槓桿作用,具有快速虧損的高風險。 70.78% 的零售投資者帳戶在與該供應商交易差價合約時損失。您必須考慮自己是否了解這些產品的運作方式,以及是否有能力承擔損失資金的高風險。", "1696190747": "交易本身存在風險,實際利潤可能因各種因素而波動,包括市場波動和其他不可預見的變數。 因此,在參與任何交易活動之前,請謹慎行事並進行徹底研究。", "1697529334": "重要提示:<0>{{platform}} {{existing_account}} 帳戶。", "1698624570": "2. 點選Ok確認。", @@ -2640,7 +2639,6 @@ "-1101737402": "請選擇*", "-975118358": "帳戶將透過 {{legal_entity_name}} 開立,並由 Malta Financial Services Authority (MFSA) 監管,以及受馬爾他的法律管轄。", "-2073934245": "本網站所提供的金融交易服務僅適合這樣的客戶:能夠接受全部投入資金虧損的可能性,了解購買金融合約所蘊含的風險並擁有相關的風險經歷。金融合約交易涉及很大的風險。如果所購買的合約到期時一文不值,投資將完全損失,其中還包括合約費用。", - "-1035494182": "您確認,根據公司的判斷、適用法規以及內部檢查,我們將為您開立帳戶,並允許您在客戶驗收程序期間存入資金。 但是,在帳戶驗證完成之前,將無法交易、提款或進一步存款。 如果您在 30 天內未提供相關文件,我們將透過存款時使用的付款方式退還存款金額。", "-1125193491": "新增帳戶", "-2068229627": "本人不是政治公眾人士,而且在過去的12個月中,我未曾當過政治公眾人士。", "-1209644365": "本人確認,在 Deriv Investments (Europe) Ltd 開設帳戶的要求是由本人自行主動提出的。", @@ -2757,9 +2755,9 @@ "-222105210": "重新傳送驗證碼", "-1601377103": "第 3 之 3 步:驗證號碼", "-121443071": "第 3 之 1 步:需要電子郵件驗證", + "-1419026486": "輸入透過 {{phone_verification_type}} 向<1>{{users_phone_number}}傳送的 6 位數驗證碼。<0>", "-652539141": "OTP 驗證碼", "-1124039045": "驗證碼", - "-1487715516": "{{ phone }} 已驗證為您的電話號碼。", "-1184626439": "沒有收到驗證碼?{{resendCode}}", "-165489997": "工作階段已過期", "-1822545742": "古典以太幣", @@ -3948,9 +3946,11 @@ "-1858102926": "障礙設定在現貨價格之下。", "-635746838": "低於現貨價", "-548979988": "固定價格", - "-1013686843": "目前時間", + "-1838512476": "挑選結束時間", "-1977959027": "小時", - "-1084580778": "結束於", + "-591705950": "結束於", + "-1013686843": "目前時間", + "-1727323033": "0 分鐘", "-1068424721": "最大持續時間", "-718750246": "只要入市現價格保持在前一個入市現價的±{{tick_size_barrier_percentage}} 範圍內,投注額將以每個跳動點的 {{growth_rate}}%增長。", "-2131851017": "增長率", @@ -3987,6 +3987,7 @@ "-1541404572": "止盈已關閉。", "-1634963573": "止損已關閉。", "-337314714": "天", + "-1855256857": "小時", "-993480898": "Accumulators", "-123659792": "Vanillas", "-1226595254": "Turbos", diff --git a/packages/utils/src/__tests__/getCountry.spec.ts b/packages/utils/src/__tests__/getCountry.spec.ts new file mode 100644 index 000000000000..4107d895c9db --- /dev/null +++ b/packages/utils/src/__tests__/getCountry.spec.ts @@ -0,0 +1,37 @@ +import getCountry from '../getCountry'; + +describe('getCountry', () => { + beforeEach(() => { + global.fetch = jest.fn() as jest.Mock; + }); + + afterEach(() => { + jest.resetAllMocks(); + }); + + it('should return the country code in lowercase when available', async () => { + // Mock fetch response + (global.fetch as jest.Mock).mockResolvedValue({ + text: async () => 'loc=US\nother=info\n', + }); + + const country = await getCountry(); + expect(country).toBe('us'); + }); + + it('should return an empty string if the loc field is not present', async () => { + (global.fetch as jest.Mock).mockResolvedValue({ + text: async () => 'other=info\n', + }); + + const country = await getCountry(); + expect(country).toBe(''); + }); + + it('should return an empty string if the fetch fails', async () => { + (global.fetch as jest.Mock).mockRejectedValue(new Error('Fetch failed')); + + const country = await getCountry(); + expect(country).toBe(''); + }); +}); diff --git a/packages/utils/src/getAccountListWithAuthToken.ts b/packages/utils/src/getAccountListWithAuthToken.ts index b8bf81c51004..16dfa7a5be38 100644 --- a/packages/utils/src/getAccountListWithAuthToken.ts +++ b/packages/utils/src/getAccountListWithAuthToken.ts @@ -1,14 +1,14 @@ import getAccountsFromLocalStorage from './getAccountsFromLocalStorage'; /** - * Gets account list with only those accounts that have a token. + * Gets account list with only those accounts that have a token or accounts that are disabled. */ const getAccountListWithAuthToken = >(accountList?: T) => { const storedAccounts = getAccountsFromLocalStorage(); return accountList?.filter(account => { - if (typeof account === 'object' && account !== null && 'loginid' in account) { - return Boolean(storedAccounts?.[account.loginid as string]?.token); + if (typeof account === 'object' && account !== null && 'loginid' in account && 'is_disabled' in account) { + return Boolean(storedAccounts?.[account.loginid as string]?.token) || Boolean(account.is_disabled); } }); }; diff --git a/packages/utils/src/getCountry.ts b/packages/utils/src/getCountry.ts new file mode 100644 index 000000000000..87af822bf755 --- /dev/null +++ b/packages/utils/src/getCountry.ts @@ -0,0 +1,17 @@ +/* +Temp solution for growthbook to fetch country and handle experiments/fratures without causing inconsistencies to the UI. +*/ + +const getCountry = async () => { + try { + const response = await fetch('https://www.cloudflare.com/cdn-cgi/trace').catch(() => null); + const text = response ? await response.text().catch(() => '') : ''; + const entries = text ? text.split('\n').map(v => v.split('=', 2)) : []; + const data = entries.length ? Object.fromEntries(entries) : {}; + return data?.loc?.toLowerCase() ?? ''; + } catch { + return ''; + } +}; + +export default getCountry; diff --git a/packages/utils/src/getToken.ts b/packages/utils/src/getToken.ts index 5198f53be52b..0471a4f5449c 100644 --- a/packages/utils/src/getToken.ts +++ b/packages/utils/src/getToken.ts @@ -5,9 +5,8 @@ import getAccountsFromLocalStorage from './getAccountsFromLocalStorage'; */ const getToken = (loginid: string) => { const accounts = getAccountsFromLocalStorage() ?? {}; - // If there is no active loginid or no accounts list, return undefined. - if (!loginid) return; + if (!loginid || accounts[loginid]?.is_disabled) return; return accounts[loginid]?.token; }; diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 1993d63747d8..4fb0407b2467 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -9,6 +9,7 @@ export { default as groupTransactionsByDay } from './groupTransactionsByDay'; export { default as getTruncatedString } from './getTruncatedString'; export { default as unFormatLocaleString } from './unFormatLocaleString'; export { default as getLoginHistoryFormattedData } from './getLoginHistoryFormattedData'; +export { default as getCountry } from './getCountry'; export * from './parse-url'; export * from './moment'; export * from './files'; diff --git a/packages/wallets/package.json b/packages/wallets/package.json index 6b0457875f9f..b6edae3a960b 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -16,8 +16,8 @@ "dependencies": { "@deriv-com/analytics": "1.14.0", "@deriv-com/translations": "1.3.9", - "@deriv-com/ui": "1.35.0", - "@deriv-com/utils": "^0.0.34", + "@deriv-com/ui": "1.36.4", + "@deriv-com/utils": "^0.0.36", "@deriv/api-v2": "^1.0.0", "@deriv/quill-icons": "1.23.3", "@deriv/utils": "^1.0.0", diff --git a/packages/wallets/src/App.tsx b/packages/wallets/src/App.tsx index ce1161673103..72ca463e4595 100644 --- a/packages/wallets/src/App.tsx +++ b/packages/wallets/src/App.tsx @@ -10,7 +10,7 @@ import { TLanguageType } from './types'; import './styles/fonts.scss'; import './index.scss'; -const App: React.FC = () => { +const App: React.FC<{ logout: () => Promise }> = ({ logout }) => { const [preferredLanguage, setPreferredLanguage] = useState(null); const language = useLanguage(preferredLanguage); @@ -26,7 +26,7 @@ const App: React.FC = () => { return ( - + }> diff --git a/packages/wallets/src/AuthProvider.tsx b/packages/wallets/src/AuthProvider.tsx index adb422a895dd..233c95e2c963 100644 --- a/packages/wallets/src/AuthProvider.tsx +++ b/packages/wallets/src/AuthProvider.tsx @@ -10,17 +10,21 @@ const WalletsAuthProvider = ({ children, ...rest }: Omit { const loginIds = Object.keys(accountsObject); const defaultFiatWallet = loginIds.filter((loginId: string) => { - const { account_category: accountCategory, account_type: accountType } = accountsObject[loginId]; + const { + account_category: accountCategory, + account_type: accountType, + is_disabled: isDisabled, + } = accountsObject[loginId]; const isWallet = accountCategory == 'wallet'; const isFiat = accountType == 'doughflow'; - return isWallet && isFiat; + return isWallet && isFiat && !isDisabled; })[0]; if (!defaultFiatWallet) { const defaultWallet = loginIds.filter((loginId: string) => { - const { account_category: accountCategory } = accountsObject[loginId]; + const { account_category: accountCategory, is_disabled: isDisabled } = accountsObject[loginId]; const isWallet = accountCategory == 'wallet'; - return isWallet; + return isWallet && !isDisabled; })[0]; return defaultWallet; } diff --git a/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.scss b/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.scss index 01724f0a7cfe..a01ea7071748 100644 --- a/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.scss +++ b/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.scss @@ -24,6 +24,12 @@ display: flex; position: relative; margin-top: 0.8rem; + + &--info { + rect { + fill: var(--status-light-information, #377cfc); + } + } } } diff --git a/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.tsx b/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.tsx index eb2bb47705c6..0b76c1a41065 100644 --- a/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.tsx +++ b/packages/wallets/src/components/Base/WalletAlertMessage/WalletAlertMessage.tsx @@ -1,4 +1,5 @@ import React, { ReactNode } from 'react'; +import classNames from 'classnames'; import { LegacyLossIcon, LegacySettlementFillIcon, LegacyWarningIcon, LegacyWonIcon } from '@deriv/quill-icons'; import { Text } from '@deriv-com/ui'; import './WalletAlertMessage.scss'; @@ -41,7 +42,13 @@ const WalletAlertMessage: React.FC = ({ children, message, type }) => {
      - +
      diff --git a/packages/wallets/src/components/Base/WalletLink/WalletLink.scss b/packages/wallets/src/components/Base/WalletLink/WalletLink.scss index 1859aed6750e..16b23b5b7498 100644 --- a/packages/wallets/src/components/Base/WalletLink/WalletLink.scss +++ b/packages/wallets/src/components/Base/WalletLink/WalletLink.scss @@ -19,5 +19,10 @@ text-decoration: underline; } } + &--dark { + font-weight: bold; + text-decoration: underline; + color: var(--du-text-black, #000000); + } } } diff --git a/packages/wallets/src/components/DatePicker/DatePicker.tsx b/packages/wallets/src/components/DatePicker/DatePicker.tsx index c34450f221a6..5cedbb821dfc 100644 --- a/packages/wallets/src/components/DatePicker/DatePicker.tsx +++ b/packages/wallets/src/components/DatePicker/DatePicker.tsx @@ -3,7 +3,7 @@ import { Field, FieldProps } from 'formik'; import Calendar from 'react-calendar'; import { useOnClickOutside } from 'usehooks-ts'; import { LegacyCalendar1pxIcon } from '@deriv/quill-icons'; -import { getFormattedDateString } from '../../utils/utils'; +import { FormatUtils } from '@deriv-com/utils'; import { WalletTextField } from '../Base'; import type { TFormFieldProps } from '../FormField'; import customFormatShortWeekday from './utils'; @@ -11,7 +11,7 @@ import 'react-calendar/dist/Calendar.css'; import './DatePicker.scss'; interface TDatePickerProps extends TFormFieldProps { - displayFormat?: string; + displayFormat?: 'DD MMM YYYY' | 'DD-MM-YYYY' | 'MMM DD YYYY' | 'YYYY-MM-DD'; maxDate?: Date; minDate?: Date; mobileAlignment?: 'above' | 'below'; @@ -47,7 +47,11 @@ const DatePicker = ({
      {isCalendarOpen && (
      )} diff --git a/packages/wallets/src/components/DerivAppsSection/DerivAppsGetAccount.tsx b/packages/wallets/src/components/DerivAppsSection/DerivAppsGetAccount.tsx index f2be8b6a2a47..1aea6f365c53 100644 --- a/packages/wallets/src/components/DerivAppsSection/DerivAppsGetAccount.tsx +++ b/packages/wallets/src/components/DerivAppsSection/DerivAppsGetAccount.tsx @@ -9,10 +9,10 @@ import { import { displayMoney } from '@deriv/api-v2/src/utils'; import { Localize, useTranslations } from '@deriv-com/translations'; import { Button, Text, useDevice } from '@deriv-com/ui'; +import { FormatUtils } from '@deriv-com/utils'; import { CFDSuccess } from '../../features/cfd/screens/CFDSuccess'; import useAllBalanceSubscription from '../../hooks/useAllBalanceSubscription'; import useSyncLocalStorageClientAccounts from '../../hooks/useSyncLocalStorageClientAccounts'; -import { getFormattedDateString } from '../../utils/utils'; import { ModalStepWrapper } from '../Base'; import { useModal } from '../ModalProvider'; import { TradingAccountCard } from '../TradingAccountCard'; @@ -45,7 +45,10 @@ const DerivAppsGetAccount: React.FC = () => { const createAccountResponse = await createNewRealAccount({ payload: { currency: activeWallet?.currency_config?.display_code, - date_of_birth: getFormattedDateString(Number(dateOfBirth), {}, 'YYYY-MM-DD', true), + date_of_birth: FormatUtils.getFormattedDateString(Number(dateOfBirth), { + format: 'YYYY-MM-DD', + unix: true, + }), first_name: firstName, last_name: lastName, residence: countryCode || '', @@ -101,26 +104,28 @@ const DerivAppsGetAccount: React.FC = () => { - - - - - - - - - - - + + + + + + + + + + + + + ); }; diff --git a/packages/wallets/src/components/DerivAppsSection/DerivAppsSection.scss b/packages/wallets/src/components/DerivAppsSection/DerivAppsSection.scss index 9201f5836fcb..56c1cbdfad33 100644 --- a/packages/wallets/src/components/DerivAppsSection/DerivAppsSection.scss +++ b/packages/wallets/src/components/DerivAppsSection/DerivAppsSection.scss @@ -1,7 +1,7 @@ @import '../SkeletonLoader/SkeletonLoader.scss'; .wallets-deriv-apps-section { - &:hover { + &:hover:not(&--disabled) { background: none; cursor: unset; } @@ -15,6 +15,20 @@ padding-inline: 1.6rem; } + &--disabled { + cursor: pointer; + @include desktop { + &:hover { + background: none; + } + } + } + + &--disabled-icon, + &--disabled-content { + opacity: 0.48; + } + &__border { border-radius: 0.8rem; border: 0.1rem solid var(--system-light-7-secondary-background, #f2f3f4); diff --git a/packages/wallets/src/components/DerivAppsSection/DerivAppsTradingAccount.tsx b/packages/wallets/src/components/DerivAppsSection/DerivAppsTradingAccount.tsx index c70f9335b7cf..984d18aa7789 100644 --- a/packages/wallets/src/components/DerivAppsSection/DerivAppsTradingAccount.tsx +++ b/packages/wallets/src/components/DerivAppsSection/DerivAppsTradingAccount.tsx @@ -1,16 +1,21 @@ -import React from 'react'; +import React, { useState } from 'react'; +import classNames from 'classnames'; import { useHistory } from 'react-router-dom'; import { useActiveLinkedToTradingAccount, useActiveWalletAccount } from '@deriv/api-v2'; import { displayMoney } from '@deriv/api-v2/src/utils'; import { LabelPairedArrowUpArrowDownSmBoldIcon } from '@deriv/quill-icons'; -import { Localize } from '@deriv-com/translations'; +import { Localize, useTranslations } from '@deriv-com/translations'; import { Text, useDevice } from '@deriv-com/ui'; import useAllBalanceSubscription from '../../hooks/useAllBalanceSubscription'; import { TradingAccountCard } from '../TradingAccountCard'; +import { WalletDisabledAccountModal } from '../WalletDisabledAccountModal'; import { WalletListCardBadge } from '../WalletListCardBadge'; import { WalletMarketIcon } from '../WalletMarketIcon'; +import { WalletStatusBadge } from '../WalletStatusBadge'; const DerivAppsTradingAccount = () => { + const [shouldShowDisabledAccountModal, setShouldShowDisabledAccountModal] = useState(false); + const { localize } = useTranslations(); const { isDesktop } = useDevice(); const history = useHistory(); const { data: activeWallet } = useActiveWalletAccount(); @@ -19,47 +24,79 @@ const DerivAppsTradingAccount = () => { const balance = balanceData?.[activeLinkedToTradingAccount?.loginid ?? '']?.balance; return ( - - - - - -
      - - - - {activeWallet?.is_virtual && } -
      - {isBalanceLoading ? ( -
      - ) : ( - - {displayMoney(balance, activeLinkedToTradingAccount?.currency_config?.display_code, { - fractional_digits: activeLinkedToTradingAccount?.currency_config?.fractional_digits, - })} - - )} - - {activeLinkedToTradingAccount?.loginid} - - - - - - + + + + +
      + + + + {activeWallet?.is_virtual && } +
      + {isBalanceLoading ? ( +
      + ) : ( + + {displayMoney(balance, activeLinkedToTradingAccount?.currency_config?.display_code, { + fractional_digits: activeLinkedToTradingAccount?.currency_config?.fractional_digits, + })} + + )} + + {activeLinkedToTradingAccount?.loginid} + + + + {activeLinkedToTradingAccount?.is_disabled ? ( + + ) : ( + + )} + + + + {shouldShowDisabledAccountModal && ( + setShouldShowDisabledAccountModal(false)} + /> + )} + ); }; diff --git a/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx b/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx index c5a9ae72b582..1e9760efb1ae 100644 --- a/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx +++ b/packages/wallets/src/components/OptionsAndMultipliersListing/OptionsAndMultipliersListing.tsx @@ -47,38 +47,41 @@ const OptionsAndMultipliersListing = () => { return ( { + if (!activeLinkedToTradingAccount?.loginid) return; account.isExternal ? window.open(redirect, '_blank') : history.push(redirect as TRoute); }} > - - - {title} - - - {description} - - - {activeLinkedToTradingAccount?.loginid && ( - - {isRtl ? ( - - ) : ( - - )} - - )} + + + + {title} + + + {description} + + + {activeLinkedToTradingAccount?.loginid && ( + + {isRtl ? ( + + ) : ( + + )} + + )} + ); })} diff --git a/packages/wallets/src/components/OptionsAndMultipliersListing/__test__/OptionsAndMultipliersListing.spec.tsx b/packages/wallets/src/components/OptionsAndMultipliersListing/__test__/OptionsAndMultipliersListing.spec.tsx index 7416934fda7b..f36fb156f81d 100644 --- a/packages/wallets/src/components/OptionsAndMultipliersListing/__test__/OptionsAndMultipliersListing.spec.tsx +++ b/packages/wallets/src/components/OptionsAndMultipliersListing/__test__/OptionsAndMultipliersListing.spec.tsx @@ -1,6 +1,7 @@ import React, { PropsWithChildren } from 'react'; import { APIProvider, AuthProvider, useActiveLinkedToTradingAccount } from '@deriv/api-v2'; -import { render, screen } from '@testing-library/react'; +import { render, screen, within } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { ModalProvider } from '../../ModalProvider'; import OptionsAndMultipliersListing from '../OptionsAndMultipliersListing'; @@ -41,14 +42,38 @@ describe('OptionsAndMultipliersListing', () => { expect(screen.getAllByTestId('dt_label_paired_chevron')[0]).toBeInTheDocument(); }); - it('should change TradingAccountCard if loginid is undefined', () => { + it('handles onclick for the TradingAccountCard when loginid is undefined', () => { (useActiveLinkedToTradingAccount as jest.Mock).mockReturnValue({ data: { loginid: undefined }, }); render(, { wrapper }); const tradingAccountCard = screen.getAllByTestId('dt_wallets_trading_account_card')[0]; + userEvent.click(tradingAccountCard); + expect(screen.queryByTestId('dt_label_paired_chevron')).not.toBeInTheDocument(); + expect(mockHistoryPush).not.toHaveBeenCalled(); + }); + + it('handles onclick for the TradingAccountCard when loginid is defined', () => { + (useActiveLinkedToTradingAccount as jest.Mock).mockReturnValue({ + data: { loginid: 'CR1' }, + }); + render(, { wrapper }); + const tradingAccountCard = screen.getAllByTestId('dt_wallets_trading_account_card')[0]; + userEvent.click(tradingAccountCard); + const icon = within(tradingAccountCard).queryByTestId('dt_label_paired_chevron'); + expect(icon).toBeInTheDocument(); + expect(mockHistoryPush).toHaveBeenCalled(); + }); + + it('renders the correct TradingAccountCard when the account is disabled', () => { + (useActiveLinkedToTradingAccount as jest.Mock).mockReturnValue({ + data: { is_disabled: true, loginid: 'CR1' }, + }); + render(, { wrapper }); + const tradingAccountCard = screen.getAllByTestId('dt_wallets_trading_account_card')[0]; expect(tradingAccountCard).toHaveAttribute('aria-disabled', 'true'); expect(tradingAccountCard).toHaveClass('wallets-trading-account-card--disabled'); - expect(screen.queryByTestId('dt_label_paired_chevron')).not.toBeInTheDocument(); + const icon = within(tradingAccountCard).queryByTestId('dt_label_paired_chevron'); + expect(icon).toBeInTheDocument(); }); }); diff --git a/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.scss b/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.scss index 04ed7ae399ee..afded4270a21 100644 --- a/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.scss +++ b/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.scss @@ -1,7 +1,7 @@ .wallets-trading-account-card { display: grid; align-items: center; - grid-template-columns: auto 1fr auto; + grid-template-columns: auto 1fr; gap: 1.6rem; height: 8.8rem; padding: 0; @@ -10,18 +10,24 @@ &--disabled { cursor: not-allowed; + opacity: 0.48; + @include desktop { + &:hover { + background: none; + } + } } @include desktop { padding-inline: 1.6rem; $columns: 3; $grid-last-row-children: '&:nth-last-child(-n+#{$columns})'; - #{$grid-last-row-children} > &__content, - #{$grid-last-row-children} ~ & > &__content { + #{$grid-last-row-children} > &__section, + #{$grid-last-row-children} ~ & > &__section { border-bottom: none; } - &:hover { + &:hover:not(&--disabled) { cursor: pointer; background-color: var(--system-light-6-hover-background, #e6e9e9); border-radius: 0.8rem; @@ -30,8 +36,8 @@ @include mobile-or-tablet-screen { height: 8rem; - &:last-child > &__content, - &:last-child ~ & > &__content { + &:last-child > &__section, + &:last-child ~ & > &__section { border-bottom: none; } } @@ -41,6 +47,13 @@ justify-content: start; align-content: center; height: 100%; + } + &__section { + display: grid; + align-items: center; + grid-template-columns: 1fr auto; + gap: 1.6rem; border-bottom: 1px solid var(--system-light-6-hover-background, #e6e9e9); + height: 100%; } } diff --git a/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.tsx b/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.tsx index 84654fa848b7..013c96af6035 100644 --- a/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.tsx +++ b/packages/wallets/src/components/TradingAccountCard/TradingAccountCard.tsx @@ -3,6 +3,7 @@ import classNames from 'classnames'; import TradingAccountCardButton from './TradingAccountCardButton'; import TradingAccountCardContent from './TradingAccountCardContent'; import TradingAccountCardIcon from './TradingAccountCardIcon'; +import TradingAccountCardSection from './TradingAccountCardSection'; import './TradingAccountCard.scss'; export type TCommonProps = { @@ -43,5 +44,6 @@ const TradingAccountCard = ({ children, className, disabled, onClick }: PropsWit TradingAccountCard.Icon = TradingAccountCardIcon; TradingAccountCard.Content = TradingAccountCardContent; TradingAccountCard.Button = TradingAccountCardButton; +TradingAccountCard.Section = TradingAccountCardSection; export default TradingAccountCard; diff --git a/packages/wallets/src/components/TradingAccountCard/TradingAccountCardSection.tsx b/packages/wallets/src/components/TradingAccountCard/TradingAccountCardSection.tsx new file mode 100644 index 000000000000..de108b32bda0 --- /dev/null +++ b/packages/wallets/src/components/TradingAccountCard/TradingAccountCardSection.tsx @@ -0,0 +1,7 @@ +import React, { PropsWithChildren } from 'react'; + +const TradingAccountCardSection: React.FC = ({ children }) => ( +
      {children}
      +); + +export default TradingAccountCardSection; diff --git a/packages/wallets/src/components/WalletDisabledAccountModal/WalletDisabledAccountModal.scss b/packages/wallets/src/components/WalletDisabledAccountModal/WalletDisabledAccountModal.scss new file mode 100644 index 000000000000..c6c93ce47a45 --- /dev/null +++ b/packages/wallets/src/components/WalletDisabledAccountModal/WalletDisabledAccountModal.scss @@ -0,0 +1,7 @@ +.wallets-disabled-account-modal { + @include mobile-or-tablet-screen { + width: auto; + height: auto; + border-radius: 8px; + } +} diff --git a/packages/wallets/src/components/WalletDisabledAccountModal/WalletDisabledAccountModal.tsx b/packages/wallets/src/components/WalletDisabledAccountModal/WalletDisabledAccountModal.tsx new file mode 100644 index 000000000000..61a85fa54889 --- /dev/null +++ b/packages/wallets/src/components/WalletDisabledAccountModal/WalletDisabledAccountModal.tsx @@ -0,0 +1,41 @@ +import React, { ComponentProps, FC } from 'react'; +import { Localize } from '@deriv-com/translations'; +import { Button, Text } from '@deriv-com/ui'; +import { WalletDialog } from '../Base'; +import './WalletDisabledAccountModal.scss'; + +type WalletDisabledAccountModalProps = ComponentProps & { + accountType: string; +}; + +const WalletDisabledAccountModal: FC = ({ accountType, isVisible, onClose }) => { + return ( + + + + + + + + + + + + + + ); +}; + +export default WalletDisabledAccountModal; diff --git a/packages/wallets/src/components/WalletDisabledAccountModal/index.ts b/packages/wallets/src/components/WalletDisabledAccountModal/index.ts new file mode 100644 index 000000000000..a72672ccd26c --- /dev/null +++ b/packages/wallets/src/components/WalletDisabledAccountModal/index.ts @@ -0,0 +1 @@ +export { default as WalletDisabledAccountModal } from './WalletDisabledAccountModal'; diff --git a/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.scss b/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.scss index 27c208b837b0..2cd10fa0878d 100644 --- a/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.scss +++ b/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.scss @@ -15,6 +15,19 @@ &-item { display: flex; gap: 1.6rem; + align-items: center; + width: 100%; + } + + &-item--disabled { + & > :first-child, + & > :nth-child(2) { + opacity: 0.48; + } + & > :last-child { + margin-left: auto; + opacity: 1; + } } &-content { @@ -72,7 +85,7 @@ justify-content: flex-start; border-radius: 0.4rem; - &:hover:not(&--active) { + &:hover:not(&--active):not(&--disabled) { cursor: pointer; background: var(--system-light-6-hover-background, #e6e9e9); } @@ -80,5 +93,11 @@ &--active { background: var(--system-light-5-active-background, #d6dadb); } + &--disabled { + cursor: not-allowed; + &:hover { + background: none; + } + } } } diff --git a/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx b/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx index a915cdbe0d6e..bb99ca632797 100644 --- a/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx +++ b/packages/wallets/src/components/WalletListCardDropdown/WalletListCardDropdown.tsx @@ -9,18 +9,11 @@ import { Text } from '@deriv-com/ui'; import useAllBalanceSubscription from '../../hooks/useAllBalanceSubscription'; import useWalletAccountSwitcher from '../../hooks/useWalletAccountSwitcher'; import { THooks } from '../../types'; -import reactNodeToString from '../../utils/react-node-to-string'; import { WalletTextField } from '../Base'; import { WalletCurrencyIcon } from '../WalletCurrencyIcon'; +import { WalletStatusBadge } from '../WalletStatusBadge'; import './WalletListCardDropdown.scss'; -type WalletList = { - currency: THooks.WalletAccountsList['currency']; - currencyConfig: THooks.WalletAccountsList['currency_config']; - loginid: THooks.WalletAccountsList['loginid']; - text: React.ReactNode; -}[]; - const WalletListCardDropdown = () => { const { data: wallets } = useWalletAccountsList(); const { data: activeWallet } = useActiveWalletAccount(); @@ -37,13 +30,14 @@ const WalletListCardDropdown = () => { return `${wallet?.currency} Wallet`; }, []); - const walletList: WalletList = useMemo(() => { + const walletList = useMemo(() => { return ( wallets ?.filter(wallet => !wallet.is_virtual) .map(wallet => ({ currency: wallet.currency, currencyConfig: wallet.currency_config, + isDisabled: wallet.is_disabled, loginid: wallet.loginid, text: generateTitleText(wallet), })) ?? [] @@ -109,7 +103,7 @@ const WalletListCardDropdown = () => { {isOpen && (
        - +
        @@ -117,33 +111,49 @@ const WalletListCardDropdown = () => {
      • handleItemClick(wallet.loginid, reactNodeToString(wallet.text))} + onClick={e => { + e.stopPropagation(); + if (wallet.isDisabled) return; + handleItemClick(wallet.loginid, wallet.text); + }} > -
        +
        - {wallet.currency} Wallet + + {wallet.currency} Wallet + {isBalanceLoading ? (
        ) : ( - - {displayMoney( - balanceData?.[wallet.loginid]?.balance, - wallet?.currency, - { - fractional_digits: - wallet?.currencyConfig?.fractional_digits, - } - )} - + !wallet.isDisabled && ( + + {displayMoney( + balanceData?.[wallet.loginid]?.balance, + wallet?.currency, + { + fractional_digits: + wallet?.currencyConfig?.fractional_digits, + } + )} + + ) )}
        + {wallet.isDisabled && ( + + )}
      • ))} diff --git a/packages/wallets/src/components/WalletListCardDropdown/__tests__/WalletListCardDropdown.spec.tsx b/packages/wallets/src/components/WalletListCardDropdown/__tests__/WalletListCardDropdown.spec.tsx index f149157024cf..b732b3040168 100644 --- a/packages/wallets/src/components/WalletListCardDropdown/__tests__/WalletListCardDropdown.spec.tsx +++ b/packages/wallets/src/components/WalletListCardDropdown/__tests__/WalletListCardDropdown.spec.tsx @@ -1,6 +1,7 @@ import React, { PropsWithChildren } from 'react'; import { APIProvider, useActiveWalletAccount, useWalletAccountsList } from '@deriv/api-v2'; import { fireEvent, render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import WalletsAuthProvider from '../../../AuthProvider'; import useAllBalanceSubscription from '../../../hooks/useAllBalanceSubscription'; import WalletListCardDropdown from '../WalletListCardDropdown'; @@ -146,4 +147,26 @@ describe('WalletListCardDropdown', () => { fireEvent.keyDown(document, { key: 'Escape' }); expect(screen.queryByText('BTC Wallet')).not.toBeInTheDocument(); }); + + it('renders the disabled badge for a disabled wallet', () => { + (useWalletAccountsList as jest.Mock).mockReturnValue({ + data: [ + { + currency: 'USD', + currency_config: { fractional_digits: 2 }, + is_disabled: true, + is_virtual: false, + loginid: 'CR1', + }, + ], + }); + + render(, { wrapper }); + + const input = screen.getByDisplayValue('USD Wallet'); + userEvent.click(input); + + expect(screen.getByText('USD Wallet')).toBeInTheDocument(); + expect(screen.getByText('Disabled')).toBeInTheDocument(); + }); }); diff --git a/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss b/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss index 5bf97199d10c..3d81ec3f1f27 100644 --- a/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss +++ b/packages/wallets/src/components/WalletListHeader/WalletListHeader.scss @@ -24,6 +24,9 @@ width: 5.6rem; display: flex; justify-content: center; + &--disabled { + opacity: 0.7; + } } } @@ -56,6 +59,12 @@ margin: 0.4rem; } } + &--disabled:hover { + cursor: not-allowed; + &:before { + background-color: transparent; + } + } } &__slider { diff --git a/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx b/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx index 95065c431741..9abec2ff9702 100644 --- a/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx +++ b/packages/wallets/src/components/WalletListHeader/WalletListHeader.tsx @@ -1,4 +1,5 @@ import React, { useEffect, useState } from 'react'; +import classNames from 'classnames'; import { useActiveWalletAccount, useWalletAccountsList } from '@deriv/api-v2'; import { Localize } from '@deriv-com/translations'; import { Text, useDevice } from '@deriv-com/ui'; @@ -12,8 +13,9 @@ const WalletListHeader: React.FC = () => { const switchWalletAccount = useWalletAccountSwitcher(); const demoAccount = wallets?.find(wallet => wallet.is_virtual)?.loginid; - const firstRealAccount = wallets?.find(wallet => !wallet.is_virtual)?.loginid; - const shouldShowSwitcher = demoAccount && firstRealAccount; + const firstRealAccount = wallets?.find(wallet => !wallet.is_virtual && !wallet.is_disabled)?.loginid; + const hasAnyActiveRealWallets = wallets?.some(wallet => !wallet.is_virtual && !wallet.is_disabled); + const shouldShowSwitcher = (demoAccount && firstRealAccount) || !hasAnyActiveRealWallets; const isDemo = activeWallet?.is_virtual; const [isChecked, setIsChecked] = useState(!isDemo); @@ -34,28 +36,39 @@ const WalletListHeader: React.FC = () => { return (
        - + {shouldShowSwitcher && (
        - +
        -
        - +
        +
        -
        + {disabledWallets.length > 0 ? ( + + ) : null}
        {walletAccountsList?.map((account, index) => ( diff --git a/packages/wallets/src/components/WalletsContainer/WalletsContainer.tsx b/packages/wallets/src/components/WalletsContainer/WalletsContainer.tsx index 4f5f95384f9a..0e88b44210e8 100644 --- a/packages/wallets/src/components/WalletsContainer/WalletsContainer.tsx +++ b/packages/wallets/src/components/WalletsContainer/WalletsContainer.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useRef } from 'react'; import classNames from 'classnames'; -import { useActiveWalletAccount } from '@deriv/api-v2'; +import { useActiveWalletAccount, useWalletAccountsList } from '@deriv/api-v2'; +import { WalletsDisabledAccountsBanner } from '../WalletsDisabledAccountsBanner'; import './WalletsContainer.scss'; type TProps = { @@ -8,11 +9,13 @@ type TProps = { }; const WalletsContainer: React.FC> = ({ children, renderHeader }) => { + const { data: wallets } = useWalletAccountsList(); const { data: activeWallet } = useActiveWalletAccount(); const walletsCardRef = useRef(null); const isDemo = activeWallet?.is_virtual; const isOpen = activeWallet?.is_active; + const disabledWallets = wallets?.filter(wallet => wallet.is_disabled) ?? []; useEffect(() => { const timeout = setTimeout(() => { @@ -32,6 +35,7 @@ const WalletsContainer: React.FC> = ({ children, data-testid='dt_wallets_container' ref={walletsCardRef} > + {disabledWallets.length > 0 ? : null}
        ({ + ...jest.requireActual('@deriv/api-v2'), useActiveWalletAccount: jest.fn(), + useWalletAccountsList: jest.fn(), +})); + +const wrapper = ({ children }: PropsWithChildren) => ( + + + {children} + + +); + +jest.mock('../../WalletsDisabledAccountsBanner', () => ({ + WalletsDisabledAccountsBanner: jest.fn(() =>
        mockDisabledWalletsBanner
        ), })); describe('WalletsContainer', () => { @@ -14,6 +29,15 @@ describe('WalletsContainer', () => { beforeEach(() => { renderHeaderMock.mockClear(); + (useWalletAccountsList as jest.Mock).mockReturnValue({ + data: [ + { is_disabled: false, is_virtual: false, loginid: 'real1' }, + { is_virtual: true, loginid: 'demo123' }, + ], + }); + (useActiveWalletAccount as jest.Mock).mockReturnValue({ + data: undefined, + }); }); it('should render the default component if no data available', () => { @@ -21,7 +45,7 @@ describe('WalletsContainer', () => { data: undefined, }); - render({children}); + render({children}, { wrapper }); expect(screen.getByTestId('header')).toBeInTheDocument(); expect(screen.getByTestId('children')).toBeInTheDocument(); @@ -37,7 +61,7 @@ describe('WalletsContainer', () => { }, }); - render({children}); + render({children}, { wrapper }); expect(screen.getByTestId('dt_wallets_container_header')).toHaveClass('wallets-container__header--virtual'); expect(screen.getByTestId('dt_wallets_container')).toHaveClass('wallets-container--virtual'); @@ -52,7 +76,7 @@ describe('WalletsContainer', () => { }, }); - render({children}); + render({children}, { wrapper }); const containerElement = screen.getByTestId('dt_wallets_container'); if (containerElement) { @@ -65,4 +89,20 @@ describe('WalletsContainer', () => { expect(containerElement).toHaveStyle('scroll-margin-top: 80px'); }); + + it('renders the disabled wallets banner if a user has any disabled wallets', () => { + (useWalletAccountsList as jest.Mock).mockReturnValue({ + data: [ + { is_disabled: true, is_virtual: false, loginid: 'real1' }, + { is_virtual: true, loginid: 'demo123' }, + ], + }); + (useActiveWalletAccount as jest.Mock).mockReturnValue({ + data: undefined, + }); + + render({children}, { wrapper }); + + expect(screen.getByText('mockDisabledWalletsBanner')).toBeInTheDocument(); + }); }); diff --git a/packages/wallets/src/components/WalletsDisabledAccountsBanner/WalletsDisabledAccountsBanner.scss b/packages/wallets/src/components/WalletsDisabledAccountsBanner/WalletsDisabledAccountsBanner.scss new file mode 100644 index 000000000000..78724ca33ac7 --- /dev/null +++ b/packages/wallets/src/components/WalletsDisabledAccountsBanner/WalletsDisabledAccountsBanner.scss @@ -0,0 +1,9 @@ +.wallets-disabled-account-banner { + &__container { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: 1.6rem; + } +} diff --git a/packages/wallets/src/components/WalletsDisabledAccountsBanner/WalletsDisabledAccountsBanner.tsx b/packages/wallets/src/components/WalletsDisabledAccountsBanner/WalletsDisabledAccountsBanner.tsx new file mode 100644 index 000000000000..4b2f33d6e01c --- /dev/null +++ b/packages/wallets/src/components/WalletsDisabledAccountsBanner/WalletsDisabledAccountsBanner.tsx @@ -0,0 +1,55 @@ +import React, { FC } from 'react'; +import { useWalletAccountsList } from '@deriv/api-v2'; +import { Localize, useTranslations } from '@deriv-com/translations'; +import { SectionMessage, Text, useDevice } from '@deriv-com/ui'; +import './WalletsDisabledAccountsBanner.scss'; + +type TProps = { + disabledAccounts: NonNullable['data']>[number][]; +}; + +const WalletsDisabledAccountsBanner: FC = ({ disabledAccounts }) => { + const { isDesktop } = useDevice(); + const { localize } = useTranslations(); + let disabledAccountsCurrencies = ''; + const disabledAccountsLength = disabledAccounts.length; + + disabledAccounts.forEach((disabledAccount, index) => { + if (disabledAccountsLength > 1) { + if (index === disabledAccountsLength - 1) { + disabledAccountsCurrencies += ` ${localize('and')} ${disabledAccount.currency}`; + } else { + disabledAccountsCurrencies += `${disabledAccount.currency}, `; + } + } else { + disabledAccountsCurrencies += disabledAccount.currency; + } + }); + + return ( +
        + + + window.LiveChatWidget.call('maximize')} + />, + ]} + i18n_default_text='Your {{currencies}} {{accountType}} {{verb}} disabled. Contact us via <0>live chat for details.' + values={{ + accountType: disabledAccountsLength > 1 ? localize('Wallets') : localize('Wallet'), + currencies: disabledAccountsCurrencies, + verb: disabledAccountsLength > 1 ? localize('are') : localize('is'), + }} + /> + + +
        + ); +}; + +export default WalletsDisabledAccountsBanner; diff --git a/packages/wallets/src/components/WalletsDisabledAccountsBanner/__tests__/WalletsDisabledAccountsBanner.spec.tsx b/packages/wallets/src/components/WalletsDisabledAccountsBanner/__tests__/WalletsDisabledAccountsBanner.spec.tsx new file mode 100644 index 000000000000..f73faa6b8942 --- /dev/null +++ b/packages/wallets/src/components/WalletsDisabledAccountsBanner/__tests__/WalletsDisabledAccountsBanner.spec.tsx @@ -0,0 +1,124 @@ +import React, { ComponentProps } from 'react'; +import { Localize, useTranslations } from '@deriv-com/translations'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import WalletsDisabledAccountsBanner from '../WalletsDisabledAccountsBanner'; + +jest.mock('@deriv-com/translations', () => ({ + // eslint-disable-next-line camelcase + Localize: ({ components, i18n_default_text, values }: ComponentProps) => { + // eslint-disable-next-line camelcase + let text = i18n_default_text; + + if (values) { + Object.entries(values).forEach(([key, value]) => { + text = text.replace(new RegExp(`{{${key}}}`, 'g'), value); + }); + } + + if (components) { + components.forEach((component, index) => { + text = text.replace(new RegExp(`<${index}>`, 'g'), `<${component.type}>`); + text = text.replace(new RegExp(``, 'g'), ``); + }); + } + return
        ; + }, + useTranslations: jest.fn(), +})); + +window.LiveChatWidget = { + call: jest.fn(), + get: jest.fn(), + init: jest.fn(), + on: jest.fn(), +}; + +describe('WalletsDisabledAccountsBanner', () => { + const mockDisabledAccounts: ComponentProps['disabledAccounts'] = [ + { + created_at: undefined, + currency: 'USD', + currency_config: undefined, + dtrade_loginid: undefined, + excluded_until: undefined, + is_active: false, + is_crypto: undefined, + is_disabled: true, + is_linked_account_active: undefined, + is_malta_wallet: false, + is_virtual: false, + landing_company_name: undefined, + loginid: '', + wallet_currency_type: '', + }, + { + created_at: undefined, + currency: 'EUR', + currency_config: undefined, + dtrade_loginid: undefined, + excluded_until: undefined, + is_active: false, + is_crypto: undefined, + is_disabled: true, + is_linked_account_active: undefined, + is_malta_wallet: false, + is_virtual: false, + landing_company_name: undefined, + loginid: '', + wallet_currency_type: '', + }, + { + created_at: undefined, + currency: 'BTC', + currency_config: undefined, + dtrade_loginid: undefined, + excluded_until: undefined, + is_active: false, + is_crypto: true, + is_disabled: true, + is_linked_account_active: undefined, + is_malta_wallet: false, + is_virtual: false, + landing_company_name: undefined, + loginid: '', + wallet_currency_type: '', + }, + ]; + const mockLocalize = jest.fn((text, params) => { + const { title = '' } = params || {}; + return text.replace('{{title}}', title); + }); + + beforeAll(() => { + (useTranslations as jest.Mock).mockReturnValue({ localize: mockLocalize }); + }); + + it('renders correctly with one disabled account', () => { + render(); + + expect(screen.getByText(/Your USD Wallet is disabled/)).toBeInTheDocument(); + }); + + it('renders correctly with multiple disabled accounts', () => { + render(); + + expect(screen.getByText(/Your USD, EUR, and BTC Wallets are disabled/)).toBeInTheDocument(); + }); + + it('calls open_chat_window on button click', () => { + render(); + + const chatButton = screen.getByRole('button'); + chatButton.addEventListener('click', () => window.LiveChatWidget.call('maximize')); + userEvent.click(chatButton); + + expect(window.LiveChatWidget.call).toHaveBeenCalledWith('maximize'); + }); + + it('renders the icon', () => { + render(); + expect(screen.getByRole('img')).toBeInTheDocument(); + expect(screen.getByRole('img')).toHaveClass('deriv-section-message__icon--warning'); + }); +}); diff --git a/packages/wallets/src/components/WalletsDisabledAccountsBanner/index.ts b/packages/wallets/src/components/WalletsDisabledAccountsBanner/index.ts new file mode 100644 index 000000000000..c5a35b8e68b5 --- /dev/null +++ b/packages/wallets/src/components/WalletsDisabledAccountsBanner/index.ts @@ -0,0 +1 @@ +export { default as WalletsDisabledAccountsBanner } from './WalletsDisabledAccountsBanner'; diff --git a/packages/wallets/src/components/index.ts b/packages/wallets/src/components/index.ts index 47fb3d3083e4..1111940abbba 100644 --- a/packages/wallets/src/components/index.ts +++ b/packages/wallets/src/components/index.ts @@ -19,6 +19,7 @@ export * from './WalletBadge'; export * from './WalletCard'; export * from './WalletCurrencyCard'; export * from './WalletCurrencyIcon'; +export * from './WalletDisabledAccountModal'; export * from './WalletError'; export * from './WalletGradientBackground'; export * from './WalletListCard'; @@ -36,6 +37,7 @@ export * from './WalletsCarousel'; export * from './WalletsCarouselContent'; export * from './WalletsCarouselHeader'; export * from './WalletsContainer'; +export * from './WalletsDisabledAccountsBanner'; export * from './WalletsErrorScreen'; export * from './WalletsPercentageSelector'; export * from './WalletsResetMT5Password'; diff --git a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/VerifyPersonalDetails.tsx b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/VerifyPersonalDetails.tsx index f27562b34a4d..56c6c77f2e82 100644 --- a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/VerifyPersonalDetails.tsx +++ b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/VerifyPersonalDetails.tsx @@ -5,8 +5,8 @@ import { TSocketError } from '@deriv/api-v2/types'; import { DerivLightNameDobPoiIcon } from '@deriv/quill-icons'; import { Localize, useTranslations } from '@deriv-com/translations'; import { InlineMessage, Text } from '@deriv-com/ui'; +import { FormatUtils } from '@deriv-com/utils'; import { DatePicker, FormField } from '../../../../../../components'; -import { getAdjustedDate } from '../../../../../../utils/utils'; import { VerifyPersonalDetailsErrorMessage } from './components'; import { TVerifyPersonalDetailsValues } from './types'; import { @@ -80,9 +80,9 @@ const VerifyPersonalDetails: React.FC = ({ error, o disabled={values.arePersonalDetailsVerified} displayFormat={dateDisplayFormat} label={localize('Date of birth*')} - maxDate={getAdjustedDate(18, 'years')} + maxDate={FormatUtils.getAdjustedDate(18, 'years', 'subtract')} message={localize('Your date of birth as in your identity document')} - minDate={getAdjustedDate(100, 'years')} + minDate={FormatUtils.getAdjustedDate(100, 'years', 'subtract')} mobileAlignment='above' name='dateOfBirth' showMessage diff --git a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/components/VerifyPersonalDetailsErrorMessage/VerifyPersonalDetailsErrorMessage.tsx b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/components/VerifyPersonalDetailsErrorMessage/VerifyPersonalDetailsErrorMessage.tsx index 72b4bc6e3f6c..35fc684e6561 100644 --- a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/components/VerifyPersonalDetailsErrorMessage/VerifyPersonalDetailsErrorMessage.tsx +++ b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/components/VerifyPersonalDetailsErrorMessage/VerifyPersonalDetailsErrorMessage.tsx @@ -8,7 +8,7 @@ type TErrorMessageProps = { }; const VerifyPersonalDetailsErrorMessage: React.FC = ({ error }) => { - const handleOnClickLink = () => window.LC_API.open_chat_window(); + const handleOnClickLink = () => window.LiveChatWidget.call('maximize'); if (error === 'DuplicateAccount') { return ( diff --git a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/hooks/useVerifyPersonalDetails.ts b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/hooks/useVerifyPersonalDetails.ts index dd35cb70bc01..549657fabc50 100644 --- a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/hooks/useVerifyPersonalDetails.ts +++ b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/hooks/useVerifyPersonalDetails.ts @@ -2,7 +2,7 @@ import { useState } from 'react'; import { FormikValues } from 'formik'; import { useSettings } from '@deriv/api-v2'; import { TSocketError } from '@deriv/api-v2/types'; -import { getFormattedDateString } from '../../../../../../../utils/utils'; +import { FormatUtils } from '@deriv-com/utils'; import type { TVerifyPersonalDetailsValues } from '../types'; const useVerifyPersonalDetails = () => { @@ -11,7 +11,7 @@ const useVerifyPersonalDetails = () => { const [isSubmitted, setIsSubmitted] = useState(false); const [error, setError] = useState>(); - const formattedDateOfBirth = getFormattedDateString(new Date((settings.date_of_birth ?? 0) * 1000)); + const formattedDateOfBirth = FormatUtils.getFormattedDateString(new Date((settings.date_of_birth ?? 0) * 1000)); const initialValues = { dateOfBirth: formattedDateOfBirth, diff --git a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/types/types.ts b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/types/types.ts index a335c22ecc2d..8007c1f5de17 100644 --- a/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/types/types.ts +++ b/packages/wallets/src/features/accounts/modules/DocumentService/components/VerifyPersonalDetails/types/types.ts @@ -1,9 +1,9 @@ +import { FormatUtils } from '@deriv-com/utils'; import { THooks } from '../../../../../../../types'; -import { getFormattedDateString } from '../../../../../../../utils/utils'; export type TVerifyPersonalDetailsValues = { arePersonalDetailsVerified?: boolean; - dateOfBirth?: ReturnType; + dateOfBirth?: ReturnType; firstName: THooks.AccountSettings['first_name']; lastName: THooks.AccountSettings['last_name']; }; diff --git a/packages/wallets/src/features/accounts/modules/ManualService/components/DrivingLicenseUpload/DrivingLicenseUpload.tsx b/packages/wallets/src/features/accounts/modules/ManualService/components/DrivingLicenseUpload/DrivingLicenseUpload.tsx index 199229a65173..945396a9ea68 100644 --- a/packages/wallets/src/features/accounts/modules/ManualService/components/DrivingLicenseUpload/DrivingLicenseUpload.tsx +++ b/packages/wallets/src/features/accounts/modules/ManualService/components/DrivingLicenseUpload/DrivingLicenseUpload.tsx @@ -2,11 +2,11 @@ import React, { useState } from 'react'; import { Formik, FormikValues } from 'formik'; import { Localize, useTranslations } from '@deriv-com/translations'; import { Divider, Loader, Text } from '@deriv-com/ui'; +import { FormatUtils } from '@deriv-com/utils'; import { DatePicker, Dropzone, FormField, ModalStepWrapper } from '../../../../../../components'; import DrivingLicenseCardBack from '../../../../../../public/images/accounts/document-back.svg'; import DrivingLicenseCardFront from '../../../../../../public/images/accounts/driving-license-front.svg'; import { THooks } from '../../../../../../types'; -import { getAdjustedDate } from '../../../../../../utils/utils'; import { Footer } from '../../../components'; import { getGeneralDocumentRules, TManualDocumentComponent } from '../../utils'; import { DocumentRules } from '../DocumentRules'; @@ -106,7 +106,7 @@ const DrivingLicenseUpload: TManualDocumentComponent = ({ documentIssuingCountry />
        diff --git a/packages/wallets/src/features/accounts/modules/ManualService/components/IdentityCardUpload/IdentityCardUpload.tsx b/packages/wallets/src/features/accounts/modules/ManualService/components/IdentityCardUpload/IdentityCardUpload.tsx index 2175b1282996..616f30ae37f4 100644 --- a/packages/wallets/src/features/accounts/modules/ManualService/components/IdentityCardUpload/IdentityCardUpload.tsx +++ b/packages/wallets/src/features/accounts/modules/ManualService/components/IdentityCardUpload/IdentityCardUpload.tsx @@ -2,11 +2,11 @@ import React, { useState } from 'react'; import { Formik, FormikValues } from 'formik'; import { Localize, useTranslations } from '@deriv-com/translations'; import { Divider, Loader, Text } from '@deriv-com/ui'; +import { FormatUtils } from '@deriv-com/utils'; import { DatePicker, Dropzone, FormField, ModalStepWrapper } from '../../../../../../components'; import IdentityCardBack from '../../../../../../public/images/accounts/document-back.svg'; import IdentityCardFront from '../../../../../../public/images/accounts/identity-card-front.svg'; import { THooks } from '../../../../../../types'; -import { getAdjustedDate } from '../../../../../../utils/utils'; import { Footer } from '../../../components'; import { getGeneralDocumentRules, TManualDocumentComponent } from '../../utils'; import { DocumentRules } from '../DocumentRules'; @@ -108,7 +108,7 @@ const IdentityCardUpload: TManualDocumentComponent = ({ documentIssuingCountryCo />
        diff --git a/packages/wallets/src/features/accounts/modules/ManualService/components/PassportUpload/PassportUpload.tsx b/packages/wallets/src/features/accounts/modules/ManualService/components/PassportUpload/PassportUpload.tsx index 41ebd81bd41d..0e2aab3da490 100644 --- a/packages/wallets/src/features/accounts/modules/ManualService/components/PassportUpload/PassportUpload.tsx +++ b/packages/wallets/src/features/accounts/modules/ManualService/components/PassportUpload/PassportUpload.tsx @@ -2,10 +2,10 @@ import React, { useState } from 'react'; import { Formik, FormikValues } from 'formik'; import { Localize, useTranslations } from '@deriv-com/translations'; import { Divider, Loader, Text } from '@deriv-com/ui'; +import { FormatUtils } from '@deriv-com/utils'; import { DatePicker, Dropzone, FormField, ModalStepWrapper } from '../../../../../../components'; import PassportPlaceholder from '../../../../../../public/images/accounts/passport-placeholder.svg'; import { THooks } from '../../../../../../types'; -import { getAdjustedDate } from '../../../../../../utils/utils'; import { Footer } from '../../../components'; import { getGeneralDocumentRules, TManualDocumentComponent } from '../../utils'; import { DocumentRules } from '../DocumentRules'; @@ -98,7 +98,7 @@ const PassportUpload: TManualDocumentComponent = ({ documentIssuingCountryCode,
        diff --git a/packages/wallets/src/features/accounts/modules/TaxInformation/components/NeedHelpMessage/NeedHelpMessage.tsx b/packages/wallets/src/features/accounts/modules/TaxInformation/components/NeedHelpMessage/NeedHelpMessage.tsx index a08026e10d30..0ae52dd3eb2f 100644 --- a/packages/wallets/src/features/accounts/modules/TaxInformation/components/NeedHelpMessage/NeedHelpMessage.tsx +++ b/packages/wallets/src/features/accounts/modules/TaxInformation/components/NeedHelpMessage/NeedHelpMessage.tsx @@ -3,7 +3,7 @@ import { Localize } from '@deriv-com/translations'; import { InlineMessage, Text } from '@deriv-com/ui'; const NeedHelpMessage = () => { - const onClickLiveChat = () => window.LC_API.open_chat_window(); + const onClickLiveChat = () => window.LiveChatWidget?.call('maximize'); return (
        diff --git a/packages/wallets/src/features/cashier/flows/WalletWithdrawal/WalletWithdrawal.tsx b/packages/wallets/src/features/cashier/flows/WalletWithdrawal/WalletWithdrawal.tsx index eecedc736678..ec9fe1b084b3 100644 --- a/packages/wallets/src/features/cashier/flows/WalletWithdrawal/WalletWithdrawal.tsx +++ b/packages/wallets/src/features/cashier/flows/WalletWithdrawal/WalletWithdrawal.tsx @@ -59,7 +59,11 @@ const WalletWithdrawal = () => { verificationCode={verificationCode} /> ) : ( - + ); } diff --git a/packages/wallets/src/features/cashier/modules/CashierLocked/CashierLockedContent.tsx b/packages/wallets/src/features/cashier/modules/CashierLocked/CashierLockedContent.tsx index 589bdfb155e1..07af90699ca6 100644 --- a/packages/wallets/src/features/cashier/modules/CashierLocked/CashierLockedContent.tsx +++ b/packages/wallets/src/features/cashier/modules/CashierLocked/CashierLockedContent.tsx @@ -140,7 +140,7 @@ const getCashierLockedDesc = ({
        {transaction?.transaction_fee && ( diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompleted/TransactionsCompleted.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompleted/TransactionsCompleted.tsx index 1ce91df0d522..1810f76b728b 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompleted/TransactionsCompleted.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompleted/TransactionsCompleted.tsx @@ -2,7 +2,7 @@ import React, { useCallback, useEffect } from 'react'; import { useActiveWalletAccount, useAllAccountsList, useInfiniteTransactions } from '@deriv/api-v2'; import { TSocketRequestPayload } from '@deriv/api-v2/types'; import { Loader, Text } from '@deriv-com/ui'; -import { getFormattedDateString } from '../../../../../../utils/utils'; +import { FormatUtils } from '@deriv-com/utils'; import { useCashierScroll } from '../../../../context'; import { TransactionsCompletedRow } from '../TransactionsCompletedRow'; import { TransactionsNoDataState } from '../TransactionsNoDataState'; @@ -62,12 +62,11 @@ const TransactionsCompleted: React.FC = ({ filter }) => { { accessorFn: row => row.transaction_time && - getFormattedDateString( - row.transaction_time, - { day: '2-digit', month: 'short', year: 'numeric' }, - 'DD MMM YYYY', - true - ), + FormatUtils.getFormattedDateString(row.transaction_time, { + dateOptions: { day: '2-digit', month: 'short', year: 'numeric' }, + format: 'DD MMM YYYY', + unix: true, + }), accessorKey: 'date', header: 'Date', }, @@ -78,12 +77,11 @@ const TransactionsCompleted: React.FC = ({ filter }) => {
        {transaction.transaction_time && - getFormattedDateString( - transaction.transaction_time, - { day: '2-digit', month: 'short', year: 'numeric' }, - 'DD MMM YYYY', - true - )} + FormatUtils.getFormattedDateString(transaction.transaction_time, { + dateOptions: { day: '2-digit', month: 'short', year: 'numeric' }, + format: 'DD MMM YYYY', + unix: true, + })}
        )} diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedDemoResetBalance/TransactionsCompletedDemoResetBalance.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedDemoResetBalance/TransactionsCompletedDemoResetBalance.tsx index 889ad9f7ef5a..227af50ec6f6 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedDemoResetBalance/TransactionsCompletedDemoResetBalance.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedDemoResetBalance/TransactionsCompletedDemoResetBalance.tsx @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import { useActiveWalletAccount, useAllAccountsList, useTransactions } from '@deriv/api-v2'; import { Loader, Text } from '@deriv-com/ui'; -import { getFormattedDateString } from '../../../../../../utils/utils'; +import { FormatUtils } from '@deriv-com/utils'; import { TransactionsCompletedRow } from '../TransactionsCompletedRow'; import { TransactionsNoDataState } from '../TransactionsNoDataState'; import { TransactionsTable } from '../TransactionsTable'; @@ -43,12 +43,11 @@ const TransactionsCompletedDemoResetBalance: React.FC = () => { { accessorFn: row => row.transaction_time && - getFormattedDateString( - row.transaction_time, - { day: '2-digit', month: 'short', year: 'numeric' }, - 'DD MMM YYYY', - true - ), + FormatUtils.getFormattedDateString(row.transaction_time, { + dateOptions: { day: '2-digit', month: 'short', year: 'numeric' }, + format: 'DD MMM YYYY', + unix: true, + }), accessorKey: 'date', header: 'Date', }, @@ -59,12 +58,11 @@ const TransactionsCompletedDemoResetBalance: React.FC = () => {
        {transaction.transaction_time && - getFormattedDateString( - transaction.transaction_time, - { day: '2-digit', month: 'short', year: 'numeric' }, - 'DD MMM YYYY', - true - )} + FormatUtils.getFormattedDateString(transaction.transaction_time, { + dateOptions: { day: '2-digit', month: 'short', year: 'numeric' }, + format: 'DD MMM YYYY', + unix: true, + })}
        )} diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/TransactionsCompletedRow.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/TransactionsCompletedRow.tsx index 487be0b60f6d..815aa49096f0 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/TransactionsCompletedRow.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/TransactionsCompletedRow.tsx @@ -3,9 +3,9 @@ import classNames from 'classnames'; import { useDebounceCallback } from 'usehooks-ts'; import { Localize, useTranslations } from '@deriv-com/translations'; import { Divider, Text } from '@deriv-com/ui'; +import { FormatUtils } from '@deriv-com/utils'; import { WalletClipboard, WalletMoney } from '../../../../../../components'; import { THooks } from '../../../../../../types'; -import parseCryptoLongcode from '../../../../../../utils/parse-crypto-longcode'; import { getTransactionLabels } from '../../constants'; import { TransactionsCompletedRowAccountDetails, TransactionsCompletedRowTransferAccountDetails } from './components'; import './TransactionsCompletedRow.scss'; @@ -34,7 +34,7 @@ const TransactionsCompletedRowContent: React.FC { const { action_type: actionType, longcode = '', transaction_id: transactionId } = transaction; const { account_type: accountType = '', currency = 'USD', is_virtual: isVirtual } = wallet; - const { addressHash, blockchainHash, splitLongcode } = parseCryptoLongcode(longcode); + const { addressHash, blockchainHash, splitLongcode } = FormatUtils.parseCryptoLongcode(longcode); let descriptions = [longcode]; if (addressHash || blockchainHash) { diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPending/TransactionsPending.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPending/TransactionsPending.tsx index dbe3eede1aff..e53b39dd4c19 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPending/TransactionsPending.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPending/TransactionsPending.tsx @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import { useCryptoTransactions } from '@deriv/api-v2'; import { Loader, Text } from '@deriv-com/ui'; -import { getFormattedDateString } from '../../../../../../utils/utils'; +import { FormatUtils } from '@deriv-com/utils'; import { TransactionsNoDataState } from '../TransactionsNoDataState'; import { TransactionsPendingRow } from '../TransactionsPendingRow'; import { TransactionsTable } from '../TransactionsTable'; @@ -33,12 +33,11 @@ const TransactionsPending: React.FC = ({ filter = 'all' }) => { columns={[ { accessorFn: row => - getFormattedDateString( - row.submit_date, - { day: '2-digit', month: 'short', year: 'numeric' }, - 'DD MMM YYYY', - true - ), + FormatUtils.getFormattedDateString(row.submit_date, { + dateOptions: { day: '2-digit', month: 'short', year: 'numeric' }, + format: 'DD MMM YYYY', + unix: true, + }), accessorKey: 'date', header: 'Date', }, @@ -49,12 +48,11 @@ const TransactionsPending: React.FC = ({ filter = 'all' }) => {
        {transaction.submit_date && - getFormattedDateString( - transaction.submit_date, - { day: '2-digit', month: 'short', year: 'numeric' }, - 'DD MMM YYYY', - true - )} + FormatUtils.getFormattedDateString(transaction.submit_date, { + dateOptions: { day: '2-digit', month: 'short', year: 'numeric' }, + format: 'DD MMM YYYY', + unix: true, + })}
        )} diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx index 1fbc551d2422..60a8df4b0ad1 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsPendingRow/TransactionsPendingRow.tsx @@ -5,11 +5,11 @@ import { LegacyClose1pxIcon } from '@deriv/quill-icons'; import { getTruncatedString } from '@deriv/utils'; import { Localize, useTranslations } from '@deriv-com/translations'; import { Button, Divider, Text, Tooltip, useDevice } from '@deriv-com/ui'; +import { FormatUtils } from '@deriv-com/utils'; import { WalletCurrencyCard, WalletMoney } from '../../../../../../components'; import { useModal } from '../../../../../../components/ModalProvider'; import useIsRtl from '../../../../../../hooks/useIsRtl'; import { THooks } from '../../../../../../types'; -import { getFormattedDateString, getFormattedTimeString } from '../../../../../../utils/utils'; import { WalletActionModal } from '../../../../components/WalletActionModal'; import { getFormattedConfirmations, @@ -158,12 +158,10 @@ const TransactionsPendingRow: React.FC = ({ transaction }) => { /> = ({ transaction }) => { className={{ 'wallets-transactions-pending-row__transaction-time': isDesktop }} name={localize('Time')} value={`${ - isDesktop && `${getFormattedDateString(transaction.submit_date, {}, undefined, true)} ` - }${getFormattedTimeString(transaction.submit_date, true)}`} + isDesktop && + `${FormatUtils.getFormattedDateString(transaction.submit_date, { unix: true })} ` + }${FormatUtils.getFormattedTimeString(transaction.submit_date, true)}`} valueTextProps={{ color: 'general', size: isDesktop ? '2xs' : 'xs', diff --git a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferFormAmountInput/TransferFormAmountInput.tsx b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferFormAmountInput/TransferFormAmountInput.tsx index a940eb4e8d88..bb97cc33ed3f 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/components/TransferFormAmountInput/TransferFormAmountInput.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/components/TransferFormAmountInput/TransferFormAmountInput.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useMemo } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef } from 'react'; import { useFormikContext } from 'formik'; import { useDebounce } from 'usehooks-ts'; import { Localize, useTranslations } from '@deriv-com/translations'; @@ -38,6 +38,7 @@ const TransferFormAmountInput: React.FC = ({ fieldName }) => { const isAmountInputDisabled = !hasFunds || (fieldName === 'toAmount' && !toAccount); const isAmountFieldActive = fieldName === values.activeAmountFieldName; const isTimerVisible = !isFromAmountField && toAccount && !isSameCurrency && fromAmount > 0 && toAmount > 0; + const prevTimerVisible = useRef(isTimerVisible); const isMaxBtnVisible = isFromAmountField && activeWallet?.account_type === 'crypto'; const amountValue = isFromAmountField ? fromAmount : toAmount; @@ -97,6 +98,19 @@ const TransferFormAmountInput: React.FC = ({ fieldName }) => { ] ); + // Refetch exchange rates and limits when the target account (toAccount) changes or the timer becomes visible + useEffect(() => { + const shouldRefetchExchangeRatesAndLimits = + (!isSameCurrency && !isFromAmountField && toAccount?.currency && !prevTimerVisible.current) || + isTimerVisible; + + if (shouldRefetchExchangeRatesAndLimits) { + refetchExchangeRatesAndLimits(); + } + + prevTimerVisible.current = isTimerVisible; + }, [isFromAmountField, isSameCurrency, isTimerVisible, refetchExchangeRatesAndLimits, toAccount?.currency]); + useEffect(() => { if (debouncedAmountValue && !isSameCurrency) { amountConverterHandler(debouncedAmountValue); @@ -191,7 +205,7 @@ const TransferFormAmountInput: React.FC = ({ fieldName }) => { /> {isTimerVisible && (
        - +
        )} {isMaxBtnVisible && ( diff --git a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/__tests__/lifetimeAccountLimitsBetweenWalletsMessageFn.spec.tsx b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/__tests__/lifetimeAccountLimitsBetweenWalletsMessageFn.spec.tsx index af599a7a6d3f..350f6dd7edd7 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/__tests__/lifetimeAccountLimitsBetweenWalletsMessageFn.spec.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/__tests__/lifetimeAccountLimitsBetweenWalletsMessageFn.spec.tsx @@ -63,8 +63,11 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { }, message: ( ), type: 'error', @@ -97,7 +100,7 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { }, message: ( ), @@ -177,7 +180,7 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { const result = lifetimeAccountLimitsBetweenWalletsMessageFn({ // @ts-expect-error - since this is a mock, we only need partial properties of the hook activeWallet: { currency: 'BTC' }, - activeWalletExchangeRates: { rates: { BTC: 0.00002, USD: 1 } }, + activeWalletExchangeRates: { rates: { BTC: 1, USD: 60000 } }, displayMoney: mockDisplayMoney, limits: { lifetime_transfers: { @@ -200,10 +203,12 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { }, message: ( ), @@ -215,7 +220,7 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { const result = lifetimeAccountLimitsBetweenWalletsMessageFn({ // @ts-expect-error - since this is a mock, we only need partial properties of the hook activeWallet: { currency: 'BTC' }, - activeWalletExchangeRates: { rates: { BTC: 0.00002, USD: 1 } }, + activeWalletExchangeRates: { rates: { BTC: 1, USD: 5 } }, displayMoney: mockDisplayMoney, limits: { lifetime_transfers: { @@ -233,10 +238,12 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { expect(result).toEqual({ message: ( ), @@ -248,13 +255,13 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { const result = lifetimeAccountLimitsBetweenWalletsMessageFn({ // @ts-expect-error - since this is a mock, we only need partial properties of the hook activeWallet: { currency: 'BTC' }, - activeWalletExchangeRates: { rates: { BTC: 1 } }, + activeWalletExchangeRates: { rates: { BTC: 1, USD: 60000 } }, displayMoney: mockDisplayMoney, limits: { lifetime_transfers: { crypto_to_crypto: { - allowed: 1000, - available: 500, + allowed: 10, + available: 5, }, }, }, @@ -271,8 +278,11 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { }, message: ( ), type: 'success', @@ -283,7 +293,7 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { const result = lifetimeAccountLimitsBetweenWalletsMessageFn({ // @ts-expect-error - since this is a mock, we only need partial properties of the hook activeWallet: { currency: 'BTC' }, - activeWalletExchangeRates: { rates: { BTC: 1 } }, + activeWalletExchangeRates: { rates: { BTC: 1, USD: 5 } }, displayMoney: mockDisplayMoney, limits: { lifetime_transfers: { @@ -301,14 +311,132 @@ describe('lifetimeAccountLimitsBetweenWalletsMessageFn', () => { expect(result).toEqual({ message: ( ), type: 'success', }); }); + it('handles lifetime limit for fiat transfers when source amount greater than available sum', () => { + const resultCryptoToFiat = lifetimeAccountLimitsBetweenWalletsMessageFn({ + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + activeWallet: { currency: 'BTC' }, + activeWalletExchangeRates: { rates: { BTC: 1, USD: 60000 } }, + displayMoney: mockDisplayMoney, + limits: { + lifetime_transfers: { + crypto_to_fiat: { + allowed: 10, + available: 5, + }, + }, + }, + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + sourceAccount: cryptoAccount, + sourceAmount: 15, + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + targetAccount: fiatAccount, + }); + expect(resultCryptoToFiat).toEqual({ + action: { + buttonLabel: , + navigateTo: '/account/proof-of-identity', + shouldOpenInNewTab: true, + }, + message: ( + + ), + type: 'error', + }); + + const resultFiatToCrypto = lifetimeAccountLimitsBetweenWalletsMessageFn({ + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + activeWallet: { currency: 'USD' }, + activeWalletExchangeRates: { rates: { BTC: 0.00002, USD: 1 } }, + displayMoney: mockDisplayMoney, + limits: { + lifetime_transfers: { + fiat_to_crypto: { + allowed: 10000, + available: 5000, + }, + }, + }, + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + sourceAccount: fiatAccount, + sourceAmount: 7000, + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + targetAccount: cryptoAccount, + }); + expect(resultFiatToCrypto).toEqual({ + action: { + buttonLabel: , + navigateTo: '/account/proof-of-identity', + shouldOpenInNewTab: true, + }, + message: ( + + ), + type: 'error', + }); + }); + + it('handles lifetime limit for crypto to crypto transfers when source amount greater than available sum', () => { + const result = lifetimeAccountLimitsBetweenWalletsMessageFn({ + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + activeWallet: { currency: 'BTC' }, + activeWalletExchangeRates: { rates: { BTC: 1, USD: 60000 } }, + displayMoney: mockDisplayMoney, + limits: { + lifetime_transfers: { + crypto_to_crypto: { + allowed: 10, + available: 5, + }, + }, + }, + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + sourceAccount: cryptoAccount, + sourceAmount: 15, + // @ts-expect-error - since this is a mock, we only need partial properties of the hook + targetAccount: cryptoAccount, + }); + expect(result).toEqual({ + action: { + buttonLabel: , + navigateTo: '/account/proof-of-identity', + shouldOpenInNewTab: true, + }, + message: ( + + ), + type: 'error', + }); + }); + it('returns null if sourceAccount currency does not match activeWallet currency and no exchange rate', () => { const result = lifetimeAccountLimitsBetweenWalletsMessageFn({ // @ts-expect-error - since this is a mock, we only need partial properties of the hook diff --git a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/lifetimeAccountLimitsBetweenWalletsMessageFn.tsx b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/lifetimeAccountLimitsBetweenWalletsMessageFn.tsx index 2fc6e785f91c..66184192a995 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/lifetimeAccountLimitsBetweenWalletsMessageFn.tsx +++ b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useTransferMessages/utils/lifetimeAccountLimitsBetweenWalletsMessageFn.tsx @@ -16,6 +16,7 @@ const lifetimeAccountLimitsBetweenWalletsMessageFn = ({ displayMoney, limits, sourceAccount, + sourceAmount, targetAccount, }: TMessageFnProps) => { if (sourceAccount?.account_category !== 'wallet' || targetAccount?.account_category !== 'wallet') return null; @@ -41,47 +42,53 @@ const lifetimeAccountLimitsBetweenWalletsMessageFn = ({ ) return null; - const transferDirection = activeWallet.loginid === sourceAccount.loginid ? 'from' : 'to'; - - const allowedSumConverted = - allowedSumActiveWalletCurrency * - (activeWalletExchangeRates?.rates?.[ - transferDirection === 'from' ? targetAccount.currency : sourceAccount.currency - ] ?? 1); const availableSumConverted = - availableSumActiveWalletCurrency * - (activeWalletExchangeRates?.rates?.[ - transferDirection === 'from' ? targetAccount.currency : sourceAccount.currency - ] ?? 1); - - const sourceCurrencyLimit = transferDirection === 'from' ? allowedSumActiveWalletCurrency : allowedSumConverted; - - const sourceCurrencyRemainder = - transferDirection === 'from' ? availableSumActiveWalletCurrency : availableSumConverted; + availableSumActiveWalletCurrency * (activeWalletExchangeRates?.rates?.[targetAccount.currency] ?? 1); const formattedSourceCurrencyLimit = displayMoney?.( - sourceCurrencyLimit, + allowedSumActiveWalletCurrency, sourceAccount.currencyConfig.display_code, sourceAccount.currencyConfig.fractional_digits ); + const formattedSourceCurrencyLimitInUSD = displayMoney?.( + allowedSumActiveWalletCurrency * (activeWalletExchangeRates?.rates?.USD ?? 1), + activeWalletExchangeRates?.rates?.USD ? 'USD' : sourceAccount.currencyConfig.display_code, + activeWalletExchangeRates?.rates?.USD ? 2 : sourceAccount.currencyConfig.fractional_digits + ); + const formattedSourceCurrencyRemainder = displayMoney?.( - sourceCurrencyRemainder, + availableSumActiveWalletCurrency, sourceAccount.currencyConfig.display_code, sourceAccount.currencyConfig.fractional_digits ); + const formattedConvertedSourceCurrencyRemainder = displayMoney?.( + availableSumConverted, + targetAccount.currencyConfig.display_code, + targetAccount.currencyConfig.fractional_digits + ); + + const formattedSourceCurrencyRemainderInUSD = displayMoney?.( + availableSumActiveWalletCurrency * (activeWalletExchangeRates?.rates?.USD ?? 1), + activeWalletExchangeRates?.rates?.USD ? 'USD' : sourceAccount.currencyConfig.display_code, + activeWalletExchangeRates?.rates?.USD ? 2 : sourceAccount.currencyConfig.fractional_digits + ); + if (availableSumActiveWalletCurrency === 0) { message = targetWalletType === 'crypto' ? ( ) : ( ); @@ -90,6 +97,38 @@ const lifetimeAccountLimitsBetweenWalletsMessageFn = ({ message, type: 'error' as const, }; + } else if (sourceAmount > availableSumActiveWalletCurrency) { + switch (limitsCaseKey) { + case 'fiat_to_crypto': + case 'crypto_to_fiat': + message = ( + + ); + + return { + action: verifyPOIAction, + message, + type: 'error' as const, + }; + case 'crypto_to_crypto': + message = ( + + ); + + return { + action: verifyPOIAction, + message, + type: 'error' as const, + }; + default: + return null; + } } if (allowedSumActiveWalletCurrency === availableSumActiveWalletCurrency) @@ -104,8 +143,13 @@ const lifetimeAccountLimitsBetweenWalletsMessageFn = ({ /> ) : ( ); @@ -116,8 +160,8 @@ const lifetimeAccountLimitsBetweenWalletsMessageFn = ({ case 'crypto_to_crypto': message = ( ); @@ -140,8 +184,13 @@ const lifetimeAccountLimitsBetweenWalletsMessageFn = ({ /> ) : ( ); @@ -153,8 +202,8 @@ const lifetimeAccountLimitsBetweenWalletsMessageFn = ({ case 'crypto_to_crypto': message = ( ); diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx index ace7f1da6742..fbfe7fb58aa1 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/WithdrawalCryptoReceipt.tsx @@ -33,14 +33,14 @@ const WithdrawalCryptoReceipt: React.FC = ({ onClose, withdrawalReceipt - - {transactionFee ? amountReceived : amount} {currency} + + {transactionFee && ( ]} + i18n_default_text='(Transaction fee: <0/>)' /> )} diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/__tests__/WithdrawalCryptoReceipt.spec.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/__tests__/WithdrawalCryptoReceipt.spec.tsx index dd2fde56bd99..ddb8fd2a3999 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/__tests__/WithdrawalCryptoReceipt.spec.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/components/WithdrawalCryptoReceipt/__tests__/WithdrawalCryptoReceipt.spec.tsx @@ -3,6 +3,23 @@ import { APIProvider, AuthProvider } from '@deriv/api-v2'; import { fireEvent, render, screen } from '@testing-library/react'; import WithdrawalCryptoReceipt from '../WithdrawalCryptoReceipt'; +const mockCurrencyConfig = { + BTC: { + display_code: 'BTC', + fractional_digits: 8, + }, + USD: { + display_code: 'USD', + fractional_digits: 2, + }, +}; + +const mockWithdrawalReceipt = { + address: 'test_crypto_address', + amount: 100, + currency: 'BTC', +}; + const mockPush = jest.fn(); jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), @@ -11,11 +28,12 @@ jest.mock('react-router-dom', () => ({ })), })); -const mockWithdrawalReceipt = { - address: 'test_crypto_address', - amount: 100, - currency: 'BTC', -}; +jest.mock('@deriv/api-v2', () => ({ + ...jest.requireActual('@deriv/api-v2'), + useCurrencyConfig: jest.fn(() => ({ + getConfig: (currency: 'BTC' | 'USD') => mockCurrencyConfig[currency], + })), +})); const wrapper = ({ children }: PropsWithChildren) => ( @@ -29,8 +47,8 @@ describe('WithdrawalCryptoReceipt', () => { wrapper, }); - const amountElement = screen.getByText('100 BTC'); - expect(amountElement).toBeInTheDocument(); + const amountElement = screen.getByTestId('dt_amount_received'); + expect(amountElement).toHaveTextContent('100.00000000 BTC'); const addressElement = screen.getByText('test_crypto_address'); expect(addressElement).toBeInTheDocument(); @@ -41,10 +59,10 @@ describe('WithdrawalCryptoReceipt', () => { expect(reviewTextElement).toBeInTheDocument(); }); - it('should render the component with withdrawal information', () => { + it('should render the component with withdrawal information with transaction fee', () => { const withdrawalReceiptWithFee = { ...mockWithdrawalReceipt, - transactionFee: '0.0001', + transactionFee: 0.0001, }; render( jest.fn()} withdrawalReceipt={withdrawalReceiptWithFee} />, { diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/provider/WithdrawalCryptoProvider.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/provider/WithdrawalCryptoProvider.tsx index 48903c0e52d5..bd06a0e3796f 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/provider/WithdrawalCryptoProvider.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/provider/WithdrawalCryptoProvider.tsx @@ -158,18 +158,13 @@ const WithdrawalCryptoProvider: React.FC { - const fractionalDigits = activeWallet?.currency_config?.fractional_digits ?? 0; setWithdrawalReceipt({ address, amount: Number(amount), - amountReceived: estimatedFeeUniqueId - ? (Number(amount) - Number(cryptoEstimationsFee)).toFixed(fractionalDigits) - : amount?.toFixed(fractionalDigits), + amountReceived: estimatedFeeUniqueId ? Number(amount) - Number(cryptoEstimationsFee) : amount, currency: activeWallet?.currency, landingCompany: activeWallet?.landing_company_name, - transactionFee: estimatedFeeUniqueId - ? Number(cryptoEstimationsFee)?.toFixed(fractionalDigits) - : undefined, + transactionFee: estimatedFeeUniqueId ? Number(cryptoEstimationsFee) : undefined, }); }) .catch((error: TSocketError<'cashier'>) => { diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/types/types.ts b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/types/types.ts index 5729dc66dfc8..667b3db7e92b 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/types/types.ts +++ b/packages/wallets/src/features/cashier/modules/WithdrawalCrypto/types/types.ts @@ -7,8 +7,8 @@ export type TWithdrawalForm = { export type TWithdrawalReceipt = { address?: string; amount?: number; - amountReceived?: string; + amountReceived?: number; currency?: string; landingCompany?: string; - transactionFee?: string; + transactionFee?: number; }; diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalFiat/WithdrawalFiat.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalFiat/WithdrawalFiat.tsx index 40b2cfd2bfe8..857a0bb8cd67 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalFiat/WithdrawalFiat.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalFiat/WithdrawalFiat.tsx @@ -1,31 +1,41 @@ import React, { ButtonHTMLAttributes, useEffect, useState } from 'react'; import { useCashierFiatAddress } from '@deriv/api-v2'; +import { TSocketError } from '@deriv/api-v2/types'; import { Loader } from '@deriv-com/ui'; import { isServerError } from '../../../../utils/utils'; import { WithdrawalErrorScreen } from '../../screens'; import './WithdrawalFiat.scss'; interface WithdrawalFiatProps extends ButtonHTMLAttributes { + setResendEmail: React.Dispatch>; + setVerificationCode: React.Dispatch>; verificationCode?: string; } -const WithdrawalFiat: React.FC = ({ verificationCode }) => { - const { data: iframeUrl, error, isLoading: isWithdrawalFiatLoading, mutateAsync } = useCashierFiatAddress(); +const WithdrawalFiat: React.FC = ({ setResendEmail, setVerificationCode, verificationCode }) => { + const { data: iframeUrl, isLoading: isWithdrawalFiatLoading, mutateAsync } = useCashierFiatAddress(); const [isIframeLoading, setIsIframeLoading] = useState(true); - const withdrawalFiatError = error?.error; + const [error, setError] = useState['error'] | undefined>(); useEffect(() => { if (verificationCode) { mutateAsync('withdraw', { verification_code: verificationCode, + }).catch((response: TSocketError<'cashier'> | null) => { + if (isServerError(response?.error)) setError(response?.error); }); } }, [mutateAsync, verificationCode]); + const resetError = () => { + setVerificationCode(''); + setError(undefined); + }; + if (isWithdrawalFiatLoading) return ; - if (isServerError(withdrawalFiatError)) { - return ; + if (error) { + return ; } return ( diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalFiat/__tests__/WithdrawalFiat.spec.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalFiat/__tests__/WithdrawalFiat.spec.tsx index 65bcebb4edcd..0be7d322067b 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalFiat/__tests__/WithdrawalFiat.spec.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalFiat/__tests__/WithdrawalFiat.spec.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { useCashierFiatAddress } from '@deriv/api-v2'; -import { fireEvent, render, screen } from '@testing-library/react'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import WithdrawalFiat from '../WithdrawalFiat'; jest.mock('@deriv/api-v2', () => ({ @@ -28,20 +28,37 @@ describe('', () => { mutateAsync: jest.fn().mockResolvedValueOnce({}), }); - render(); + render( + + ); expect(screen.getByText('Loading...')).toBeInTheDocument(); }); - it('should render error screen for fiat withdrawal error', () => { + it('should render error screen for fiat withdrawal error', async () => { (useCashierFiatAddress as jest.Mock).mockReturnValue({ - error: { error: { code: 'CashierForwardError', message: 'Fiat Error' } }, - mutateAsync: jest.fn().mockResolvedValueOnce({}), + data: 'https://iframe_url', + isLoading: false, + mutateAsync: jest + .fn() + .mockRejectedValueOnce({ error: { code: 'CashierForwardError', message: 'Fiat Error' } }), }); - render(); + render( + + ); - expect(screen.getByText(/MockedWithdrawalErrorScreen - Fiat Error/)).toBeInTheDocument(); + await waitFor(() => { + expect(screen.getByText(/MockedWithdrawalErrorScreen - Fiat Error/)).toBeInTheDocument(); + }); }); it('should render the loader while the iframe is loading', () => { @@ -50,7 +67,13 @@ describe('', () => { mutateAsync: jest.fn().mockResolvedValueOnce({}), }); - render(); + render( + + ); expect(screen.getByText('Loading...')).toBeInTheDocument(); }); @@ -62,7 +85,13 @@ describe('', () => { mutateAsync: jest.fn().mockResolvedValueOnce({}), }); - render(); + render( + + ); const iframe = screen.getByTestId('dt_wallets_withdrawal_fiat_iframe'); expect(iframe).toHaveAttribute('src', 'https://iframe_url'); expect(iframe).toHaveStyle({ display: 'none' }); diff --git a/packages/wallets/src/features/cashier/modules/WithdrawalLocked/WithdrawalLockedContent.tsx b/packages/wallets/src/features/cashier/modules/WithdrawalLocked/WithdrawalLockedContent.tsx index 84ae11c6b33f..b80ddfac0aff 100644 --- a/packages/wallets/src/features/cashier/modules/WithdrawalLocked/WithdrawalLockedContent.tsx +++ b/packages/wallets/src/features/cashier/modules/WithdrawalLocked/WithdrawalLockedContent.tsx @@ -101,7 +101,7 @@ const getWithdrawalLockedDesc = ({ + + +
        + + + + + + +
        ); }; diff --git a/packages/wallets/src/features/cfd/__tests__/CFDPlatformsListEmptyState.spec.tsx b/packages/wallets/src/features/cfd/__tests__/CFDPlatformsListEmptyState.spec.tsx index 6c9b53c7e9d2..f0f2017a26cc 100644 --- a/packages/wallets/src/features/cfd/__tests__/CFDPlatformsListEmptyState.spec.tsx +++ b/packages/wallets/src/features/cfd/__tests__/CFDPlatformsListEmptyState.spec.tsx @@ -32,6 +32,7 @@ describe('CFDPlatformsListEmptyState', () => { it('renders proper content', () => { render(); + expect(screen.getByText('Transfer funds')).toBeInTheDocument(); expect( screen.getByText( `To trade CFDs, you'll need to use your ${fiatCurrency} Wallet. Click Transfer to move your ${cryptoCurrency} to your ${fiatCurrency} Wallet.` @@ -42,7 +43,7 @@ describe('CFDPlatformsListEmptyState', () => { it('redirects to `wallet/account-transfer` route if the user is clicking on `Transfer` button', () => { render(); - const transferBtn = screen.getByRole('button', { name: 'Transfer' }); + const transferBtn = screen.getByTestId('dt_cfd_empty_state_transfer_button'); userEvent.click(transferBtn); expect(mockPush).toHaveBeenCalledWith('/wallet/account-transfer', { shouldSelectDefaultWallet: true }); diff --git a/packages/wallets/src/features/cfd/components/CFDPlatformsListAccounts/CFDPlatformsListAccounts.tsx b/packages/wallets/src/features/cfd/components/CFDPlatformsListAccounts/CFDPlatformsListAccounts.tsx index 993685301818..68f97577d784 100644 --- a/packages/wallets/src/features/cfd/components/CFDPlatformsListAccounts/CFDPlatformsListAccounts.tsx +++ b/packages/wallets/src/features/cfd/components/CFDPlatformsListAccounts/CFDPlatformsListAccounts.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { useCtraderAccountsList, useDxtradeAccountsList, useSortedMT5Accounts } from '@deriv/api-v2'; +import { useCtraderAccountsList, useDxtradeAccountsList, useLandingCompany, useSortedMT5Accounts } from '@deriv/api-v2'; import { TradingAppCardLoader } from '../../../../components/SkeletonLoader'; import { AddedCTraderAccountsList, @@ -27,13 +27,20 @@ const CFDPlatformsListAccounts: React.FC = () => { isFetchedAfterMount: isDxtradeFetchedAfterMount, isLoading: isDxtradeLoading, } = useDxtradeAccountsList(); + const { data: landingCompany, isLoading: isLandingCompanyLoading } = useLandingCompany(); - const isLoading = isMT5Loading || isCTraderLoading || isDxtradeLoading; + const isLoading = isMT5Loading || isCTraderLoading || isDxtradeLoading || isLandingCompanyLoading; const isFetchedAfterMount = isMT5FetchedAfterMount || isCtraderFetchedAfterMount || isDxtradeFetchedAfterMount; const hasCTraderAccount = !!ctraderAccountsList?.length; const hasDxtradeAccount = !!dxtradeAccountsList?.length; + const financialRestrictedCountry = + landingCompany?.financial_company?.shortcode === 'svg' && !landingCompany?.gaming_company; + const cfdRestrictedCountry = + landingCompany?.gaming_company?.shortcode === 'svg' && !landingCompany.financial_company; + const isRestricted = financialRestrictedCountry || cfdRestrictedCountry; + if (isLoading || !isFetchedAfterMount) { return (
        @@ -54,8 +61,12 @@ const CFDPlatformsListAccounts: React.FC = () => { ); })} - {hasCTraderAccount ? : } - {hasDxtradeAccount ? : } + {!isRestricted && ( + <> + {hasCTraderAccount ? : } + {hasDxtradeAccount ? : } + + )}
        ); }; diff --git a/packages/wallets/src/features/cfd/components/ModalTradeWrapper/ModalTradeWrapper.tsx b/packages/wallets/src/features/cfd/components/ModalTradeWrapper/ModalTradeWrapper.tsx index 89da33ce775c..9688cf62afb6 100644 --- a/packages/wallets/src/features/cfd/components/ModalTradeWrapper/ModalTradeWrapper.tsx +++ b/packages/wallets/src/features/cfd/components/ModalTradeWrapper/ModalTradeWrapper.tsx @@ -69,7 +69,13 @@ const ModalTradeWrapper: FC> = ({ children if (AppsLinkMapper) { const AppIcon = AppToIconMapper[app as keyof typeof AppToIconMapper]; const appLink = AppsLinkMapper; - return window.open(appLink)} />; + return ( + window.open(appLink)} + /> + ); } return null; })} diff --git a/packages/wallets/src/features/cfd/components/ModalTradeWrapper/__tests__/ModalTradeWrapper.spec.tsx b/packages/wallets/src/features/cfd/components/ModalTradeWrapper/__tests__/ModalTradeWrapper.spec.tsx new file mode 100644 index 000000000000..dc54b71058cd --- /dev/null +++ b/packages/wallets/src/features/cfd/components/ModalTradeWrapper/__tests__/ModalTradeWrapper.spec.tsx @@ -0,0 +1,93 @@ +import React from 'react'; +import { useDevice } from '@deriv-com/ui'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import ModalTradeWrapper from '../ModalTradeWrapper'; + +jest.mock('@deriv-com/ui', () => ({ + ...jest.requireActual('@deriv-com/ui'), + useDevice: jest.fn(), +})); + +jest.mock('qrcode.react', () => ({ + __esModule: true, + default: () =>
        , +})); + +jest.mock('../../../../../components/Base/ModalStepWrapper', () => ({ + ModalStepWrapper: ({ + children, + renderFooter, + title, + }: { + children: React.ReactNode; + renderFooter: () => React.ReactNode; + title: string; + }) => ( +
        +

        {title}

        + {children} +
        {renderFooter()}
        +
        + ), +})); + +jest.mock('../../../screens/MT5TradeScreen/MT5TradeLink/urlConfig', () => ({ + ...jest.requireActual('../../../screens/MT5TradeScreen/MT5TradeLink/urlConfig'), + whiteLabelLinks: { + android: 'https://mock.mt5.android.link', + ios: 'https://mock.mt5.ios.link', + }, +})); + +describe('ModalTradeWrapper', () => { + beforeEach(() => { + (useDevice as jest.Mock).mockReturnValue({ isDesktop: true }); + }); + + it('renders desktop content for modal trade wrapper', () => { + render( + +
        Mocked Modal Content
        +
        + ); + + expect(screen.getByText('Mocked Modal Content')).toBeInTheDocument(); + expect(screen.getByText('Trade')).toBeInTheDocument(); + expect(screen.getByText(/Download Deriv MT5 on your phone/)).toBeInTheDocument(); + expect(screen.getByTestId('qr-code')).toBeInTheDocument(); + expect(screen.getByTestId('dt_modal_footer')).toBeInTheDocument(); + }); + + it('renders mobile content for modal trade wrapper', () => { + (useDevice as jest.Mock).mockReturnValue({ isDesktop: false }); + + render( + +
        Mocked Modal Content
        +
        + ); + + expect(screen.getByText('Mocked Modal Content')).toBeInTheDocument(); + expect(screen.getByText('Trade')).toBeInTheDocument(); + expect(screen.getByTestId('dt_modal_footer')).toBeInTheDocument(); + }); + + it('opens correct link when app icon is clicked', () => { + const mockOpen = jest.fn(); + window.open = mockOpen; + + render(); + + const iosIcon = screen.getByTestId('dt_modal_trade_wrapper_ios_icon'); + const androidIcon = screen.getByTestId('dt_modal_trade_wrapper_android_icon'); + + userEvent.click(iosIcon); + expect(mockOpen).toHaveBeenCalledWith('https://mock.mt5.ios.link'); + mockOpen.mockReset(); + + userEvent.click(androidIcon); + expect(mockOpen).toHaveBeenCalledWith('https://mock.mt5.android.link'); + mockOpen.mockReset(); + }); +}); diff --git a/packages/wallets/src/features/cfd/flows/CTrader/AddedCTraderAccountsList/AddedCTraderAccountsList.tsx b/packages/wallets/src/features/cfd/flows/CTrader/AddedCTraderAccountsList/AddedCTraderAccountsList.tsx index 5bad8f9b422f..e1b2f41a377d 100644 --- a/packages/wallets/src/features/cfd/flows/CTrader/AddedCTraderAccountsList/AddedCTraderAccountsList.tsx +++ b/packages/wallets/src/features/cfd/flows/CTrader/AddedCTraderAccountsList/AddedCTraderAccountsList.tsx @@ -24,24 +24,26 @@ const AddedCTraderAccountsList: React.FC = () => { onClick={() => show()} > {PlatformDetails.ctrader.icon} - - - {PlatformDetails.ctrader.title} - - - {account?.display_balance} - - - {account.login} - - - - {isRtl ? ( - - ) : ( - - )} - + + + + {PlatformDetails.ctrader.title} + + + {account?.display_balance} + + + {account.login} + + + + {isRtl ? ( + + ) : ( + + )} + + ))} diff --git a/packages/wallets/src/features/cfd/flows/CTrader/AvailableCTraderAccountsList/AvailableCTraderAccountsList.tsx b/packages/wallets/src/features/cfd/flows/CTrader/AvailableCTraderAccountsList/AvailableCTraderAccountsList.tsx index dcc4b261b65f..993f9839e0bc 100644 --- a/packages/wallets/src/features/cfd/flows/CTrader/AvailableCTraderAccountsList/AvailableCTraderAccountsList.tsx +++ b/packages/wallets/src/features/cfd/flows/CTrader/AvailableCTraderAccountsList/AvailableCTraderAccountsList.tsx @@ -63,21 +63,23 @@ const AvailableCTraderAccountsList: React.FC = () => { return ( {PlatformDetails.ctrader.icon} - - - {PlatformDetails.ctrader.title} - - - - - - - {isRtl ? ( - - ) : ( - - )} - + + + + {PlatformDetails.ctrader.title} + + + + + + + {isRtl ? ( + + ) : ( + + )} + + ); }; diff --git a/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.scss b/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.scss index dcd782851d1d..b2a54c389c1a 100644 --- a/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.scss +++ b/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.scss @@ -1,4 +1,15 @@ .wallets-added-mt5 { + &__card--disabled { + cursor: pointer; + & > :first-child { + opacity: 0.48; + } + @include desktop { + &:hover { + background: none; + } + } + } &__actions { display: flex; flex-direction: column; @@ -64,6 +75,13 @@ opacity: 0.7; } } + &--disabled { + & > :first-child, + & > :nth-child(2), + & + [class*='__icon'] { + opacity: 0.48; + } + } } &__icon { diff --git a/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.tsx b/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.tsx index 740ca6c56dd7..d6d4f84ae9ba 100644 --- a/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.tsx +++ b/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/AddedMT5AccountsList.tsx @@ -1,4 +1,4 @@ -import React, { useMemo } from 'react'; +import React, { useMemo, useState } from 'react'; import classNames from 'classnames'; import { useJurisdictionStatus, useTradingPlatformStatus } from '@deriv/api-v2'; import { @@ -9,6 +9,7 @@ import { } from '@deriv/quill-icons'; import { Localize, useTranslations } from '@deriv-com/translations'; import { InlineMessage, Text } from '@deriv-com/ui'; +import { WalletDisabledAccountModal, WalletStatusBadge } from '../../../../../components'; import { useModal } from '../../../../../components/ModalProvider'; import { TradingAccountCard } from '../../../../../components/TradingAccountCard'; import useIsRtl from '../../../../../hooks/useIsRtl'; @@ -29,7 +30,77 @@ type TProps = { account: THooks.MT5AccountsList; }; +type TTradingAccountJurisdictionStatusInfoProps = { + isAccountDisabled?: boolean; + isJurisdictionFailure?: boolean; + isJurisdictionPending?: boolean; + selectedJurisdiction: THooks.MT5AccountsList['landing_company_short']; +}; + +const TradingAccountJurisdictionStatusInfo: React.FC = ({ + isAccountDisabled, + isJurisdictionFailure, + isJurisdictionPending, + selectedJurisdiction, +}) => { + const { show } = useModal(); + if (isAccountDisabled) { + return ; + } + if (isJurisdictionPending) { + return ( + + } + > + + + + + ); + } + + if (isJurisdictionFailure) { + return ( + + } + > + + + show(, { + defaultRootId: 'wallets_modal_root', + }) + } + />, + ]} + i18n_default_text='Verification failed <0>Why?' + /> + + + ); + } + + return null; +}; + const AddedMT5AccountsList: React.FC = ({ account }) => { + const [shouldShowDisabledAccountModal, setShouldShowDisabledAccountModal] = useState(false); const { getVerificationStatus } = useJurisdictionStatus(); const { localize } = useTranslations(); const isRtl = useIsRtl(); @@ -52,117 +123,94 @@ const AddedMT5AccountsList: React.FC = ({ account }) => { platformStatus === TRADING_PLATFORM_STATUS.MAINTENANCE || account.status === MT5_ACCOUNT_STATUS.UNDER_MAINTENANCE; const showPlatformStatus = hasPlatformStatus && !(jurisdictionStatus.is_pending || jurisdictionStatus.is_failed); + // @ts-expect-error The enabled property exists, but the api-types are invalid + const isAccountDisabled = !account?.rights?.enabled; + const shouldShowBalance = !(jurisdictionStatus.is_failed || jurisdictionStatus.is_pending) && !isAccountDisabled; return ( - { - if (hasPlatformStatus) - return show(, { - defaultRootId: 'wallets_modal_root', - }); - if (platformStatus === TRADING_PLATFORM_STATUS.ACTIVE) { - return jurisdictionStatus.is_failed - ? show(, { - defaultRootId: 'wallets_modal_root', - }) - : show( - - ); - } - }} - > - - {getMarketTypeDetails(localize, account.product)[account.market_type || MARKET_TYPE.ALL].icon} - - -
        - {title} -
        - {!(jurisdictionStatus.is_failed || jurisdictionStatus.is_pending) && ( - - {account.display_balance} - - )} - - - {account.display_login} - - {jurisdictionStatus.is_pending && ( - - } + <> + { + if (isAccountDisabled) { + return setShouldShowDisabledAccountModal(true); + } + if (hasPlatformStatus) + return show(, { + defaultRootId: 'wallets_modal_root', + }); + if (platformStatus === TRADING_PLATFORM_STATUS.ACTIVE) { + return jurisdictionStatus.is_failed + ? show(, { + defaultRootId: 'wallets_modal_root', + }) + : show( + + ); + } + }} + > + + {getMarketTypeDetails(localize, account.product)[account.market_type || MARKET_TYPE.ALL].icon} + + + - - - - - )} +
        + {title} +
        + {shouldShowBalance && ( + + {account.display_balance} + + )} - {jurisdictionStatus.is_failed && ( - - } + + {account.display_login} + + +
        + - - - show( - , - { - defaultRootId: 'wallets_modal_root', - } - ) - } - />, - ]} - i18n_default_text='Verification failed <0>Why?' + {showPlatformStatus ? ( + - - - )} - - - {showPlatformStatus ? ( - - ) : ( -
        - {isRtl ? ( - ) : ( - +
        + {isRtl ? ( + + ) : ( + + )} +
        )} -
        - )} -
        -
        + + + + setShouldShowDisabledAccountModal(false)} + /> + ); }; diff --git a/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/__test__/AddedMT5AccountsList.spec.tsx b/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/__tests__/AddedMT5AccountsList.spec.tsx similarity index 83% rename from packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/__test__/AddedMT5AccountsList.spec.tsx rename to packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/__tests__/AddedMT5AccountsList.spec.tsx index 19c39d23ff48..7157576d8451 100644 --- a/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/__test__/AddedMT5AccountsList.spec.tsx +++ b/packages/wallets/src/features/cfd/flows/MT5/AddedMT5AccountsList/__tests__/AddedMT5AccountsList.spec.tsx @@ -23,6 +23,7 @@ describe('AddedMT5AccountsList', () => { market_type: 'financial', platform: 'mt5', product: 'standard', + rights: { enabled: true }, status: 'active', }; @@ -133,4 +134,27 @@ describe('AddedMT5AccountsList', () => { }); }); }); + + it('shows WalletStatusBadge when account is disabled', () => { + // @ts-expect-error - since this is a mock, we only need partial properties of the account + render(); + + expect(screen.getByText('Disabled')).toBeInTheDocument(); + }); + + it('opens WalletDisabledAccountModal when disabled account card is clicked', async () => { + // @ts-expect-error - since this is a mock, we only need partial properties of the account + render(); + + const card = screen.getByTestId('dt_wallets_trading_account_card'); + await userEvent.click(card); + + expect(screen.getByText('Contact us via live chat for more details.')).toBeInTheDocument(); + + const closeButton = screen.getByTestId('dt-close-icon'); + expect(closeButton).toBeInTheDocument(); + await userEvent.click(closeButton); + + expect(screen.queryByText('Contact us via live chat for more details.')).not.toBeInTheDocument(); + }); }); diff --git a/packages/wallets/src/features/cfd/flows/MT5/AvailableMT5AccountsList/AvailableMT5AccountsList.tsx b/packages/wallets/src/features/cfd/flows/MT5/AvailableMT5AccountsList/AvailableMT5AccountsList.tsx index 084b91272fd3..310168f8c1a3 100644 --- a/packages/wallets/src/features/cfd/flows/MT5/AvailableMT5AccountsList/AvailableMT5AccountsList.tsx +++ b/packages/wallets/src/features/cfd/flows/MT5/AvailableMT5AccountsList/AvailableMT5AccountsList.tsx @@ -104,30 +104,32 @@ const AvailableMT5AccountsList: React.FC = ({ account }) => { {getMarketTypeDetails(localize, account.product)[account.market_type || MARKET_TYPE.ALL].icon} - -
        - - {title} + + +
        + + {title} + + {account.product === PRODUCT.ZEROSPREAD && ( +
        + + + +
        + )} +
        + + {description} - {account.product === PRODUCT.ZEROSPREAD && ( -
        - - - -
        +
        + + {isRtl ? ( + + ) : ( + )} -
        - - {description} - -
        - - {isRtl ? ( - - ) : ( - - )} - + + ); }; diff --git a/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AddedDxtradeAccountsList/AddedDxtradeAccountsList.tsx b/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AddedDxtradeAccountsList/AddedDxtradeAccountsList.tsx index c0ad3b13c433..22f730b99268 100644 --- a/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AddedDxtradeAccountsList/AddedDxtradeAccountsList.tsx +++ b/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AddedDxtradeAccountsList/AddedDxtradeAccountsList.tsx @@ -24,24 +24,26 @@ const AddedDxtradeAccountsList: React.FC = () => { onClick={() => show()} > {PlatformDetails.dxtrade.icon} - - - {PlatformDetails.dxtrade.title} - - - {account?.display_balance} - - - {account?.login} - - - - {isRtl ? ( - - ) : ( - - )} - + + + + {PlatformDetails.dxtrade.title} + + + {account?.display_balance} + + + {account?.login} + + + + {isRtl ? ( + + ) : ( + + )} + + ))} diff --git a/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AvailableDxtradeAccountsList/AvailableDxtradeAccountsList.tsx b/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AvailableDxtradeAccountsList/AvailableDxtradeAccountsList.tsx index 9143cc3903e0..bbfe154d51f1 100644 --- a/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AvailableDxtradeAccountsList/AvailableDxtradeAccountsList.tsx +++ b/packages/wallets/src/features/cfd/flows/OtherCFDs/Dxtrade/AvailableDxtradeAccountsList/AvailableDxtradeAccountsList.tsx @@ -20,26 +20,28 @@ const AvailableDxtradeAccountsList: React.FC = () => { {PlatformDetails.dxtrade.icon} - -

        - - Deriv X + + +

        + + Deriv X + +

        + + ]} + i18n_default_text='CFDs on financial and derived instruments, <0>powered by TradingView.' + /> -

        - - ]} - i18n_default_text='CFDs on financial and derived instruments, <0>powered by TradingView.' - /> - -
        - - {isRtl ? ( - - ) : ( - - )} - + + + {isRtl ? ( + + ) : ( + + )} + + ); }; diff --git a/packages/wallets/src/hooks/useWalletAccountSwitcher.ts b/packages/wallets/src/hooks/useWalletAccountSwitcher.ts index 48acf4dc9f9a..1ca1bf0628d8 100644 --- a/packages/wallets/src/hooks/useWalletAccountSwitcher.ts +++ b/packages/wallets/src/hooks/useWalletAccountSwitcher.ts @@ -2,7 +2,7 @@ import { useCallback } from 'react'; import { useAuthorize, useWalletAccountsList } from '@deriv/api-v2'; const useWalletAccountSwitcher = () => { - const { switchAccount: _switchAccount } = useAuthorize(); + const { data: authorizeData, switchAccount: _switchAccount } = useAuthorize(); const { data: walletAccounts } = useWalletAccountsList(); const switchWalletAccount = useCallback( @@ -12,9 +12,14 @@ const useWalletAccountSwitcher = () => { ?.linked_to?.find(linkedAccount => linkedAccount.platform === 'dtrade'); await _switchAccount(loginid); - if (dtradeAccount?.loginid) localStorage.setItem('active_loginid', dtradeAccount.loginid); + const linkedAccountDetails = authorizeData.account_list?.find( + account => account.loginid === dtradeAccount?.loginid + ); + + if (dtradeAccount?.loginid && !linkedAccountDetails?.is_disabled) + localStorage.setItem('active_loginid', dtradeAccount.loginid); }, - [_switchAccount, walletAccounts] + [_switchAccount, authorizeData.account_list, walletAccounts] ); return switchWalletAccount; diff --git a/packages/wallets/src/routes/WalletsListingRoute/WalletsListingRoute.tsx b/packages/wallets/src/routes/WalletsListingRoute/WalletsListingRoute.tsx index dc5ca9eea04a..070c6c0d387c 100644 --- a/packages/wallets/src/routes/WalletsListingRoute/WalletsListingRoute.tsx +++ b/packages/wallets/src/routes/WalletsListingRoute/WalletsListingRoute.tsx @@ -1,4 +1,5 @@ import React, { lazy } from 'react'; +import { useWalletAccountsList } from '@deriv/api-v2'; import { useDevice } from '@deriv-com/ui'; import { WalletListHeader, @@ -15,6 +16,8 @@ const LazyDesktopWalletsList = lazy(() => import('../../components/DesktopWallet const WalletsListingRoute: React.FC = () => { const { isDesktop } = useDevice(); + const { data: wallets } = useWalletAccountsList(); + const hasAnyActiveRealWallets = wallets?.some(wallet => !wallet.is_virtual && !wallet.is_disabled); return (
        @@ -28,7 +31,7 @@ const WalletsListingRoute: React.FC = () => { )} - + {hasAnyActiveRealWallets && }
        diff --git a/packages/wallets/src/routes/WalletsListingRoute/__tests__/WalletsListingRoute.spec.tsx b/packages/wallets/src/routes/WalletsListingRoute/__tests__/WalletsListingRoute.spec.tsx index d4dd472d70f1..c03947b21a5a 100644 --- a/packages/wallets/src/routes/WalletsListingRoute/__tests__/WalletsListingRoute.spec.tsx +++ b/packages/wallets/src/routes/WalletsListingRoute/__tests__/WalletsListingRoute.spec.tsx @@ -1,10 +1,15 @@ import React, { PropsWithChildren } from 'react'; -import { APIProvider, AuthProvider } from '@deriv/api-v2'; +import { APIProvider, AuthProvider, useWalletAccountsList } from '@deriv/api-v2'; import { useDevice } from '@deriv-com/ui'; import { render, screen } from '@testing-library/react'; import { ModalProvider } from '../../../components/ModalProvider'; import WalletsListingRoute from '../WalletsListingRoute'; +jest.mock('@deriv/api-v2', () => ({ + ...jest.requireActual('@deriv/api-v2'), + useWalletAccountsList: jest.fn(), +})); + jest.mock('@deriv-com/ui', () => ({ ...jest.requireActual('@deriv-com/ui'), useDevice: jest.fn(() => ({})), @@ -34,6 +39,17 @@ const wrapper = ({ children }: PropsWithChildren) => ( describe('WalletsListingRoute', () => { beforeEach(() => { (useDevice as jest.Mock).mockReturnValue({ isDesktop: true }); + (useWalletAccountsList as jest.Mock).mockReturnValue({ + data: [ + { + currency: 'USD', + currency_config: { fractional_digits: 2 }, + is_disabled: false, + is_virtual: false, + loginid: 'CR1', + }, + ], + }); }); afterAll(() => { @@ -57,4 +73,20 @@ describe('WalletsListingRoute', () => { expect(await screen.findByText('WalletsCarousel')).toBeInTheDocument(); expect(screen.queryByText('WalletTourGuide')).toBeInTheDocument(); }); + + it('hides the wallet add more carousel if a user has no enabled real accounts', () => { + (useWalletAccountsList as jest.Mock).mockReturnValue({ + data: [ + { + currency: 'USD', + currency_config: { fractional_digits: 2 }, + is_disabled: true, + is_virtual: false, + loginid: 'CR1', + }, + ], + }); + render(, { wrapper }); + expect(screen.queryByText('WalletsAddMoreCarousel')).not.toBeInTheDocument(); + }); }); diff --git a/packages/wallets/src/utils/__tests__/parse-crypto-longcode.spec.ts b/packages/wallets/src/utils/__tests__/parse-crypto-longcode.spec.ts deleted file mode 100644 index 92ea8b5ce228..000000000000 --- a/packages/wallets/src/utils/__tests__/parse-crypto-longcode.spec.ts +++ /dev/null @@ -1,62 +0,0 @@ -import parseCryptoLongcode from '../parse-crypto-longcode'; - -describe('parseCryptoLongcode', () => { - it('correctly parses a valid long code', () => { - const longCode = - 'address: abc123def456ghi789jkl012mno345pqr678stu9, transaction: xyz123abc456def789ghi012jkl345mno678pqr901'; - const result = parseCryptoLongcode(longCode); - - expect(result).toEqual({ - addressHash: 'abc123def456ghi789jkl012mno345pqr678stu9', - blockchainHash: 'xyz123abc456def789ghi012jkl345mno678pqr901', - splitLongcode: [ - 'address: abc123def456ghi789jkl012mno345pqr678stu9', - 'transaction: xyz123abc456def789ghi012jkl345mno678pqr901', - ], - }); - }); - - it('handles missing address hash gracefully', () => { - const longCode = 'address:, transaction: xyz123abc456def789ghi012jkl345mno678pqr901'; - const result = parseCryptoLongcode(longCode); - - expect(result).toEqual({ - addressHash: undefined, - blockchainHash: 'xyz123abc456def789ghi012jkl345mno678pqr901', - splitLongcode: ['address:', 'transaction: xyz123abc456def789ghi012jkl345mno678pqr901'], - }); - }); - - it('handles missing blockchain hash gracefully', () => { - const longCode = 'address: abc123def456ghi789jkl012mno345pqr678stu9, transaction:'; - const result = parseCryptoLongcode(longCode); - - expect(result).toEqual({ - addressHash: 'abc123def456ghi789jkl012mno345pqr678stu9', - blockchainHash: undefined, - splitLongcode: ['address: abc123def456ghi789jkl012mno345pqr678stu9', 'transaction:'], - }); - }); - - it('handles a completely malformed code gracefully', () => { - const longCode = 'malformed code without hashes'; - const result = parseCryptoLongcode(longCode); - - expect(result).toEqual({ - addressHash: undefined, - blockchainHash: undefined, - splitLongcode: ['malformed code without hashes'], - }); - }); - - it('works when an empty string is passed', () => { - const longCode = ''; - const result = parseCryptoLongcode(longCode); - - expect(result).toEqual({ - addressHash: undefined, - blockchainHash: undefined, - splitLongcode: [''], - }); - }); -}); diff --git a/packages/wallets/src/utils/__tests__/utils.spec.ts b/packages/wallets/src/utils/__tests__/utils.spec.ts index e51f81df0536..cdc089449afb 100644 --- a/packages/wallets/src/utils/__tests__/utils.spec.ts +++ b/packages/wallets/src/utils/__tests__/utils.spec.ts @@ -1,88 +1,7 @@ -import { - defineViewportHeight, - getAdjustedDate, - getFormattedDateString, - getFormattedTimeString, - isServerError, -} from '../utils'; +import { defineViewportHeight, isServerError } from '../utils'; import '@testing-library/jest-dom'; describe('Wallets Utils', () => { - describe('getFormattedDateString', () => { - test('converts current date to formatted string in default format', () => { - const currentDate = new Date('2023-05-15T12:00:00Z'); - const formattedDate = getFormattedDateString(currentDate); - expect(formattedDate).toBe('2023-05-15'); - }); - - test('formats date string in "DD MMM YYYY" format', () => { - const dateString = '2023-05-15T12:00:00Z'; - const formattedDate = getFormattedDateString(dateString, undefined, 'DD MMM YYYY'); - expect(formattedDate).toBe('15 May 2023'); - }); - - test('formats date string in "MMM DD YYYY" format', () => { - const dateString = '2023-05-15T12:00:00Z'; - const formattedDate = getFormattedDateString(dateString, undefined, 'MMM DD YYYY'); - expect(formattedDate).toBe('May 15 2023'); - }); - - test('handles Unix timestamp', () => { - const unixTimestamp = 1684152000; // 2023-05-15T12:00:00Z - const formattedDate = getFormattedDateString(unixTimestamp, undefined, 'YYYY-MM-DD', true); - expect(formattedDate).toBe('2023-05-15'); - }); - - test('throws error for invalid input', () => { - expect(() => getFormattedDateString({} as Date)).toThrow('Invalid date input'); - }); - }); - - describe('getFormattedTimeString', () => { - beforeAll(() => { - jest.useFakeTimers('modern'); - jest.setSystemTime(new Date('2024-09-01T12:30:45Z')); - }); - - afterAll(() => { - jest.useRealTimers(); - }); - - test('converts current date to formatted time string', () => { - const currentDate = new Date('2024-09-01T12:30:45Z'); - const formattedTime = getFormattedTimeString(currentDate); - expect(formattedTime).toBe('12:30:45 GMT'); - }); - - test('handles Unix timestamp', () => { - const date = new Date('2024-09-01T12:30:45Z'); - const unixTimestamp = Math.floor(date.getTime() / 1000); - - const formattedTime = getFormattedTimeString(unixTimestamp, true); - expect(formattedTime).toBe('12:30:45 GMT'); - }); - - test('throws error for invalid input', () => { - expect(() => getFormattedTimeString({} as Date)).toThrow('Invalid date input'); - }); - }); - - describe('getAdjustedDate', () => { - test('adjusts date by days', () => { - const adjustedDate = getAdjustedDate(5, 'days'); - const expectedDate = new Date(); - expectedDate.setDate(expectedDate.getDate() + 5); - expect(adjustedDate.toDateString()).toBe(expectedDate.toDateString()); - }); - - test('adjusts date by years', () => { - const adjustedDate = getAdjustedDate(2, 'years'); - const expectedDate = new Date(); - expectedDate.setFullYear(expectedDate.getFullYear() - 2); - expect(adjustedDate.toDateString()).toBe(expectedDate.toDateString()); - }); - }); - describe('isServerError', () => { test('returns true for valid server error object', () => { const error = { code: '123', message: 'Error message' }; diff --git a/packages/wallets/src/utils/parse-crypto-longcode.ts b/packages/wallets/src/utils/parse-crypto-longcode.ts deleted file mode 100644 index 4d09f26bc34a..000000000000 --- a/packages/wallets/src/utils/parse-crypto-longcode.ts +++ /dev/null @@ -1,11 +0,0 @@ -const parseCryptoLongcode = (longcode: string) => { - const splitLongcode = longcode.split(/,\s/); - const addressHashMatch = /:\s([0-9a-zA-Z]+.{25,28})/gm.exec(splitLongcode[0]); - const addressHash = addressHashMatch?.[1]; - const blockchainHashMatch = /:\s([0-9a-zA-Z]+.{25,34})/gm.exec(splitLongcode[1]); - const blockchainHash = blockchainHashMatch?.[1]; - - return { addressHash, blockchainHash, splitLongcode }; -}; - -export default parseCryptoLongcode; diff --git a/packages/wallets/src/utils/react-node-to-string.ts b/packages/wallets/src/utils/react-node-to-string.ts deleted file mode 100644 index 34b2a8aeef72..000000000000 --- a/packages/wallets/src/utils/react-node-to-string.ts +++ /dev/null @@ -1,19 +0,0 @@ -import React, { isValidElement } from 'react'; - -const reactNodeToString = function (reactNode: React.ReactNode): string { - let string = ''; - if (typeof reactNode === 'string') { - string = reactNode; - } else if (typeof reactNode === 'number') { - string = reactNode.toString(); - } else if (reactNode instanceof Array) { - reactNode.forEach(function (child) { - string += reactNodeToString(child); - }); - } else if (isValidElement(reactNode)) { - string += reactNodeToString(reactNode.props.children); - } - return string; -}; - -export default reactNodeToString; diff --git a/packages/wallets/src/utils/utils.ts b/packages/wallets/src/utils/utils.ts index 1f9bf1a0e706..35f3fb3654f8 100644 --- a/packages/wallets/src/utils/utils.ts +++ b/packages/wallets/src/utils/utils.ts @@ -1,89 +1,3 @@ -/** - * A utility function that returns a formatted date string after converting date objects/strings. - * @param dateInput - The date object, string, or Unix timestamp that needs to be converted/formatted. - * @param options - (Optional) Intl.DateTimeFormatOptions to specify the format of the returned date. Default format is 'YYYY-MM-DD' (ISO 8601). - * @param format - (Optional) The predefined format of the returned date. Available options: 'YYYY-MM-DD', 'DD MMM YYYY', 'MMM DD YYYY'. - * @param unix - (Optional) If true, treats the input as a Unix timestamp. - * @returns Formatted date string according to the specified format. - */ -export const getFormattedDateString = ( - dateInput: Date | number | string, - options: Intl.DateTimeFormatOptions = { day: '2-digit', month: '2-digit', year: 'numeric' }, - format = 'YYYY-MM-DD', - unix = false -): string => { - let dateObj: Date; - const dateOptions: Intl.DateTimeFormatOptions = { ...options }; - - if (typeof dateInput === 'number' && unix) { - dateObj = new Date(dateInput * 1000); - } else if (typeof dateInput === 'string' || dateInput instanceof Date) { - dateObj = new Date(dateInput); - } else { - throw new Error('Invalid date input'); - } - - // Custom handling for different input formats - switch (format) { - case 'DD MMM YYYY': - dateOptions.day = '2-digit'; - dateOptions.month = 'short'; - dateOptions.year = 'numeric'; - break; - case 'MMM DD YYYY': - dateOptions.day = '2-digit'; - dateOptions.month = 'short'; - dateOptions.year = 'numeric'; - return dateObj.toLocaleDateString('en-GB', dateOptions).replace(/(\d{2}) (\w{3}) (\d{4})/, '$2 $1 $3'); - default: - dateOptions.year = 'numeric'; - dateOptions.month = '2-digit'; - dateOptions.day = '2-digit'; - break; - } - - const formattedDate = dateObj - .toLocaleDateString('en-GB', dateOptions) - .replace(/(\d{2}) (\w{3,4}) (\d{4})/, (_, day, month, year) => `${day} ${month.slice(0, 3)} ${year}`); - return format === 'DD MMM YYYY' || format === 'MMM DD YYYY' - ? formattedDate - : formattedDate.replace(/(\d{2})\/(\d{2})\/(\d{4})/, '$3-$2-$1'); -}; - -/** - * A utility function which returns a formatted time string. - * @param dateInput the date object or string which needs to be converted/formatted. - * @param unix (optional) if true, treats the input as a Unix timestamp. - * @returns formatted time string in 'HH:mm:ss GMT' format. - */ -export const getFormattedTimeString = (dateInput: Date | number | string, unix = false): string => { - let dateObj: Date; - - if (typeof dateInput === 'number' && unix) { - dateObj = new Date(dateInput * 1000); - } else if (typeof dateInput === 'string' || dateInput instanceof Date) { - dateObj = new Date(dateInput); - } else { - throw new Error('Invalid date input'); - } - - // Utilize UTC methods to return time in GMT regardless of local timezone - return `${dateObj.getUTCHours().toString().padStart(2, '0')}:${dateObj - .getUTCMinutes() - .toString() - .padStart(2, '0')}:${dateObj.getUTCSeconds().toString().padStart(2, '0')} GMT`; -}; - -export const getAdjustedDate = (amount: number, type: 'days' | 'years') => { - const date = new Date(); - if (type === 'years') { - date.setFullYear(date.getFullYear() - amount); - } else if (type === 'days') { - date.setDate(date.getDate() + amount); - } - return date; -}; - type TServerError = { code: string; details?: { [key: string]: string }; diff --git a/types/global.d.ts b/types/global.d.ts index a780a9d11d24..7c91a75e41ff 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -1,15 +1,11 @@ +import { TLiveChatWidget } from './livechat'; + declare global { interface Window { clipboardData: DataTransfer; - LiveChatWidget: { - init: () => void; - on: (key: string, callback: VoidFunction) => void; - get: (key: string) => any; - call: (key: string, value?: any) => void; - }; + LiveChatWidget: TLiveChatWidget; LC_API: { - on_chat_ended: VoidFunction; - open_chat_window: VoidFunction; + close_chat: () => void; }; TrackJS: { console: { log: (arg0: unknown[]) => void }; track: (arg0: object) => void }; Blockly; @@ -17,6 +13,33 @@ declare global { init: (args: any) => any; }; DD_RUM: object | undefined; + fcWidget: { + show: VoidFunction; + hide: VoidFunction; + open: VoidFunction; + on: (key: string, callback: VoidFunction) => void; + setConfig: (config: Record>) => void; + isLoaded: () => boolean; + isInitialized: () => boolean; + user: { + setLocale(locale: string): void; + }; + }; + fcWidgetMessengerConfig: { + config: Record>; + }; + fcSettings: { + [key: string]: any; + }; + FreshChat: { + initialize: (config: FreshChatConfig) => void; + }; + Analytics: any; + } + interface FreshChatConfig { + token: string | null; + locale?: string; + hideButton?: boolean; } } diff --git a/types/livechat.ts b/types/livechat.ts new file mode 100644 index 000000000000..5020cafb5498 --- /dev/null +++ b/types/livechat.ts @@ -0,0 +1,33 @@ +type TLiveChatState = { availability: 'online' | 'offline'; visibility: 'maximized' | 'minimized' | 'hidden' }; +type TLiveChatChatData = { chatId: string; threadId: string }; +type TLiveChatCustomerData = { + id: string; + name: string; + email: string; + isReturning: boolean; + status: 'queued' | 'chatting' | 'browsing' | 'invited'; + sessionVariables: Record; +}; +type TLiveChatGetResponse = { + state: TLiveChatState; + customer_data: TLiveChatCustomerData; + chat_data: TLiveChatChatData; +}; +type TLiveChatGetKeys = 'state' | 'customer_data' | 'chat_data'; +type TLiveChatCallKeys = + | 'maximize' + | 'minimize' + | 'hide' + | 'destroy' + | 'hide_greeting' + | 'set_session_variables' + | 'update_session_variables' + | 'set_customer_name' + | 'set_customer_email'; + +export type TLiveChatWidget = { + init: () => void; + on: (key: string, callback: (data: { customerData: TLiveChatCustomerData; state: TLiveChatState }) => void) => void; + get: (key: T) => TLiveChatGetResponse[T]; + call: (key: TLiveChatCallKeys, value?: string | Record) => void; +};