From a86a188b61b4af3034fdcf03d6f8a0cdce3c74c3 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 6 Dec 2022 14:39:29 -0700 Subject: [PATCH 001/263] committing early progress, local npm repo requires it --- lerna.json | 2 +- package-lock.json | 2 +- package.json | 5 +- packages/commerce-sdk-react/CHANGELOG.md | 4 + packages/commerce-sdk-react/package-lock.json | 1744 +- packages/commerce-sdk-react/package.json | 4 +- packages/internal-lib-build/package-lock.json | 2 +- packages/internal-lib-build/package.json | 2 +- packages/pwa-kit-create-app/package-lock.json | 2 +- packages/pwa-kit-create-app/package.json | 7 +- .../scripts/create-mobify-app-dev.js | 4 +- packages/pwa-kit-dev/CHANGELOG.md | 4 + packages/pwa-kit-dev/bin/pwa-kit-dev.js | 8 +- packages/pwa-kit-dev/package-lock.json | 14622 +--------------- packages/pwa-kit-dev/package.json | 6 +- .../pwa-kit-dev/src/configs/webpack/config.js | 1 + .../src/configs/webpack/plugins.js | 40 +- packages/pwa-kit-react-sdk/CHANGELOG.md | 4 + packages/pwa-kit-react-sdk/package-lock.json | 2 +- packages/pwa-kit-react-sdk/package.json | 6 +- packages/pwa-kit-runtime/CHANGELOG.md | 4 + packages/pwa-kit-runtime/package-lock.json | 2 +- packages/pwa-kit-runtime/package.json | 6 +- packages/spike-extendend-retail-app/README.md | 3 + .../babel.config.js | 7 + .../config/default.js | 66 + .../config/sites.js | 78 + .../package-lock.json | 7214 ++++++++ .../spike-extendend-retail-app/package.json | 82 + .../overrides/app/components/Input/index.tsx | 0 .../overrides/app/pages/home/index.jsx | 319 + .../package-lock.json | 2 +- .../template-express-minimal/package.json | 6 +- .../package-lock.json | 1685 +- .../template-retail-react-app/package.json | 10 +- .../package-lock.json | 2 +- .../template-typescript-minimal/package.json | 8 +- .../test-commerce-sdk-react/package-lock.json | 2 +- packages/test-commerce-sdk-react/package.json | 10 +- 39 files changed, 8313 insertions(+), 17664 deletions(-) create mode 100644 packages/spike-extendend-retail-app/README.md create mode 100644 packages/spike-extendend-retail-app/babel.config.js create mode 100644 packages/spike-extendend-retail-app/config/default.js create mode 100644 packages/spike-extendend-retail-app/config/sites.js create mode 100644 packages/spike-extendend-retail-app/package-lock.json create mode 100644 packages/spike-extendend-retail-app/package.json create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/Input/index.tsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx diff --git a/lerna.json b/lerna.json index a1e259289e..aca2c232b5 100644 --- a/lerna.json +++ b/lerna.json @@ -3,7 +3,7 @@ "packages": [ "packages/*" ], - "version": "2.4.0-dev", + "version": "2.5.0-dev", "publish": { "allowBranch": [ "master" diff --git a/package-lock.json b/package-lock.json index 8e7030d84d..d38329c1b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pwa-kit", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d66e4e98db..bb5898b5d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pwa-kit", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "engines": { "node": "^14.0.0", "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" @@ -21,6 +21,7 @@ "lint": "lerna run --parallel --stream lint -- --silent", "lint:fix": "lerna run lint:fix", "format": "lerna run --parallel --stream format", - "bump-version": "node ./scripts/bump-version.js" + "bump-version": "node ./scripts/bump-version.js", + "local-npm": "node packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js --outputDir local-npm" } } \ No newline at end of file diff --git a/packages/commerce-sdk-react/CHANGELOG.md b/packages/commerce-sdk-react/CHANGELOG.md index 2490bf9d95..dc4460a278 100644 --- a/packages/commerce-sdk-react/CHANGELOG.md +++ b/packages/commerce-sdk-react/CHANGELOG.md @@ -1 +1,5 @@ +## v2.5.0-dev (Dec 06, 2022) +## v2.4.0-dev (Dec 06, 2022) +## v2.5.0-dev (Dec 06, 2022) +## v2.5.0-dev.0 (Dec 06, 2022) ## v2.4.0-dev (Oct 27, 2022) diff --git a/packages/commerce-sdk-react/package-lock.json b/packages/commerce-sdk-react/package-lock.json index 7659451020..aff3af172c 100644 --- a/packages/commerce-sdk-react/package-lock.json +++ b/packages/commerce-sdk-react/package-lock.json @@ -1,1735 +1,8 @@ { "name": "commerce-sdk-react", - "version": "2.4.0-dev", - "lockfileVersion": 2, + "version": "2.5.0-dev", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "commerce-sdk-react", - "version": "2.4.0-dev", - "license": "See license in LICENSE", - "dependencies": { - "commerce-sdk-isomorphic": "^1.8.0", - "js-cookie": "^3.0.1", - "jwt-decode": "^3.1.2" - }, - "devDependencies": { - "@tanstack/react-query": "^4.0.10", - "@tanstack/react-query-devtools": "^4.2.1", - "@testing-library/jest-dom": "^5.16.4", - "@testing-library/react": "^12.1.5", - "@testing-library/react-hooks": "^8.0.1", - "@types/js-cookie": "^3.0.2", - "@types/jsonwebtoken": "^8.5.8", - "@types/jwt-decode": "^3.1.0", - "@types/node": "^14.18.22", - "@types/react": "^17.0.2", - "@types/react-dom": "^17.0.2", - "cross-env": "^5.2.0", - "jest-silent-reporter": "^0.5.0", - "jsonwebtoken": "^8.5.1", - "nock": "^13.2.9", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "typedoc": "^0.23.5", - "typescript": "^4.7.2", - "watch": "^1.0.2" - }, - "engines": { - "node": "^14.0.0", - "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" - }, - "peerDependencies": { - "@tanstack/react-query": "^4", - "react": "^17" - } - }, - "node_modules/@adobe/css-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", - "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==", - "dev": true - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.0.3.tgz", - "integrity": "sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.0.3.tgz", - "integrity": "sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.0.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.42", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.42.tgz", - "integrity": "sha512-d+2AtrHGyWek2u2ITF0lHRIv6Tt7X0dEHW+0rP+5aDCEjC3fiN2RBjrLD0yU0at52BcZbRGxLbAtXiR0hFCjYw==", - "dev": true - }, - "node_modules/@tanstack/match-sorter-utils": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.1.1.tgz", - "integrity": "sha512-IdmEekEYxQsoLOR0XQyw3jD1GujBpRRYaGJYQUw1eOT1eUugWxdc7jomh1VQ1EKHcdwDLpLaCz/8y4KraU4T9A==", - "dev": true, - "dependencies": { - "remove-accents": "0.4.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kentcdodds" - } - }, - "node_modules/@tanstack/query-core": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.3.8.tgz", - "integrity": "sha512-AEUWtCNBIImFZ9tMt/P8V86kIhMHpfoJqAI1auGOLR8Wzeq7Ymiue789PJG0rKYcyViUicBZeHjggMqyEQVMfQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-query": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.3.9.tgz", - "integrity": "sha512-odfDW6WiSntCsCh+HFeJtUys3UnVOjfJMhykAtGtYvcklMyyDmCv9BVBt5KlSpbk/qW3kURPFCDapO+BFUlCwg==", - "dev": true, - "dependencies": { - "@tanstack/query-core": "4.3.8", - "use-sync-external-store": "^1.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@tanstack/react-query-devtools": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.3.9.tgz", - "integrity": "sha512-N+nMBwrxAYsC5oEmexCuo4OZqBpR97pfy8r8tuvekFNYlA0pYlCnsxiqkZoZzF6ewk7w8KPkkDhClx0kSlW3qw==", - "dev": true, - "dependencies": { - "@tanstack/match-sorter-utils": "^8.1.1", - "use-sync-external-store": "^1.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@tanstack/react-query": "4.3.9", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@testing-library/dom": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.18.1.tgz", - "integrity": "sha512-oEvsm2B/WtcHKE+IcEeeCqNU/ltFGaVyGbpcm4g/2ytuT49jrlH9x5qRKL/H3A6yfM4YAbSbC0ceT5+9CEXnLg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/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==", - "dev": true - }, - "node_modules/@testing-library/jest-dom": { - "version": "5.16.5", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", - "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", - "dev": true, - "dependencies": { - "@adobe/css-tools": "^4.0.1", - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=8", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/react": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", - "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "<18.0.0", - "react-dom": "<18.0.0" - } - }, - "node_modules/@testing-library/react-hooks": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz", - "integrity": "sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "react-error-boundary": "^3.1.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0", - "react": "^16.9.0 || ^17.0.0", - "react-dom": "^16.9.0 || ^17.0.0", - "react-test-renderer": "^16.9.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-test-renderer": { - "optional": true - } - } - }, - "node_modules/@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.0.3.tgz", - "integrity": "sha512-F6ukyCTwbfsEX5F2YmVYmM5TcTHy1q9P5rWlRbrk56KyMh3v9xRGUO3aa8+SkvMi0SHXtASJv1283enXimC0Og==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/js-cookie": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.2.tgz", - "integrity": "sha512-6+0ekgfusHftJNYpihfkMu8BWdeHs9EOJuGcSofErjstGPfPGEu9yTu4t460lTzzAMl2cM5zngQJqPMHbbnvYA==", - "dev": true - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/jwt-decode": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/jwt-decode/-/jwt-decode-3.1.0.tgz", - "integrity": "sha512-tthwik7TKkou3mVnBnvVuHnHElbjtdbM63pdBCbZTirCt3WAdM73Y79mOri7+ljsS99ZVwUFZHLMxJuJnv/z1w==", - "deprecated": "This is a stub types definition. jwt-decode provides its own type definitions, so you do not need this installed.", - "dev": true, - "dependencies": { - "jwt-decode": "*" - } - }, - "node_modules/@types/node": { - "version": "14.18.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.29.tgz", - "integrity": "sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true - }, - "node_modules/@types/react": { - "version": "17.0.50", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", - "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", - "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", - "dev": true, - "dependencies": { - "@types/react": "^17" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.5", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", - "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", - "dev": true, - "dependencies": { - "@types/jest": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", - "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/aria-query": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.2.tgz", - "integrity": "sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "dev": true - }, - "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ci-info": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", - "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/commerce-sdk-isomorphic": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/commerce-sdk-isomorphic/-/commerce-sdk-isomorphic-1.8.0.tgz", - "integrity": "sha512-vjWJ4KPNXq3ckZkc9fkYDkrT6LZcGIrQZ9nmjQXbg5V5B9K72lmBV+uZQQVdYVX+qI4PfXY4JEO6mfKMiTgkCA==", - "dependencies": { - "cross-fetch": "^3.1.5", - "nanoid": "^3.3.4" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/cross-env": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", - "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.5" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true - }, - "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/diff-sequences": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.0.0.tgz", - "integrity": "sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", - "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", - "dev": true - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dev": true, - "dependencies": { - "merge": "^1.2.0" - } - }, - "node_modules/expect": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.0.3.tgz", - "integrity": "sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.0.3", - "jest-get-type": "^29.0.0", - "jest-matcher-utils": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jest-diff": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.0.3.tgz", - "integrity": "sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.0.0", - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-get-type": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz", - "integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz", - "integrity": "sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.0.3", - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.0.3.tgz", - "integrity": "sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.0.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.0.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-silent-reporter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jest-silent-reporter/-/jest-silent-reporter-0.5.0.tgz", - "integrity": "sha512-epdLt8Oj0a1AyRiR6F8zx/1SVT1Mi7VU3y4wB2uOBHs/ohIquC7v2eeja7UN54uRPyHInIKWdL+RdG228n5pJQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-util": "^26.0.0" - } - }, - "node_modules/jest-silent-reporter/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-silent-reporter/node_modules/@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-silent-reporter/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-silent-reporter/node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-util": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.0.3.tgz", - "integrity": "sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.0.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/js-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", - "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jwt-decode": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "dev": true - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "dev": true - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "dev": true - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", - "dev": true, - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/marked": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", - "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pretty-format": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.0.3.tgz", - "integrity": "sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-boundary": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", - "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "react": ">=16.13.1" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/remove-accents": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", - "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shiki": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", - "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "^6.0.0" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/typedoc": { - "version": "0.23.15", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.15.tgz", - "integrity": "sha512-x9Zu+tTnwxb9YdVr+zvX7LYzyBl1nieOr6lrSHbHsA22/RJK2m4Y525WIg5Mj4jWCmfL47v6f4hUzY7EIuwS5w==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.0.19", - "minimatch": "^5.1.0", - "shiki": "^0.11.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 14.14" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x" - } - }, - "node_modules/typescript": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", - "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "dev": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", - "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==", - "dev": true - }, - "node_modules/watch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", - "integrity": "sha512-1u+Z5n9Jc1E2c7qDO8SinPoZuHj7FgbgU1olSFoyaklduDvvtX7GMMtlE6OC9FTXq4KvNAOfj6Zu4vI1e9bAKA==", - "dev": true, - "dependencies": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - } - }, "dependencies": { "@adobe/css-tools": { "version": "4.0.1", @@ -2562,7 +835,8 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", @@ -2672,6 +946,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -2771,7 +1046,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true }, "path-key": { "version": "2.0.1", @@ -2814,6 +1090,7 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -2823,6 +1100,7 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -2876,6 +1154,7 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -2990,8 +1269,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "dev": true, - "requires": {} + "dev": true }, "vscode-oniguruma": { "version": "1.6.2", diff --git a/packages/commerce-sdk-react/package.json b/packages/commerce-sdk-react/package.json index 12f1813e27..b58fb44a0d 100644 --- a/packages/commerce-sdk-react/package.json +++ b/packages/commerce-sdk-react/package.json @@ -1,6 +1,6 @@ { "name": "commerce-sdk-react", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "description": "A library that provides react hooks for fetching data from Commerce Cloud", "author": "cc-pwa-kit@salesforce.com", "license": "See license in LICENSE", @@ -51,7 +51,7 @@ "@types/react": "^17.0.2", "@types/react-dom": "^17.0.2", "cross-env": "^5.2.0", - "internal-lib-build": "^2.4.0-dev", + "internal-lib-build": "^2.5.0-dev", "jest-silent-reporter": "^0.5.0", "jsonwebtoken": "^8.5.1", "nock": "^13.2.9", diff --git a/packages/internal-lib-build/package-lock.json b/packages/internal-lib-build/package-lock.json index d7702ed6e7..3bca80ebc3 100644 --- a/packages/internal-lib-build/package-lock.json +++ b/packages/internal-lib-build/package-lock.json @@ -1,6 +1,6 @@ { "name": "internal-lib-build", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/internal-lib-build/package.json b/packages/internal-lib-build/package.json index 1f9c58565e..bf45eb1e21 100644 --- a/packages/internal-lib-build/package.json +++ b/packages/internal-lib-build/package.json @@ -1,6 +1,6 @@ { "name": "internal-lib-build", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "engines": { "node": "^14.0.0", "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" diff --git a/packages/pwa-kit-create-app/package-lock.json b/packages/pwa-kit-create-app/package-lock.json index f78e9a952e..974fe1ab4f 100644 --- a/packages/pwa-kit-create-app/package-lock.json +++ b/packages/pwa-kit-create-app/package-lock.json @@ -1,6 +1,6 @@ { "name": "pwa-kit-create-app", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/pwa-kit-create-app/package.json b/packages/pwa-kit-create-app/package.json index 87ff2f3d9d..79a6a02a27 100644 --- a/packages/pwa-kit-create-app/package.json +++ b/packages/pwa-kit-create-app/package.json @@ -1,6 +1,6 @@ { "name": "pwa-kit-create-app", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "description": "Salesforce's project generator tool", "author": "cc-pwa-kit@salesforce.com", "license": "See license in LICENSE", @@ -23,7 +23,8 @@ "lint": "npm run lint:js", "lint:fix": "npm run lint:js -- --fix", "lint:js": "internal-lib-build lint .", - "test": "internal-lib-build test" + "test": "internal-lib-build test", + "local-npm": "node packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js --outputDir local-npm" }, "engines": { "node": "^14.0.0", @@ -40,7 +41,7 @@ "tar": "^6.1.11" }, "devDependencies": { - "internal-lib-build": "^2.4.0-dev", + "internal-lib-build": "^2.5.0-dev", "verdaccio": "^5.9.0" } } diff --git a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js index d7f47d2821..19b8dfc9df 100755 --- a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js +++ b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js @@ -136,9 +136,9 @@ const withLocalNPMRepo = (func) => { console.log('Published successfully') }) .then(() => func()) - .then(() => cleanup()) + // .then(() => cleanup()) .catch((err) => { - cleanup() + // cleanup() throw err }) } diff --git a/packages/pwa-kit-dev/CHANGELOG.md b/packages/pwa-kit-dev/CHANGELOG.md index 55dad6be0a..d9ee7d68c8 100644 --- a/packages/pwa-kit-dev/CHANGELOG.md +++ b/packages/pwa-kit-dev/CHANGELOG.md @@ -1,3 +1,7 @@ +## v2.5.0-dev (Dec 06, 2022) +## v2.4.0-dev (Dec 06, 2022) +## v2.5.0-dev (Dec 06, 2022) +## v2.5.0-dev.0 (Dec 06, 2022) ## v2.4.0-dev (Oct 27, 2022) - Add `tail-logs` command [#789](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/789) diff --git a/packages/pwa-kit-dev/bin/pwa-kit-dev.js b/packages/pwa-kit-dev/bin/pwa-kit-dev.js index 590b4c439e..1def3159fc 100755 --- a/packages/pwa-kit-dev/bin/pwa-kit-dev.js +++ b/packages/pwa-kit-dev/bin/pwa-kit-dev.js @@ -142,6 +142,8 @@ const main = () => { } }) + const appSSRjs = fse.pathExistsSync(p.join(process.cwd(), 'app', 'ssr.js')) + program .command('start') .description(`develop your app locally`) @@ -151,7 +153,11 @@ const main = () => { .addOption(new program.Option('--noHMR', 'disable the client-side hot module replacement')) .action(({inspect, noHMR}) => { execSync( - `node${inspect ? ' --inspect' : ''} ${p.join(process.cwd(), 'app', 'ssr.js')}`, + `node${inspect ? ' --inspect' : ''} ${ + appSSRjs ? + p.join(process.cwd(), 'app', 'ssr.js') + : + p.join(process.cwd(), 'node_modules/retail-react-app', 'app', 'ssr.js')}`, { env: { ...process.env, diff --git a/packages/pwa-kit-dev/package-lock.json b/packages/pwa-kit-dev/package-lock.json index 5ba9458ce9..7ac18f93f8 100644 --- a/packages/pwa-kit-dev/package-lock.json +++ b/packages/pwa-kit-dev/package-lock.json @@ -1,14569 +1,8 @@ { "name": "pwa-kit-dev", - "version": "2.4.0-dev", - "lockfileVersion": 2, + "version": "2.5.0-dev", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "pwa-kit-dev", - "version": "2.4.0-dev", - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "@babel/cli": "^7.4.4", - "@babel/core": "^7.4.5", - "@babel/parser": "^7.5.5", - "@babel/plugin-proposal-object-rest-spread": "^7.4.4", - "@babel/plugin-transform-async-to-generator": "^7.7.0", - "@babel/plugin-transform-modules-commonjs": "^7.4.4", - "@babel/plugin-transform-object-assign": "^7.2.0", - "@babel/plugin-transform-runtime": "^7.6.2", - "@babel/preset-env": "^7.4.5", - "@babel/preset-react": "^7.0.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/register": "^7.4.4", - "@babel/runtime": "^7.7.2", - "@babel/runtime-corejs2": "^7.4.5", - "@babel/traverse": "^7.5.5", - "@loadable/babel-plugin": "^5.13.2", - "@loadable/server": "^5.15.0", - "@loadable/webpack-plugin": "^5.15.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.6", - "archiver": "1.3.0", - "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.3", - "babel-loader": "^8.0.6", - "babel-plugin-dynamic-import-node-babel-7": "^2.0.7", - "babel-plugin-formatjs": "10.2.20", - "chalk": "^4.1.2", - "commander": "^9.3.0", - "compression": "1.7.4", - "copy-webpack-plugin": "^9.1.0", - "cross-env": "^5.2.0", - "eslint": "7.31.0", - "eslint-config-prettier": "4.0.0", - "eslint-import-resolver-webpack": "0.10.0", - "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "2.23.4", - "eslint-plugin-jsx-a11y": "6.4.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-react": "7.24.0", - "express": "^4.17.1", - "fs-extra": "^10.1.0", - "git-rev-sync": "^3.0.1", - "glob": "7.1.1", - "ignore-loader": "^0.1.2", - "jest": "^26.6.3", - "jest-cli": "^26.6.3", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-jsdom-global": "^2.0.4", - "jest-expect-message": "1.0.0", - "jest-fetch-mock": "^2.1.2", - "mime-types": "2.1.32", - "minimatch": "3.0.5", - "morgan": "1.9.1", - "open": "^8.4.0", - "prettier": "^1.18.2", - "react-refresh": "^0.13.0", - "replace-in-file": "^6.2.0", - "request": "^2.88.0", - "require-from-string": "^2.0.2", - "rimraf": "2.6.1", - "speed-measure-webpack-plugin": "^1.5.0", - "svg-sprite-loader": "^6.0.11", - "validator": "^13.7.0", - "watch": "1.0.1", - "webpack": "^5.64.2", - "webpack-bundle-analyzer": "^4.4.0", - "webpack-cli": "^4.9.1", - "webpack-dev-middleware": "^5.2.2", - "webpack-hot-middleware": "^2.25.1", - "webpack-hot-server-middleware": "^0.6.1", - "webpack-notifier": "^1.12.0" - }, - "bin": { - "pwa-kit-dev": "bin/pwa-kit-dev.js" - }, - "devDependencies": { - "@loadable/component": "^5.15.0", - "nock": "^13.1.1", - "superagent": "^6.1.0", - "supertest": "^4.0.2" - }, - "engines": { - "node": "^14.0.0", - "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" - }, - "peerDependencies": { - "@loadable/component": "^5.15.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/cli": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.10.tgz", - "integrity": "sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.8", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", - "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.10", - "@babel/types": "^7.17.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", - "dependencies": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz", - "integrity": "sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz", - "integrity": "sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-assign": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz", - "integrity": "sha512-R8mawvm3x0COTJtveuoqZIjNypn2FjfvXZr4pSQ8VhEFBuQGBz4XhHasZtHXjgXU4XptZ4HtGof3NoYc93ZH9Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", - "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", - "dependencies": { - "regenerator-transform": "^0.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", - "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", - "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.17.6", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.17.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.17.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@babel/plugin-transform-modules-systemjs": "^7.17.8", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.17.9", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.17.10", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz", - "integrity": "sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==", - "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs2": { - "version": "7.17.11", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.17.11.tgz", - "integrity": "sha512-pJe8Aerb88TGVi1Xe/AE36aRCPrg+h6ktZPGl6xaJvOfTLcMMuogQu3BYcxeXPTNHhSYbmsDVYBs8CfAxeFFTg==", - "dependencies": { - "core-js": "^2.6.12", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", - "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", - "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", - "@babel/types": "^7.17.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.9.3.tgz", - "integrity": "sha512-DBrRUL65m4SVtfq+T4Qltd8+upAzfb9K1MX0UZ0hqQ0wpBY0PSIti9XJe0ZQ/j2v/KxpwQ0Jw5NLumKVezJFQg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.6.tgz", - "integrity": "sha512-dgOZ2kq3sbjjC4P0IIghXFUiGY+x9yyypBJF9YFACjw8gPq/OSPmOzdMGvjY9hl4EeeIhhsDd4LIAN/3zHG99A==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.9.3", - "@formatjs/icu-skeleton-parser": "1.2.7", - "tslib": "^2.1.0" - } - }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.2.7.tgz", - "integrity": "sha512-xm1rJMOz4fwVfWH98VKtbTpZvyQ45plHilkCF16Nm6bAgosYC/IcMmgJisGr6uHqb5TvJRXE07+EvnkIIQjsdA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.9.3", - "tslib": "^2.1.0" - } - }, - "node_modules/@formatjs/ts-transformer": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.4.2.tgz", - "integrity": "sha512-mESlb/dMi8hEjiPvUyrHFlA41aJY0cR1BlS0rTKCrqdwjgM9xl8u6hxn4Z2xPEfBW1pw+bwbam8QsvduEEbgRQ==", - "dependencies": { - "@formatjs/icu-messageformat-parser": "2.0.6", - "tslib": "^2.1.0", - "typescript": "^4.0" - }, - "peerDependencies": { - "ts-jest": "27" - }, - "peerDependenciesMeta": { - "ts-jest": { - "optional": true - } - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/console/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/core/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/core/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "node-notifier": "^8.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@jest/reporters/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", - "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz", - "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.12", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.12.tgz", - "integrity": "sha512-az/NhpIwP3K33ILr0T2bso+k2E/SLf8Yidd8mHl0n6sCQ4YdyC8qDhZA6kOPDNDBA56ZnIjngVl0U3jREA0BUA==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@loadable/babel-plugin": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@loadable/babel-plugin/-/babel-plugin-5.13.2.tgz", - "integrity": "sha512-vSZUVeTH1S1sDbk8Tzft0plZSkN7W4zmVR5w/Bmy4UmvBiu9lin7ztrDpoUTUzxpoups+OJbTc/OosvN0aMXWg==", - "dependencies": { - "@babel/plugin-syntax-dynamic-import": "^7.7.4" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@loadable/component": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.2.tgz", - "integrity": "sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==", - "dependencies": { - "@babel/runtime": "^7.7.7", - "hoist-non-react-statics": "^3.3.1", - "react-is": "^16.12.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/@loadable/server": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@loadable/server/-/server-5.15.2.tgz", - "integrity": "sha512-Nk/6Plz8qTn+A+u2qg/vrbYZwTmzzjy5bw4Ts80pM/rqW8H37IooKU/HVWSje63RZ4vTqEsHsrdiX97RB9dMjw==", - "dependencies": { - "lodash": "^4.17.15" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@loadable/component": "^5.0.1", - "react": ">=16.3.0" - } - }, - "node_modules/@loadable/webpack-plugin": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@loadable/webpack-plugin/-/webpack-plugin-5.15.2.tgz", - "integrity": "sha512-+o87jPHn3E8sqW0aBA+qwKuG8JyIfMGdz3zECv0t/JF0KHhxXtzIlTiqzlIYc5ZpFs/vKSQfjzGIR5tPJjoXDw==", - "dependencies": { - "make-dir": "^3.0.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "webpack": ">=4.6.0" - } - }, - "node_modules/@loadable/webpack-plugin/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@loadable/webpack-plugin/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "optional": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz", - "integrity": "sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==", - "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <3.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__helper-plugin-utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@types/babel__helper-plugin-utils/-/babel__helper-plugin-utils-7.10.0.tgz", - "integrity": "sha512-60YtHzhQ9HAkToHVV+TB4VLzBn9lrfgrsOjiJMtbv/c1jPdekBxaByd6DMsGBzROXWoIL6U3lEFvvbu69RkUoA==", - "dependencies": { - "@types/babel__core": "*" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", - "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "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==" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" - }, - "node_modules/@types/node": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", - "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, - "node_modules/@types/prettier": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz", - "integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "node_modules/@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", - "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", - "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "node_modules/accepts": { - "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==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/archiver": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", - "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", - "dependencies": { - "archiver-utils": "^1.3.0", - "async": "^2.0.0", - "buffer-crc32": "^0.2.1", - "glob": "^7.0.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0", - "tar-stream": "^1.5.0", - "walkdir": "^0.0.11", - "zip-stream": "^1.1.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/archiver-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", - "dependencies": { - "glob": "^7.0.0", - "graceful-fs": "^4.1.0", - "lazystream": "^1.0.0", - "lodash": "^4.8.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/archiver-utils/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "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==" - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "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.", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-jest/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "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==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/babel-loader/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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node-babel-7": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node-babel-7/-/babel-plugin-dynamic-import-node-babel-7-2.0.7.tgz", - "integrity": "sha512-8DO7mdeczoxi0z1ggb6wS/yWkwM2F9uMPKsVeohK1Ff389JENDfZd+aINwM5r2p66IZGR0rkMrYCr2EyEGrGAQ==", - "dependencies": { - "@babel/plugin-syntax-dynamic-import": "^7.0.0-beta.42" - } - }, - "node_modules/babel-plugin-formatjs": { - "version": "10.2.20", - "resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-10.2.20.tgz", - "integrity": "sha512-1aTDwWlY0HC1D0+4/sb05ZfN7nbyJOnnnoRNGZoLuFp4ji7fN6/8GjXW2lEWjb3vYo+URms/W10x5Yid6Nm26w==", - "dependencies": { - "@babel/core": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "7", - "@babel/traverse": "7", - "@babel/types": "^7.9.5", - "@formatjs/icu-messageformat-parser": "2.0.6", - "@formatjs/ts-transformer": "3.4.2", - "@types/babel__core": "^7.1.7", - "@types/babel__helper-plugin-utils": "7", - "tslib": "^2.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "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==", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "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": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001335", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz", - "integrity": "sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/chalk/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/chalk/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==" - }, - "node_modules/chalk/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==" - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/compress-commons": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", - "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", - "dependencies": { - "buffer-crc32": "^0.2.1", - "crc32-stream": "^2.0.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/compress-commons/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "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==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin": { - "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==", - "dependencies": { - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.1", - "globby": "^11.0.3", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "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.", - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.4.tgz", - "integrity": "sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==", - "dependencies": { - "browserslist": "^4.20.3", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.4.tgz", - "integrity": "sha512-4iF+QZkpzIz0prAFuepmxwJ2h5t4agvE8WPYqs2mjLJMNNwJOnpch76w2Q7bUfCPEv/V7wpvOfog0w273M+ZSw==", - "deprecated": "core-js-pure@<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-pure.", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dependencies": { - "buffer": "^5.1.0" - } - }, - "node_modules/crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", - "dependencies": { - "crc": "^3.4.4", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "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==" - }, - "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==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-env": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", - "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", - "dependencies": { - "cross-spawn": "^6.0.5" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/cross-fetch": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", - "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", - "dependencies": { - "node-fetch": "^2.6.7", - "whatwg-fetch": "^2.0.4" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "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==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "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==" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domready": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", - "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=" - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.131", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.131.tgz", - "integrity": "sha512-oi3YPmaP87hiHn0c4ePB67tXaF+ldGhxvZnT19tW9zX6/Ej+pLN0Afja5rQ6S+TND7I9EuwQTT8JYn1k7R7rrw==" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "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==" - }, - "node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "dependencies": { - "stackframe": "^1.1.1" - } - }, - "node_modules/es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz", - "integrity": "sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-4.0.0.tgz", - "integrity": "sha512-kWuiJxzV5NwOwZcpyozTzDT5KJhBw292bbYro9Is7BWnbNMg15Gmpluc1CTetiCatF8DRkNvgPAOaSyg+bYr3g==", - "dependencies": { - "get-stdin": "^6.0.0" - }, - "bin": { - "eslint-config-prettier-check": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=3.14.1" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-webpack": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.10.0.tgz", - "integrity": "sha1-tvJGjcPotOoHbl11vs6NqTJ4mwc=", - "dependencies": { - "array-find": "^1.0.0", - "debug": "^2.6.8", - "enhanced-resolve": "~0.9.0", - "find-root": "^1.1.0", - "has": "^1.0.1", - "interpret": "^1.0.0", - "lodash": "^4.17.4", - "node-libs-browser": "^1.0.0 || ^2.0.0", - "resolve": "^1.4.0", - "semver": "^5.3.0" - }, - "peerDependencies": { - "eslint-plugin-import": ">=1.4.0", - "webpack": ">=1.11.0" - } - }, - "node_modules/eslint-import-resolver-webpack/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-import-resolver-webpack/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-header": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", - "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", - "peerDependencies": { - "eslint": ">=7.7.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.23.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", - "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", - "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.0.2", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^3.1.0", - "language-tags": "^1.0.5" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-jsx-a11y/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==" - }, - "node_modules/eslint-plugin-prettier": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.1.tgz", - "integrity": "sha512-/PMttrarPAY78PLvV3xfWibMOdMDl57hmlQ2XqFeA37wd+CJ7WSxV7txqjVPHi/AAFKd2lX0ZqfsOc/i5yFCSQ==", - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">= 5.0.0", - "prettier": ">= 1.13.0" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", - "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==", - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.4", - "object.fromentries": "^2.0.4", - "object.values": "^1.1.4", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.5" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-visitor-keys": { - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eslint/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/expect/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/expect/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==" - }, - "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "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==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formidable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", - "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", - "dev": true, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-extra/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-rev-sync": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-3.0.2.tgz", - "integrity": "sha512-Nd5RiYpyncjLv0j6IONy0lGzAqdRXUaBctuGBbrEA2m6Bn4iDrN/9MeQTXuiquw8AEKL9D2BW0nw5m/lQvxqnQ==", - "dependencies": { - "escape-string-regexp": "1.0.5", - "graceful-fs": "4.1.15", - "shelljs": "0.8.5" - } - }, - "node_modules/git-rev-sync/node_modules/graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "node_modules/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, - "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==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "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==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "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==" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/htmlparser2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-loader": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ignore-loader/-/ignore-loader-0.1.2.tgz", - "integrity": "sha1-2B8kA3bQuk8Nd4lyw60lh0EXpGM=" - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipaddr.js": { - "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==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==" - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dependencies": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-jsdom-global": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom-global/-/jest-environment-jsdom-global-2.0.4.tgz", - "integrity": "sha512-1vB8q+PrszXW4Pf7Zgp3eQ4oNVbA7GY6+jmrg1qi6RtYRWDJ60/xdkhjqAbQpX8BRyvqQJYQi66LXER5YNeHXg==", - "peerDependencies": { - "jest-environment-jsdom": "22.x || 23.x || 24.x || 25.x || 26.x" - } - }, - "node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-expect-message": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-expect-message/-/jest-expect-message-1.0.0.tgz", - "integrity": "sha512-erWSJQUB6ZfExlBVuyWyK2LibVROzW04HOs/JfDDDUQRenfE2q2mlXrdOCLil7ZRQwByb/FJuLgGCf3jn+RFfw==" - }, - "node_modules/jest-fetch-mock": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-2.1.2.tgz", - "integrity": "sha512-tcSR4Lh2bWLe1+0w/IwvNxeDocMI/6yIA2bijZ0fyWxC4kQ18lckQ1n7Yd40NKuisGmcGBRFPandRXrW/ti/Bw==", - "dependencies": { - "cross-fetch": "^2.2.2", - "promise-polyfill": "^7.1.1" - } - }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-haste-map": { - "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==", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "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==", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve/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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-runtime/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dependencies": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "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==" - }, - "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==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonfile/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz", - "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==", - "dependencies": { - "array-includes": "^3.1.4", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "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==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=" - }, - "node_modules/merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", - "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", - "dependencies": { - "is-plain-obj": "^1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "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==" - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types/node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "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==" - }, - "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": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/mitt": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.2.tgz", - "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=" - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/morgan": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", - "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", - "dependencies": { - "basic-auth": "~2.0.0", - "debug": "2.6.9", - "depd": "~1.1.2", - "on-finished": "~2.3.0", - "on-headers": "~1.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/morgan/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/morgan/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/morgan/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/morgan/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/mrmime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", - "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/nock": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", - "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "optional": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-notifier/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==" - }, - "node_modules/normalize-package-data": { - "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==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "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==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "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==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "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==" - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-prefix-selector": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.15.0.tgz", - "integrity": "sha512-9taaTPs6I4906QC03zBBt0LfTWAhrqEWlKSj0jRlxrg1yV+O91h0wcquu6krcA5L6aEv3QnCeG8B1vZ5WT4ecQ==", - "peerDependencies": { - "postcss": ">4 <9" - } - }, - "node_modules/postcss/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/posthtml": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz", - "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", - "dependencies": { - "posthtml-parser": "^0.2.0", - "posthtml-render": "^1.0.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posthtml-parser": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz", - "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", - "dependencies": { - "htmlparser2": "^3.8.3", - "isobject": "^2.1.0" - } - }, - "node_modules/posthtml-parser/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posthtml-rename-id": { - "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==", - "dependencies": { - "escape-string-regexp": "1.0.5" - } - }, - "node_modules/posthtml-render": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", - "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/posthtml-svg-mode": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", - "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", - "dependencies": { - "merge-options": "1.0.1", - "posthtml": "^0.9.2", - "posthtml-parser": "^0.2.1", - "posthtml-render": "^1.0.6" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pretty-format/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/pretty-format/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==" - }, - "node_modules/pretty-format/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==" - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-polyfill": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz", - "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-addr": { - "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==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "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==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-refresh": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", - "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "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/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/replace-in-file": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.3.2.tgz", - "integrity": "sha512-Dbt5pXKvFVPL3WAaEB3ZX+95yP0CeAtIPJDwYzHbPP5EAHn+0UoegH/Wg3HKflU9dYBH8UnBC2NvY3P+9EZtTg==", - "dependencies": { - "chalk": "^4.1.2", - "glob": "^7.2.0", - "yargs": "^17.2.1" - }, - "bin": { - "replace-in-file": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/replace-in-file/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/replace-in-file/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/replace-in-file/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==" - }, - "node_modules/replace-in-file/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/replace-in-file/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/replace-in-file/node_modules/yargs": { - "version": "17.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", - "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/replace-in-file/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "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.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "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/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/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": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "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==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/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==" - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "node_modules/speed-measure-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-Re0wX5CtM6gW7bZA64ONOfEPEhwbiSF/vz6e2GvadjuaPrQcHTQdRGsD8+BE7iUOysXH8tIenkPCQBEcspXsNg==", - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "webpack": "^1 || ^2 || ^3 || ^4 || ^5" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "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": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "engines": { - "node": ">=0.10.0" - } - }, - "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/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/superagent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz", - "integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==", - "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at .", - "dev": true, - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.2", - "methods": "^1.1.2", - "mime": "^2.4.6", - "qs": "^6.9.4", - "readable-stream": "^3.6.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 7.0.0" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/superagent/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/superagent/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/supertest": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz", - "integrity": "sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ==", - "dev": true, - "dependencies": { - "methods": "^1.1.2", - "superagent": "^3.8.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/supertest/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/supertest/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/supertest/node_modules/superagent": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", - "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", - "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at .", - "dev": true, - "dependencies": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-baker": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/svg-baker/-/svg-baker-1.7.0.tgz", - "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==", - "dependencies": { - "bluebird": "^3.5.0", - "clone": "^2.1.1", - "he": "^1.1.1", - "image-size": "^0.5.1", - "loader-utils": "^1.1.0", - "merge-options": "1.0.1", - "micromatch": "3.1.0", - "postcss": "^5.2.17", - "postcss-prefix-selector": "^1.6.0", - "posthtml-rename-id": "^1.0", - "posthtml-svg-mode": "^1.0.3", - "query-string": "^4.3.2", - "traverse": "^0.6.6" - } - }, - "node_modules/svg-baker-runtime": { - "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==", - "dependencies": { - "deepmerge": "1.3.2", - "mitt": "1.1.2", - "svg-baker": "^1.7.0" - } - }, - "node_modules/svg-baker-runtime/node_modules/deepmerge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", - "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/svg-baker/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svg-baker/node_modules/micromatch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz", - "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.2.2", - "define-property": "^1.0.0", - "extend-shallow": "^2.0.1", - "extglob": "^2.0.2", - "fragment-cache": "^0.2.1", - "kind-of": "^5.0.2", - "nanomatch": "^1.2.1", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/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": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-sprite-loader": { - "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==", - "dependencies": { - "bluebird": "^3.5.0", - "deepmerge": "1.3.2", - "domready": "1.0.8", - "escape-string-regexp": "1.0.5", - "loader-utils": "^1.1.0", - "svg-baker": "^1.5.0", - "svg-baker-runtime": "^1.4.7", - "url-slug": "2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/svg-sprite-loader/node_modules/deepmerge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", - "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-sprite-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/svg-sprite-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz", - "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==", - "dependencies": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.8.0-beta.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "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==" - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/terser/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/terser/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==" - }, - "node_modules/terser/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==", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "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==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unidecode": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/unidecode/-/unidecode-0.1.8.tgz", - "integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=", - "engines": { - "node": ">= 0.4.12" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/url-slug/-/url-slug-2.0.0.tgz", - "integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=", - "dependencies": { - "unidecode": "0.1.8" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, - "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "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==" - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walkdir": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watch": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.1.tgz", - "integrity": "sha1-N7f8S3vMr6n2OY3KVqKkVFXbSqI=", - "dependencies": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/watch/node_modules/exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dependencies": { - "merge": "^1.2.0" - } - }, - "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.72.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz", - "integrity": "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", - "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", - "dependencies": { - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", - "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.1", - "@webpack-cli/info": "^1.4.1", - "@webpack-cli/serve": "^1.6.1", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webpack-cli/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/webpack-cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack-cli/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/webpack-cli/node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack-cli/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-cli/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-cli/node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-cli/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-cli/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-hot-middleware": { - "version": "2.25.1", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz", - "integrity": "sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw==", - "dependencies": { - "ansi-html-community": "0.0.8", - "html-entities": "^2.1.0", - "querystring": "^0.2.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/webpack-hot-server-middleware": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/webpack-hot-server-middleware/-/webpack-hot-server-middleware-0.6.1.tgz", - "integrity": "sha512-YOKwdS0hnmADsNCsReGkMOBkoz2YVrQZvnVcViM2TDXlK9NnaOGXmnrLFjzwsHFa0/iuJy/QJFEoMxzk8R1Mgg==", - "dependencies": { - "debug": "^3.1.0", - "require-from-string": "^2.0.1", - "source-map-support": "^0.5.3" - }, - "peerDependencies": { - "webpack": "*" - } - }, - "node_modules/webpack-hot-server-middleware/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-notifier": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.15.0.tgz", - "integrity": "sha512-N2V8UMgRB5komdXQRavBsRpw0hPhJq2/SWNOGuhrXpIgRhcMexzkGQysUyGStHLV5hkUlgpRiF7IUXoBqyMmzQ==", - "dependencies": { - "node-notifier": "^9.0.0", - "strip-ansi": "^6.0.0" - }, - "peerDependencies": { - "@types/webpack": ">4.41.31" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - } - } - }, - "node_modules/webpack-notifier/node_modules/node-notifier": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", - "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==", - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/webpack-notifier/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/webpack-notifier/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "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==" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/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==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "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==" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zip-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", - "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", - "dependencies": { - "archiver-utils": "^1.3.0", - "compress-commons": "^1.2.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - } - }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -16215,6 +1654,7 @@ "version": "5.15.2", "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.2.tgz", "integrity": "sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==", + "dev": true, "requires": { "@babel/runtime": "^7.7.7", "hoist-non-react-statics": "^3.3.1", @@ -16652,8 +2092,7 @@ "@webpack-cli/configtest": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "requires": {} + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==" }, "@webpack-cli/info": { "version": "1.4.1", @@ -16666,8 +2105,7 @@ "@webpack-cli/serve": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "requires": {} + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==" }, "@xtuc/ieee754": { "version": "1.2.0", @@ -16727,14 +2165,12 @@ "acorn-import-assertions": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "requires": {} + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" }, "acorn-walk": { "version": "7.2.0", @@ -16789,8 +2225,7 @@ "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" }, "ansi-colors": { "version": "4.1.1", @@ -18914,8 +4349,7 @@ "eslint-plugin-header": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", - "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", - "requires": {} + "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==" }, "eslint-plugin-import": { "version": "2.23.4", @@ -20007,6 +5441,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==", + "dev": true, "requires": { "react-is": "^16.7.0" } @@ -20782,8 +6217,7 @@ "jest-environment-jsdom-global": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/jest-environment-jsdom-global/-/jest-environment-jsdom-global-2.0.4.tgz", - "integrity": "sha512-1vB8q+PrszXW4Pf7Zgp3eQ4oNVbA7GY6+jmrg1qi6RtYRWDJ60/xdkhjqAbQpX8BRyvqQJYQi66LXER5YNeHXg==", - "requires": {} + "integrity": "sha512-1vB8q+PrszXW4Pf7Zgp3eQ4oNVbA7GY6+jmrg1qi6RtYRWDJ60/xdkhjqAbQpX8BRyvqQJYQi66LXER5YNeHXg==" }, "jest-environment-node": { "version": "26.6.2", @@ -20918,8 +6352,7 @@ "jest-pnp-resolver": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "requires": {} + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" }, "jest-regex-util": { "version": "26.0.0", @@ -22398,8 +7831,7 @@ "postcss-prefix-selector": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.15.0.tgz", - "integrity": "sha512-9taaTPs6I4906QC03zBBt0LfTWAhrqEWlKSj0jRlxrg1yV+O91h0wcquu6krcA5L6aEv3QnCeG8B1vZ5WT4ecQ==", - "requires": {} + "integrity": "sha512-9taaTPs6I4906QC03zBBt0LfTWAhrqEWlKSj0jRlxrg1yV+O91h0wcquu6krcA5L6aEv3QnCeG8B1vZ5WT4ecQ==" }, "posthtml": { "version": "0.9.2", @@ -22675,15 +8107,6 @@ } } }, - "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "peer": true, - "requires": { - "loose-envify": "^1.1.0" - } - }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -23799,14 +9222,6 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -23861,6 +9276,14 @@ "es-abstract": "^1.19.5" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -25381,8 +10804,7 @@ "ws": { "version": "7.5.7", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "requires": {} + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==" }, "xml-name-validator": { "version": "3.0.0", diff --git a/packages/pwa-kit-dev/package.json b/packages/pwa-kit-dev/package.json index b93dd354d7..480bd09cfb 100644 --- a/packages/pwa-kit-dev/package.json +++ b/packages/pwa-kit-dev/package.json @@ -1,6 +1,6 @@ { "name": "pwa-kit-dev", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "description": "Build tools for pwa-kit", "repository": { "type": "git", @@ -89,7 +89,7 @@ "morgan": "1.9.1", "open": "^8.4.0", "prettier": "^1.18.2", - "pwa-kit-runtime": "^2.4.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", "react-refresh": "^0.13.0", "replace-in-file": "^6.2.0", "request": "^2.88.0", @@ -109,7 +109,7 @@ }, "devDependencies": { "@loadable/component": "^5.15.0", - "internal-lib-build": "^2.4.0-dev", + "internal-lib-build": "^2.5.0-dev", "nock": "^13.1.1", "superagent": "^6.1.0", "supertest": "^4.0.2" diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index b43cc9ceb8..7bfc61153b 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -66,6 +66,7 @@ const entryPointExists = (segments) => { const findInProjectThenSDK = (pkg) => { const projectPath = resolve(projectDir, 'node_modules', pkg) + console.log('~projectPath', projectPath) return fs.existsSync(projectPath) ? projectPath : resolve(sdkDir, 'node_modules', pkg) } diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index c05fb9ba58..865e1ebbfa 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -9,6 +9,11 @@ import webpack from 'webpack' import path, {resolve} from 'path' import fs from 'fs' +const projectDir = process.cwd() +const pkg = require(resolve(projectDir, 'package.json')) + +console.log('~testing!!!') + /** * Allows users to override special SDK components by placing override * files in certain magic locations in a project. @@ -24,10 +29,33 @@ export const createModuleReplacementPlugin = (projectDir) => { } return new RegExp(str) } + console.log('~pkg', pkg) + console.log('~pkg?.mobify', pkg?.mobify) + console.log('~pkg?.mobify?.extends', pkg?.mobify?.extends) + + const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : undefined + const overridables = [ + { + path: makeRegExp('app$'), + // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), + newPath: resolve( + 'node_modules', + extendPath, + projectDir + '/pwa-kit/overrides/app' + ) + }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), - newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index') + // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), + newPath: resolve( + 'node_modules', + extendPath, + 'app', + 'components', + '_app-config', + 'index' + ) }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), @@ -35,21 +63,25 @@ export const createModuleReplacementPlugin = (projectDir) => { }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), - newPath: resolve(projectDir, 'app', 'components', '_app', 'index') + // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), + newPath: resolve('node_modules', extendPath, 'app', 'components', '_app', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), - newPath: resolve(projectDir, 'app', 'components', '_error', 'index') + // newPath: resolve(projectDir, 'app', 'components', '_error', 'index'), + newPath: resolve('node_modules', extendPath, 'app', 'components', '_error', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), - newPath: resolve(projectDir, 'app', 'routes') + // newPath: resolve(projectDir, 'app', 'routes') + newPath: resolve('node_modules', extendPath, 'app', 'routes') } ] const extensions = ['.ts', '.tsx', '.js', '.jsx'] const replacements = [] overridables.forEach(({path, newPath}) => { + console.log('~path', path, '~newPath', newPath) extensions.forEach((ext) => { const replacement = newPath + ext if (fs.existsSync(replacement)) { diff --git a/packages/pwa-kit-react-sdk/CHANGELOG.md b/packages/pwa-kit-react-sdk/CHANGELOG.md index 5232ad0d34..5daa053059 100644 --- a/packages/pwa-kit-react-sdk/CHANGELOG.md +++ b/packages/pwa-kit-react-sdk/CHANGELOG.md @@ -1,3 +1,7 @@ +## v2.5.0-dev (Dec 06, 2022) +## v2.4.0-dev (Dec 06, 2022) +## v2.5.0-dev (Dec 06, 2022) +## v2.5.0-dev.0 (Dec 06, 2022) ## v2.4.0-dev (Oct 27, 2022) ## v2.3.0 (Oct 27, 2022) - Support `react-query` server-side data fetching. [#724](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/724) diff --git a/packages/pwa-kit-react-sdk/package-lock.json b/packages/pwa-kit-react-sdk/package-lock.json index e1fced1175..a60219adaa 100644 --- a/packages/pwa-kit-react-sdk/package-lock.json +++ b/packages/pwa-kit-react-sdk/package-lock.json @@ -1,6 +1,6 @@ { "name": "pwa-kit-react-sdk", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/pwa-kit-react-sdk/package.json b/packages/pwa-kit-react-sdk/package.json index f7684d598a..379853fb9e 100644 --- a/packages/pwa-kit-react-sdk/package.json +++ b/packages/pwa-kit-react-sdk/package.json @@ -1,6 +1,6 @@ { "name": "pwa-kit-react-sdk", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "description": "A library that supports the isomorphic React rendering pipeline for Commerce Cloud Managed Runtime apps", "engines": { "node": "^14.0.0", @@ -50,7 +50,7 @@ "hoist-non-react-statics": "^3.3.1", "mkdirp": "^1.0.4", "prop-types": "^15.6.0", - "pwa-kit-runtime": "^2.4.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", "react-ssr-prepass": "^1.5.0", "react-uid": "^2.2.0", "serialize-javascript": "^6.0.0", @@ -63,7 +63,7 @@ "@wojtekmaj/enzyme-adapter-react-17": "^0.6.6", "enzyme": "^3.8.0", "enzyme-adapter-react-16": "1.15.2", - "internal-lib-build": "^2.4.0-dev", + "internal-lib-build": "^2.5.0-dev", "node-html-parser": "^3.3.4", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/packages/pwa-kit-runtime/CHANGELOG.md b/packages/pwa-kit-runtime/CHANGELOG.md index 5b348a4ed7..e9a419c6e9 100644 --- a/packages/pwa-kit-runtime/CHANGELOG.md +++ b/packages/pwa-kit-runtime/CHANGELOG.md @@ -1,3 +1,7 @@ +## v2.5.0-dev (Dec 06, 2022) +## v2.4.0-dev (Dec 06, 2022) +## v2.5.0-dev (Dec 06, 2022) +## v2.5.0-dev.0 (Dec 06, 2022) ## v2.4.0-dev (Oct 27, 2022) ## v2.3.0 (Oct 27, 2022) - Performance: Skip retries when flushing CloudWatch metrics, prioritize returning a response instead. [720](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/720) diff --git a/packages/pwa-kit-runtime/package-lock.json b/packages/pwa-kit-runtime/package-lock.json index e3ca488180..1a058e22e3 100644 --- a/packages/pwa-kit-runtime/package-lock.json +++ b/packages/pwa-kit-runtime/package-lock.json @@ -1,6 +1,6 @@ { "name": "pwa-kit-runtime", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/pwa-kit-runtime/package.json b/packages/pwa-kit-runtime/package.json index 00dbd83d6c..68a4fc691e 100644 --- a/packages/pwa-kit-runtime/package.json +++ b/packages/pwa-kit-runtime/package.json @@ -1,6 +1,6 @@ { "name": "pwa-kit-runtime", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "description": "The PWAKit Runtime", "repository": { "type": "git", @@ -51,7 +51,7 @@ "@serverless/event-mocks": "^1.1.1", "aws-lambda-mock-context": "^3.2.1", "fs-extra": "^10.1.0", - "internal-lib-build": "^2.4.0-dev", + "internal-lib-build": "^2.5.0-dev", "nock": "^13.1.1", "node-fetch": "^2.6.7", "s3rver": "^3.1.0", @@ -61,7 +61,7 @@ "watch": "1.0.1" }, "peerDependencies": { - "pwa-kit-dev": "^2.4.0-dev" + "pwa-kit-dev": "^2.5.0-dev" }, "peerDependenciesMeta": { "pwa-kit-dev": { diff --git a/packages/spike-extendend-retail-app/README.md b/packages/spike-extendend-retail-app/README.md new file mode 100644 index 0000000000..5468329a6d --- /dev/null +++ b/packages/spike-extendend-retail-app/README.md @@ -0,0 +1,3 @@ +# Steps + +1. `npm i full-icu@^1.3.1 pwa-kit-dev cross-env` diff --git a/packages/spike-extendend-retail-app/babel.config.js b/packages/spike-extendend-retail-app/babel.config.js new file mode 100644 index 0000000000..c865361ef4 --- /dev/null +++ b/packages/spike-extendend-retail-app/babel.config.js @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +module.exports = require('pwa-kit-dev/configs/babel/babel-config') diff --git a/packages/spike-extendend-retail-app/config/default.js b/packages/spike-extendend-retail-app/config/default.js new file mode 100644 index 0000000000..dfaf37f975 --- /dev/null +++ b/packages/spike-extendend-retail-app/config/default.js @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +const sites = require('./sites.js') + +module.exports = { + app: { + url: { + site: 'path', + locale: 'path', + showDefaults: true + }, + defaultSite: 'RefArchGlobal', + siteAliases: { + RefArch: 'us', + RefArchGlobal: 'global' + }, + sites, + commerceAPI: { + proxyPath: `/mobify/proxy/api`, + parameters: { + clientId: 'c9c45bfd-0ed3-4aa2-9971-40f88962b836', + organizationId: 'f_ecom_zzrf_001', + shortCode: '8o7m175y', + siteId: 'RefArchGlobal' + } + }, + einsteinAPI: { + proxyPath: `/mobify/proxy/einstein`, + einsteinId: '1ea06c6e-c936-4324-bcf0-fada93f83bb1', + // This differs from the siteId in commerceAPIConfig for testing purposes + siteId: 'aaij-MobileFirst' + } + }, + externals: [], + pageNotFoundURL: '/page-not-found', + ssrEnabled: true, + ssrOnly: ['ssr.js', 'ssr.js.map', 'node_modules/**/*.*'], + ssrShared: [ + 'static/ico/favicon.ico', + 'static/robots.txt', + '**/*.js', + '**/*.js.map', + '**/*.json' + ], + ssrParameters: { + ssrFunctionNodeVersion: '14.x', + proxyConfigs: [ + { + host: 'kv7kzm78.api.commercecloud.salesforce.com', + path: 'api' + }, + { + host: 'zzrf-001.sandbox.us03.dx.commercecloud.salesforce.com', + path: 'ocapi' + }, + { + host: 'api.cquotient.com', + path: 'einstein' + } + ] + } +} diff --git a/packages/spike-extendend-retail-app/config/sites.js b/packages/spike-extendend-retail-app/config/sites.js new file mode 100644 index 0000000000..9c389a0f6c --- /dev/null +++ b/packages/spike-extendend-retail-app/config/sites.js @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +// Provide the sites for your app. Each site includes site id, and its localization configuration. +// You can also provide alias for your locale. They will be used in place of your locale id when generating paths across the app +module.exports = [ + { + id: 'RefArch', + l10n: { + supportedCurrencies: ['USD'], + defaultCurrency: 'USD', + defaultLocale: 'en-US', + supportedLocales: [ + { + id: 'en-US', + preferredCurrency: 'USD' + }, + { + id: 'en-CA', + preferredCurrency: 'USD' + } + ] + } + }, + { + id: 'RefArchGlobal', + l10n: { + supportedCurrencies: ['GBP', 'EUR', 'CNY', 'JPY'], + defaultCurrency: 'GBP', + supportedLocales: [ + { + id: 'de-DE', + preferredCurrency: 'EUR' + }, + { + id: 'en-GB', + preferredCurrency: 'GBP' + }, + { + id: 'es-MX', + preferredCurrency: 'MXN' + }, + { + id: 'fr-FR', + preferredCurrency: 'EUR' + }, + { + id: 'it-IT', + preferredCurrency: 'EUR' + }, + { + id: 'ja-JP', + preferredCurrency: 'JPY' + }, + { + id: 'ko-KR', + preferredCurrency: 'KRW' + }, + { + id: 'pt-BR', + preferredCurrency: 'BRL' + }, + { + id: 'zh-CN', + preferredCurrency: 'CNY' + }, + { + id: 'zh-TW', + preferredCurrency: 'TWD' + } + ], + defaultLocale: 'en-GB' + } + } +] diff --git a/packages/spike-extendend-retail-app/package-lock.json b/packages/spike-extendend-retail-app/package-lock.json new file mode 100644 index 0000000000..924ee84080 --- /dev/null +++ b/packages/spike-extendend-retail-app/package-lock.json @@ -0,0 +1,7214 @@ +{ + "name": "spike-extended-retail-app", + "version": "2.5.0-dev", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==" + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + } + } + }, + "@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==" + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/runtime": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/runtime-corejs3": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", + "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", + "requires": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@chakra-ui/accordion": { + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-1.4.12.tgz", + "integrity": "sha512-Hq5Ie1SI4mmtgBmeuir+f7QKgopZEyQOojgufo/A20keMSy5Yk9WZjkXNQgvoIRl1AsoziIPUlubQOtkBZjjbA==", + "requires": { + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/alert": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-1.3.7.tgz", + "integrity": "sha512-fFpJYBpHOIK/BX4BVl/xafYiDBUW+Bq/gUYDOo4iAiO4vHgxo74oa+yOwSRNlNjAgIX7pi2ridsYQALKyWyxxQ==", + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/anatomy": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-1.3.0.tgz", + "integrity": "sha512-vj/lcHkCuq/dtbl69DkNsftZTnrGEegB90ODs1B6rxw8iVMdDSYkthPPFAkqzNs4ppv1y2IBjELuVzpeta1OHA==", + "requires": { + "@chakra-ui/theme-tools": "^1.3.6" + } + }, + "@chakra-ui/avatar": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-1.3.11.tgz", + "integrity": "sha512-/eRRK48Er92/QWAfWhxsJIN0gZBBvk+ew4Hglo+pxt3/NDnfTF2yPE7ZN29Dl6daPNbyTOpoksMwaU2mZIqLgA==", + "requires": { + "@chakra-ui/image": "1.1.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/breadcrumb": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-1.3.6.tgz", + "integrity": "sha512-iXxienBO6RUnJEcDvyDWyRt+mzPyl7/b6N8i0vrjGKGLpgtayJFvIdo33tFcvx6TCy7V9hiE3HTtZnNomWdR6A==", + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/button": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-1.5.10.tgz", + "integrity": "sha512-IVEOrleI378CckAa3b3CTUHMPZRfpy6LPwn1Mx3sMpHEkDTKu8zJcjgEvCE8HYzNC1KbwBsa1PfTgk40ui6EtA==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/spinner": "1.2.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/checkbox": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-1.7.1.tgz", + "integrity": "sha512-9Io97yn8OrdaIynCj+3Z/neJV7lTT1MtcdYh3BKMd7WnoJDkRY/GlBM8zsdgC5Wvm+ZQ1M83t0YvRPKLLzusyA==", + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/clickable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-1.2.6.tgz", + "integrity": "sha512-89SsrQwwwAadcl/bN8nZqqaaVhVNFdBXqQnxVy1t07DL5ezubmNb5SgFh9LDznkm9YYPQhaGr3W6HFro7iAHMg==", + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/close-button": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-1.2.7.tgz", + "integrity": "sha512-cYTxfgrIlPU4IZm1sehZXxx/TNQBk9c3LBPvTpywEM8GVRGINh4YLq8WiMaPtO+TDNBnKoWS/jS4IHnR+abADw==", + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/color-mode": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-1.4.8.tgz", + "integrity": "sha512-iD4126DVQi06c6ARr3uf3R2rtEu8aBVjW8rhZ+lOsV26Z15iCJA7OAut13Xu06fcZvgjSB/ChDy6Sx9sV9UjHA==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/control-box": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-1.1.6.tgz", + "integrity": "sha512-EUcq5f854puG6ZA6wAWl4107OPl8+bj4MMHJCa48BB0qec0U8HCEtxQGnFwJmaYLalIAjMfHuY3OwO2A3Hi9hA==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/counter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-1.2.10.tgz", + "integrity": "sha512-HQd09IuJ4z8M8vWajH+99jBWWSHDesQZmnN95jUg3HKOuNleLaipf2JFdrqbO1uWQyHobn2PM6u+B+JCAh2nig==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/css-reset": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-1.1.3.tgz", + "integrity": "sha512-AgfrE7bRTJvNi/4zIfacI/kBHmHmHEIeQtHwCvk/0qM9V2gK1VM3ctYlnibf7BTh17F/UszweOGRb1lHSPfWjw==" + }, + "@chakra-ui/descendant": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-2.1.4.tgz", + "integrity": "sha512-k1olHM6c0fcI5fQxO9rqg9rxripcfHMEm2LkORgH0CAzFn/U75CxCw5ec0IMedNWCdiv740enVfnfhBAoSg7gw==", + "requires": { + "@chakra-ui/react-utils": "^1.2.3" + } + }, + "@chakra-ui/editable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-1.4.2.tgz", + "integrity": "sha512-a5zKghA/IvG7yNkmFl7Z9c2KSsf0FgyijsNPTg/4S5jxyz13QJtoTg40tdpyaxHHCT25y25iUcV4FYCj6Jd01w==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/focus-lock": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-1.2.6.tgz", + "integrity": "sha512-ZJNE1oNdUM1aGWuCJ+bxFa/d3EwxzfMWzTKzSvKDK50GWoUQQ10xFTT9nY/yFpkcwhBvx1KavxKf44mIhIbSog==", + "requires": { + "@chakra-ui/utils": "1.10.4", + "react-focus-lock": "2.5.2" + } + }, + "@chakra-ui/form-control": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-1.6.0.tgz", + "integrity": "sha512-MtUE98aocP2QTgvyyJ/ABuG33mhT3Ox56phKreG3HzbUKByMwrbQSm1QcAgyYdqSZ9eKB2tXx+qgGNh+avAfDA==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/hooks": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-1.9.1.tgz", + "integrity": "sha512-SEeh1alDKzrP9gMLWMnXOUDBQDKF/URL6iTmkumTn6vhawWNla6sPrcMyoCzWdMzwUhZp3QNtCKbUm7dxBXvPw==", + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "compute-scroll-into-view": "1.0.14", + "copy-to-clipboard": "3.3.1" + } + }, + "@chakra-ui/icon": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-2.0.5.tgz", + "integrity": "sha512-ZrqRvCCIxGr4qFd/r1pmtd9tobRmv8KAxV7ygFoc/t4vOSKTcVIjhE12gsI3FzgvXM15ZFVwsxa1zodwgo5neQ==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/icons": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/icons/-/icons-1.1.7.tgz", + "integrity": "sha512-YIHxey/B4M2PyFASlHXtAWFyW+tsAtGAChOJ8dsM2kpu1MbVUqm/6nMI1KIFd7Te5IWuNYA75rAHBdLI0Yu61A==", + "requires": { + "@chakra-ui/icon": "2.0.5", + "@types/react": "^17.0.15" + } + }, + "@chakra-ui/image": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-1.1.10.tgz", + "integrity": "sha512-PJZmhQ/R1PgdMyCRjALfoyq1FNh/WzMAw70sliHLtLcb9hBXniwQZuckYfUshCkUoFBj/ow9d4byn9Culdpk7Q==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/input": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-1.4.6.tgz", + "integrity": "sha512-Ljy/NbOhh9cNQxKTWQRsT4aQiXs2vVya+Cj5NpMAz08NFFjPZovsTawhI7m6ejT5Vsh76QYjh2rOLLI3fWqQQw==", + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/layout": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-1.8.0.tgz", + "integrity": "sha512-GJtEKez5AZu0XQTxI6a6jwA/hMDD36pP0HBxBOGuHP1hWCebDzMjraiMfWiP9w7hKERFE4j19kocHxIXyocfJA==", + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/live-region": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-1.1.6.tgz", + "integrity": "sha512-9gPQHXf7oW0jXyT5R/JzyDMfJ3hF70TqhN8bRH4fMyfNr2Se+SjztMBqCrv5FS5rPjcCeua+e0eArpoB3ROuWQ==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/media-query": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-2.0.4.tgz", + "integrity": "sha512-kn6g/L0IFFUHz2v4yiCsBnhg9jUeA7525Z+AWl+BPtvryi7i9J+AJ27y/QAge7vUGy4dwDeFyxOZTs2oZ9/BsA==", + "requires": { + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/menu": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-1.8.12.tgz", + "integrity": "sha512-X/s74VpOReQW4fCRCa21f/VOe++cXhPz2Sh7pDjtaT3zmKjrJwgk1Kw75cXfNX1eke6hf/wZ0FGweu/m7+C3OA==", + "requires": { + "@chakra-ui/clickable": "1.2.6", + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/modal": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-1.11.1.tgz", + "integrity": "sha512-B2BBDonHb04vbPLAWgko1JYBwgW8ZNSLyhTJK+rbrCsRSgazuLTcwq4hdyJqrYNWtaQEfSwpAXqJ7joMZdv59A==", + "requires": { + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/focus-lock": "1.2.6", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.4.1" + } + }, + "@chakra-ui/number-input": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-1.4.7.tgz", + "integrity": "sha512-LorGRZFMipom8vCUEbLi2s7bTHF2Fgiu766W0jTbzMje+8Z1ZoRQunH9OZWQnxnWQTUfUM2KBW8KwToYh1ojfQ==", + "requires": { + "@chakra-ui/counter": "1.2.10", + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/pin-input": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-1.7.11.tgz", + "integrity": "sha512-KEVUHHmf22tI4F7gzT9+pHi4E5cCyte6M8rPEwRyuc0kUBo48D8OW0BJwGdESWOKMkQXazDF6Zg4o32t45tbpg==", + "requires": { + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/popover": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-1.11.9.tgz", + "integrity": "sha512-hJ1/Lwukox3ryTN7W1wnj+nE44utfLwQYvfUSdatt5dznnh8k0P6Wx7Hmjm1cYffRavBhqzwua/QZDWjJN9N0g==", + "requires": { + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/popper": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-2.4.3.tgz", + "integrity": "sha512-TGzFnYt3mtIVkIejtYIAu4Ka9DaYLzMR4NgcqI6EtaTvgK7Xep+6RTiY/Nq+ZT3l/eaNUwqHRFoNrDUg1XYasA==", + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@popperjs/core": "^2.9.3" + } + }, + "@chakra-ui/portal": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-1.3.10.tgz", + "integrity": "sha512-t2KQ6MXbyf1qFYxWw/bs//CnwD+Clq7mbsP1Y7g+THCz2FvlLlMj45BWocLB30NoNyA8WCS2zyMBszW2/qvDiA==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/progress": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-1.2.6.tgz", + "integrity": "sha512-thaHRIYTVktgV78vJMNwzfCX+ickhSpn2bun6FtGVUphFx4tjV+ggz+IGohm6AH2hapskoR1mQU2iNZb6BK0hQ==", + "requires": { + "@chakra-ui/theme-tools": "1.3.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/provider": { + "version": "1.7.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-1.7.14.tgz", + "integrity": "sha512-FCA33CZy/jFzExglKMioeri8sr9NtDTcNVPnx95ZJiA7WpfFo0xuZ6/fMC4DwIQPkJKbSIZBXYLZ3U10Ntylrw==", + "requires": { + "@chakra-ui/css-reset": "1.1.3", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/radio": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-1.5.1.tgz", + "integrity": "sha512-zO5eShz+j68A7935jJ2q5u3brX/bjPEGh9Pj2+bnKbmC9Vva6jEzBSJsAx9n4WbkAzR3xDMGWsbpivFp8X1tJw==", + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/react": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-1.8.9.tgz", + "integrity": "sha512-NfR5XKVqEWhchFLiWaTWkWeYZJK1SNF2O6sQxFVrX6M+nAgJ3Q9tfMk6/I3II+xc4hXJUcYmUvmw37vT92yMaQ==", + "requires": { + "@chakra-ui/accordion": "1.4.12", + "@chakra-ui/alert": "1.3.7", + "@chakra-ui/avatar": "1.3.11", + "@chakra-ui/breadcrumb": "1.3.6", + "@chakra-ui/button": "1.5.10", + "@chakra-ui/checkbox": "1.7.1", + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/control-box": "1.1.6", + "@chakra-ui/counter": "1.2.10", + "@chakra-ui/css-reset": "1.1.3", + "@chakra-ui/editable": "1.4.2", + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/image": "1.1.10", + "@chakra-ui/input": "1.4.6", + "@chakra-ui/layout": "1.8.0", + "@chakra-ui/live-region": "1.1.6", + "@chakra-ui/media-query": "2.0.4", + "@chakra-ui/menu": "1.8.12", + "@chakra-ui/modal": "1.11.1", + "@chakra-ui/number-input": "1.4.7", + "@chakra-ui/pin-input": "1.7.11", + "@chakra-ui/popover": "1.11.9", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/progress": "1.2.6", + "@chakra-ui/provider": "1.7.14", + "@chakra-ui/radio": "1.5.1", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/select": "1.2.11", + "@chakra-ui/skeleton": "1.2.14", + "@chakra-ui/slider": "1.5.11", + "@chakra-ui/spinner": "1.2.6", + "@chakra-ui/stat": "1.2.7", + "@chakra-ui/switch": "1.3.10", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/table": "1.3.6", + "@chakra-ui/tabs": "1.6.11", + "@chakra-ui/tag": "1.2.7", + "@chakra-ui/textarea": "1.2.11", + "@chakra-ui/theme": "1.14.1", + "@chakra-ui/toast": "1.5.9", + "@chakra-ui/tooltip": "1.5.1", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/react-env": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-1.1.6.tgz", + "integrity": "sha512-L90LNvCfe04FTkN9OPok/o2e60zLJNBH8Im/5dUHvqy7dXLXok8ZDad5vEL46XmGbhe7O8fbxhG6FmAYdcCHrQ==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/react-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-1.2.3.tgz", + "integrity": "sha512-r8pUwCVVB7UPhb0AiRa9ZzSp4xkMz64yIeJ4O4aGy4WMw7TRH4j4QkbkE1YC9tQitrXrliOlvx4WWJR4VyiGpw==", + "requires": { + "@chakra-ui/utils": "^1.10.4" + } + }, + "@chakra-ui/select": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-1.2.11.tgz", + "integrity": "sha512-6Tis1+ZrRjQeWhQfziQn3ZdPphV5ccafpZOhiPdTcM2J1XcXOlII+9rHxvaW+jx7zQ5ly5o8kd7iXzalDgl5wA==", + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/skeleton": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-1.2.14.tgz", + "integrity": "sha512-R0v4DfQ2yjXCJf9SzhTmDb2PLx5//LxsRbjjgRa8qJCR4MZaGswPrekp4dP8YjY8aEYzuZbvHU12T3vqZBk2GA==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/media-query": "2.0.4", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/skip-nav": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-1.2.6.tgz", + "integrity": "sha512-+ya4q3/iW/z3/B7ibaBwcsqa3LIB9MQqOWy4lzJCa8D6eagdSXhPN0+pxjkz6BxyQfxi2Rxz0A6KrgtuwAg2qw==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/slider": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-1.5.11.tgz", + "integrity": "sha512-THkGU2BsA6XMosXcEVQkWVRftqUIAKCb+y4iEpR3C2ztqL7Fl/CbIGwyr5majhPhKc275rb8dfxwp8R0L0ZIiQ==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/spinner": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-1.2.6.tgz", + "integrity": "sha512-GoUCccN120fGRVgUtfuwcEjeoaxffB+XsgpxX7jhWloXf8b6lkqm68bsxX4Ybb2vGN1fANI98/45JmrnddZO/A==", + "requires": { + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/stat": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-1.2.7.tgz", + "integrity": "sha512-m76jumFW1N+mCG4ytrUz9Mh09nZtS4OQcADEvOslfdI5StwwuzasTA1tueaelPzdhBioMwFUWL05Fr1fXbPJ/Q==", + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/styled-system": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-1.19.0.tgz", + "integrity": "sha512-z+bMfWs6jQGkpgarge1kmk78DuDhJIXRUMyRqZ3+CiIkze88bIIsww6mV2i8tEfUfTAvALeMnlYZ1DYsHsTTJw==", + "requires": { + "@chakra-ui/utils": "1.10.4", + "csstype": "3.0.9" + }, + "dependencies": { + "csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + } + } + }, + "@chakra-ui/switch": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-1.3.10.tgz", + "integrity": "sha512-V6qDLY6oECCbPyu7alWWOAhSBI4+SAuT6XW/zEQbelkwuUOiGO1ax67rTXOmZ59A2AaV1gqQFxDh8AcbvwO5XQ==", + "requires": { + "@chakra-ui/checkbox": "1.7.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/system": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-1.12.1.tgz", + "integrity": "sha512-Rp09/rMuPA3hF38OJxeQciGO9N0Ie1GxwHRAw1AFA/TY3fVyK9pNI5oN+J/1cAxq7v9yKdIr1YfnruJTI9xfEg==", + "requires": { + "@chakra-ui/color-mode": "1.4.8", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/styled-system": "1.19.0", + "@chakra-ui/utils": "1.10.4", + "react-fast-compare": "3.2.0" + } + }, + "@chakra-ui/table": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-1.3.6.tgz", + "integrity": "sha512-7agZAgAeDFKviqStvixqnLAH54+setzhx67EztioZTr5Xu+6hQ4rotfJbu8L4i587pcbNg98kCEXEkidjw0XRQ==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/tabs": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-1.6.11.tgz", + "integrity": "sha512-hGs2REEVVWyfgs+qEkPiUsNnqwv3QwXfKYyXaMnGS7CCkGgUiEvIO7n9968/KGnGbM4GuEHX+BxG2suIUf24yg==", + "requires": { + "@chakra-ui/clickable": "1.2.6", + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/tag": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-1.2.7.tgz", + "integrity": "sha512-RKrKOol4i/CnpFfo3T9LMm1abaqM+5Bs0soQLbo1iJBbBACY09sWXrQYvveQ2GYzU/OrAUloHqqmKjyVGOlNtg==", + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/textarea": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-1.2.11.tgz", + "integrity": "sha512-RDWbMyC87/AFRX98EnVum5eig/7hhcvS1BrqW5lvmTgrpr7KVr80Dfa8hUj58Iq37Z7AqZijDPkBn/zg7bPdIg==", + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/theme": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-1.14.1.tgz", + "integrity": "sha512-VeNZi+zD3yDwzvZm234Cy3vnalCzQ+dhAgpHdIYzGO1CYO8DPa+ROcQ70rUueL7dSvUz15KOiGTw6DAl7LXlGA==", + "requires": { + "@chakra-ui/anatomy": "1.3.0", + "@chakra-ui/theme-tools": "1.3.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/theme-tools": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-1.3.6.tgz", + "integrity": "sha512-Wxz3XSJhPCU6OwCHEyH44EegEDQHwvlsx+KDkUDGevOjUU88YuNqOVkKtgTpgMLNQcsrYZ93oPWZUJqqCVNRew==", + "requires": { + "@chakra-ui/utils": "1.10.4", + "@ctrl/tinycolor": "^3.4.0" + } + }, + "@chakra-ui/toast": { + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-1.5.9.tgz", + "integrity": "sha512-rns04bGdMcG7Ijg45L+PfuEW4rCd0Ycraix4EJQhcl9RXI18G9sphmlp9feidhZAkI6Ukafq1YvyvkBfkKnIzQ==", + "requires": { + "@chakra-ui/alert": "1.3.7", + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/theme": "1.14.1", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "@reach/alert": "0.13.2" + } + }, + "@chakra-ui/tooltip": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-1.5.1.tgz", + "integrity": "sha512-EUAlDdlCBt63VpEVtj/RkFjHQVN/xA9gEAumngQdi1Sp+OXPYCBM9GwSY0NwrM1RfKBnhPSH9wz7FwredJWeaw==", + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/transition": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-1.4.8.tgz", + "integrity": "sha512-5uc8LEuCH7+0h++wqAav/EktTHOjbLDSTXQlU9fzPIlNNgyf2eXrHVN2AGMGKiMR9Z4gS7umQjZ54r0w/mZ/Fw==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-1.10.4.tgz", + "integrity": "sha512-AM91VQQxw8F4F1WDA28mqKY6NFIOuzc2Ekkna88imy2OiqqmYH0xkq8J16L2qj4cLiLozpYqba3C79pWioy6FA==", + "requires": { + "@types/lodash.mergewith": "4.6.6", + "css-box-model": "1.2.1", + "framesync": "5.3.0", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/visually-hidden": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-1.1.6.tgz", + "integrity": "sha512-Xzy5bA0UA+IyMgwJizQYSEdgz8cC/tHdmFB3CniXzmpKTSK8mJddeEBl+cGbXHBzxEUhH7xF1eaS41O+0ezWEQ==", + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@ctrl/tinycolor": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz", + "integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==" + }, + "@emotion/babel-plugin": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz", + "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + } + }, + "@emotion/cache": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "requires": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" + } + }, + "@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "@emotion/react": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz", + "integrity": "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "requires": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "@emotion/styled": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz", + "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + } + }, + "@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==" + }, + "@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + }, + "@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + }, + "@formatjs/cli": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-4.8.4.tgz", + "integrity": "sha512-zZI8QYVl5CHaT6j9OHjS+0mMnWzopBVH0un4n5b4IhIJRzIKnxwFTkxBp5Ifqj6FntrwzIGqP+D6v8u7MPYsmw==", + "requires": { + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/ts-transformer": "3.9.4", + "@types/estree": "^0.0.50", + "@types/fs-extra": "^9.0.1", + "@types/json-stable-stringify": "^1.0.32", + "@types/node": "14", + "@vue/compiler-core": "^3.2.23", + "chalk": "^4.0.0", + "commander": "8", + "fast-glob": "^3.2.7", + "fs-extra": "10", + "json-stable-stringify": "^1.0.1", + "loud-rejection": "^2.2.0", + "tslib": "^2.1.0", + "typescript": "^4.5", + "vue": "^3.2.23" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "requires": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz", + "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "intl-messageformat": "9.13.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + } + } + }, + "@formatjs/intl-displaynames": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz", + "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-listformat": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz", + "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-localematcher": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/ts-transformer": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.9.4.tgz", + "integrity": "sha512-S5q/zsTodaKtxVxNvbRQ9APenJtm5smXE76usS+5yF2vWQdZHkagmOKWfgvfIbesP4SR2B+i3koqlnlpqSIp5w==", + "requires": { + "@formatjs/icu-messageformat-parser": "2.1.0", + "@types/node": "14 || 16 || 17", + "chalk": "^4.0.0", + "tslib": "^2.1.0", + "typescript": "^4.5" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "requires": { + "jest-get-type": "^29.2.0" + } + }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@lerna/child-process": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz", + "integrity": "sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==", + "requires": { + "chalk": "^2.3.1", + "execa": "^1.0.0", + "strong-log-transformer": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + } + } + }, + "@lhci/cli": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@lhci/cli/-/cli-0.7.2.tgz", + "integrity": "sha512-WE/1YPzlUUtGEm3KWr8rP09w6TNOfpa+dUm+EYpIm+xVtJHgcVKuVURrrQ4SXN9jy36V+aAfnKOQdvOdqel5QA==", + "requires": { + "@lhci/utils": "0.7.2", + "chrome-launcher": "^0.13.4", + "compression": "^1.7.4", + "debug": "^4.3.1", + "express": "^4.17.1", + "inquirer": "^6.3.1", + "isomorphic-fetch": "^3.0.0", + "lighthouse": "7.3.0", + "lighthouse-logger": "1.2.0", + "open": "^7.1.0", + "tmp": "^0.1.0", + "update-notifier": "^3.0.1", + "uuid": "^8.3.1", + "yargs": "^15.4.1", + "yargs-parser": "^13.1.2" + } + }, + "@lhci/utils": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@lhci/utils/-/utils-0.7.2.tgz", + "integrity": "sha512-KqqF8lPkRpFflfBY6MQLBOfqymMAj6GnOkE54kbZnRwmtgceSSzPa80/fNd/z1T8j/oWT6DQAkA+yLbPcTMQrQ==", + "requires": { + "debug": "^4.3.1", + "isomorphic-fetch": "^3.0.0", + "js-yaml": "^3.13.1", + "lighthouse": "7.3.0", + "tree-kill": "^1.2.1" + } + }, + "@loadable/component": { + "version": "5.15.2", + "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.2.tgz", + "integrity": "sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==", + "requires": { + "@babel/runtime": "^7.7.7", + "hoist-non-react-statics": "^3.3.1", + "react-is": "^16.12.0" + } + }, + "@mswjs/cookies": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz", + "integrity": "sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q==", + "requires": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" + } + }, + "@mswjs/interceptors": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.8.1.tgz", + "integrity": "sha512-OI9FYmtURESZG3QDNz4Yt3osy3HY4T3FjlRw+AG4QS1UDdTSZ0tuPFAkp23nGR9ojmbSSj4gSMjf5+R8Oi/qtQ==", + "requires": { + "@open-draft/until": "^1.0.3", + "debug": "^4.3.0", + "headers-utils": "^3.0.2", + "strict-event-emitter": "^0.2.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@open-draft/until": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==" + }, + "@peculiar/asn1-schema": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", + "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "requires": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", + "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "requires": { + "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.1", + "webcrypto-core": "^1.7.4" + } + }, + "@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + }, + "@reach/alert": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/alert/-/alert-0.13.2.tgz", + "integrity": "sha512-LDz83AXCrClyq/MWe+0vaZfHp1Ytqn+kgL5VxG7rirUvmluWaj/snxzfNPWn0Ma4K2YENmXXRC/iHt5X95SqIg==", + "requires": { + "@reach/utils": "0.13.2", + "@reach/visually-hidden": "0.13.2", + "prop-types": "^15.7.2", + "tslib": "^2.1.0" + } + }, + "@reach/utils": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/utils/-/utils-0.13.2.tgz", + "integrity": "sha512-3ir6cN60zvUrwjOJu7C6jec/samqAeyAB12ZADK+qjnmQPdzSYldrFWwDVV5H0WkhbYXR3uh+eImu13hCetNPQ==", + "requires": { + "@types/warning": "^3.0.0", + "tslib": "^2.1.0", + "warning": "^4.0.3" + } + }, + "@reach/visually-hidden": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/visually-hidden/-/visually-hidden-0.13.2.tgz", + "integrity": "sha512-sPZwNS0/duOuG0mYwE5DmgEAzW9VhgU3aIt1+mrfT/xiT9Cdncqke+kRBQgU708q/Ttm9tWsoHni03nn/SuPTQ==", + "requires": { + "prop-types": "^15.7.2", + "tslib": "^2.1.0" + } + }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@testing-library/dom": { + "version": "7.31.2", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz", + "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.6", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "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==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "requires": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/react": { + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz", + "integrity": "sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA==", + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^7.28.1" + } + }, + "@testing-library/react-hooks": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz", + "integrity": "sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==", + "requires": { + "@babel/runtime": "^7.12.5", + "@types/react": ">=16.9.0", + "@types/react-dom": ">=16.9.0", + "@types/react-test-renderer": ">=16.9.0", + "react-error-boundary": "^3.1.0" + } + }, + "@testing-library/user-event": { + "version": "12.8.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz", + "integrity": "sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==", + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "requires": { + "@types/node": "*" + } + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", + "requires": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "29.2.4", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", + "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "@types/js-levenshtein": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", + "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==" + }, + "@types/json-stable-stringify": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz", + "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==" + }, + "@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==" + }, + "@types/lodash.mergewith": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz", + "integrity": "sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/node": { + "version": "14.18.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.34.tgz", + "integrity": "sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/react": { + "version": "17.0.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", + "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", + "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-test-renderer": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz", + "integrity": "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==", + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/set-cookie-parser": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", + "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "requires": { + "@types/jest": "*" + } + }, + "@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "requires": { + "@types/node": "*" + } + }, + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, + "@types/yargs": { + "version": "17.0.16", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.16.tgz", + "integrity": "sha512-Mh3OP0oh8X7O7F9m5AplC+XHYLBWuPKNkGVD3gIZFLFebBnuFI2Nz5Sf8WLvwGxECJ8YjifQvFdh79ubODkdug==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@vue/compiler-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", + "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@vue/compiler-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", + "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", + "requires": { + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", + "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-ssr": "3.2.45", + "@vue/reactivity-transform": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@vue/compiler-ssr": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", + "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", + "requires": { + "@vue/compiler-dom": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/reactivity": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz", + "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==", + "requires": { + "@vue/shared": "3.2.45" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", + "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz", + "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==", + "requires": { + "@vue/reactivity": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/runtime-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz", + "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==", + "requires": { + "@vue/runtime-core": "3.2.45", + "@vue/shared": "3.2.45", + "csstype": "^2.6.8" + }, + "dependencies": { + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + } + } + }, + "@vue/server-renderer": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz", + "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==", + "requires": { + "@vue/compiler-ssr": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/shared": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", + "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==" + }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==" + }, + "accepts": { + "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==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-hidden": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz", + "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "requires": { + "deep-equal": "^2.0.5" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "array-uniq": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "integrity": "sha512-GVYjmpL05al4dNlKJm53mKE4w9OOLiuVHWorsIA3YVz+Hu0hcn6PtE3Ydl0EqU7v+7ABC4mjjWsnLUxbpno+CA==" + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "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==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axe-core": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", + "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==" + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + }, + "bundlesize2": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/bundlesize2/-/bundlesize2-0.0.30.tgz", + "integrity": "sha512-dVNC4zGdaRMMf+KK4Xf+wsPIuuDYrgDtZaX5gb1jX2vRCSOgrh2ka0Y3BGmcwMC0vViBg38yoap9AUXLBItZFA==", + "requires": { + "bytes": "^3.1.0", + "chalk": "^4.0.0", + "ci-env": "^1.15.0", + "commander": "^5.1.0", + "cosmiconfig": "5.2.1", + "figures": "^3.2.0", + "glob": "^7.1.6", + "gzip-size": "^5.1.1", + "node-fetch": "^2.6.0", + "plur": "^4.0.0", + "right-pad": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" + }, + "card-validator": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/card-validator/-/card-validator-8.1.1.tgz", + "integrity": "sha512-cN4FsKwoTfTFnqPwVc7TQLSsH/QMDB3n/gWm0XelcApz4sKipnOQ6k33sa3bWsNnnIpgs7eXOF+mUV2UQAX2Sw==", + "requires": { + "credit-card-type": "^9.1.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "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==" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" + } + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-launcher": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", + "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", + "requires": { + "@types/node": "*", + "escape-string-regexp": "^1.0.5", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^0.5.3", + "rimraf": "^3.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ci-env": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/ci-env/-/ci-env-1.17.0.tgz", + "integrity": "sha512-NtTjhgSEqv4Aj90TUYHQLxHdnCPXnjdtuGG1X8lTfp/JqeXTdw0FTWl/vUAPuvbWZTF8QVpv6ASe/XacE+7R2A==" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "commerce-sdk-isomorphic": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/commerce-sdk-isomorphic/-/commerce-sdk-isomorphic-1.8.0.tgz", + "integrity": "sha512-vjWJ4KPNXq3ckZkc9fkYDkrT6LZcGIrQZ9nmjQXbg5V5B9K72lmBV+uZQQVdYVX+qI4PfXY4JEO6mfKMiTgkCA==", + "requires": { + "cross-fetch": "^3.1.5", + "nanoid": "^3.3.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==" + } + } + }, + "compute-scroll-into-view": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz", + "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "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==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz", + "integrity": "sha512-CEd3PdZ9qG3nuzmN8fuwDexPFHpyLF1DXfnVt1uvlE6BO3ItUjCeJIiIuozpVq0whsg2f1Hpblc668pn1k94WA==" + }, + "core-js-pure": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", + "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "credit-card-type": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/credit-card-type/-/credit-card-type-9.1.0.tgz", + "integrity": "sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA==" + }, + "cross-env": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "requires": { + "cross-spawn": "^6.0.5" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" + }, + "crypto-random-string": { + "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==" + }, + "csp_evaluator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", + "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==" + }, + "css-box-model": { + "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==", + "requires": { + "tiny-invariant": "^1.0.6" + } + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "cssstyle": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", + "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", + "requires": { + "cssom": "0.3.x" + } + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", + "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.8" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "details-element-polyfill": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz", + "integrity": "sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g==" + }, + "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==" + }, + "diff-sequences": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==" + }, + "dom-accessibility-api": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "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==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + }, + "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==" + }, + "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==" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", + "requires": { + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "focus-lock": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.9.2.tgz", + "integrity": "sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ==", + "requires": { + "tslib": "^2.0.3" + } + }, + "focus-visible": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/focus-visible/-/focus-visible-5.2.0.tgz", + "integrity": "sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "framer-motion": { + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-3.10.6.tgz", + "integrity": "sha512-OxOtKgQS4km9a8dm0IMBtNNp4f0DiHfQ/IzxKs818+Kg9V/Ve/pRUJ2dtWBb6+W4lIPNLgRSpbOwOACVj15XcQ==", + "requires": { + "@emotion/is-prop-valid": "^0.8.2", + "framesync": "5.2.0", + "hey-listen": "^1.0.8", + "popmotion": "9.3.1", + "style-value-types": "4.1.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "@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==", + "optional": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, + "framesync": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==" + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "framesync": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", + "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "full-icu": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.5.0.tgz", + "integrity": "sha512-BxB2otKUSFyvENjbI8EtQscpiPOEnhrf5V4MVpa6PjzsrLmdKKUUhulbydsfKS4ve6cGXNVRLlrOjizby/ZfDA==", + "requires": { + "yauzl": "^2.10.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "requires": { + "ini": "1.3.7" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "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==" + } + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "headers-utils": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz", + "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==" + }, + "helmet": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", + "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" + }, + "hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "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==", + "requires": { + "react-is": "^16.7.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "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==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-link-header": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-0.8.0.tgz", + "integrity": "sha512-qsh/wKe1Mk1vtYEFr+LpQBFWTO1gxZQBdii2D0Umj+IUQ23r5sT088Rhpq4XzpSyIpaX7vwjB8Rrtx8u9JTg+Q==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "image-ssim": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", + "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "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==" + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + } + } + } + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" + }, + "intl-messageformat": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", + "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", + "requires": { + "intl-messageformat-parser": "^1.8.1" + } + }, + "intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==" + }, + "intl-pluralrules": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.3.1.tgz", + "integrity": "sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w==" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ipaddr.js": { + "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==" + }, + "irregular-plurals": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz", + "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==" + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + } + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + }, + "dependencies": { + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "jest-diff": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-fetch-mock": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-2.1.2.tgz", + "integrity": "sha512-tcSR4Lh2bWLe1+0w/IwvNxeDocMI/6yIA2bijZ0fyWxC4kQ18lckQ1n7Yd40NKuisGmcGBRFPandRXrW/ti/Bw==", + "requires": { + "cross-fetch": "^2.2.2", + "promise-polyfill": "^7.1.1" + }, + "dependencies": { + "cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "requires": { + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" + } + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + } + } + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-matcher-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.3.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==" + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==" + }, + "js-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", + "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" + }, + "js-library-detector": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.5.0.tgz", + "integrity": "sha512-Kq7VckJ5kb26kHMAu1sDO8t2qr7M5Uw6Gf7fVGtu1YceoHdqTcobwnB5kStcktusPuPmiCE8PbCaiLzhiBsSAw==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "requires": { + "jsonify": "^0.0.1" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" + }, + "jsonld": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", + "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", + "requires": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "jsonlint-mod": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz", + "integrity": "sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg==", + "requires": { + "JSV": "^4.0.2", + "chalk": "^2.4.2", + "underscore": "^1.9.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + } + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "lighthouse": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-7.3.0.tgz", + "integrity": "sha512-c3loU7ptP8TAlR+bBhc+5ClALx/YVRSh8m5KPiDZQ7wNYxRnhZjDDz6rLzd5gLDhjVwhjMv1APypZegDOFkKOQ==", + "requires": { + "axe-core": "4.1.3", + "chrome-launcher": "^0.13.4", + "configstore": "^5.0.1", + "csp_evaluator": "^1.0.1", + "cssstyle": "1.2.1", + "details-element-polyfill": "^2.4.0", + "http-link-header": "^0.8.0", + "inquirer": "^7.3.3", + "intl": "^1.2.5", + "intl-messageformat": "^4.4.0", + "intl-pluralrules": "^1.0.3", + "jpeg-js": "^0.4.1", + "js-library-detector": "^6.4.0", + "jsonld": "^4.0.1", + "jsonlint-mod": "^1.7.6", + "lighthouse-logger": "^1.2.0", + "lighthouse-stack-packs": "^1.4.0", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "lodash.set": "^4.3.2", + "lookup-closest-locale": "6.0.4", + "metaviewport-parser": "0.2.0", + "open": "^6.4.0", + "parse-cache-control": "1.0.1", + "ps-list": "^7.2.0", + "raven": "^2.2.1", + "rimraf": "^2.6.1", + "robots-parser": "^2.0.1", + "semver": "^5.3.0", + "speedline-core": "^1.4.3", + "third-party-web": "^0.12.2", + "update-notifier": "^4.1.0", + "ws": "3.3.2", + "yargs": "^16.1.1", + "yargs-parser": "^20.2.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, + "lighthouse-logger": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", + "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", + "requires": { + "debug": "^2.6.8", + "marky": "^1.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "lighthouse-stack-packs": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.8.2.tgz", + "integrity": "sha512-vlCUxxQAB8Nu6LQHqPpDRiMi06Du593/my/6JbMttQeEfJ7pf4OS8obSTh5xSOS80U/O7fq59Q8rQGAUxQatUQ==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, + "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==" + }, + "lookup-closest-locale": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz", + "integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", + "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==" + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "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==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "metaviewport-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz", + "integrity": "sha512-qL5NtY18LGs7lvZCkj3ep2H4Pes9rIiSLZRUyfDdvVw7pWFA0eLwmqaIxApD74RGvUrNEtk9e5Wt1rT+VlCvGw==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "msw": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-0.28.2.tgz", + "integrity": "sha512-WHfRd+Zwfy8yNPAx4PDJ0PnaEqUw5QOjWbCk5MmgpHMl51R3FJ2yIC694RdqR1bInqoaV94wW9Irv9eSyh65lQ==", + "requires": { + "@mswjs/cookies": "^0.1.4", + "@mswjs/interceptors": "^0.8.0", + "@open-draft/until": "^1.0.3", + "@types/cookie": "^0.4.0", + "@types/inquirer": "^7.3.1", + "@types/js-levenshtein": "^1.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cookie": "^0.4.1", + "graphql": "^15.4.0", + "headers-utils": "^3.0.2", + "inquirer": "^7.3.3", + "js-levenshtein": "^1.1.6", + "node-fetch": "^2.6.1", + "node-match-path": "^0.6.1", + "statuses": "^2.0.0", + "strict-event-emitter": "^0.2.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "njwt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/njwt/-/njwt-1.2.0.tgz", + "integrity": "sha512-i+cdqwxo7EUimJCHPSAEpQEWrz4ilsVefL+FRhWrjMqq8HHiQ8dwi9GUWUfj3Vt6XMY2PXSjMn9JeVB3/Jp6pg==", + "requires": { + "@types/node": "^15.0.1", + "ecdsa-sig-formatter": "^1.0.5", + "uuid": "^8.3.2" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==" + } + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-match-path": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz", + "integrity": "sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "requires": { + "path-key": "^2.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "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==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "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==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "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==" + }, + "path-key": { + "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==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" + }, + "plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "popmotion": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.1.tgz", + "integrity": "sha512-Qozvg8rz2OGeZwWuIjqlSXqqgWto/+QL24ll8sAAc0n71KY/wvN1W4sAASxTuHv8YWdDnk9u9IdadyPo2DGvDA==", + "requires": { + "framesync": "5.2.0", + "hey-listen": "^1.0.8", + "style-value-types": "4.1.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "framesync": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==" + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "promise-polyfill": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz", + "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==" + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "proxy-addr": { + "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==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "ps-list": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", + "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "requires": { + "escape-goat": "^2.0.0" + } + }, + "pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "requires": { + "tslib": "^2.4.0" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "requires": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "integrity": "sha512-lDVjxQQFoCG1jcrP06LNo2lbWp4QTShEXnhActFBwYuHprllQV6VUpwreApsYqCgD+N1mHoqJ/BI/4eV4R2GYg==" + }, + "randomstring": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.2.3.tgz", + "integrity": "sha512-3dEFySepTzp2CvH6W/ASYGguPPveBuz5MpZ7MuoUkoVehmyNl9+F9c9GFVrz2QPbM9NXTIHGcmJDY/3j4677kQ==", + "requires": { + "array-uniq": "1.0.2", + "randombytes": "2.0.3" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raven": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz", + "integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==", + "requires": { + "cookie": "0.3.1", + "md5": "^2.2.1", + "stack-trace": "0.0.10", + "timed-out": "4.0.1", + "uuid": "3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "requires": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-clientside-effect": { + "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==", + "requires": { + "@babel/runtime": "^7.12.13" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-error-boundary": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", + "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "react-focus-lock": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.5.2.tgz", + "integrity": "sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.9.1", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.5", + "use-callback-ref": "^1.2.5", + "use-sidecar": "^1.0.5" + } + }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } + }, + "react-hook-form": { + "version": "6.15.8", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.15.8.tgz", + "integrity": "sha512-prq82ofMbnRyj5wqDe8hsTRcdR25jQ+B8KtCS7BLCzjFHAwNuCjRwzPuP4eYLsEBjEIeYd6try+pdLdw0kPkpg==" + }, + "react-intl": { + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz", + "integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl": "2.2.1", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.13.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + } + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-remove-scroll": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.4.1.tgz", + "integrity": "sha512-K7XZySEzOHMTq7dDwcHsZA6Y7/1uX5RsWhRXVYv8rdh+y9Qz2nMwl9RX/Mwnj/j7JstCGmxyfyC0zbVGXYh3mA==", + "requires": { + "react-remove-scroll-bar": "^2.1.0", + "react-style-singleton": "^2.1.0", + "tslib": "^1.0.0", + "use-callback-ref": "^1.2.3", + "use-sidecar": "^1.0.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, + "react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "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==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-dom": { + "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==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-side-effect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", + "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==" + }, + "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==", + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "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==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "right-pad": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", + "integrity": "sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "robots-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.4.0.tgz", + "integrity": "sha512-oO8f2SI04dJk3pbj2KOMJ4G6QfPAgqcGmrYGmansIcpRewIPT2ljWEt5I+ip6EgiyaLo+RXkkUWw74M25HDkMA==" + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==" + }, + "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==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "speedline-core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", + "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", + "requires": { + "@types/node": "*", + "image-ssim": "^0.2.0", + "jpeg-js": "^0.4.1" + } + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "strict-event-emitter": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", + "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", + "requires": { + "events": "^3.3.0" + } + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" + }, + "strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "requires": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + } + }, + "style-value-types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.1.tgz", + "integrity": "sha512-cNLrl6jk+I1T18ZI2KIp/fcqKVuykcNELDrOz7y+TYZR97xmNdN0ewupURvVFnQxVrRJv98TMBq92VMsggq3kw==", + "requires": { + "hey-listen": "^1.0.8", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + }, + "third-party-web": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.7.tgz", + "integrity": "sha512-9d/OfjEOjyeOpnm4F9o0KSK6BI6ytvi9DINSB5h1+jdlCvQlhKpViMSxWpBN9WstdfDQ61BS6NxWqcPCuQCAJg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "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==" + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "requires": { + "rimraf": "^2.6.3" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "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==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==" + }, + "dot-prop": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==" + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "requires": { + "ini": "^1.3.4" + } + }, + "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==" + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw==", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==", + "requires": { + "semver": "^5.0.3" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==", + "requires": { + "execa": "^0.7.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, + "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==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "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==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vue": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz", + "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==", + "requires": { + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-sfc": "3.2.45", + "@vue/runtime-dom": "3.2.45", + "@vue/server-renderer": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "webcrypto-core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", + "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "requires": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-fetch": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz", + "integrity": "sha512-/l7W52XmAwf0u1TkfttgZb6cqHswjhZN9ZkVw6g66Ept6J62NhBsLmgO5HrLoI0wqU51gf+vlXNdS8EvSU/jQw==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", + "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + }, + "dependencies": { + "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==" + } + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/packages/spike-extendend-retail-app/package.json b/packages/spike-extendend-retail-app/package.json new file mode 100644 index 0000000000..4b9e969c01 --- /dev/null +++ b/packages/spike-extendend-retail-app/package.json @@ -0,0 +1,82 @@ +{ + "name": "spike-extended-retail-app", + "version": "2.5.0-dev", + "description": "", + "author": "cc-pwa-kit@salesforce.com", + "license": "See license in LICENSE", + "engines": { + "node": "^14.0.0", + "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" + }, + "mobify": { + "extends": "retail-react-app" + }, + "files": [ + "CHANGELOG.md", + "LICENSE" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/SalesforceCommerceCloud/pwa-kit.git" + }, + "homepage": "https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/ecom-react-hooks#readme", + "bugs": { + "url": "https://github.com/SalesforceCommerceCloud/pwa-kit/issues" + }, + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "cross-env NODE_ICU_DATA=node_modules/full-icu pwa-kit-dev start" + }, + "dependencies": { + "@chakra-ui/icons": "^1.0.6", + "@chakra-ui/react": "^1.7.1", + "@chakra-ui/skip-nav": "^1.1.4", + "@emotion/react": "^11.1.5", + "@emotion/styled": "^11.1.5", + "@formatjs/cli": "^4.2.27", + "@lerna/child-process": "^3.3.0", + "@lhci/cli": "^0.7.0", + "@loadable/component": "^5.15.0", + "@peculiar/webcrypto": "^1.3.3", + "@testing-library/jest-dom": "^5.16.4", + "@testing-library/react": "^11.2.5", + "@testing-library/react-hooks": "^7.0.2", + "@testing-library/user-event": "^12.8.1", + "base64-arraybuffer": "^0.2.0", + "bundlesize2": "^0.0.30", + "card-validator": "^8.1.0", + "chalk": "1.1.3", + "commerce-sdk-isomorphic": "^1.5.2", + "core-js": "2.4.0", + "cross-env": "^5.2.0", + "cross-fetch": "^3.1.5", + "focus-visible": "^5.2.0", + "framer-motion": "^3.7.0", + "full-icu": "^1.3.1", + "helmet": "^4.6.0", + "hoist-non-react-statics": "^3.3.2", + "jest-fetch-mock": "^2.1.2", + "js-cookie": "^3.0.1", + "jwt-decode": "^3.1.2", + "msw": "^0.28.1", + "nanoid": "^3.1.31", + "njwt": "^1.2.0", + "node-fetch": "^2.6.7", + "prop-types": "^15.6.0", + "pwa-kit-dev": "^2.5.0-dev", + "pwa-kit-react-sdk": "^2.5.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", + "query-string": "^7.0.1", + "raf": "^3.4.0", + "randomstring": "^1.2.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-helmet": "^6.1.0", + "react-hook-form": "^6.15.5", + "react-intl": "^5.13.1", + "react-router-dom": "^5.1.2", + "retail-react-app": "^2.5.0-dev", + "whatwg-fetch": "1.0.0" + } +} diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/Input/index.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/Input/index.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx new file mode 100644 index 0000000000..24ad6ece7f --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2022, Salesforce, Inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import React, {useEffect} from 'react' +import PropTypes from 'prop-types' +import {useIntl, FormattedMessage} from 'react-intl' +import {useLocation} from 'react-router-dom' + +// Components +import { + Box, + Button, + SimpleGrid, + HStack, + VStack, + Text, + Flex, + Stack, + Container, + Link +} from '@chakra-ui/react' + +// Project Components +import Hero from '../../components/hero' +import Seo from '../../components/seo' +import Section from '../../components/section' +import ProductScroller from '../../components/product-scroller' + +// Others +import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' +import {heroFeatures, features} from './data' + +//Hooks +import useEinstein from '../../commerce-api/hooks/useEinstein' + +// Constants +import { + MAX_CACHE_AGE, + HOME_SHOP_PRODUCTS_CATEGORY_ID, + HOME_SHOP_PRODUCTS_LIMIT +} from '../../constants' + +/** + * This is the home page for Retail React App. + * The page is created for demonstration purposes. + * The page renders SEO metadata and a few promotion + * categories and products, data is from local file. + */ +const Home = ({productSearchResult, isLoading}) => { + const intl = useIntl() + const einstein = useEinstein() + const {pathname} = useLocation() + + /**************** Einstein ****************/ + useEffect(() => { + einstein.sendViewPage(pathname) + }, []) + + return ( + + + + + + + } + /> + +
+ + {heroFeatures.map((feature, index) => { + const featureMessage = feature.message + return ( + + + + + {feature.icon} + + + {intl.formatMessage(featureMessage.title)} + + + + + ) + })} + +
+ + {productSearchResult && ( +
+ {intl.formatMessage({ + defaultMessage: 'Read docs', + id: 'home.link.read_docs' + })} + + ) + } + )} + > + + + +
+ )} + +
+ + + {features.map((feature, index) => { + const featureMessage = feature.message + return ( + + + + {feature.icon} + + + {intl.formatMessage(featureMessage.title)} + + + {intl.formatMessage(featureMessage.text)} + + + + ) + })} + + +
+ +
+ <> + {intl.formatMessage({ + defaultMessage: 'Contact our support staff.', + id: 'home.description.here_to_help' + })} + +
+ <> + {intl.formatMessage({ + defaultMessage: 'They will get you to the right place.', + id: 'home.description.here_to_help_line_2' + })} + + + } + actions={ + + } + maxWidth={'xl'} + /> + + ) +} + +Home.getTemplateName = () => 'home' + +Home.shouldGetProps = ({previousLocation, location}) => + !previousLocation || previousLocation.pathname !== location.pathname + +Home.getProps = async ({res, api}) => { + if (res) { + res.set('Cache-Control', `max-age=${MAX_CACHE_AGE}`) + } + + const productSearchResult = await api.shopperSearch.productSearch({ + parameters: { + refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master'], + limit: HOME_SHOP_PRODUCTS_LIMIT + } + }) + + return {productSearchResult} +} + +Home.propTypes = { + /** + * The search result object showing all the product hits, that belong + * in the supplied category. + */ + productSearchResult: PropTypes.object, + /** + * The current state of `getProps` when running this value is `true`, otherwise it's + * `false`. (Provided internally) + */ + isLoading: PropTypes.bool +} + +export default Home diff --git a/packages/template-express-minimal/package-lock.json b/packages/template-express-minimal/package-lock.json index 6e6994e79d..6c97824f62 100644 --- a/packages/template-express-minimal/package-lock.json +++ b/packages/template-express-minimal/package-lock.json @@ -1,6 +1,6 @@ { "name": "template-express-minimal", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/template-express-minimal/package.json b/packages/template-express-minimal/package.json index b576ac1d30..cd0e291da9 100644 --- a/packages/template-express-minimal/package.json +++ b/packages/template-express-minimal/package.json @@ -1,11 +1,11 @@ { "name": "template-express-minimal", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "license": "See license in LICENSE", "private": true, "devDependencies": { - "pwa-kit-dev": "^2.4.0-dev", - "pwa-kit-runtime": "^2.4.0-dev", + "pwa-kit-dev": "^2.5.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", "supertest": "^4.0.2" }, "scripts": { diff --git a/packages/template-retail-react-app/package-lock.json b/packages/template-retail-react-app/package-lock.json index c9c4f05c3a..d034616699 100644 --- a/packages/template-retail-react-app/package-lock.json +++ b/packages/template-retail-react-app/package-lock.json @@ -1,6 +1,6 @@ { "name": "retail-react-app", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -8,7 +8,6 @@ "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, "requires": { "@babel/highlight": "^7.16.7" } @@ -17,7 +16,6 @@ "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, "requires": { "@babel/types": "^7.16.7" } @@ -25,20 +23,17 @@ "@babel/helper-plugin-utils": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" }, "@babel/helper-validator-identifier": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/highlight": { "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -49,7 +44,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -59,22 +53,19 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" } } }, "@babel/parser": { "version": "7.17.10", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", - "dev": true + "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" }, "@babel/plugin-syntax-jsx": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } @@ -83,7 +74,6 @@ "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -92,7 +82,6 @@ "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", - "dev": true, "requires": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -102,7 +91,6 @@ "version": "7.17.10", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" @@ -112,7 +100,6 @@ "version": "1.4.11", "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-1.4.11.tgz", "integrity": "sha512-d/gvSgGwcZaJXxXqGmecpAgko/tUYb5vR0E0B2/V/z9AVbS8ei//fbiO9+8Ouyl/K46oWHWYj5vt8iTadlZleg==", - "dev": true, "requires": { "@chakra-ui/descendant": "2.1.3", "@chakra-ui/hooks": "1.9.1", @@ -126,7 +113,6 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-1.3.7.tgz", "integrity": "sha512-fFpJYBpHOIK/BX4BVl/xafYiDBUW+Bq/gUYDOo4iAiO4vHgxo74oa+yOwSRNlNjAgIX7pi2ridsYQALKyWyxxQ==", - "dev": true, "requires": { "@chakra-ui/icon": "2.0.5", "@chakra-ui/react-utils": "1.2.3", @@ -137,7 +123,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-1.3.0.tgz", "integrity": "sha512-vj/lcHkCuq/dtbl69DkNsftZTnrGEegB90ODs1B6rxw8iVMdDSYkthPPFAkqzNs4ppv1y2IBjELuVzpeta1OHA==", - "dev": true, "requires": { "@chakra-ui/theme-tools": "^1.3.6" } @@ -146,7 +131,6 @@ "version": "1.3.11", "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-1.3.11.tgz", "integrity": "sha512-/eRRK48Er92/QWAfWhxsJIN0gZBBvk+ew4Hglo+pxt3/NDnfTF2yPE7ZN29Dl6daPNbyTOpoksMwaU2mZIqLgA==", - "dev": true, "requires": { "@chakra-ui/image": "1.1.10", "@chakra-ui/react-utils": "1.2.3", @@ -157,7 +141,6 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-1.3.6.tgz", "integrity": "sha512-iXxienBO6RUnJEcDvyDWyRt+mzPyl7/b6N8i0vrjGKGLpgtayJFvIdo33tFcvx6TCy7V9hiE3HTtZnNomWdR6A==", - "dev": true, "requires": { "@chakra-ui/react-utils": "1.2.3", "@chakra-ui/utils": "1.10.4" @@ -167,7 +150,6 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-1.5.10.tgz", "integrity": "sha512-IVEOrleI378CckAa3b3CTUHMPZRfpy6LPwn1Mx3sMpHEkDTKu8zJcjgEvCE8HYzNC1KbwBsa1PfTgk40ui6EtA==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/react-utils": "1.2.3", @@ -179,7 +161,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-1.7.1.tgz", "integrity": "sha512-9Io97yn8OrdaIynCj+3Z/neJV7lTT1MtcdYh3BKMd7WnoJDkRY/GlBM8zsdgC5Wvm+ZQ1M83t0YvRPKLLzusyA==", - "dev": true, "requires": { "@chakra-ui/form-control": "1.6.0", "@chakra-ui/hooks": "1.9.1", @@ -192,7 +173,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-1.2.6.tgz", "integrity": "sha512-89SsrQwwwAadcl/bN8nZqqaaVhVNFdBXqQnxVy1t07DL5ezubmNb5SgFh9LDznkm9YYPQhaGr3W6HFro7iAHMg==", - "dev": true, "requires": { "@chakra-ui/react-utils": "1.2.3", "@chakra-ui/utils": "1.10.4" @@ -202,7 +182,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-1.2.7.tgz", "integrity": "sha512-cYTxfgrIlPU4IZm1sehZXxx/TNQBk9c3LBPvTpywEM8GVRGINh4YLq8WiMaPtO+TDNBnKoWS/jS4IHnR+abADw==", - "dev": true, "requires": { "@chakra-ui/icon": "2.0.5", "@chakra-ui/utils": "1.10.4" @@ -212,7 +191,6 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-1.4.8.tgz", "integrity": "sha512-iD4126DVQi06c6ARr3uf3R2rtEu8aBVjW8rhZ+lOsV26Z15iCJA7OAut13Xu06fcZvgjSB/ChDy6Sx9sV9UjHA==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/react-env": "1.1.6", @@ -223,7 +201,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-1.1.6.tgz", "integrity": "sha512-EUcq5f854puG6ZA6wAWl4107OPl8+bj4MMHJCa48BB0qec0U8HCEtxQGnFwJmaYLalIAjMfHuY3OwO2A3Hi9hA==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -232,7 +209,6 @@ "version": "1.2.10", "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-1.2.10.tgz", "integrity": "sha512-HQd09IuJ4z8M8vWajH+99jBWWSHDesQZmnN95jUg3HKOuNleLaipf2JFdrqbO1uWQyHobn2PM6u+B+JCAh2nig==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/utils": "1.10.4" @@ -241,14 +217,12 @@ "@chakra-ui/css-reset": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-1.1.3.tgz", - "integrity": "sha512-AgfrE7bRTJvNi/4zIfacI/kBHmHmHEIeQtHwCvk/0qM9V2gK1VM3ctYlnibf7BTh17F/UszweOGRb1lHSPfWjw==", - "dev": true + "integrity": "sha512-AgfrE7bRTJvNi/4zIfacI/kBHmHmHEIeQtHwCvk/0qM9V2gK1VM3ctYlnibf7BTh17F/UszweOGRb1lHSPfWjw==" }, "@chakra-ui/descendant": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-2.1.3.tgz", "integrity": "sha512-aNYNv99gEPENCdw2N5y3FvL5wgBVcLiOzJ2TxSwb4EVYszbgBZ8Ry1pf7lkoSfysdxD0scgy2cVyxO8TsYTU4g==", - "dev": true, "requires": { "@chakra-ui/react-utils": "^1.2.3" } @@ -257,7 +231,6 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-1.4.2.tgz", "integrity": "sha512-a5zKghA/IvG7yNkmFl7Z9c2KSsf0FgyijsNPTg/4S5jxyz13QJtoTg40tdpyaxHHCT25y25iUcV4FYCj6Jd01w==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/react-utils": "1.2.3", @@ -268,7 +241,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-1.2.6.tgz", "integrity": "sha512-ZJNE1oNdUM1aGWuCJ+bxFa/d3EwxzfMWzTKzSvKDK50GWoUQQ10xFTT9nY/yFpkcwhBvx1KavxKf44mIhIbSog==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4", "react-focus-lock": "2.5.2" @@ -278,7 +250,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-1.6.0.tgz", "integrity": "sha512-MtUE98aocP2QTgvyyJ/ABuG33mhT3Ox56phKreG3HzbUKByMwrbQSm1QcAgyYdqSZ9eKB2tXx+qgGNh+avAfDA==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/icon": "2.0.5", @@ -290,7 +261,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-1.9.1.tgz", "integrity": "sha512-SEeh1alDKzrP9gMLWMnXOUDBQDKF/URL6iTmkumTn6vhawWNla6sPrcMyoCzWdMzwUhZp3QNtCKbUm7dxBXvPw==", - "dev": true, "requires": { "@chakra-ui/react-utils": "1.2.3", "@chakra-ui/utils": "1.10.4", @@ -302,7 +272,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-2.0.5.tgz", "integrity": "sha512-ZrqRvCCIxGr4qFd/r1pmtd9tobRmv8KAxV7ygFoc/t4vOSKTcVIjhE12gsI3FzgvXM15ZFVwsxa1zodwgo5neQ==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -311,7 +280,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/@chakra-ui/icons/-/icons-1.1.7.tgz", "integrity": "sha512-YIHxey/B4M2PyFASlHXtAWFyW+tsAtGAChOJ8dsM2kpu1MbVUqm/6nMI1KIFd7Te5IWuNYA75rAHBdLI0Yu61A==", - "dev": true, "requires": { "@chakra-ui/icon": "2.0.5", "@types/react": "^17.0.15" @@ -321,7 +289,6 @@ "version": "1.1.10", "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-1.1.10.tgz", "integrity": "sha512-PJZmhQ/R1PgdMyCRjALfoyq1FNh/WzMAw70sliHLtLcb9hBXniwQZuckYfUshCkUoFBj/ow9d4byn9Culdpk7Q==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/utils": "1.10.4" @@ -331,7 +298,6 @@ "version": "1.4.6", "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-1.4.6.tgz", "integrity": "sha512-Ljy/NbOhh9cNQxKTWQRsT4aQiXs2vVya+Cj5NpMAz08NFFjPZovsTawhI7m6ejT5Vsh76QYjh2rOLLI3fWqQQw==", - "dev": true, "requires": { "@chakra-ui/form-control": "1.6.0", "@chakra-ui/react-utils": "1.2.3", @@ -342,7 +308,6 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-1.8.0.tgz", "integrity": "sha512-GJtEKez5AZu0XQTxI6a6jwA/hMDD36pP0HBxBOGuHP1hWCebDzMjraiMfWiP9w7hKERFE4j19kocHxIXyocfJA==", - "dev": true, "requires": { "@chakra-ui/icon": "2.0.5", "@chakra-ui/react-utils": "1.2.3", @@ -353,7 +318,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-1.1.6.tgz", "integrity": "sha512-9gPQHXf7oW0jXyT5R/JzyDMfJ3hF70TqhN8bRH4fMyfNr2Se+SjztMBqCrv5FS5rPjcCeua+e0eArpoB3ROuWQ==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -362,7 +326,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-2.0.4.tgz", "integrity": "sha512-kn6g/L0IFFUHz2v4yiCsBnhg9jUeA7525Z+AWl+BPtvryi7i9J+AJ27y/QAge7vUGy4dwDeFyxOZTs2oZ9/BsA==", - "dev": true, "requires": { "@chakra-ui/react-env": "1.1.6", "@chakra-ui/utils": "1.10.4" @@ -372,7 +335,6 @@ "version": "1.8.11", "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-1.8.11.tgz", "integrity": "sha512-8K65xItPsdMvSfuGWYIGigOF/QMcy7+D48UIEO/Hu0u0ckd11/JXbpSIFPddH5fYedclJ18PGRohTne487OVjQ==", - "dev": true, "requires": { "@chakra-ui/clickable": "1.2.6", "@chakra-ui/descendant": "2.1.3", @@ -387,7 +349,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-1.11.1.tgz", "integrity": "sha512-B2BBDonHb04vbPLAWgko1JYBwgW8ZNSLyhTJK+rbrCsRSgazuLTcwq4hdyJqrYNWtaQEfSwpAXqJ7joMZdv59A==", - "dev": true, "requires": { "@chakra-ui/close-button": "1.2.7", "@chakra-ui/focus-lock": "1.2.6", @@ -404,7 +365,6 @@ "version": "1.4.7", "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-1.4.7.tgz", "integrity": "sha512-LorGRZFMipom8vCUEbLi2s7bTHF2Fgiu766W0jTbzMje+8Z1ZoRQunH9OZWQnxnWQTUfUM2KBW8KwToYh1ojfQ==", - "dev": true, "requires": { "@chakra-ui/counter": "1.2.10", "@chakra-ui/form-control": "1.6.0", @@ -418,7 +378,6 @@ "version": "1.7.10", "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-1.7.10.tgz", "integrity": "sha512-Uz5vFK+ZevQtdYHBkddSFCrY44bweXLanpSv9X/D0pWpdML09qfPiKX4ydGzfRoS2u4L8NUtN86IcvdOQLhHQg==", - "dev": true, "requires": { "@chakra-ui/descendant": "2.1.3", "@chakra-ui/hooks": "1.9.1", @@ -430,7 +389,6 @@ "version": "1.11.9", "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-1.11.9.tgz", "integrity": "sha512-hJ1/Lwukox3ryTN7W1wnj+nE44utfLwQYvfUSdatt5dznnh8k0P6Wx7Hmjm1cYffRavBhqzwua/QZDWjJN9N0g==", - "dev": true, "requires": { "@chakra-ui/close-button": "1.2.7", "@chakra-ui/hooks": "1.9.1", @@ -443,7 +401,6 @@ "version": "2.4.3", "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-2.4.3.tgz", "integrity": "sha512-TGzFnYt3mtIVkIejtYIAu4Ka9DaYLzMR4NgcqI6EtaTvgK7Xep+6RTiY/Nq+ZT3l/eaNUwqHRFoNrDUg1XYasA==", - "dev": true, "requires": { "@chakra-ui/react-utils": "1.2.3", "@popperjs/core": "^2.9.3" @@ -453,7 +410,6 @@ "version": "1.3.10", "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-1.3.10.tgz", "integrity": "sha512-t2KQ6MXbyf1qFYxWw/bs//CnwD+Clq7mbsP1Y7g+THCz2FvlLlMj45BWocLB30NoNyA8WCS2zyMBszW2/qvDiA==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/react-utils": "1.2.3", @@ -464,7 +420,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-1.2.6.tgz", "integrity": "sha512-thaHRIYTVktgV78vJMNwzfCX+ickhSpn2bun6FtGVUphFx4tjV+ggz+IGohm6AH2hapskoR1mQU2iNZb6BK0hQ==", - "dev": true, "requires": { "@chakra-ui/theme-tools": "1.3.6", "@chakra-ui/utils": "1.10.4" @@ -474,7 +429,6 @@ "version": "1.7.14", "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-1.7.14.tgz", "integrity": "sha512-FCA33CZy/jFzExglKMioeri8sr9NtDTcNVPnx95ZJiA7WpfFo0xuZ6/fMC4DwIQPkJKbSIZBXYLZ3U10Ntylrw==", - "dev": true, "requires": { "@chakra-ui/css-reset": "1.1.3", "@chakra-ui/hooks": "1.9.1", @@ -488,7 +442,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-1.5.1.tgz", "integrity": "sha512-zO5eShz+j68A7935jJ2q5u3brX/bjPEGh9Pj2+bnKbmC9Vva6jEzBSJsAx9n4WbkAzR3xDMGWsbpivFp8X1tJw==", - "dev": true, "requires": { "@chakra-ui/form-control": "1.6.0", "@chakra-ui/hooks": "1.9.1", @@ -501,7 +454,6 @@ "version": "1.8.8", "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-1.8.8.tgz", "integrity": "sha512-/XqL25J0i0h+usAXBngn/RTG2u1oQRzbhHe9tNHwFyNbx/izIADhQW/6ji06QU0KtaRIU77XvgSAyTtMJY1KmA==", - "dev": true, "requires": { "@chakra-ui/accordion": "1.4.11", "@chakra-ui/alert": "1.3.7", @@ -556,7 +508,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-1.1.6.tgz", "integrity": "sha512-L90LNvCfe04FTkN9OPok/o2e60zLJNBH8Im/5dUHvqy7dXLXok8ZDad5vEL46XmGbhe7O8fbxhG6FmAYdcCHrQ==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -565,7 +516,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-1.2.3.tgz", "integrity": "sha512-r8pUwCVVB7UPhb0AiRa9ZzSp4xkMz64yIeJ4O4aGy4WMw7TRH4j4QkbkE1YC9tQitrXrliOlvx4WWJR4VyiGpw==", - "dev": true, "requires": { "@chakra-ui/utils": "^1.10.4" } @@ -574,7 +524,6 @@ "version": "1.2.11", "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-1.2.11.tgz", "integrity": "sha512-6Tis1+ZrRjQeWhQfziQn3ZdPphV5ccafpZOhiPdTcM2J1XcXOlII+9rHxvaW+jx7zQ5ly5o8kd7iXzalDgl5wA==", - "dev": true, "requires": { "@chakra-ui/form-control": "1.6.0", "@chakra-ui/utils": "1.10.4" @@ -584,7 +533,6 @@ "version": "1.2.14", "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-1.2.14.tgz", "integrity": "sha512-R0v4DfQ2yjXCJf9SzhTmDb2PLx5//LxsRbjjgRa8qJCR4MZaGswPrekp4dP8YjY8aEYzuZbvHU12T3vqZBk2GA==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/media-query": "2.0.4", @@ -596,7 +544,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-1.2.6.tgz", "integrity": "sha512-+ya4q3/iW/z3/B7ibaBwcsqa3LIB9MQqOWy4lzJCa8D6eagdSXhPN0+pxjkz6BxyQfxi2Rxz0A6KrgtuwAg2qw==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -605,7 +552,6 @@ "version": "1.5.11", "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-1.5.11.tgz", "integrity": "sha512-THkGU2BsA6XMosXcEVQkWVRftqUIAKCb+y4iEpR3C2ztqL7Fl/CbIGwyr5majhPhKc275rb8dfxwp8R0L0ZIiQ==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/react-utils": "1.2.3", @@ -616,7 +562,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-1.2.6.tgz", "integrity": "sha512-GoUCccN120fGRVgUtfuwcEjeoaxffB+XsgpxX7jhWloXf8b6lkqm68bsxX4Ybb2vGN1fANI98/45JmrnddZO/A==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4", "@chakra-ui/visually-hidden": "1.1.6" @@ -626,7 +571,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-1.2.7.tgz", "integrity": "sha512-m76jumFW1N+mCG4ytrUz9Mh09nZtS4OQcADEvOslfdI5StwwuzasTA1tueaelPzdhBioMwFUWL05Fr1fXbPJ/Q==", - "dev": true, "requires": { "@chakra-ui/icon": "2.0.5", "@chakra-ui/utils": "1.10.4", @@ -637,7 +581,6 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-1.19.0.tgz", "integrity": "sha512-z+bMfWs6jQGkpgarge1kmk78DuDhJIXRUMyRqZ3+CiIkze88bIIsww6mV2i8tEfUfTAvALeMnlYZ1DYsHsTTJw==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4", "csstype": "3.0.9" @@ -646,8 +589,7 @@ "csstype": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", - "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==", - "dev": true + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" } } }, @@ -655,7 +597,6 @@ "version": "1.3.10", "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-1.3.10.tgz", "integrity": "sha512-V6qDLY6oECCbPyu7alWWOAhSBI4+SAuT6XW/zEQbelkwuUOiGO1ax67rTXOmZ59A2AaV1gqQFxDh8AcbvwO5XQ==", - "dev": true, "requires": { "@chakra-ui/checkbox": "1.7.1", "@chakra-ui/utils": "1.10.4" @@ -665,7 +606,6 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-1.12.1.tgz", "integrity": "sha512-Rp09/rMuPA3hF38OJxeQciGO9N0Ie1GxwHRAw1AFA/TY3fVyK9pNI5oN+J/1cAxq7v9yKdIr1YfnruJTI9xfEg==", - "dev": true, "requires": { "@chakra-ui/color-mode": "1.4.8", "@chakra-ui/react-utils": "1.2.3", @@ -678,7 +618,6 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-1.3.6.tgz", "integrity": "sha512-7agZAgAeDFKviqStvixqnLAH54+setzhx67EztioZTr5Xu+6hQ4rotfJbu8L4i587pcbNg98kCEXEkidjw0XRQ==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -687,7 +626,6 @@ "version": "1.6.10", "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-1.6.10.tgz", "integrity": "sha512-ClOOHT3Wnf3l9X4F2S6ysPsHMDgKSTgkXpB9Qe0odwpT49ZXNjSAYYaXzO16l+Eq/m2u1HzLkXVsL42HIeOiNQ==", - "dev": true, "requires": { "@chakra-ui/clickable": "1.2.6", "@chakra-ui/descendant": "2.1.3", @@ -700,7 +638,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-1.2.7.tgz", "integrity": "sha512-RKrKOol4i/CnpFfo3T9LMm1abaqM+5Bs0soQLbo1iJBbBACY09sWXrQYvveQ2GYzU/OrAUloHqqmKjyVGOlNtg==", - "dev": true, "requires": { "@chakra-ui/icon": "2.0.5", "@chakra-ui/utils": "1.10.4" @@ -710,7 +647,6 @@ "version": "1.2.11", "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-1.2.11.tgz", "integrity": "sha512-RDWbMyC87/AFRX98EnVum5eig/7hhcvS1BrqW5lvmTgrpr7KVr80Dfa8hUj58Iq37Z7AqZijDPkBn/zg7bPdIg==", - "dev": true, "requires": { "@chakra-ui/form-control": "1.6.0", "@chakra-ui/utils": "1.10.4" @@ -720,7 +656,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-1.14.1.tgz", "integrity": "sha512-VeNZi+zD3yDwzvZm234Cy3vnalCzQ+dhAgpHdIYzGO1CYO8DPa+ROcQ70rUueL7dSvUz15KOiGTw6DAl7LXlGA==", - "dev": true, "requires": { "@chakra-ui/anatomy": "1.3.0", "@chakra-ui/theme-tools": "1.3.6", @@ -731,7 +666,6 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-1.3.6.tgz", "integrity": "sha512-Wxz3XSJhPCU6OwCHEyH44EegEDQHwvlsx+KDkUDGevOjUU88YuNqOVkKtgTpgMLNQcsrYZ93oPWZUJqqCVNRew==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4", "@ctrl/tinycolor": "^3.4.0" @@ -741,7 +675,6 @@ "version": "1.5.9", "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-1.5.9.tgz", "integrity": "sha512-rns04bGdMcG7Ijg45L+PfuEW4rCd0Ycraix4EJQhcl9RXI18G9sphmlp9feidhZAkI6Ukafq1YvyvkBfkKnIzQ==", - "dev": true, "requires": { "@chakra-ui/alert": "1.3.7", "@chakra-ui/close-button": "1.2.7", @@ -756,7 +689,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-1.5.1.tgz", "integrity": "sha512-EUAlDdlCBt63VpEVtj/RkFjHQVN/xA9gEAumngQdi1Sp+OXPYCBM9GwSY0NwrM1RfKBnhPSH9wz7FwredJWeaw==", - "dev": true, "requires": { "@chakra-ui/hooks": "1.9.1", "@chakra-ui/popper": "2.4.3", @@ -770,7 +702,6 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-1.4.8.tgz", "integrity": "sha512-5uc8LEuCH7+0h++wqAav/EktTHOjbLDSTXQlU9fzPIlNNgyf2eXrHVN2AGMGKiMR9Z4gS7umQjZ54r0w/mZ/Fw==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -779,7 +710,6 @@ "version": "1.10.4", "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-1.10.4.tgz", "integrity": "sha512-AM91VQQxw8F4F1WDA28mqKY6NFIOuzc2Ekkna88imy2OiqqmYH0xkq8J16L2qj4cLiLozpYqba3C79pWioy6FA==", - "dev": true, "requires": { "@types/lodash.mergewith": "4.6.6", "css-box-model": "1.2.1", @@ -791,7 +721,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-1.1.6.tgz", "integrity": "sha512-Xzy5bA0UA+IyMgwJizQYSEdgz8cC/tHdmFB3CniXzmpKTSK8mJddeEBl+cGbXHBzxEUhH7xF1eaS41O+0ezWEQ==", - "dev": true, "requires": { "@chakra-ui/utils": "1.10.4" } @@ -799,14 +728,12 @@ "@ctrl/tinycolor": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", - "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==", - "dev": true + "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" }, "@emotion/babel-plugin": { "version": "11.9.2", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", - "dev": true, "requires": { "@babel/helper-module-imports": "^7.12.13", "@babel/plugin-syntax-jsx": "^7.12.13", @@ -826,7 +753,6 @@ "version": "11.7.1", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", - "dev": true, "requires": { "@emotion/memoize": "^0.7.4", "@emotion/sheet": "^1.1.0", @@ -838,14 +764,12 @@ "@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, "@emotion/is-prop-valid": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz", "integrity": "sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==", - "dev": true, "requires": { "@emotion/memoize": "^0.7.4" } @@ -853,14 +777,12 @@ "@emotion/memoize": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", - "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==", - "dev": true + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" }, "@emotion/react": { "version": "11.9.0", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.0.tgz", "integrity": "sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==", - "dev": true, "requires": { "@babel/runtime": "^7.13.10", "@emotion/babel-plugin": "^11.7.1", @@ -875,7 +797,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.3.tgz", "integrity": "sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==", - "dev": true, "requires": { "@emotion/hash": "^0.8.0", "@emotion/memoize": "^0.7.4", @@ -887,14 +808,12 @@ "@emotion/sheet": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", - "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==", - "dev": true + "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" }, "@emotion/styled": { "version": "11.8.1", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.8.1.tgz", "integrity": "sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ==", - "dev": true, "requires": { "@babel/runtime": "^7.13.10", "@emotion/babel-plugin": "^11.7.1", @@ -906,26 +825,22 @@ "@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, "@emotion/utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", - "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==", - "dev": true + "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" }, "@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==", - "dev": true + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, "@formatjs/cli": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-4.8.4.tgz", "integrity": "sha512-zZI8QYVl5CHaT6j9OHjS+0mMnWzopBVH0un4n5b4IhIJRzIKnxwFTkxBp5Ifqj6FntrwzIGqP+D6v8u7MPYsmw==", - "dev": true, "requires": { "@formatjs/icu-messageformat-parser": "2.1.0", "@formatjs/ts-transformer": "3.9.4", @@ -949,7 +864,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -958,7 +872,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -968,7 +881,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -976,20 +888,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1000,7 +909,6 @@ "version": "1.11.4", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", - "dev": true, "requires": { "@formatjs/intl-localematcher": "0.2.25", "tslib": "^2.1.0" @@ -1010,7 +918,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", - "dev": true, "requires": { "tslib": "^2.1.0" } @@ -1019,7 +926,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/icu-skeleton-parser": "1.3.6", @@ -1030,7 +936,6 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "tslib": "^2.1.0" @@ -1040,7 +945,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz", "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/fast-memoize": "1.2.1", @@ -1055,7 +959,6 @@ "version": "9.13.0", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/fast-memoize": "1.2.1", @@ -1069,7 +972,6 @@ "version": "5.4.3", "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz", "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/intl-localematcher": "0.2.25", @@ -1080,7 +982,6 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz", "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/intl-localematcher": "0.2.25", @@ -1091,7 +992,6 @@ "version": "0.2.25", "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", - "dev": true, "requires": { "tslib": "^2.1.0" } @@ -1100,7 +1000,6 @@ "version": "3.9.4", "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.9.4.tgz", "integrity": "sha512-S5q/zsTodaKtxVxNvbRQ9APenJtm5smXE76usS+5yF2vWQdZHkagmOKWfgvfIbesP4SR2B+i3koqlnlpqSIp5w==", - "dev": true, "requires": { "@formatjs/icu-messageformat-parser": "2.1.0", "@types/node": "14 || 16 || 17", @@ -1113,7 +1012,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -1122,7 +1020,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1132,7 +1029,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1140,20 +1036,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1164,7 +1057,6 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -1177,7 +1069,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -1186,7 +1077,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1196,7 +1086,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1204,20 +1093,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1228,7 +1114,6 @@ "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz", "integrity": "sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==", - "dev": true, "requires": { "chalk": "^2.3.1", "execa": "^1.0.0", @@ -1239,7 +1124,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1249,8 +1133,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" } } }, @@ -1258,7 +1141,6 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/@lhci/cli/-/cli-0.7.2.tgz", "integrity": "sha512-WE/1YPzlUUtGEm3KWr8rP09w6TNOfpa+dUm+EYpIm+xVtJHgcVKuVURrrQ4SXN9jy36V+aAfnKOQdvOdqel5QA==", - "dev": true, "requires": { "@lhci/utils": "0.7.2", "chrome-launcher": "^0.13.4", @@ -1281,7 +1163,6 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/@lhci/utils/-/utils-0.7.2.tgz", "integrity": "sha512-KqqF8lPkRpFflfBY6MQLBOfqymMAj6GnOkE54kbZnRwmtgceSSzPa80/fNd/z1T8j/oWT6DQAkA+yLbPcTMQrQ==", - "dev": true, "requires": { "debug": "^4.3.1", "isomorphic-fetch": "^3.0.0", @@ -1294,7 +1175,6 @@ "version": "5.15.2", "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.2.tgz", "integrity": "sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==", - "dev": true, "requires": { "@babel/runtime": "^7.7.7", "hoist-non-react-statics": "^3.3.1", @@ -1305,7 +1185,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz", "integrity": "sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q==", - "dev": true, "requires": { "@types/set-cookie-parser": "^2.4.0", "set-cookie-parser": "^2.4.6" @@ -1315,7 +1194,6 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.8.1.tgz", "integrity": "sha512-OI9FYmtURESZG3QDNz4Yt3osy3HY4T3FjlRw+AG4QS1UDdTSZ0tuPFAkp23nGR9ojmbSSj4gSMjf5+R8Oi/qtQ==", - "dev": true, "requires": { "@open-draft/until": "^1.0.3", "debug": "^4.3.0", @@ -1327,7 +1205,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1336,14 +1213,12 @@ "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1352,14 +1227,12 @@ "@open-draft/until": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", - "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", - "dev": true + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==" }, "@peculiar/asn1-schema": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.0.tgz", "integrity": "sha512-D6g4C5YRKC/iPujMAOXuZ7YGdaoMx8GsvWzfVSyx2LYeL38ECOKNywlYAuwbqQvON64lgsYdAujWQPX8hhoBLw==", - "dev": true, "requires": { "@types/asn1js": "^2.0.2", "asn1js": "^2.3.1", @@ -1371,7 +1244,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dev": true, "requires": { "tslib": "^2.0.0" } @@ -1380,7 +1252,6 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.3.3.tgz", "integrity": "sha512-+jkp16Hp18HkphJlMtqsQKjyDWJBh0AhDuoB+vVakuIRbkBdaFb7v26Ldm25altjiYhCyQnR5NChHxwSTvbXJw==", - "dev": true, "requires": { "@peculiar/asn1-schema": "^2.1.0", "@peculiar/json-schema": "^1.1.12", @@ -1392,14 +1263,12 @@ "@popperjs/core": { "version": "2.11.5", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", - "dev": true + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" }, "@reach/alert": { "version": "0.13.2", "resolved": "https://registry.npmjs.org/@reach/alert/-/alert-0.13.2.tgz", "integrity": "sha512-LDz83AXCrClyq/MWe+0vaZfHp1Ytqn+kgL5VxG7rirUvmluWaj/snxzfNPWn0Ma4K2YENmXXRC/iHt5X95SqIg==", - "dev": true, "requires": { "@reach/utils": "0.13.2", "@reach/visually-hidden": "0.13.2", @@ -1411,7 +1280,6 @@ "version": "0.13.2", "resolved": "https://registry.npmjs.org/@reach/utils/-/utils-0.13.2.tgz", "integrity": "sha512-3ir6cN60zvUrwjOJu7C6jec/samqAeyAB12ZADK+qjnmQPdzSYldrFWwDVV5H0WkhbYXR3uh+eImu13hCetNPQ==", - "dev": true, "requires": { "@types/warning": "^3.0.0", "tslib": "^2.1.0", @@ -1422,7 +1290,6 @@ "version": "0.13.2", "resolved": "https://registry.npmjs.org/@reach/visually-hidden/-/visually-hidden-0.13.2.tgz", "integrity": "sha512-sPZwNS0/duOuG0mYwE5DmgEAzW9VhgU3aIt1+mrfT/xiT9Cdncqke+kRBQgU708q/Ttm9tWsoHni03nn/SuPTQ==", - "dev": true, "requires": { "prop-types": "^15.7.2", "tslib": "^2.1.0" @@ -1431,14 +1298,12 @@ "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "requires": { "defer-to-connect": "^1.0.1" } @@ -1447,7 +1312,6 @@ "version": "7.31.2", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz", "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", - "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -1463,7 +1327,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -1472,7 +1335,6 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, "requires": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" @@ -1482,7 +1344,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1492,7 +1353,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1500,20 +1360,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, "requires": { "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", @@ -1524,14 +1381,12 @@ "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==", - "dev": true + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1542,7 +1397,6 @@ "version": "5.16.4", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz", "integrity": "sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA==", - "dev": true, "requires": { "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", @@ -1559,7 +1413,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -1568,7 +1421,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1578,7 +1430,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1586,20 +1437,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1610,7 +1458,6 @@ "version": "11.2.7", "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz", "integrity": "sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA==", - "dev": true, "requires": { "@babel/runtime": "^7.12.5", "@testing-library/dom": "^7.28.1" @@ -1620,7 +1467,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz", "integrity": "sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==", - "dev": true, "requires": { "@babel/runtime": "^7.12.5", "@types/react": ">=16.9.0", @@ -1633,7 +1479,6 @@ "version": "12.8.3", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz", "integrity": "sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==", - "dev": true, "requires": { "@babel/runtime": "^7.12.5" } @@ -1641,32 +1486,27 @@ "@types/aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", - "dev": true + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" }, "@types/asn1js": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", - "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==", - "dev": true + "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" }, "@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" }, "@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "@types/fs-extra": { "version": "9.0.13", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, "requires": { "@types/node": "*" } @@ -1675,7 +1515,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "dev": true, "requires": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -1685,7 +1524,6 @@ "version": "7.3.3", "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", - "dev": true, "requires": { "@types/through": "*", "rxjs": "^6.4.0" @@ -1694,14 +1532,12 @@ "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" }, "@types/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" } @@ -1710,7 +1546,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, "requires": { "@types/istanbul-lib-report": "*" } @@ -1719,7 +1554,6 @@ "version": "27.5.0", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.0.tgz", "integrity": "sha512-9RBFx7r4k+msyj/arpfaa0WOOEcaAZNmN+j80KFbFCoSqCJGHTz7YMAMGQW9Xmqm5w6l5c25vbSjMwlikJi5+g==", - "dev": true, "requires": { "jest-matcher-utils": "^27.0.0", "pretty-format": "^27.0.0" @@ -1728,26 +1562,22 @@ "@types/js-levenshtein": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", - "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", - "dev": true + "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==" }, "@types/json-stable-stringify": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz", - "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==", - "dev": true + "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==" }, "@types/lodash": { "version": "4.14.182", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==", - "dev": true + "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" }, "@types/lodash.mergewith": { "version": "4.6.6", "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz", "integrity": "sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==", - "dev": true, "requires": { "@types/lodash": "*" } @@ -1755,26 +1585,22 @@ "@types/node": { "version": "14.18.16", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.16.tgz", - "integrity": "sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q==", - "dev": true + "integrity": "sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q==" }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { "version": "17.0.44", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.44.tgz", "integrity": "sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==", - "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1785,7 +1611,6 @@ "version": "18.0.3", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.3.tgz", "integrity": "sha512-1RRW9kst+67gveJRYPxGmVy8eVJ05O43hg77G2j5m76/RFJtMbcfAs2viQ2UNsvvDg8F7OfQZx8qQcl6ymygaQ==", - "dev": true, "requires": { "@types/react": "*" } @@ -1794,7 +1619,6 @@ "version": "18.0.0", "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz", "integrity": "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==", - "dev": true, "requires": { "@types/react": "*" } @@ -1802,14 +1626,12 @@ "@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@types/set-cookie-parser": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", - "dev": true, "requires": { "@types/node": "*" } @@ -1818,7 +1640,6 @@ "version": "5.14.3", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz", "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==", - "dev": true, "requires": { "@types/jest": "*" } @@ -1827,7 +1648,6 @@ "version": "0.0.30", "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dev": true, "requires": { "@types/node": "*" } @@ -1835,14 +1655,12 @@ "@types/warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=", - "dev": true + "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" }, "@types/yargs": { "version": "15.0.14", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, "requires": { "@types/yargs-parser": "*" } @@ -1850,14 +1668,12 @@ "@types/yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "@vue/compiler-core": { "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.33.tgz", "integrity": "sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==", - "dev": true, "requires": { "@babel/parser": "^7.16.4", "@vue/shared": "3.2.33", @@ -1868,8 +1684,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -1877,7 +1692,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz", "integrity": "sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==", - "dev": true, "requires": { "@vue/compiler-core": "3.2.33", "@vue/shared": "3.2.33" @@ -1887,7 +1701,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz", "integrity": "sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==", - "dev": true, "requires": { "@babel/parser": "^7.16.4", "@vue/compiler-core": "3.2.33", @@ -1904,8 +1717,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -1913,7 +1725,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz", "integrity": "sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==", - "dev": true, "requires": { "@vue/compiler-dom": "3.2.33", "@vue/shared": "3.2.33" @@ -1923,7 +1734,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.33.tgz", "integrity": "sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==", - "dev": true, "requires": { "@vue/shared": "3.2.33" } @@ -1932,7 +1742,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz", "integrity": "sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==", - "dev": true, "requires": { "@babel/parser": "^7.16.4", "@vue/compiler-core": "3.2.33", @@ -1945,7 +1754,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.33.tgz", "integrity": "sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==", - "dev": true, "requires": { "@vue/reactivity": "3.2.33", "@vue/shared": "3.2.33" @@ -1955,7 +1763,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.33.tgz", "integrity": "sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==", - "dev": true, "requires": { "@vue/runtime-core": "3.2.33", "@vue/shared": "3.2.33", @@ -1965,8 +1772,7 @@ "csstype": { "version": "2.6.20", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", - "dev": true + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" } } }, @@ -1974,7 +1780,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.33.tgz", "integrity": "sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==", - "dev": true, "requires": { "@vue/compiler-ssr": "3.2.33", "@vue/shared": "3.2.33" @@ -1983,20 +1788,17 @@ "@vue/shared": { "version": "3.2.33", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz", - "integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==", - "dev": true + "integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==" }, "JSV": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", - "dev": true + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" }, "accepts": { "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==", - "dev": true, "requires": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -2006,7 +1808,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2018,7 +1819,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, "requires": { "string-width": "^4.1.0" } @@ -2027,7 +1827,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, "requires": { "type-fest": "^0.21.3" } @@ -2035,14 +1834,12 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -2051,7 +1848,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2061,7 +1857,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -2070,7 +1865,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.1.3.tgz", "integrity": "sha512-RhVWFtKH5BiGMycI72q2RAFMLQi8JP9bLuQXgR5a8Znp7P5KOIADSJeyfI8PCVxLEp067B2HbP5JIiI/PXIZeA==", - "dev": true, "requires": { "tslib": "^1.0.0" }, @@ -2078,40 +1872,34 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "aria-query": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-uniq": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", - "integrity": "sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0=", - "dev": true + "integrity": "sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0=" }, "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -2120,7 +1908,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.4.0.tgz", "integrity": "sha512-PvZC0FMyMut8aOnR2jAEGSkmRtHIUYPe9amUEnGjr9TdnUmsfoOkjrvUkOEU9mzpYBR1HyO9bF+8U1cLTMMHhQ==", - "dev": true, "requires": { "pvutils": "^1.1.3" } @@ -2128,50 +1915,42 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "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==", - "dev": true + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axe-core": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", - "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==", - "dev": true + "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==" }, "babel-plugin-macros": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, "requires": { "@babel/runtime": "^7.7.2", "cosmiconfig": "^6.0.0", @@ -2181,20 +1960,17 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-arraybuffer": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", - "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", - "dev": true + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -2202,14 +1978,12 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dev": true, "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -2228,14 +2002,12 @@ "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -2243,14 +2015,12 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, "requires": { "side-channel": "^1.0.4" } @@ -2261,7 +2031,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", @@ -2277,7 +2046,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -2286,7 +2054,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2296,7 +2063,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -2304,20 +2070,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -2325,8 +2088,7 @@ "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" } } }, @@ -2334,7 +2096,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2344,7 +2105,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -2352,14 +2112,12 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "bundlesize2": { "version": "0.0.30", "resolved": "https://registry.npmjs.org/bundlesize2/-/bundlesize2-0.0.30.tgz", "integrity": "sha512-dVNC4zGdaRMMf+KK4Xf+wsPIuuDYrgDtZaX5gb1jX2vRCSOgrh2ka0Y3BGmcwMC0vViBg38yoap9AUXLBItZFA==", - "dev": true, "requires": { "bytes": "^3.1.0", "chalk": "^4.0.0", @@ -2378,7 +2136,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -2386,14 +2143,12 @@ "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2403,7 +2158,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -2411,20 +2165,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, "requires": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", @@ -2435,14 +2186,12 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, "requires": { "caller-path": "^2.0.0", "resolve-from": "^3.0.0" @@ -2452,7 +2201,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -2461,14 +2209,12 @@ "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -2478,14 +2224,12 @@ "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -2500,7 +2244,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -2508,8 +2251,7 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" } } }, @@ -2517,7 +2259,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -2527,7 +2268,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, "requires": { "callsites": "^2.0.0" }, @@ -2535,8 +2275,7 @@ "callsites": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" } } }, @@ -2544,7 +2283,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, "requires": { "caller-callsite": "^2.0.0" } @@ -2552,26 +2290,22 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "canonicalize": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", - "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", - "dev": true + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==" }, "card-validator": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/card-validator/-/card-validator-8.1.1.tgz", "integrity": "sha512-cN4FsKwoTfTFnqPwVc7TQLSsH/QMDB3n/gWm0XelcApz4sKipnOQ6k33sa3bWsNnnIpgs7eXOF+mUV2UQAX2Sw==", - "dev": true, "requires": { "credit-card-type": "^9.1.0" } @@ -2579,14 +2313,12 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -2598,26 +2330,22 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2625,28 +2353,24 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2662,7 +2386,6 @@ "version": "0.13.4", "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", - "dev": true, "requires": { "@types/node": "*", "escape-string-regexp": "^1.0.5", @@ -2675,14 +2398,12 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -2692,26 +2413,22 @@ "ci-env": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/ci-env/-/ci-env-1.17.0.tgz", - "integrity": "sha512-NtTjhgSEqv4Aj90TUYHQLxHdnCPXnjdtuGG1X8lTfp/JqeXTdw0FTWl/vUAPuvbWZTF8QVpv6ASe/XacE+7R2A==", - "dev": true + "integrity": "sha512-NtTjhgSEqv4Aj90TUYHQLxHdnCPXnjdtuGG1X8lTfp/JqeXTdw0FTWl/vUAPuvbWZTF8QVpv6ASe/XacE+7R2A==" }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, "requires": { "restore-cursor": "^3.1.0" } @@ -2719,14 +2436,12 @@ "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -2737,7 +2452,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -2746,7 +2460,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -2754,14 +2467,12 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -2769,14 +2480,12 @@ "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, "commerce-sdk-isomorphic": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/commerce-sdk-isomorphic/-/commerce-sdk-isomorphic-1.5.2.tgz", "integrity": "sha512-/OymVbOCpoDE3T8ezm5VnQ8uMErZLSraMS+ANaYOII1ia7lxkbqzI2vwAKYotkji1Vcb3JKArOSkn1jjRIumBA==", - "dev": true, "requires": { "cross-fetch": "^3.1.5", "nanoid": "^3.1.30" @@ -2786,7 +2495,6 @@ "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, "requires": { "mime-db": ">= 1.43.0 < 2" } @@ -2795,7 +2503,6 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, "requires": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -2810,7 +2517,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -2818,28 +2524,24 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "compute-scroll-into-view": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz", - "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==", - "dev": true + "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, "requires": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -2853,7 +2555,6 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, "requires": { "safe-buffer": "5.2.1" }, @@ -2861,22 +2562,19 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" } @@ -2884,20 +2582,17 @@ "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "copy-to-clipboard": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "dev": true, "requires": { "toggle-selection": "^1.0.6" } @@ -2905,26 +2600,22 @@ "core-js": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz", - "integrity": "sha1-30CKtG0Br/kcAcPnlxk11CLFT4E=", - "dev": true + "integrity": "sha1-30CKtG0Br/kcAcPnlxk11CLFT4E=" }, "core-js-pure": { "version": "3.22.4", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.4.tgz", - "integrity": "sha512-4iF+QZkpzIz0prAFuepmxwJ2h5t4agvE8WPYqs2mjLJMNNwJOnpch76w2Q7bUfCPEv/V7wpvOfog0w273M+ZSw==", - "dev": true + "integrity": "sha512-4iF+QZkpzIz0prAFuepmxwJ2h5t4agvE8WPYqs2mjLJMNNwJOnpch76w2Q7bUfCPEv/V7wpvOfog0w273M+ZSw==" }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -2936,14 +2627,12 @@ "credit-card-type": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/credit-card-type/-/credit-card-type-9.1.0.tgz", - "integrity": "sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA==", - "dev": true + "integrity": "sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA==" }, "cross-env": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", - "dev": true, "requires": { "cross-spawn": "^6.0.5" } @@ -2952,7 +2641,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, "requires": { "node-fetch": "2.6.7" } @@ -2961,7 +2649,6 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -2973,26 +2660,22 @@ "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" }, "crypto-random-string": { "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==", - "dev": true + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" }, "csp_evaluator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.0.tgz", - "integrity": "sha512-TcB+ZH9wZBG314jAUpKHPl1oYbRJV+nAT2YwZ9y4fmUN0FkEJa8e/hKZoOgzLYp1Z/CJdFhbhhGIGh0XG8W54Q==", - "dev": true + "integrity": "sha512-TcB+ZH9wZBG314jAUpKHPl1oYbRJV+nAT2YwZ9y4fmUN0FkEJa8e/hKZoOgzLYp1Z/CJdFhbhhGIGh0XG8W54Q==" }, "css": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, "requires": { "inherits": "^2.0.4", "source-map": "^0.6.1", @@ -3002,8 +2685,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -3011,7 +2693,6 @@ "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==", - "dev": true, "requires": { "tiny-invariant": "^1.0.6" } @@ -3019,20 +2700,17 @@ "css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", - "dev": true + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" }, "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "cssstyle": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", - "dev": true, "requires": { "cssom": "0.3.x" } @@ -3040,14 +2718,12 @@ "csstype": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", - "dev": true + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, "requires": { "array-find-index": "^1.0.1" } @@ -3056,7 +2732,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -3065,7 +2740,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -3073,20 +2747,17 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -3094,20 +2765,17 @@ "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -3116,50 +2784,42 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "details-element-polyfill": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz", - "integrity": "sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g==", - "dev": true + "integrity": "sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g==" }, "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==", - "dev": true + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, "diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" }, "dom-accessibility-api": { "version": "0.5.14", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", - "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", - "dev": true + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, "requires": { "is-obj": "^2.0.0" } @@ -3167,20 +2827,17 @@ "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -3190,7 +2847,6 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -3198,26 +2854,22 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -3226,7 +2878,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -3235,7 +2886,6 @@ "version": "1.19.5", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", - "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -3263,7 +2913,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -3273,56 +2922,47 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "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==", - "dev": true + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -3337,7 +2977,6 @@ "version": "4.18.1", "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -3375,14 +3014,12 @@ "cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3390,14 +3027,12 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, "requires": { "side-channel": "^1.0.4" } @@ -3405,22 +3040,19 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -3431,7 +3063,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { "os-tmpdir": "~1.0.2" } @@ -3441,20 +3072,17 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3466,14 +3094,12 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -3482,7 +3108,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, "requires": { "pend": "~1.2.0" } @@ -3491,7 +3116,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, "requires": { "escape-string-regexp": "^1.0.5" }, @@ -3499,8 +3123,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" } } }, @@ -3508,7 +3131,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -3516,14 +3138,12 @@ "filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=", - "dev": true + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" }, "finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -3538,7 +3158,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3546,22 +3165,19 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -3571,7 +3187,6 @@ "version": "0.9.2", "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.9.2.tgz", "integrity": "sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ==", - "dev": true, "requires": { "tslib": "^2.0.3" } @@ -3579,20 +3194,17 @@ "focus-visible": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/focus-visible/-/focus-visible-5.2.0.tgz", - "integrity": "sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==", - "dev": true + "integrity": "sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==" }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -3602,14 +3214,12 @@ "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "framer-motion": { "version": "3.10.6", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-3.10.6.tgz", "integrity": "sha512-OxOtKgQS4km9a8dm0IMBtNNp4f0DiHfQ/IzxKs818+Kg9V/Ve/pRUJ2dtWBb6+W4lIPNLgRSpbOwOACVj15XcQ==", - "dev": true, "requires": { "@emotion/is-prop-valid": "^0.8.2", "framesync": "5.2.0", @@ -3623,7 +3233,6 @@ "version": "0.8.8", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, "optional": true, "requires": { "@emotion/memoize": "0.7.4" @@ -3633,20 +3242,17 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true, "optional": true }, "framesync": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", - "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==", - "dev": true + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==" }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -3654,7 +3260,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", - "dev": true, "requires": { "tslib": "^2.1.0" } @@ -3662,14 +3267,12 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -3679,21 +3282,18 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "full-icu": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.4.0.tgz", "integrity": "sha512-pH8z7WVKJ3QR/8UoIOZupjRCYqpMFSxjPruYbPS8Ra19UGHuUEsnXP8+ny8o7KCF/AZcEkzJXAtGsveYbP17Uw==", - "dev": true, "requires": { "yauzl": "^2.10.0" } @@ -3701,20 +3301,17 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3724,14 +3321,12 @@ "get-nonce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "dev": true + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -3740,7 +3335,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -3750,7 +3344,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -3759,7 +3352,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3773,7 +3365,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -3782,7 +3373,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, "requires": { "ini": "1.3.7" } @@ -3791,7 +3381,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -3809,20 +3398,17 @@ "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "graphql": { "version": "15.8.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "dev": true + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" }, "gzip-size": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "dev": true, "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" @@ -3831,22 +3417,19 @@ "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" } } }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -3856,7 +3439,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -3865,7 +3447,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" }, @@ -3873,28 +3454,24 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-property-descriptors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, "requires": { "get-intrinsic": "^1.1.1" } @@ -3902,14 +3479,12 @@ "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, "requires": { "has-symbols": "^1.0.2" } @@ -3917,32 +3492,27 @@ "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" }, "headers-utils": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz", - "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==", - "dev": true + "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==" }, "helmet": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", - "dev": true + "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" }, "hey-listen": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", - "dev": true + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" }, "history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dev": true, "requires": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -3956,7 +3526,6 @@ "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==", - "dev": true, "requires": { "react-is": "^16.7.0" } @@ -3964,14 +3533,12 @@ "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "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==", - "dev": true, "requires": { "depd": "2.0.0", "inherits": "2.0.4", @@ -3983,14 +3550,12 @@ "http-link-header": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-0.8.0.tgz", - "integrity": "sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ=", - "dev": true + "integrity": "sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ=" }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -4001,7 +3566,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -4009,14 +3573,12 @@ "image-ssim": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", - "integrity": "sha1-g7Qsei5uS4VQVHf+aRf128VkIOU=", - "dev": true + "integrity": "sha1-g7Qsei5uS4VQVHf+aRf128VkIOU=" }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -4025,26 +3587,22 @@ "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -4053,20 +3611,17 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" }, "inquirer": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -4086,20 +3641,17 @@ "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" }, "ansi-regex": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4110,7 +3662,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, "requires": { "restore-cursor": "^2.0.0" } @@ -4118,20 +3669,17 @@ "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } @@ -4139,26 +3687,22 @@ "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -4167,7 +3711,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -4177,7 +3720,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -4187,7 +3729,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -4198,7 +3739,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" }, @@ -4206,8 +3746,7 @@ "ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" } } } @@ -4217,7 +3756,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, "requires": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", @@ -4227,14 +3765,12 @@ "intl": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=", - "dev": true + "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=" }, "intl-messageformat": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", - "dev": true, "requires": { "intl-messageformat-parser": "^1.8.1" } @@ -4242,20 +3778,17 @@ "intl-messageformat-parser": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", - "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", - "dev": true + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==" }, "intl-pluralrules": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.3.1.tgz", - "integrity": "sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w==", - "dev": true + "integrity": "sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w==" }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -4263,26 +3796,22 @@ "ipaddr.js": { "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==", - "dev": true + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, "irregular-plurals": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz", - "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==", - "dev": true + "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==" }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, "requires": { "has-bigints": "^1.0.1" } @@ -4291,7 +3820,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -4300,7 +3828,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -4309,20 +3836,17 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, "requires": { "ci-info": "^2.0.0" } @@ -4331,7 +3855,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, "requires": { "has": "^1.0.3" } @@ -4340,7 +3863,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -4348,32 +3870,27 @@ "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -4382,7 +3899,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, "requires": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" @@ -4391,26 +3907,22 @@ "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" }, "is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -4418,20 +3930,17 @@ "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -4441,7 +3950,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, "requires": { "call-bind": "^1.0.2" } @@ -4449,14 +3957,12 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, "requires": { "has-tostringtag": "^1.0.0" } @@ -4465,7 +3971,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, "requires": { "has-symbols": "^1.0.2" } @@ -4473,14 +3978,12 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, "requires": { "call-bind": "^1.0.2" } @@ -4489,7 +3992,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, "requires": { "is-docker": "^2.0.0" } @@ -4497,26 +3999,22 @@ "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isomorphic-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dev": true, "requires": { "node-fetch": "^2.6.1", "whatwg-fetch": "^3.4.1" @@ -4525,22 +4023,19 @@ "whatwg-fetch": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "dev": true + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" } } }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jest-diff": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^27.5.1", @@ -4552,7 +4047,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -4561,7 +4055,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4571,7 +4064,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -4579,20 +4071,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -4603,7 +4092,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-2.1.2.tgz", "integrity": "sha512-tcSR4Lh2bWLe1+0w/IwvNxeDocMI/6yIA2bijZ0fyWxC4kQ18lckQ1n7Yd40NKuisGmcGBRFPandRXrW/ti/Bw==", - "dev": true, "requires": { "cross-fetch": "^2.2.2", "promise-polyfill": "^7.1.1" @@ -4613,7 +4101,6 @@ "version": "2.2.6", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", - "dev": true, "requires": { "node-fetch": "^2.6.7", "whatwg-fetch": "^2.0.4" @@ -4622,22 +4109,19 @@ "whatwg-fetch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" } } }, "jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" }, "jest-matcher-utils": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, "requires": { "chalk": "^4.0.0", "jest-diff": "^27.5.1", @@ -4649,7 +4133,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -4658,7 +4141,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4668,7 +4150,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -4676,20 +4157,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -4699,38 +4177,32 @@ "jpeg-js": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", - "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==", - "dev": true + "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==" }, "js-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", - "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==", - "dev": true + "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==" }, "js-levenshtein": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" }, "js-library-detector": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.4.0.tgz", - "integrity": "sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g==", - "dev": true + "integrity": "sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g==" }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -4739,44 +4211,37 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "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==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, "requires": { "jsonify": "~0.0.0" } @@ -4784,14 +4249,12 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" @@ -4800,14 +4263,12 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsonld": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", - "dev": true, "requires": { "canonicalize": "^1.0.1", "lru-cache": "^5.1.1", @@ -4820,8 +4281,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -4829,7 +4289,6 @@ "version": "1.7.6", "resolved": "https://registry.npmjs.org/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz", "integrity": "sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg==", - "dev": true, "requires": { "JSV": "^4.0.2", "chalk": "^2.4.2", @@ -4840,7 +4299,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4850,8 +4308,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" } } }, @@ -4859,7 +4316,6 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -4870,14 +4326,12 @@ "jwt-decode": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", - "dev": true + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -4886,7 +4340,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, "requires": { "package-json": "^6.3.0" } @@ -4895,7 +4348,6 @@ "version": "7.3.0", "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-7.3.0.tgz", "integrity": "sha512-c3loU7ptP8TAlR+bBhc+5ClALx/YVRSh8m5KPiDZQ7wNYxRnhZjDDz6rLzd5gLDhjVwhjMv1APypZegDOFkKOQ==", - "dev": true, "requires": { "axe-core": "4.1.3", "chrome-launcher": "^0.13.4", @@ -4938,7 +4390,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -4947,7 +4398,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4957,7 +4407,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -4965,20 +4414,17 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", @@ -4998,14 +4444,12 @@ "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, "open": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, "requires": { "is-wsl": "^1.1.0" } @@ -5014,7 +4458,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -5023,7 +4466,6 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, "requires": { "boxen": "^4.2.0", "chalk": "^3.0.0", @@ -5044,7 +4486,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5056,7 +4497,6 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -5070,8 +4510,7 @@ "yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" } } }, @@ -5079,7 +4518,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", - "dev": true, "requires": { "debug": "^2.6.8", "marky": "^1.2.0" @@ -5089,7 +4527,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -5097,28 +4534,24 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "lighthouse-stack-packs": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.8.1.tgz", - "integrity": "sha512-LSCu9Ugt9NPvRfBNzAjMDLvYev9r/93OTmbIWt9iXwiCmd999I/zneRTwsFLtlQWGKwNbDHS9vXnU+KpXUb1qg==", - "dev": true + "integrity": "sha512-LSCu9Ugt9NPvRfBNzAjMDLvYev9r/93OTmbIWt9iXwiCmd999I/zneRTwsFLtlQWGKwNbDHS9vXnU+KpXUb1qg==" }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -5126,44 +4559,37 @@ "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, "lodash.mergewith": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" }, "lookup-closest-locale": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz", - "integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==", - "dev": true + "integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==" }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -5172,7 +4598,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", - "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.2" @@ -5181,14 +4606,12 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "requires": { "yallist": "^3.0.2" } @@ -5196,14 +4619,12 @@ "lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", - "dev": true + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, "requires": { "sourcemap-codec": "^1.4.8" } @@ -5212,7 +4633,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "requires": { "semver": "^6.0.0" }, @@ -5220,22 +4640,19 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "marky": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", - "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==", - "dev": true + "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==" }, "md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, "requires": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -5245,38 +4662,32 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "metaviewport-parser": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz", - "integrity": "sha1-U1w84cz2IjpQJf3cahw2UF9+fbE=", - "dev": true + "integrity": "sha1-U1w84cz2IjpQJf3cahw2UF9+fbE=" }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -5285,20 +4696,17 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -5306,26 +4714,22 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-create-react-context": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "dev": true, "requires": { "@babel/runtime": "^7.12.1", "tiny-warning": "^1.0.3" @@ -5335,7 +4739,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5343,14 +4746,12 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, "requires": { "minimist": "^1.2.6" } @@ -5358,14 +4759,12 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "msw": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/msw/-/msw-0.28.2.tgz", "integrity": "sha512-WHfRd+Zwfy8yNPAx4PDJ0PnaEqUw5QOjWbCk5MmgpHMl51R3FJ2yIC694RdqR1bInqoaV94wW9Irv9eSyh65lQ==", - "dev": true, "requires": { "@mswjs/cookies": "^0.1.4", "@mswjs/interceptors": "^0.8.0", @@ -5391,7 +4790,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -5400,7 +4798,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5410,7 +4807,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -5418,26 +4814,22 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", @@ -5458,7 +4850,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -5467,7 +4858,6 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -5481,40 +4871,34 @@ "yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" } } }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "njwt": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/njwt/-/njwt-1.2.0.tgz", "integrity": "sha512-i+cdqwxo7EUimJCHPSAEpQEWrz4ilsVefL+FRhWrjMqq8HHiQ8dwi9GUWUfj3Vt6XMY2PXSjMn9JeVB3/Jp6pg==", - "dev": true, "requires": { "@types/node": "^15.0.1", "ecdsa-sig-formatter": "^1.0.5", @@ -5524,8 +4908,7 @@ "@types/node": { "version": "15.14.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==" } } }, @@ -5533,7 +4916,6 @@ "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, "requires": { "whatwg-url": "^5.0.0" } @@ -5541,26 +4923,22 @@ "node-match-path": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz", - "integrity": "sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q==", - "dev": true + "integrity": "sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q==" }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "^2.0.0" } @@ -5568,32 +4946,27 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -5605,7 +4978,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -5616,7 +4988,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, "requires": { "ee-first": "1.1.1" } @@ -5624,14 +4995,12 @@ "on-headers": { "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==", - "dev": true + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -5640,7 +5009,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "requires": { "mimic-fn": "^2.1.0" } @@ -5649,7 +5017,6 @@ "version": "7.4.2", "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, "requires": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -5658,26 +5025,22 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -5686,7 +5049,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -5694,14 +5056,12 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, "requires": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -5712,8 +5072,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -5721,7 +5080,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" } @@ -5729,14 +5087,12 @@ "parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", - "dev": true + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -5747,86 +5103,72 @@ "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "plur": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", - "dev": true, "requires": { "irregular-plurals": "^3.2.0" } @@ -5835,7 +5177,6 @@ "version": "9.3.1", "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.1.tgz", "integrity": "sha512-Qozvg8rz2OGeZwWuIjqlSXqqgWto/+QL24ll8sAAc0n71KY/wvN1W4sAASxTuHv8YWdDnk9u9IdadyPo2DGvDA==", - "dev": true, "requires": { "framesync": "5.2.0", "hey-listen": "^1.0.8", @@ -5846,14 +5187,12 @@ "framesync": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", - "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==", - "dev": true + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==" }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -5861,7 +5200,6 @@ "version": "8.4.13", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", - "dev": true, "requires": { "nanoid": "^3.3.3", "picocolors": "^1.0.0", @@ -5871,14 +5209,12 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, "requires": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -5888,28 +5224,24 @@ "ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" }, "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==", - "dev": true + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" } } }, "promise-polyfill": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz", - "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==", - "dev": true + "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==" }, "prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -5920,7 +5252,6 @@ "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==", - "dev": true, "requires": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -5929,26 +5260,22 @@ "ps-list": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", - "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", - "dev": true + "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==" }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -5957,14 +5284,12 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, "requires": { "escape-goat": "^2.0.0" } @@ -5973,7 +5298,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.0.tgz", "integrity": "sha512-q/BKu90CcOTSxuaoUwfAbLReg2jwlXjKpUO5htADXdDmz/XG4rIkgvA5xkc24td2SCg3vcoH9182TEceK2Zn0g==", - "dev": true, "requires": { "tslib": "^2.4.0" } @@ -5981,20 +5305,17 @@ "pvutils": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "dev": true + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" }, "qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" }, "query-string": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", - "dev": true, "requires": { "decode-uri-component": "^0.2.0", "filter-obj": "^1.1.0", @@ -6005,14 +5326,12 @@ "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dev": true, "requires": { "performance-now": "^2.1.0" } @@ -6020,14 +5339,12 @@ "randombytes": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", - "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew=", - "dev": true + "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew=" }, "randomstring": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.2.2.tgz", "integrity": "sha512-9FByiB8guWZLbE+akdQiWE3I1I6w7Vn5El4o4y7o5bWQ6DWPcEOp+aLG7Jezc8BVRKKpgJd2ppRX0jnKu1YCfg==", - "dev": true, "requires": { "array-uniq": "1.0.2", "randombytes": "2.0.3" @@ -6036,14 +5353,12 @@ "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raven": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz", "integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==", - "dev": true, "requires": { "cookie": "0.3.1", "md5": "^2.2.1", @@ -6055,8 +5370,7 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" } } }, @@ -6064,7 +5378,6 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, "requires": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -6075,8 +5388,7 @@ "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" } } }, @@ -6084,7 +5396,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -6096,7 +5407,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", - "dev": true, "requires": { "semver": "^6.3.0", "setimmediate": "^1.0.5" @@ -6105,8 +5415,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -6114,7 +5423,6 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -6124,7 +5432,6 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.5.tgz", "integrity": "sha512-2bL8qFW1TGBHozGGbVeyvnggRpMjibeZM2536AKNENLECutp2yfs44IL8Hmpn8qjFQ2K7A9PnYf3vc7aQq/cPA==", - "dev": true, "requires": { "@babel/runtime": "^7.12.13" } @@ -6133,7 +5440,6 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -6144,7 +5450,6 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", - "dev": true, "requires": { "@babel/runtime": "^7.12.5" } @@ -6152,14 +5457,12 @@ "react-fast-compare": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", - "dev": true + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, "react-focus-lock": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.5.2.tgz", "integrity": "sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ==", - "dev": true, "requires": { "@babel/runtime": "^7.0.0", "focus-lock": "^0.9.1", @@ -6173,7 +5476,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", - "dev": true, "requires": { "object-assign": "^4.1.1", "prop-types": "^15.7.2", @@ -6184,14 +5486,12 @@ "react-hook-form": { "version": "6.15.8", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.15.8.tgz", - "integrity": "sha512-prq82ofMbnRyj5wqDe8hsTRcdR25jQ+B8KtCS7BLCzjFHAwNuCjRwzPuP4eYLsEBjEIeYd6try+pdLdw0kPkpg==", - "dev": true + "integrity": "sha512-prq82ofMbnRyj5wqDe8hsTRcdR25jQ+B8KtCS7BLCzjFHAwNuCjRwzPuP4eYLsEBjEIeYd6try+pdLdw0kPkpg==" }, "react-intl": { "version": "5.25.1", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz", "integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/icu-messageformat-parser": "2.1.0", @@ -6209,7 +5509,6 @@ "version": "9.13.0", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", - "dev": true, "requires": { "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/fast-memoize": "1.2.1", @@ -6222,14 +5521,12 @@ "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-remove-scroll": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.4.1.tgz", "integrity": "sha512-K7XZySEzOHMTq7dDwcHsZA6Y7/1uX5RsWhRXVYv8rdh+y9Qz2nMwl9RX/Mwnj/j7JstCGmxyfyC0zbVGXYh3mA==", - "dev": true, "requires": { "react-remove-scroll-bar": "^2.1.0", "react-style-singleton": "^2.1.0", @@ -6241,8 +5538,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -6250,7 +5546,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.1.tgz", "integrity": "sha512-IvGX3mJclEF7+hga8APZczve1UyGMkMG+tjS0o/U1iLgvZRpjFAQEUBJ4JETfvbNlfNnZnoDyWJCICkA15Mghg==", - "dev": true, "requires": { "react-style-singleton": "^2.2.0", "tslib": "^2.0.0" @@ -6260,7 +5555,6 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.1.tgz", "integrity": "sha512-v+zwjqb7bakqgF+wMVKlAPTca/cEmPOvQ9zt7gpSNyPXau1+0qvuYZ5BWzzNDP1y6s15zDwgb9rPN63+SIniRQ==", - "dev": true, "requires": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -6278,7 +5572,6 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, "requires": { "isarray": "0.0.1" } @@ -6289,7 +5582,6 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.1.tgz", "integrity": "sha512-f0pj/gMAbv9e8gahTmCEY20oFhxhrmHwYeIwH5EO5xu0qme+wXtsdB8YfUOAZzUz4VaXmb58m3ceiLtjMhqYmQ==", - "dev": true, "requires": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -6303,14 +5595,12 @@ "react-side-effect": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz", - "integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==", - "dev": true + "integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==" }, "react-style-singleton": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.0.tgz", "integrity": "sha512-nK7mN92DMYZEu3cQcAhfwE48NpzO5RpxjG4okbSqRRbfal9Pk+fG2RdQXTMp+f6all1hB9LIJSt+j7dCYrU11g==", - "dev": true, "requires": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -6321,7 +5611,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -6330,7 +5619,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, "requires": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -6339,14 +5627,12 @@ "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, "requires": { "rc": "^1.2.8" } @@ -6355,7 +5641,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, "requires": { "rc": "^1.2.8" } @@ -6364,7 +5649,6 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -6391,28 +5675,24 @@ "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, "requires": { "is-core-module": "^2.8.1", "path-parse": "^1.0.7", @@ -6422,20 +5702,17 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "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==", - "dev": true + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "requires": { "lowercase-keys": "^1.0.0" } @@ -6444,7 +5721,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -6453,20 +5729,17 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "right-pad": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", - "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=", - "dev": true + "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=" }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -6474,20 +5747,17 @@ "robots-parser": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.4.0.tgz", - "integrity": "sha512-oO8f2SI04dJk3pbj2KOMJ4G6QfPAgqcGmrYGmansIcpRewIPT2ljWEt5I+ip6EgiyaLo+RXkkUWw74M25HDkMA==", - "dev": true + "integrity": "sha512-oO8f2SI04dJk3pbj2KOMJ4G6QfPAgqcGmrYGmansIcpRewIPT2ljWEt5I+ip6EgiyaLo+RXkkUWw74M25HDkMA==" }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "requires": { "queue-microtask": "^1.2.2" } @@ -6496,7 +5766,6 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, "requires": { "tslib": "^1.9.0" }, @@ -6504,28 +5773,24 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "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==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -6534,14 +5799,12 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, "requires": { "semver": "^6.3.0" }, @@ -6549,8 +5812,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -6558,7 +5820,6 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, "requires": { "debug": "2.6.9", "depd": "2.0.0", @@ -6579,7 +5840,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" }, @@ -6587,16 +5847,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" } } }, @@ -6604,7 +5862,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -6615,32 +5872,27 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-cookie-parser": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", - "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==", - "dev": true + "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -6648,14 +5900,12 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -6665,26 +5915,22 @@ "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "source-map-resolve": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -6693,14 +5939,12 @@ "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "speedline-core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", - "dev": true, "requires": { "@types/node": "*", "image-ssim": "^0.2.0", @@ -6710,20 +5954,17 @@ "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "dev": true + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -6739,20 +5980,17 @@ "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "strict-event-emitter": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.4.tgz", "integrity": "sha512-xIqTLS5azUH1djSUsLH9DbP6UnM/nI18vu8d43JigCQEoVsnY+mrlE+qv6kYqs6/1OkMnMIiL6ffedQSZStuoQ==", - "dev": true, "requires": { "events": "^3.3.0" } @@ -6760,14 +5998,12 @@ "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", - "dev": true + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6778,7 +6014,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6789,7 +6024,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6800,7 +6034,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -6808,14 +6041,12 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, "requires": { "min-indent": "^1.0.0" } @@ -6823,14 +6054,12 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, "requires": { "duplexer": "^0.1.1", "minimist": "^1.2.0", @@ -6841,7 +6070,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.1.tgz", "integrity": "sha512-cNLrl6jk+I1T18ZI2KIp/fcqKVuykcNELDrOz7y+TYZR97xmNdN0ewupURvVFnQxVrRJv98TMBq92VMsggq3kw==", - "dev": true, "requires": { "hey-listen": "^1.0.8", "tslib": "^1.10.0" @@ -6850,22 +6078,19 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "stylis": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==", - "dev": true + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -6873,50 +6098,42 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "third-party-web": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.7.tgz", - "integrity": "sha512-9d/OfjEOjyeOpnm4F9o0KSK6BI6ytvi9DINSB5h1+jdlCvQlhKpViMSxWpBN9WstdfDQ61BS6NxWqcPCuQCAJg==", - "dev": true + "integrity": "sha512-9d/OfjEOjyeOpnm4F9o0KSK6BI6ytvi9DINSB5h1+jdlCvQlhKpViMSxWpBN9WstdfDQ61BS6NxWqcPCuQCAJg==" }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "tiny-invariant": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==", - "dev": true + "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" }, "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==", - "dev": true + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, "tmp": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, "requires": { "rimraf": "^2.6.3" } @@ -6924,20 +6141,17 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -6945,20 +6159,17 @@ "toggle-selection": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", - "dev": true + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -6967,26 +6178,22 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" }, "tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -6994,20 +6201,17 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -7017,7 +6221,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "requires": { "is-typedarray": "^1.0.0" } @@ -7025,20 +6228,17 @@ "typescript": { "version": "4.6.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==" }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, "requires": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -7049,14 +6249,12 @@ "underscore": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", - "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==", - "dev": true + "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==" }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "requires": { "crypto-random-string": "^2.0.0" } @@ -7064,20 +6262,17 @@ "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", - "dev": true, "requires": { "boxen": "^3.0.0", "chalk": "^2.0.1", @@ -7096,14 +6291,12 @@ "ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" }, "boxen": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", - "dev": true, "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", @@ -7119,7 +6312,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -7130,7 +6322,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "dev": true, "requires": { "dot-prop": "^4.1.0", "graceful-fs": "^4.1.2", @@ -7144,7 +6335,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -7154,14 +6344,12 @@ "crypto-random-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, "dot-prop": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", - "dev": true, "requires": { "is-obj": "^1.0.0" } @@ -7169,20 +6357,17 @@ "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -7196,14 +6381,12 @@ "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, "requires": { "ini": "^1.3.4" } @@ -7211,14 +6394,12 @@ "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-installed-globally": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, "requires": { "global-dirs": "^0.1.0", "is-path-inside": "^1.0.0" @@ -7227,20 +6408,17 @@ "is-npm": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", - "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", - "dev": true + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==" }, "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, "requires": { "path-is-inside": "^1.0.1" } @@ -7249,7 +6427,6 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -7259,7 +6436,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, "requires": { "pify": "^3.0.0" } @@ -7268,7 +6444,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, "requires": { "semver": "^5.0.3" } @@ -7277,7 +6452,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -7288,7 +6462,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -7297,7 +6470,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, "requires": { "execa": "^0.7.0" } @@ -7305,14 +6477,12 @@ "type-fest": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, "requires": { "crypto-random-string": "^1.0.0" } @@ -7321,7 +6491,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "dev": true, "requires": { "string-width": "^2.1.1" }, @@ -7329,14 +6498,12 @@ "ansi-regex": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -7346,7 +6513,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -7357,7 +6523,6 @@ "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -7367,14 +6532,12 @@ "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, @@ -7382,7 +6545,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -7391,7 +6553,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "requires": { "prepend-http": "^2.0.0" } @@ -7400,7 +6561,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "dev": true, "requires": { "tslib": "^2.0.0" } @@ -7409,7 +6569,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dev": true, "requires": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -7418,32 +6577,27 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "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==", - "dev": true + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -7454,7 +6608,6 @@ "version": "3.2.33", "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.33.tgz", "integrity": "sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==", - "dev": true, "requires": { "@vue/compiler-dom": "3.2.33", "@vue/compiler-sfc": "3.2.33", @@ -7467,7 +6620,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -7476,7 +6628,6 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.3.tgz", "integrity": "sha512-8TnMtwwC/hQOyvElAOJ26lJKGgcErUG02KnKS1+QhjV4mDvQetVWU1EUEeLF8ICOrdc42+GypocyBJKRqo2kQg==", - "dev": true, "requires": { "@peculiar/asn1-schema": "^2.1.0", "@peculiar/json-schema": "^1.1.12", @@ -7488,20 +6639,17 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "whatwg-fetch": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz", - "integrity": "sha1-AcKsTfQOI2qqGEgOO+dL1cjreY4=", - "dev": true + "integrity": "sha1-AcKsTfQOI2qqGEgOO+dL1cjreY4=" }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7511,7 +6659,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -7520,7 +6667,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -7532,14 +6678,12 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, "requires": { "string-width": "^4.0.0" } @@ -7548,7 +6692,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7559,7 +6702,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -7568,7 +6710,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -7576,22 +6717,19 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -7603,7 +6741,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", - "dev": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", @@ -7613,32 +6750,27 @@ "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, "requires": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -7657,7 +6789,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -7666,7 +6797,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -7677,7 +6807,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -7685,14 +6814,12 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7702,14 +6829,12 @@ "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -7721,7 +6846,6 @@ "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -7731,7 +6855,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/packages/template-retail-react-app/package.json b/packages/template-retail-react-app/package.json index 1a06bff12a..bfc0207ec4 100644 --- a/packages/template-retail-react-app/package.json +++ b/packages/template-retail-react-app/package.json @@ -1,13 +1,13 @@ { "name": "retail-react-app", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "license": "See license in LICENSE", "private": true, "engines": { "node": "^14.0.0", "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" }, - "devDependencies": { + "dependencies": { "@chakra-ui/icons": "^1.0.6", "@chakra-ui/react": "^1.7.1", "@chakra-ui/skip-nav": "^1.1.4", @@ -43,9 +43,9 @@ "njwt": "^1.2.0", "node-fetch": "^2.6.7", "prop-types": "^15.6.0", - "pwa-kit-dev": "^2.4.0-dev", - "pwa-kit-react-sdk": "^2.4.0-dev", - "pwa-kit-runtime": "^2.4.0-dev", + "pwa-kit-dev": "^2.5.0-dev", + "pwa-kit-react-sdk": "^2.5.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", "query-string": "^7.0.1", "raf": "^3.4.0", "randomstring": "^1.2.1", diff --git a/packages/template-typescript-minimal/package-lock.json b/packages/template-typescript-minimal/package-lock.json index bbcf634306..777f686f72 100644 --- a/packages/template-typescript-minimal/package-lock.json +++ b/packages/template-typescript-minimal/package-lock.json @@ -1,6 +1,6 @@ { "name": "typescript-minimal", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/template-typescript-minimal/package.json b/packages/template-typescript-minimal/package.json index a148785f37..550cf7de40 100644 --- a/packages/template-typescript-minimal/package.json +++ b/packages/template-typescript-minimal/package.json @@ -1,6 +1,6 @@ { "name": "typescript-minimal", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "engines": { "node": "^14.0.0", "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" @@ -13,9 +13,9 @@ "@types/react-dom": "^17.0.2", "cross-env": "^5.2.0", "cross-fetch": "^3.1.5", - "pwa-kit-dev": "^2.4.0-dev", - "pwa-kit-react-sdk": "^2.4.0-dev", - "pwa-kit-runtime": "^2.4.0-dev", + "pwa-kit-dev": "^2.5.0-dev", + "pwa-kit-react-sdk": "^2.5.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", "react": "^17.0.2", "react-dom": "^17.0.2", "react-helmet": "^6.1.0", diff --git a/packages/test-commerce-sdk-react/package-lock.json b/packages/test-commerce-sdk-react/package-lock.json index 55e8e171c8..688a73db14 100644 --- a/packages/test-commerce-sdk-react/package-lock.json +++ b/packages/test-commerce-sdk-react/package-lock.json @@ -1,6 +1,6 @@ { "name": "test-commerce-sdk-react", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/test-commerce-sdk-react/package.json b/packages/test-commerce-sdk-react/package.json index a165e11e10..9f3dc5e5be 100644 --- a/packages/test-commerce-sdk-react/package.json +++ b/packages/test-commerce-sdk-react/package.json @@ -1,6 +1,6 @@ { "name": "test-commerce-sdk-react", - "version": "2.4.0-dev", + "version": "2.5.0-dev", "private": true, "engines": { "node": "^14.0.0", @@ -13,10 +13,10 @@ "@types/react": "^17.0.2", "@types/react-dom": "^17.0.2", "@types/react-router-dom": "^5.1.2", - "commerce-sdk-react": "^2.4.0-dev", - "pwa-kit-dev": "^2.4.0-dev", - "pwa-kit-react-sdk": "^2.4.0-dev", - "pwa-kit-runtime": "^2.4.0-dev", + "commerce-sdk-react": "^2.5.0-dev", + "pwa-kit-dev": "^2.5.0-dev", + "pwa-kit-react-sdk": "^2.5.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", "react": "^17.0.2", "react-dom": "^17.0.2", "react-helmet": "^6.1.0", From bd08fce653a34a231d21f9a671dfc04f526333f3 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 6 Dec 2022 15:02:17 -0700 Subject: [PATCH 002/263] commit for local npm --- packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js index 19b8dfc9df..bd274740ea 100755 --- a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js +++ b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js @@ -154,7 +154,8 @@ const runGenerator = () => { const main = () => { return Promise.resolve() - .then(() => withLocalNPMRepo(runGenerator)) + // .then(() => withLocalNPMRepo(runGenerator)) + .then(() => withLocalNPMRepo()) .then(() => process.exit(0)) .catch(() => process.exit(1)) } From f1263bb10deeabc8b2660714b54b76cf0fe0aeb2 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 6 Dec 2022 15:07:04 -0700 Subject: [PATCH 003/263] getting local npm working --- packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js index bd274740ea..9392860fdf 100755 --- a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js +++ b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js @@ -135,7 +135,10 @@ const withLocalNPMRepo = (func) => { }).toEnd(logFileName) console.log('Published successfully') }) - .then(() => func()) + .then(() => { + // do nothing + }) + // .then(() => {func()}) // .then(() => cleanup()) .catch((err) => { // cleanup() From 0fe8438605765cfc64b578c73de961ee542b6e7d Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 6 Dec 2022 16:19:25 -0700 Subject: [PATCH 004/263] Cannot get property `main` of undefined + can't follow glob pattern `app/static` fixes --- .../pwa-kit-dev/src/configs/webpack/config.js | 4 +++- .../build/loadable-stats.json | 1 + .../cache-hash-config.json | 8 ++++++++ .../spike-extendend-retail-app/package.json | 2 +- .../overrides/app/static/ico/favicon.ico | Bin 0 -> 5430 bytes .../app/static/img/global/app-icon-192.png | Bin 0 -> 4379 bytes .../app/static/img/global/app-icon-512.png | Bin 0 -> 11338 bytes .../static/img/global/apple-touch-icon.png | Bin 0 -> 2254 bytes .../pwa-kit/overrides/app/static/img/hero.png | Bin 0 -> 54741 bytes .../overrides/app/static/manifest.json | 19 ++++++++++++++++++ .../pwa-kit/overrides/app/static/robots.txt | 2 ++ .../template-retail-react-app/package.json | 2 +- 12 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 packages/spike-extendend-retail-app/build/loadable-stats.json create mode 100644 packages/spike-extendend-retail-app/cache-hash-config.json create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/ico/favicon.ico create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/img/global/app-icon-192.png create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/img/global/app-icon-512.png create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/img/global/apple-touch-icon.png create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/img/hero.png create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/manifest.json create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/robots.txt diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 7bfc61153b..8d63c2d229 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -358,7 +358,9 @@ const renderer = // Must only appear on one config – this one is the only mandatory one. new CopyPlugin({ - patterns: [{from: 'app/static/', to: 'static/'}] + patterns: [ + {from: 'app/static/', to: 'static/', noErrorOnMissing: true}, + ] }), analyzeBundle && getBundleAnalyzerPlugin('server-renderer') diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -0,0 +1 @@ +{} diff --git a/packages/spike-extendend-retail-app/cache-hash-config.json b/packages/spike-extendend-retail-app/cache-hash-config.json new file mode 100644 index 0000000000..3b9f6e1ac0 --- /dev/null +++ b/packages/spike-extendend-retail-app/cache-hash-config.json @@ -0,0 +1,8 @@ +{ + "files": [ + "app/static/**/*" + ], + "baseDir": "app", + "hashLength": 8, + "destinationFolder": "app" +} diff --git a/packages/spike-extendend-retail-app/package.json b/packages/spike-extendend-retail-app/package.json index 4b9e969c01..2a0129e1c8 100644 --- a/packages/spike-extendend-retail-app/package.json +++ b/packages/spike-extendend-retail-app/package.json @@ -28,7 +28,7 @@ "test": "echo \"Error: no test specified\" && exit 1", "start": "cross-env NODE_ICU_DATA=node_modules/full-icu pwa-kit-dev start" }, - "dependencies": { + "devDependencies": { "@chakra-ui/icons": "^1.0.6", "@chakra-ui/react": "^1.7.1", "@chakra-ui/skip-nav": "^1.1.4", diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/ico/favicon.ico b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/ico/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a15a8f348b8b472b716e4cc5efb3baa760cc4135 GIT binary patch literal 5430 zcmeI0O-NKx6vwYk!!U^G5FrwS6H-%1h(xpqQE4@_Xf{`f(hmp`KWrG_5cILlB2RDf3%M znE)JO{CjX*z9ADJo6W`S(AN(SAOlv{%4OOn6Xf>a+Q43rImF#F(xEZbgUASNjdonU zNn;%6e^8!@K_A#Wb3L1zXxQ|rw{`E%r@r#O_9J^|Ce1$N0q#x|sl43?CA|TD_Y_}x zJCxV^VFI3l?))sA1HCI@zxKWKu-yiF2fl#v&ju;;i~1Ajg}l7uWxH5EwgRj>jNA`{ zum&4`^UE{zpM;~(1)ZS1+R@&S3j^pVKc0pGxB_orJKySChIx1f8F>ndVZ`-Y`zS zPcesSWt_uEgBR06f>PGZ@W7f!`Yp~<}`D-hg3Whpu3aX8_Ge@ zn^soeh3qkpkF<|Nr|y={AmtF`pYICJhk4B4Gb;a-b=E7s_5waG(WcmkiG}WRwdb&e zU)^!V|7{KYYrVY?U=N0nwTQv6dj@qUbO%2Dtu1 z+`}ZSm0=Fgu`vj`*Av*(cc)?KfmZ7O__lFSAKZoQVz7d~>}QIMdrkXU(Dy_ACTnwP zMi%sI{cB#JxB4P{fZRN2|4scJXdSw%CtwsFLmD2z1?UFfzw6LdE@;MI7jgh@z%}Yg zakekHbKUonh;Vi#7MUwgZH_4m7~9`Bzaff7Lz9bP4_w?O>gc@Gqc-a!^QV5_a#Hk5s2P#VY%iNn90GM!YKjh4~#e;JlRLoC|er>nOOf7eTaCU#_t};4Tkg{zHG|WR$`?GFd+|< z+~NRlu*t@d$T|;TlBlyn<1Z5M2JhRLAX_B>GpIEr40(#ka&5=VJ+=lbLLd_(BGF}e zvm79=+hxPf7P$+6@qTHsA}`2Q05ty6le-9V%K_B*vG|!MJ2h<{rS5!f5;?2r5Lmlu0x70Ok)I5<zV6g1Zk`k#1z|8pL#5R%?Thp3Fns^ALUv#H5dVfNaB$Y9OLbBgH+B5A-Ae6Z-Hl3X&H!wZYxe1F=IOhCaj+5DKk{TNUcX z0}Kj{pX5(Zp-?OjU^c8hDTLSoszRIMoN*ji02qv@3L*9|p#oSVUD9<3WDcpQ3L$o} zT5WSsx}+-)z{HnWPS*)>w;o_nX#B)pkPvrO7LDuyOz%G-gxF12BgEZ!fI%U|e&7Wn zPnL`10oeN!$3R(hO%yK>)dLI)A?|>V{rRXLYzupT;wX_SLf1)W2Bm;ZfBU11{Ch^u zees=4&3q^4FMlgnzx&Z^VATK~c<5z?R+kGgC z2Po92@9C+p<;aIuWbD&#Bo5o}zD0KY;uhI(`%i^fPe(7%Rscm>>2>776*+MB@>~z! zEAS5c9#|ne?zu&J0iI~;>+d}eH1*Z@^WGa+d86lnD7M%j8GbItjq}-v5mD z^n2g^+%vE=*t}|q9DL|jsVt2WO*VkhpZNHyoSyu8F7)cedKCf0w*K~;y83?+d0Pdr zsnwe;1)#=X6UTRSMz6p3y)Ptf&`ZM`Ja_N%wx65S9{$LMtDf=q;)xK3?R#J)g%FLl zGez48U`QNY?S&q8-#u-PaVrt)~qPfWFNAIFHXiv*zxK-DI1ustS z?)L1NPjfSVfJFPi*-PGIGOgB2l=?RL(MPF zLqnihaR~JO1FzSG%m>vdlt+;q$DQ^8Fyg)Ao~1hWu&fA`rUliYc>-{8yOTe@`-N9y zC+Smw0k{Q&V$C^#bH^HuOnoIJ8xU#^yguP_zJ(5dUWnf;fcwQEP-kcCpFJow5B#Mb zDcQD=Z~>U|XC|j}C&kF*jF5bAcmS?yW;%ETJ%Cfj56)f6Z^V~0Do)$A?CM}hG#Baz z1yB>m=%u6v|9>BQ-nApj=%inq{@f@IrfA|8Z3Lyz` z^uo05p%4<`3Lf|ZaB2VyRBq-9C|f}&bkP2)kZ1GGhCs^}|3rwrVA_P`xqxT$i%d4` z-15i9&TaGpwt}jV<+(sVY#$z=DvrXHPj-V`z;dci3jmu$5qm)hbmpSfqxBW11+b-Z zvk-eh7&P|jf5l=}LjX>0e*%yPtmnR&Rx@U=2k=UvPI~|(S$XaOL^@;n{aJ=GN<|z4 zi@XnxU-GsZBzEJUxnSw`jmw>@Bj&yJA?Y5A1+dJi5QxU_CX-)TJ9WM4)V9KT@B2xL zhci_mtT@VYuT4@4`kfF!W9vgZHoYZws~yT60sQwz}oo)md_+45!i5t z)l=4|trh^cK6D$LS7!MUuG3b3JMRAGE(m{qbGQ8m_CWx3u@r87?k+f4#(^cPb*n=l z;wI?*_dc*fTmS;NDug5m&PaCTykfgO0JlAH5A^;Ae|f7o!j#oH05`vK3mE@_hkou# z$AvZf(^d=MzLkrGxWjYzF4yMN9t#sz3&8eyB;*=6Q2W3`KNH88v|0c=?pY?peqj8; zlj$9zzQ~-KZDk_NeShrdw_5Fi@moIP8^$zj-~ZO*VkwT4(@F_WjX$#CHW!T_csB2U z^AE&QAOMy_?V_Tiyd#g^r2=qcu&V{0&HDnVi^ZU)A^C%z9`|Bw>nhiG=0*v05)b^Y zbyO?{Uf{$>U&R|OTB3g1w4mgRuf=P$$fLL%+8(_%a2OJ`hYEOeBzx!MY;#!3k({wY|mf*--7os zgA)zQ7z@G6FmF(&tyy!<4*BxnZXT4)rQkb=771ZQ4dhZ zlfHTH%+5}TV+Ururqv;wNsG9aLYNPF{?{J4lZOe;XDdTW&t1%Kp5og!Ff^H{^mtFJ!#*rbC_I)unt5G>HM3B ziGzE!)X84IC3E$Ep9Rr^iU1yx-OzazscfG2}5gb84`US5$BfRSaJrdNEZxlGu^KM0_ClQ0ZeRhF_8+y!u`&!_;7 z2VV>mfK%nrUO-R#@bHusxd29K9iLrkJM+q)J_~%NSs*hiB>=ss4KqzE-uIyKr_5-x z@q<=D<8dhonBn+)t(xS8U#=vng5E#WrbA2SWvT}Gtst_YZZkp&r15 zL8b8m;KZ-*lr0(VWl!VJl;KuyEQ<3l6%mvWAp+zCX^$i$>>1lyq48$}!k<@Lz1j9& zmt{<#8Gn9J(u;36N}CH48qut2^=2mllx9qz8I(wmUbrepE;K5_y-c*jkIYfpT)=JH zsRD@Y0ZNw)Hv=Kytg@pj1pmB(C}O}5>yOmZ@N=VW?+-eLyDEY~y}TsE8;!-eWn&k= zSuoKKU=$YyUs<|X9@ZWoM$b?uSB|LwcD4IJ6akdp3lJv>9r;b+19*IFL0jSbO^>R`O$sa%QjkT#;?5Xc2Ax0>a-+DqqVkEvnV$akv z3GttVko-XJKN#2eLC=ey)Dyg=mtP4X+2V&jJ>{cG2%xH$_l2Pl$(Ei%AD^BltD7&t zsu0PNoL{@9)7r_GhLqbUU_yb=2N321 zBxSHe!MY?uAD=`QteP+Of)J8C2z_=ZY5XAZ72Em+hxD>v2uThY|Nf-n{vfGsf~Min zU-j~&5Yjs*)%dqb3Zy9jCdDKP5>0xWNo~^_^MyAF7t@pYz;+%<%lJX+CyKH%L}HT2 zNN*=n-?q&B0q_K+IChC7!ewpS(l&mO*_qPn3D)Wb6X)m&NIOvRL9KsWG9a^!E6pE- zF@jz;S|-KDKglr@;|H1U+-k-MFma9|Ak82|UT}7<4c(Ay4iJXs1v~Zfvamu_G*IT; zlXaQ16V?d;FgY$1==J?cZFR8>D~~V?PEslKW5`$iURNF3Fd;K6zoZ^fhQrk1qm`B7h1AFlk-Q4T@ zQE{#}r8lq=^!nHwZI>)eviQ$Jj zn7(k>mC8;x6xuifLf9xwmb+mt#+QPGI;|*;K?FvWt3n~P!XLy!N%Per8@^BJ3_*oZ zlSXLtgf?v7SavZ4!<3(f%&C9O+R(>yEmxjTkjnnAo zLjiQacn64JqiJgcZ`<&)-^e1Ct;Yo2?ad+&MfcJ4Xv^Nx3N*d#5nKmq`yZLBwJ1;EiG z4pcGpH+JNTS#J*kkd&MKVUUrfgoIeg)=idhyH%wR70CN7>@5K9BuY;2rT{GM zve{tad;NWj zKXfl@!_~y})Pj+N=dX4d?9aJ#=Z-bFAF>1IC*)Bh&d=-75s6`yzUx-|@hjssNy!~{ zQo=pi1{w}3!()<~Tig}k5(5K?%O#x!-TR0fyQqQSpqI88>b=+F8^hw|D7Tg@qY@93 z0M_`^hPO3c&yh5LmS~wuSbxpqOe~Mbl4R)M&ANJbrZkS_b*g7H`jL%A`5y0-nA4y{ zr2#LNHokyg-Wavn`}(PFf9tGyPC8JHG_FW_TPHTYzGou8qoeptc-!X2DY_QLXdymd z9jH6#f}c&Pw+FwJ23YbKi&@XCK{oBO{5nk4-_p=g6|-EA!+`Ioz_@o?+osjhL(Q2# zB2QBJYw2*J!1t2qN=eQ+@nN+Tlf@<$M`7I(j8IJBlwu;A-Io%l{YzQv54(yl!BjTk zuwTQ%i&QTrtcLIYSN1zti}4NVU~-BhBWWDB7v`XrBh<+t>-Asv^7Rsw9v)MNvdgsT zqeFui9$Dm=N8aD(@O6W?CrBm(SJ#I3UM+kRYRlX}cN0q}w}Q+h-~^|Q&rLdAW(BsW zu%hVz)4clW0oBE?_@y2sXNuE&I;0hSuZ`LTM$Iet)1&3^w6kQ$x5gV*4d1DfsZgZV z;o5U)AaSX$o2d?y#{09~?k9rP5{$Jtg)6Fc>Ji`gO14tmNtO=Xny*_*eT5nD%yw_~ zb~@G_PX;v~wyL&0D(?Pe7|g~0Z>q~`WaeSHa+lRA6hy6*dFCGE@Z`ifSoTi0AGMtFhWCA5aE`wb6P=V006TG(#_ZuWRrOh9z-QRgI zd)|p?3F4dk2qUKs3aLp*7;}aU{GV#vxa+_n7Ik=`XRN6 zd>JmqIKF_oNZ$RT1d*Szk*PQFk_z|zTg{%@8GCQ{UPuSYtNha9NWF>oWav6OO58f zP-ST!pud#5DXD9PJLNV#wyC(!sYE7b z=a&~js-Ps*5=~LVw5{9vN~dOyVj$(yX}0OU-AyHRpm1KRLa-dICHfQtd$yfE?LSH) zrZ-s9lh$THNSex!+Bk_-e}L{dC$A_&O&8YK^z1nJF~@-o+NVcxKMijS!xc#SEbFfp zs(57Bd^BJ%`~2KwxS;)jx8DK4_v*@lI+fBzb7@>^%5HfBN#Fz+EI0Hs8U`tyi8HI0 z0-@WIaPi_oMX3v9Zz`D$WfC@AS!)p6AP|S8$z*ggykS zJ!{yZo^IDn1FqIeO`6H#`_W{E+Jl3WB>)k5ZnV{8`<-HG)-j@R9Ia?(Q@DAY1S@qy zd`qgyINApMa_g^~S?bY}>oBC56|`hAjk*>yY-I2JYA(tEu)NDSLN8kuEm0@VKe`yz zI9s8}x2L(6(TMFc4SPN3(177QqOL&Jc}8Yj9X##~kh?bHQ5>KAp2X#-0!z73T0%k> zvo;mp>kHfoaNi~qyQdRmfzNGLVD;QrZBzx`W}kmEZAz$?hVn3!e$umdTpU6boBwhd zx?q#O-yWdXAyHiH$O`ThnMhy*m)K|bOR(WiO6tH6%AGjF;Ht; zNBDaUND0wf+BoFsQhVmNp!=Qxd^313p}*+5LIjNH-T73+cK47$y} ze$HbB(m`(8xc8u-lm;+yUj4Ad@IR{D0zD%A6j~8&2Ya&x^lmFW>DLrf2VmZd%*7V1 zfmqo9dUsWE2#c@=liBA_F*b1H@otAeOg%(+5C_(S8!1;;wgy+?+$^M*l2vEGZ6XtE zL;$uMzV^OixmCfwSq(QmTg*z&$7b0=b3c2d$)GrtJzXr9IVavHs~zVI%RpIL$R^UR zVrZ5?v*)dP&Fb45S7Id%@=>?n`}OT%$J&Xml7ywt!Snl<{$CmG0AmvHJ5DtWDNtU#?59$m+aOP4uR)Hq`~{7~Wl#>QtJ)Fiul zV*C%Pz+hc+q*mnO{73iV0lIGv>ay}_tl(dz`T%kHgFexh(D(e30ogK2xwN64d|?Tm zRPx`vU%6qotR!H3m#;jyqRDnXzN{=o0*cuH8N=@UErqN;c{q*69dv$k5x6)*Xv1|) z0G7*EiuOI6+ph{l<>pd6Z5QS}A_Lr$`EJ9Xd_6V5K@-w zC-1#c!r6~Pyk(xNi1@u}`{ZQ!gkaEk`-5YeS0ea_Vn z5oac5#KMA}YGPn(bptQkBoSOQFYYaKu;Rps_?nQv%4^1|-uC=#dpnScF=fK->6|96 z@bmGe&TGe?*XMlprJvfY|C~&eWW?tmO(h%U!6_GLW>*{&zNaX~-2USjb$7`R{aeoq z^NSx)rlS0}mIc25Jm~j((Z`0L`WSJ}$PN!;NjO>KocZS;Z4wdn`4*zzk4sy0MILuf zxr)zm2w2rbglYbn3)&x}mlT1O287UMMA%8wLoqXwq9aX3oUZuMIlorQNB_8S{CW4~ zhsSupIM}HUiMFl5j*!yG{6Xopbek%j8LP@*uiLwpY1uuuJp&1ATi!i8)be^>cvaw6BT7cmc`7p2XHI6%@I^fz&?J*3WiEZm7*utrtRaN5WhMzq3y4wFjLrb*CWD7Q& z=CRV-lg7Qkn^rW^n_x~gc9B2JKhWTB!*5)_;`K??)!lgQxCC)D;VPN$JAaGk?6+g# zqp=1VPp5dQ_PB%aWEJi3MChZb+TUNF$4hYbJ}@FBWC7|=-~1DMJTd1^7c7s{HHL#l=67Z#Lw{em#PY@L-+lgXT`BpYauJ; zBdfw>v>$R17<6tcFnIpJcD3@<@VCf7y}8qC-K!U9Z94BZK4g&;x_F)1`UM&oXNW25 z|9bwp0*ynT_q`%+G{ucQREoZu zj7g`0lWH9hGZDY&9_x6u}RhN|9c$v6Rw6^k4?X8KfTvf+_j~^mF*F>gX2wZTKu{7vkRskk9 zQ+QLd_SksWIytW5f~2GO+twy_X#MMMbg68mVncEW+rt~C()v)9al$RinI)7#Fwb$8^u zthpC@@9t}|>1*$Sgo}f{-TOXP{XD!+nd2qB4Kv{ltd_}u-e02VwbEZsdriLx8x?-Z zKkR`m7 zYE($zkk99*%!#IRwRPk7?pZXXM%MgU(ZqEf6206vDb91~awE&6Kr>AXY9IHjF6P}L zijehtRdiYtduczAr%RN$A@f_26R4t&@&1T1xNFfJRJE|4U2OLExQA~;;T*<^WE&VA z9=aH*0h;5ESJTUJ1M|Vwg4RnGSV_SrQt9t5D=T=dNptTVv7b52cuVnYD`b<|T$#!8 z+A*(}F9w9eYtomTy4Cq|^++a2MRpnfy79UV#;pea@-`4ho;CI_-8WW4Dbp0tTi8Tb z=nY~Ov)>LQUoZVem@kEJI5sBzTRulf5B`vc%>|xkbS2nhs<}w4f-yGz!%;DsKXk2=hxI|!j0)JxB1wg z+-aFO+f4RI9(drMnVa{V*i@$rN2AkQccQyG&dyPyOoLx{+Xd(ZtM9QEJiOt7&l&`E zuGg+Wv0s;b{aro-GF<7&D9$CQQzU!#wTts^ z;Vi+}Jmfe0?#=gB$2$9zUesvJYO@9iwWRZ}B@98e2K*9*Z>|F1$l2p3as*Ed)<#C_ z5pYK&!%=h)KjBlRN8Gz-Jfj-AkO9Zy7U_ghM&p6uv)!! z@5-Xne~PQ7x=&lw&;R35|3qd5A@qMNV9$sj7dN?mNR|7)7ZcfJ;Cc^hHo7q0Zwxisjp=CC6%P;cN)->*^dX_D)CeVrL)Pl^lfA%0=h`ZtMG83+%I@H8Sg;{ zO@x$9&bFWipK~CW_%dJZz;4oNS0V2NBewVp3MBYh9+l%Ba`0S~{pr|KF^n*)oqV;T z9P7BNHI@0!k457Ac(OVf;Mo~h%tWC#?Y2CT!96IK`4NYtoYb5MD+6Nf;ljakiYzC- zrAiXIPkF-rH+LHzBtvMmfs*iJ%{K>(sP!`d7trbmrZYS+{=d13OBWx^W7j-o#e&ISExGmd_HVA6K-&r4%2*2Wk8=jaUP zT_jY*D|VDm+fo=o;##ZF99`5UP(?`^i$83{t>4v5hNMy%1GZL~t35lHW*B6URkt_F zsp$>Y{qx@!#rQ#E#hI%8?ARc`us?;bbL6J6c`Z6QM6P(iW zi@PL$<=^pII{WQ+kdwM*`squhw=_=BNeS=1ewh__CXPj4dSU~3?spSu;UtL$zV6%K zjw#c@_ToV~295a9={db)PW_ZlqbjSgb=N<0d3yq|@r0QuaM`}SPQNT&6O5zNhtGCN z?nlA4bF@F`pV|96W>G!W{xDW_WBkan&6TAOD z9~*qrcOHjTyfJn6gKOo%u~#Nz(a7~aG2op!qz>6UbM}J605f}Jlf)~&iMqACXz*cg zgxo>9^KY#|r68YeD#SkceR}eVJi5d@BU$C=3 zQ92m{?j2G?O)m~rebcT+4G-@bT8JM^hWplTqR<&q*+P5bm>L!&yGsN+4IiA6AX<=; zfBRL5rG9vYGL7&-QAAK<=fX_#Y_+qk6HMf`WAMrT@a~a7gioHStvhk4l?@Ibs($K6 ze@2b}iAAw6CH#1YP8n*iRxvTq{5X&TI|Y1)lMt{8=bznX>xRml@9Z1U?kGBaner|? z{O>^w6w4-$lV}74k9%S_~$lh*?`I&I|?`W2Z|n5{-VveM)*V40dqgx_k0Wo zeG}vyN3S))+~>L@Cn>C(IN7 z9Wc7u=VMpNty^!^A85*s?x>!uoBryBfOpT(SDa1L)M>*TYgb{xbaac8ZhbU^(0_|m z=fC*KFKs_cY`}l^Em|aP2JNrrh(yy*%?H1(XMTyq3y+#d{TBKL(Ye^<`dim(A*qd9 zY9F=p+xb=R9*-WQfflBctA#7^F^2NE&e-+Xn~<}o!{P3K5$C|lU2Bd_b*(0 zW}s^`Zxi#K-k+yCn0G2GZ-}=v%rp7+Hu3WJk23YLAbkC{K7q1-g|^u8eI-*nYXXgI zh-~>Ry2-cXl9%n8 zv4H#bZlmp8*O$)3%6aS!mXwZEvia0m|EVToC>7t|8$hHs)Vm=oTUb&e)P})arbqSr zs6TDT2futj_&^llU-n+4yg;DZ@!(a-;J~UA!7mwxqs-SR+MdkR9T4d^w8GT7% zt*dyoYHgH<91)U!+gK~Ozx-~s=6N^QKpUyH#Paar1>Ki!_l$f)pu|D3NY^p##?YU# z4C8lwH3(|BNOYKe<0!Uzu6n6~87`21BbrDw##C;|!KZ|T-|sA+o57~OG}dV{cKvn8 z2=UGI$sme#<*2P5qJL<{}ahck#KFQB?A}so~HBNl#J+gLY0yE?F4xc(~4pQVn za%>DC?5k&%4}VGi?c?KfC~#uo&(VfGj3j2o!3lvX)5ifNlst1@EL0Y3_=K?vJww#H z6i-;Zl>b?Ddi5$!xuWW%4pU8F^IoZQDdtD5&CR#p^_iy#B?U~ylmBY+lgFwf@4Qz) z*LHRrrg>qG*q#N`{*$q1O#g_Ak*Ctler5(Tk4X-rPSPv^RVa94S;a4%d|;ch4ifv6 za~w=xB$!exEd*zto_zA>j%Sy5CDz~Oql!iG&N~SEx*GU9c9V0DK4J2&l5XI<-cjip zb!Zn4^1QFeP&&C+fPCWB1`2q@^-o^x@s`8YGhdA5ro*3%Wp{Dx=p2M7F|^yY$DcfP zYc97eXVh}!gi#`a{^@D%acMb`%<$xmC^_Of%Dh;VIe3k`Iz$a#3Y$5-7aZDF3RQ;I zGiIao@19+60&&i3cqzg7s}MaZiSC%^hW2YstT!yC zw3N)cs?M5%19%0GSg1wmy1JKNz07m_p(y>R+g;=C`T6f>_d`@ksmz}azjd7-B4V>U zf@^AnMpMG{B@HF)HRu0{1uM<*fxaKg;xcDi_PTvT!SIQj>nfYi^Y;FI)fC7C_bCIcr&SfReb+uHiC|5ldSNSn%Fb8BBe?Xn?3Nf4YqYVKWx2tf2iR~=AaROzbdF@rq0IX z%`~Sa385~r2ZOPK;aXwUTkb&7jYnkxo(u3ab@SMSLBF@Bo=fsCJYj^33U{Zw1duq+ zC+A%I!urnmf@iJNTCcPUyCTQg+rS>*A3#ZC*@||iOPcud2OAdje@;6D&K7Pr`ixBH zt>53fZBjgIh4X~h#k*O1lp+5$KhHv9;=Ei*4iyTTo07z`Nl9N1gL9v1Px@w6=Fjro z;zGFDF`B2#EX!RANb%;`tsUc%Fg`@iGFlxVaJzoYxo!!I(k8#uKKlCWH6qi)ibP0{ zFL`|+me=e`bV_qqfo^U{&r#>H){Lk8a|=c!IYG(WX9kkzcHfEkM}m0XtFgQw%2vZ$ z2?ewM((|`0k|%VAf?WxTEi@&mM%AFs?A?i?{EZGUZ#DU$*vZc&o~l`6yN2sunX_9b zNe;^6Jq^bOi!xWp!KH879>=Tg|M{eWx(W+PiLFJ@EtxP5RpuXOS8Eqsu2*m8`x*sea|m(^pzx%OXYcizi0np7d7+A~BI>ZVH&D_n@`urNnB zpH(loWp;FOPf{e7LG`ESt=7Q>PoA}~3p?mwwUQB#*Ak7K^<{w()0g5bOC5wW|JIWA;Q zHXIu*Zx@freJ@;;oF#t=-keg44ocI+wU`snGl~eYlXbV#->#D_@lSHCVq4%$<0X8Pd4{Ne4tNsZ4(dc9neX{=p0aju%_9(TDIbXQ&q zNv}tFg0PNtHyd{)>i+49tlHieXcRtm{6)7yf&lZ&KnH2@reBh_kY9Ii`HH*&DHXSd1`2VjX z!Bq9tzJ@T?6SW zTz$a_u}V0%wz`Rm-bfJtAdi=;w?rpwq;zwGPui^dsw;YH$BWzkUz`1@m(v4z!x99_ zY&<0cQP#5AO1BX5>@@f#VONne`f%IFelM4;*fS35iu$(1`DWXHn{uq#b{7(C`nNJ)er_YqCxl+~WFKBn)80!w!y)(ju@O|wI(G}L z>fwxwSXbc(P)6|Rk|QO^`S{cvAA%-iRP`*sdZ&CK!lRAsZ}kvp~Dz2Hh$3KHW(Uh?h&^ zW7+D_YM8a58bEEqQX#1+S-?+*y;syZ`bW??61+5O6y4y2!w!wr%!PA-2uzTj4z$8~ zOXkmeRKWtl(>vXD3lT%<&=t0}srp&}XyDg>YYI2r!6We=x3{;KgoU9^qTj}6F7-Q4 z=7=MM6GU%p5T_IClF-53MioXPN`RaVfJrpJON&lmv*Nc@A&G%0$s)0PJfF#+6N_iX zE>z)qB&N@bqxnq4iw2p2)M8Bg?1Xqt zK=#v?Go@7Ub}GFx<|HkA5o4JI^O~o>yY(v84xz8}Y$BepEu19iL`pKkLQNM8s}_7L-HA9RcB1Ia{fRskD)h(k z`n+g#;@oVZWkxvPbf&mbf%UlgGHch@9xh`0C|&6b#Aewpiojs}8uLKd*MHBllZ&24 zHE3AFvXo(pO6q+xF{rnGIi~8{(6uN4b3dzx!J_y$mxfD-ilZHJl}E$ixPKEngCD4c z;4Y1HS_{G*<`7_7!1>MHQC205}ot9R>_ZtBVGFbvRTVj7bTxiodf4m77h56C5j`uQ``X{aAWkvZq{J7ArJ_aJMRZ{ zD!~kafj{C>aoAXJJz`9DdS(NK8**cTp|5A>ydn%H6=^>v>oy@-kNAmbofw$R`!4)8 znQb8$QSefk(2A~eufOYlBwWuVAc55AHJg#uV^$lxp|VbFHVj`{H9L# zD$`(c;}UQ`&rOU@25-csB#f!kN(*Rk8i}1xa}$%1c(2V8C&dg(^gnaQlMznYeQq0x zwRp);Z9ujhIjZ{<8BST#vCj)`N)o$`ZFEc~-nR z`9Wx}+rv@d&6%3gmPdl8qljK`I;^L8NFiF)7jf`>SGYt!ZCv*t_Y^zC!JvD9FB5MAcJeJ8!Xy9HhT141A{=@&|5E6%Fl&yOA7Q~ak^wp zCw4EVgL|SLZj!e+ZTt%r5fL?39=oy^D*dPys8_~r(LnJ04 zTz|feCC7%f>#!!-XkN9BUZ2Ry{R`23T) z8ZXavNC{eAZmAS6LfxA%<{vfd9DI{v;HX)8uUVu%vk38JJ=?g~ZJjsy z#c#;TY*yzl1ldiJ4?F8Y0zhHMZ$Ln1mfB_$LUOjV1{G}@f=#gnXXRi8z~fYf4S#6> zV3UcQj(jh-vUl{d)f$ zdfT=q%wml|iND^d`n0wjnGKcU!FHVJnMld6A2GQz;+)mxCy!7Z?-HR z=SD{NEC$J8rkLEY0^%IoHTm>qKMQMol}Y(~tR}J5Pt$z_p;+C1EB4U_k!EpbIAmp6 zgi70$zurI#H@{6Q#VD}i+0YCr#gvImFSq@7?)G9t7kW9)mrFXOo#Q0sYec$HqUBKT zx__ZVZ!r>b!NN-<<}W(F8{!67noHUTG6SJBMw(Wc#=YL_gESpa#wwyc_S&5$$)}ls zG{O0!+cIOuT8NUlk@{C})On$6!K!0PXpWPP>~&RY?BEC2prv_|;Kl-pkw}DKex+_m zN)s3;^#XyDVv2FYj7|0ENiyN7drY6#n+JufJ}k+tu;*EUb`oqD#DEOMD=X;{akcJj zX&xn@QYttnyNS1q>Na0oaXT$E661E60upUJ;bqZ#sP`oBZan%F?zdq&7O~!Boa)Ne zfoW1gFB^X{OC?JF+D8DWbXx3r)jfSbhU%Ux9|wvuJdX~{=<7SZO^V6=XH#-IGA=f% z?O0lTaEGh|CX1=Ya}3AP(^lXUsgqjwDk8B-=0(^K{nygvT&W|jgW2~CBmY#b zATz^NO#xCiIXv`ok7_Vv-R{pas~ku|&A3>UkaecR<}01~Wq&Ht_Uk~D!S|c7fltBK z^+_9ocN;{mTRLz4ZP%*7aQRd&^vER1!s(^wd*5|b!9kBka8;7LC6>9=8p9 z?UE*COg2jQ^|ejgyuth3)tv(0xv5)t9f<=IXz_v5^hnU0I^)p7gh|GXJMI3vrbZ#f zg$tPhwRVXXLijNHNnEc}VW)=R$#n60ZdIb6^_QLPA@kA2@X|*8Rrral6U`0_C0CBz zC=o3C9NL%)zJ%s)>wvZt3k}%Ov(j2}@Qsz7xbL%V`ktFh%+7^DdLLcKO^#IJZwWj< zB1;w12a)=*N;X;GuN)<{7)f}vEc`fn2mueKu?>bc7NU5SnprmmN1N|ejfKQ9tK5>Pa#Go9nCz!dahl0-+7fSkpj~iOvy-h zW_HPpeqD;o7%_tgbn9l|Ozv7b7Kh(S(NmJ|jK_v#JjgbPmbE-KQ#yy@s3`<9u4}hA zX~VY@_mrh$sQjwVYFDljOtQN#3R&}Nf%m5D9jj=bV{djMIn!Bx7r#R3TgM-VF;^;b zumdmm0HxN(l>p>m6K8tx7s#Z854v^c8WQuSM)D z{gCT&mU@}m*}mTPo9F&LvtjKXX5OQqbvwkJ8qaEYUr60u?O5pEE?a0l>|0#$4Mzop z1lPbwVt*537rCwj-NkmhU8y*Cwo>&N7k1Jo`*%M6^p%(S7bfNZ=l8(MXtzCu-DCJ_ X8udKqSZ&Yd`vK0KM%z|cUyT1Bh1df> literal 0 HcmV?d00001 diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/img/hero.png b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/img/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..abe393f45dbcab1571b0d812f887592f8c41c255 GIT binary patch literal 54741 zcmX6kbzGFs(+CILkq1Xh+|eD<&Cy-bh_rO4q&##;cPk($Afbe$CyjJ>r=Wmz$;}g05D4@LeDc5YSo#0*2!8}T zQa~UO2L}h8ot-44RO{>OySuwuT3V02WE8aX^Yf1{P(DRGQdn78DK0L4L_x>E0000J z3;PkWu(0rmf{u=%prG*BH8L{d?Cjjz+xz?X@9F93M^X-P4R;wfT#XGgqTpOho`&!3}aMPC z0}3)+T-@>TiRtN?mDN=qJ|P7d(a_Kc5!363Z=}l*@s5s88o@}lZ*ptv8_Ubft*xyx z#L#cwzM;vijE;`N#bU=NXQ-*E;RuGo!Jps1qmE84hDN3snc46WK9|?`TzEJ}6l9Fj z2_jH}{a?S$sVK0iT>Ti~b~IF`ROAQFoOk7phd1+ZWkz z4;5`n(FwIepK&2xY&JGD_~-v|j%aKjy$nt7y9Pw~8_|UJ=0T$T%2otQrd00-UNlKuUB6I4o5$VL1 z&J}Uff%GOp&%bu$P%0OB;W6?%_y(njk78<% zqj(=JNyuAQ^Enz8E+LHksUSTI2dxCJypEo-k&LFAna6%!(&U(h!{qSdqV+&=LUMiZ z?9%MGYgCQD+1}SJORnHDG_(l|6?vqd|H9$2WIPp;;=4ytjUGm2C|eQJE2Lc zOs5R{pkfVkN71j!fWzE1I;KLRIWW0E4bZ$P4}tj#C(Y+e32P7Kest@jr_EnlNgw(8 z|8f_O27V9lGt%S8PNTlp>l3=_04@5RxC4}hIqddNf_8v3u7vkmWoU8LUMTuBP>&u_jOFw__LLR%x6tXDy% z0jWHTYNr(e2=E$d$QuGqV)v-B$O!zwjK;K1oi_Y}k3nR19h_~+OLnq&jBEF#d*bs=a5i2q zBIM~#u>dsXKtPa?BB4h(xmDp!vzSkbe1s@3j`28z2t@x&Ai;__L3W0O2=x9h(N@ZB zN`KrleR{C`lmlZNRxg|s0muY7FpPHqFK7w04AP%zJocqaRXAR(Q*=L9Wf>MGli`#C z6xpaK^7Ufi?gSGC(|bOc9803a=~b+BD6z*eR82KXNR=?<(pHa5W0w=~_ib*5ap>EV#;-ZbAq&RP98>~r*=`k-vBw)e^iK4Hp$?qU&)$#o<+sLXibVNzLejb#k<7lnUl)yO>$!$4HDufCV0}YF`GtSksURemeFt1|-ORR$S z!&-j*zRZePJ7)GVSO`!r$Y|{FG@!C4M77`;{K)cp(ykRfiLmd8<^V9hIMjm;Ky>OB z0X>aiC_bu}mx}<$F=cymM3qHujIunsU%t10NTd5K4)IKe0>B<-?#IK_pAcbg#z9>& zZ=b%M#b9B6^%WdoVSg-OwD2~Q8KdrWL^Cnz5QLcrR6*Dwo#Y;fIj!ho!4~t`?;fV^ z_`Ce%VMz>=8#61sp06E3m+NT3&9j!d#Zt4NE~xs``;N}*gMYi-U-O2@@l;}3KHvl&xNCr zx@sI3kLFsC{}Po9fk_0}p>3@TDb8pli|^{iu7V&)xOkJevs|*J$*1miyxZMJ$QqM9 z@W4m(5Ki={p~FKWO22`A-5wDxCS5`P?5iJv zL4nF(^y_Bm*Lc9DSgbCI98ijYC#Q+CG;6`8SjL(Ai74Su$saj)jhUl+M1|&B05gAT zagn+3qaw}OVD_EmeP8J4=`@$!KvWiJaTDDvhjE}VF@$<@5MX%>WCt>ao zSI1+odoX+?lKKj^4sTqv6y7!A|& zi`J5U(!X=Jb)_LxmWi&@Kp zl902<#ISP9OTWv>6EAOP=A&9{b6B|^Ruc>L`pH2(!k8A3JoN_bS+F+aVf!A&$jIlf zS&Q+KhS_H6IDgH(xi&{!(cdy6Iao>l7&;0e2+x}nSKI?Z=KXfs{QPBJ*kX#(Ff-Ep z*Wk@}_68ytF$>m`MU+^Sm91nz{9-7VP1y}mr0fK6NkE9156|j{rV_tk5uw&3o`n#n zl0cE4Vbo~%yMG_GQi>s;d;mHagAhLp*$Fy2wwNkdL&U)mU6YbDI}sGl*S~lbl9Pk& z%>JW`)vTGEtYcjOXX)-lc>xg#1+Q3GW3!Z)A9+Y9JXdls=IA#ZaiL;~eY9JZxa$Ed zqI`LAW#ML0mj1;ZunIN@;QJ14E;IBWZsGO7)nA`)&#Y{rU#ylLZ|C~{ptELY&N*V` zX;co!RQD>abPNASh?0*T2zc#phGp8#$__2Wd_y)R^G=qJ0Lc}FW1r$Um2NNoqoKPG zZCFKVmV$2iAA1Pvf8qoHVA@#vY)Yc;J`hu0Sdh$ZLdSevBkf13hz=M(T86G;q8m1R zdNc3k@<~ecX(^1+CLsoFCFQIK-S}WNl>#@es0)7~CpG44FYw?Kr1E=NW9-jW^2-<0 zp8ttU$N&KR6c{rD-4{h)sll2WX|`5x3#$)5RF{mmja&)lwL)0-n1c%8h>zoNAm`va zd-skCYlq{vle+s9jFaty2*#eft#vrysq3E0mdM&*9PD<;gpkroPS(pV5(}y#M&;PU zeQNRZ-Ilt8vg6AjDv_!nA1OSZJyzgti1uka3dssYl*&R;B}xfkS?p-Tu3+-j#H(KX zi?c9^M_bU1f#J~`86wks4t~VopuW|LI*>A&);pSS5Az)|_r;dD90df~Z5*tZ4J!3{^SQ3@v)W|se@!LL9*)hcIK(rR;@93 z^Ev$$38iclDn9Wwg9~lmhD*58!0Z|H_D!6HEoL|l)~l#}fkOdv+Yj$tKT)0~&*)Eb zqW?|89Xe>%M~f!OPm-H?J$*|!oK!z*gc zXW#Ac-M)mhkJMz{se;~O(b{lO*sXl8YWNpC0DpAtzoAzf2M0+>Mbaxgv@ct{_uqRa zesy0T+;&JutrisDCiwtCN4$uTquUZpmBQ`6ceeUS<>C?;^%E%`oQLR{XTMWiHj08x zxif`bQ@(zC?N`@a&AtZ@zj0;ju(pXl;aTkreVA@)3<*|U7dIRraKFs0 zfDgfG+eRz9TGdZ}&72?5#R(DJz4-Un&HOOscS>iV=kFc;df1X#ewS4acx7oN)^}43 z)y?`cL)s+|e3M1^gYbd7Mvz1yC0816m2GuV@~_*^K*NE=+GgMRk9Ze(gk6xojo)lo zUz!Qi+rPf3y<0w-ef9G?X|~2ZR6`B(e)g|;yUKz1J^nxPK)cxmb)p`RRh>KHmsd~P zausCX36)O}Cw@(r;cn?EUH=CDT1KLR8@TJ@RhOKc&5YpGP{wD}=m=*GSkK^r2Qb8# zqr`WIG&TLyf4TlL$!iH+EnGf)Ob3W{-i;3By!EP0p+IHmyn2v?0fbLs>N5n=O!tzY zx_`2VLY99@>!9x)Otn;$Gku!_44`rI_$l`KUpr3z{PdC@soGrchJ3D|0OBKED`QSs z1S6msnp@sycq9}3qq8Ic#x2-4RP!R%xftdqH*uXa& zac?0T+w>bOhakeKtx?7RVObgp3}7>zX!ozu7I)thJZdevT3&&hozyp~^{-eC+FxKY zm2iI58Dw7fgnm`ISulYTf>6Enn<9F`*>19&*o)dnUx3?$*3HFu5XxA^LLv1vWGf2Q zs${tYoP33WrJUHn9lcNLhzO+r#--GgHq{mq>6ROKH*jP$R)NKab);H_ogeqcCAuF; zQ0UYNYTsmQbZ6+Mw*P&?SQ>B$L=P2z#hujrBsR%vQ!jJMTTex^L6`CkcdF``_`y(x zXS?t6k-2cLzJAXh6jWKw&h{WsF(mMY0uDBE4ha0V8T4_rqV-E(zlPEN(RO{{%eNdH zm-^Azp5~p7ITlFchCj8TlCHY?%e-JumED&;u`#TiO%+e3nY=MtruMuK3QTH}#jAb1 zb*40@2_%23T+-hTR5&8hQFfg8$dKv;Ux07~7Ico%gmyeg`GQ~K*1cH4wuuz+C8`XR zbqK9ebFA6CJ!_olDXvGFK1JE`GnzmA_Vb2+E3F z+x2)p##ZsL9uI9N7Dd!^CpLWx>!oA?w@h&=8}stT#bB;WB(m0$-0fSb z7S^5}Z_(AVxFqh{@0}s6Fn;y;H-E!-zshvT(@VSZK)ZLH)h(mdbMYcnVyl3eCh+4J7Nu2KR=M6Ex6J!*zo*J zMIXF@s{h1lTuxd0bfYj|U!bes>eEY?KX#&n2>}_Z;UPa_C*n9-Jp<7lf;zA70%QD) z%zRop+U1#WrjRXDyoUGV9d}2)Xq12g@M~v4L6P*JNSisg-Ms0wzAIgoJ6O!nhMyY&m zxr#_!JTO?uh%)4bXZy71t;UBuToC}p(4dtHgVwL^M^#BMJsz3O^ESi8P z6YM}Czwmk*bFndh1rLY}M8y0~h?o-0BGF_$|D8@XO*8!l69cG^+W%MVjIWtqpn#7$ z|IpU?)?=K#DM?g5i5~4yJd;#tI-bCW<%hM+c7-Seg`GSeF}W@ewGjbedP^_q?M#}a znw>xa5C=!QJl*~`(`&ZzcKJiuUk2Rd3s)$W93opQ{w&3=sai!X{^ zD+=~vtbtl#l7==tB?JEU+9AQJ2j8YapB!1VIJrmRtii5@u7pz<2K|W%$U{cx3j`5p z-w%7I-X#v^2y>7xoK66AffC9c;SCR5nYWnx_+B8}}E3{^zdaOuOjfA0JAd3?l zz0Z$P!Dl&_$_=+q@d1+q*l^Yi9lv*-f1hD!6GnOqjg6!^`r9h#Z-5LnZ~z<393W{2 z6nZ^9b=3Wxq8~p`~?I6@71>P*# zg*`J{dYKRRCeUw=ejb|%Q1y4uP(x#9oPdN{3SfWX zaBJf;{V5*M$|XK#p~TI&e$1cY3s4hAYxDL>Ag|7!KDPm7odR!km$*DeDv$RTJfTB= z?pW0Os1X`Cl=1_y>k7-{n}DCe$Xb=toONiMV&Z(#RBc(@iK5K@a?#4tClz8bPy3&$ zhmdVNa+xu?^U_v)Fd1f!5 zG3}BIZIjl5x-wQaVqK_*)6g&d7;L#o$NhYO4i5P4En(Q_0RC`=mwz~x#bz`PQW0sh z`irPQ-@vRP4H`Ri_XdY_7_BNPtZ7uQ){u@jk-aS7zZIQ#x;|S4D7Ut4w7a2g?r+2= z>LmVru9;aSFRd0+^aLDO8+1c110p24prAH7@OebvI7ca_VuIZ76%>!rF;R9xivWVwCki(fteau z4f<#L)w!zo166sYv3*#+e1F11uMBiNa<7gPlw<~$ zADAHHIFd_FZdyE9Hh0oc_)>TyvtANCLk-fm6a2c2BU7s-<(@`)r46P9%PDcYLvLaO z=|D*|V41K}w&zbirn`9>JH4Mb~6h>wcaek%-d!GyJ`f=s3_|t*%o`7jRMby!8jPY?P zGdW!ty`PIX8-lGal4bNpDhYz%zF5i(4-(u$yP(-;NEfVvwE?MN`Q|G^gulZJD-9s& zXLD|-WPxrYsJBxg4x>_T^r+ugF{>=Ok8j*)jnd*=> z@X>X{9{4Gf+y}a3sd&Gl*Asvc7uXOycY-YBSK%b8J7PVziSv=;>cffX(ir^P?!8uo zbk`OZfTY(oae_wMiWO%Q%YwN%aZ!Nrgtl~?%JSHEX%v5Zlb0_cs6eu(LlnHh*adk^ z6N3N_R$%QZKaMKp$#JKI_+9Hq=}aq&_=LodY0r#$n}kOpz4%Dy8tk{w86R5$>KFoK zA&o)Ra{*_(Mw_}~V0dRZF*hXAlz|wVC7Bc7elVZL;G_6UN?JVBEl=2Q0bxB>kSKLw zh{e-fGapdzlv{+mzldQfaW49ZJ71fhD=i=)UPa7L2`pI*=CEiU=cpo&@uMvIZ`O?r z6Vf$|(^>lQ@TQfGYfhTKH`R+HODc~8X08zSN#Q9%-mHW!XGFhEaR9t03!FtiCpkVD zehSJ75ic{iLsh?)<@#GMn*HfX*fxTKo5Ci2I1vxoI#8R}=}4Gx)Ch(#WEps`_qzkW z{F2y6?(DQOd@w-?vs(Cnv5S@zXq7j=n0c+FQ(-4>4-eE}{azG&#+6K@ABVBxk3TyPQt@n2W1ZclWyMsD&4Yz+rt&Sw5W+zKOaN*xm@Y2eY5VYUSJ%WTT3~*+UCvAS?=d(!=(<^6?+$*`O#E!1D8}QA-$P4%Zd+F*HE(ih7xeT z6@~GsC(F2FmgN^u0cBolBLsa42b z)c|2*P38nJlA7A9LUB#4CYHEnc9BS&OYe4m!fGB?szv{qMzN`MhG0<#ZnR#t&FjG) zAWa3zsS8Big99eQOlLlqX@EB@oI+4k2KF-F@iQYrO{YH`?-rK!Q}aZ@TMUEbut2|W z$`g)wAGZzq=@DyB-S|OWJJDSQYn2Z+zj^t2>9G*UE8eFJ!j(~Y;!tT2s!*HN-wF>b zgDHlnz7Iy=Ecdhr|PjTqL*^Xr$W(We}mN8(Y>#}snW9ibP{}KC0E#P(6^?N(=t4z z=SlJzov9%=RN7ls=C2+`OCeM#dP|ZLxY6uM;=?v*?@2uwL0K<~NpbTCsx4ZP`CQFG&^p)t{E; zEW--gtgAO&2>os1nwC5!RV*Sv49du2KR%#JpfVyDu-cz)mz>R%E#HqUjgW~(E2N#K zId4UzDSmWV#YHCGJzv4sya;DuP)rf zsF`xTTgxvKZBph%%R)0V`++g4j{c%1kbo-ORYBhUYoyOezpd|$UC>b=m{ckqW%D((lcnSm?zXKNUVLJc)Ouzxp) zpTCH|_2s&v%a~>48hY&Nd{6cX%2ELyG?h>Ifwtr1Zb^xbgOj1lL$yBn&ggRi1Z(bF zl9&76fZxY$wZW-{W^m!E1CF&)#`KF%V3B#g*-gv#^od=P7J^mF$|kO_iMK8+XVKZX zQhrLXsr+fp-Sg4Rz$bVRm6Y%v*1DsTt|yfNxTboL}0? z`s7>LaN@n>EGp#Z(KPL-F~n)L0K-CAnr2Q_PwT5xB}z==XCCrG#2OYWfBpe!hkC*$ z(EcVT8kdW?c#WH2{3L0~Sl^yT)^Iqzio_jr&0jcvK%u#1E|KiMG#=*pguXff^M}>T)c^Qef+raVk`0HZ5cGJk)GQ?g( z-WhANlmzo!#Z1dz2Q6w4N7&jIGUTxa2C#GHE{`t7#!?Y#;Q%5OHFOMlK1y)w)Bq); z{w}M#cgUM%^9+*+cp91mX&M*d+!BH}+d5;^@6<(|xqUVk!6NNN`16D=qS;r5=8>Z< z$VLQe8ZN#8UuKeU%a}o%2u2A`OL!4;9f6Per=ljt$8QEyAk8K-AkTpFHBk5PUAM)m z&&XzLn?xsTnCWJ;=QZ$QNCLI@Ulj1^{H-4ta2rKxTf1ZSfu<|LQ}IIo<*+!xvX3#A zffqEWC!3C0xY^MfaNLoxMKMFw(?wA7DR2>C)_%=oXp^Tkz~act}AOg{@qj-b>8py@l4PYar}u* zQ3wad`#@!~1_=_M+}V`{Zy|E-`7*~4@WG|ci%;Ia*ri0Mu*3<#f9{S?XU#*%#MA19c(=(yrxK67#`-k(5>fT@T<}lcDk$d{9;TYwsrOQ zN@U&JpwPPo`L(vEcfZ6_Sbf1%N7_cuOvSPpPZhrHJq`u=6V!u;_inA}fWAdHM{70o)xtuE0Qhk;qQ$PotMk5(+z8s&tsF%` zkpb-QwcpJnlFxM5UBN34s;JJ{!wN=f&9essJZs>91XrotV#{hZv~VGg9LQ%A=?w7S z=R?gtTGP!cWNY<-0$3%+DB;*RRCav0xBHZ|;Rm>J3NrVD)brPh4hu9YCuK;Y?t7CS z_;pp81nLALOxfw1k8wiQWXIk<#q|4!P7ai?a=*AzQdJc)j>L+4=uuDTqn`BsQ1EeP zEBMpJh0yQe_LnbLaxU{>XrHk!=$ms7BNF&6f7p*12Q_Kd*0CtVX|QC}EZV7GcBd^T zt7%d2(s*a4a1gcWeorHk(jBYSJoaZ+!zkVcDNU|QmwTs$xU(=5y+za)AB9MCO;Ael8mmmWCk>?h;lf)B}iU7 zPfC#Ei^Z}KApT1lkjo$OqV+P^*oz*1&=wL; zeIZS*xT<(LzAQk)K}`_{f+glPfac6ls~O$-vk@Pqz^R|byGpk8lBk&o`I0O6vnwW_ z0u~xR(&GyhS(6g4+`~w|uA5ofVe~UK%9!MP9XJ(c!^IH567vM7xCS)i;-&NKI^4#% zmdvW5s=u38|5C*|JpnCI!F^X2S=v>63BrlDu%Q)RSieKp7k`c<{M(yqjMhZ&|E`!A zweSHxVTmT7Ii?6A-;qRV5K-e;@BoH+n#ra}5hPk8w3!%5KhUFSz$dRwtp_r$`?>;7 z#rpvPXstV0M3R~!I&^YptZic8>$;!}9HIC!rwkyQ6aV{@0t*tY1-aG8gnetC6tE%z z94Ny|1(P|u1Ip1)M3%ItYd^ZE80B<33&wuoEcM}6wefB?C*Y{G`vV%a7R9@XDF72> z)mPJSXPkE=XDsm|pEP>_!(o6O?&xzDFUG(FMmDQd#s?qjg`JpiQ55=&cokjE zXaPJR8p$(n2x=gB%vh;x@%8oh54C+DPpmo#8dqqHgHs~U2rz1=!6p|3c2Bw4B}#8{ zZ2Hkj6p0~{|AxjntBuKRYl%@i6qGNS?f-!4sIh{(J>&4S6#d)37VVa1+-}pajGG$b~d?en5V88r;&xLs5WD(wr76>59Gm6oriO(?bop?Ov17xxQSMVBaAtI$8( z3kt7#e-<$<>uQnwkBMUZ=-={VYBtX?4d>r0HmPt@ zpv{j$6N-i(rXV(iVdcfB@E@DqUA_CqibPZT{f~=Cd*1})uL;u2;75f0T4v53g(|3F z|JcC2K@^R1($WMfZie^#88BVDUbtpUj6yFYDC#MMqhVLWO0Ddzw=T7zEwae7;otQv z%Jh#@tHT1m(S**W_d|_2hbygjexwtrmiaBfmJUIqR7Vi2bh15$-0fN~()0n@>`e`9 z*XG^WKjQ%nqU|uoL?Idi0ETu5`4l>JKV$xBvS`V_wFVr=nes}?9pU?fPJ!P^(JWm? zNVRfCd`MqgSnph9a((UW>}GK^>4^xah;+NN+jQf+sa-*vQ+q?>S~NMbgXL;<8dBI1a{1ngsbH;wg6yi}D6)h#cXW4BHXPT1Q{Y4s z5ksf~xhu{Lp5-<~Ww%xnm2P+;6X|kBQ`I z^C}mJG@xf~^P#uR192M`a7=lH-C8+BuCrEew)QH!|Lq7Dl@dXZ>ZzWRAx81W(K7*M zgq#Y;h}dGxQ=exJd&M_+jLGX#G#&lSYW$F?!L^(c4*)elUKN2tP<-lS>Ud9#EDMuX zIL>@j<_`&dF(bD1(WF#?aL_Yqanw(jK!90JKgmJs_zWXN2W|Z&Rt`8Z{lBG;-d-d7 z-r^`he-RAuaza6}E4wm&oZyit3`+*`C=y*6oC`4yLvUWiF6~1 z4F~@G66i?zBSNz`Hu5(#-i%_F?qOtj=->V2*`0mXp0t$o{Y~0t8t?eMPxJZW!A=&> z@WiBB8W?S3Da%r6U(DGFNb@p}jjGR&TnSits48)JC)G9S6TRuHDHeaZ)AB^OH=#pA6$X3FMXz|O3l zxn&@^@EF#;u2^epWC+a&b0p}f3Uq`(rchVUO8&LRE~Y_$#Pa8 zf=EUbw+ay`7%BSIARVLvR561ggMiAIajh0HCni$#OBX^FiX2NS$q>(!4JRdjK@U;w zQmwr|i(SZ`DV=|#kAVSa2lyG04%);v#D_&~W~-FC7R1zULU}qR zp^b~bSsiZ5B_0Y0=Zlg-4`2Ma-@ScmNnIX2v3qe}9DOmNMp%|U5m$%x^mRB&?fX>s zv;$-?d<@@5*2t>wB|o`&b+|@CIE>ud+0y#>V9sgp^?cXk8SpS7Sq(j0-x~QA`I!1w?1P`#l zK2n~DwOg+pN(En|1PDDwkI=K#Vfda30yHeCPvcc4dEF@L2M!7JJ*pp3LQkX(4K-FO z8D85=qvPH`&a%88f+VKP*8KkSemmRXTbQDoLC95%t(QXz#S^n-ZFejr4+H@w)^wlx zB&yZ!;yV5|OzY3QkI*MNTs-gcHS5|ip?hYC#%%VQ^0fk=?ufXdlI$v>o&;UEXi5&f7@a{gZEIAxuhpFG$|}>b6oW*K30$ zsMsvJ)8t(aj2f{3&v0sK)Ydgk-fN%|RGu#z&l@2S_shJ1fdBS%sqwSyae1(aggk&q zEJpaPfzPoilYs=1fsAJ3cjK1?G~&4dSK)FjuT}#F^NTt82^e*FD`8@s6#6!&d#aXL zA73+{EBDan$s)UW3)$}6jo1`mD#lhj7$>gdL$w}?)q$l{YzrPL(TH1(1pGzvOU*Tm zNEpe%j*OMMd(R;O&v1TmQv~#Dr`^D}y0cYkSkQ@R)Y?*7pk~20pC}!rQ^Pd+XlW5! zd|b^O*xAu#(5sXlt6=`WX4X$JA{CKON|7lms%7u!^VF{E_PDH24Ktq`XN%8Vd{y{o z;~Aoa9H(y#vMsIS^Y-yeT1xsk+l*^`-)mDE3!}$s9(8c89@z#LxDo*S_W{#JX{62- zO})kA3s^6xmN`>ZKa;o1xHbw?cyA2Z{BG2#u2DK>Y%kQ!T%1}3|xWyE;8ba|dO_Vn8(;@G7c|&oFIfGP3 zj5wh2ms_%#fTQhu>vw620fLR_zP0a|H`=}j=rvanW!P`?nvH>Rs8SCg5{`f1#|CK) zj0lXu%p0Q|H(sWZF8T7f&y-ve7LjqPV1YDD+7B@+y^X1+34*n`6{a(j@VOsx>i8T# zdflbWIK2-vx|s&(Ih+(7cmua+yw`I$Txry4 z4k^i4Y4fxWrjmB)?tgKaroMX^gMiLIdqb9^}Msh~>ba>c8dKT6;o*xkRNnCdBSPYa3@1ja0Jsop`lAbto= znKJQm)Hq9}2PT~2=ib|ZsPxo;zBfDcX^(D;Rd7T>RFenuvU&CB9%uj$E;uo8G}Uhh z(tH(&Bj$y&EHs(34I%= zN6?hY?mn@KhrX(v5>yN4b7<8|T+3ej9HIH_gAb#sEscv!sRBU|vF&#avk!Vy$#F$V zkPl4Xvo-%>;t?prxKlIv9SI9Rr3&SLFTfA*QFqTuC$;ZE>#qwIY)qQf@25=*rmV*f zyNC1OKzw2~c0iN#d{$3kcs(xStV>16F}W5z6gd}I>`NDq|27SSD>UdCF<>_ftkGm4 zkWWw_y#UWrO4i!`U#P;HHv`xx{Ky%Vf{D+s?9Ej14~NMBY>V!%uAzcIHu}{+yE8XK zNS@z0q|khD;S@23ag0^8DA;Wd_klo z8Y%Emy|I)8s6#I-Tl~$*1-SJb%uK5roiK${4D2*u`y-1u>s4mr`$tF_GGQdptvm_^^Z!EwQ5NFWRy__N3&p>#x3s0sczs|gL8OqrSb)nSsgQHKGaL!U4644uBTULEx& zjoFX}%a;im?>UO=VwfSwDcWSdHPXC`djsc4{S?8sW{v}|sOFDW`GiV9TGl4y? zdaT2me<U;u1Gc`G@_YzW+Znb%pSHzXUQZrEG!NM%aMgD{7;4;Z z*F8eAxrY7blA?D?b0pqhFPfXnjEOSazrB3@s<4;?Z-f8DQG%SzfHD^fJ-sp&ed%AATG+8DhV{-M4HgfRI+Lj(oYQ&Ma0W2Ba#p=cu3 z-mB_8H#uSl&3i(%MA=U*BZ@->Kn`#9w%$!>)Q@n^agX7G|0dp`A~eT%l7jkT{7;Yl zx&#@XzI*M!oV536Iq4-9)~m^x zA%#H}RVns|nlIJANYJJj%*y9g!V@O7GSksQbvcqSVgXHhgMG%E>{kTIU1HEc#9{-7c}UUaC`W<9j1$slIMz?SMAk1Pd7`E||W^*G-2HX<|J$+cNNO*KWuM+r>XOB3j4XcEz>8 zd+D}D;ugu0VwTdY$5j*TiSv@z9j9RJZZeixt>hm?ljq#G0RNkOxJ%l5tOySK0MD!w z>IehlYBYED>t&fIsv@fC7(WxJOmq}(U9k0U;uilB#TNhXk9Lz%F(-Qt(%&+*0LgzP8(n z`S6DrQick(<@KM?rKmf13GcuVA?~ZTc=pwsKOxs~UceA37ClxulQ?HV>t)pI(7E7w z>iggbqOJCIHgCY0tD>jl`5RiQkERR(?9>Pv!NPJ1+Pdv*tYV#w>a{m)98anX-d=r5 z9{cXmDZ@jOVq0)_`9+7JSSVW}0=_r}{MK&PW-j~sc!Lz((T}P11@m?CqxzkaZE&dc z<50R}$rV@$+CtN^ffNp@%Vo|%#SRDR9d&%jz6HzVVMv_uv!}csy_XM@E=l{YXC;P8 z8X3Nvd8b2*J1-FayRmsh@-(eAxpEvLA=66&w$b;me8YBa9I`6VxDM=NpU~(RvZ6Xz z5oVCRIhINy>Me#=s1U$7ubRyvP#-J{;D72?i(o{Tue54?UH|>+_c=V)R$zjY*Z7*7 zViUTg0Jf@yF`!Bn|Bm6AvS<*X*him5n?!(w99mSYo}%r4RzIi$KH)==6M$7yQvm*KV zEnZmJQ=GN;ChL%Ny>H(F#<-5T&s3X$3{Gb~li|N&{BAt`tRc3QdW4oP6)zGj%uH7; zU%9u=xzTtFQ_%j>mp0fwqb}q=(q|{kPObcU9hn#KMW2rzhc+6k%%HQ)jr$#kUELf< zpY528dEs}6*vk%DGB?@|0W*^-x)tNOdE+^3F76L9kAEQN6?5rn+ItPA-yC-Fa0VYf zS#CLxn=_`P6bXaLzy1jkW4+p1Oo=*~%Lr3O$%$i-66Jj2Luy*E=R|3w);4=HT7DPP z9YX7oJ^Z(kgeRP#!>CG1Yn}2{Ux^82oSVoi<~)eQPS2`jBe7YXtv{n>BQ!|i^%WRB zdH$-w-pxN%+Tn&?lA2O?ER(h|lQ8ezva}deCQ(}6oM%=}kQ+pO2a%Fq$4)w4lK9%; zzs%dqV9+nNtF&Qo@GRMpfSzyT1wR0#-iiK3D!|rk|4nA{$pt4q!d^`73LC{$`8`R0pk#)8 z@MWJVNdvsHm-%-8Sac?M#cCYmDfK@i^mopB9p`2lKSAg#c$wS zQ8b#zkq0$27h`cm&&%z!M4uEDN~iWZ{=2e|`F^4zwVky}I8H!Yc;~y$T0RcBu|-+w z>{c~{=NQpT*n8xh8yf8roJT0@if&w%D(qTS{I0vaZ{j`RUhoUei^18aMFX$JzH27k; z4>qAO>)FMTs48W`_x#@{1>I>%;E{KLq!OX}QssJLSuL7`<3S`Lkfb*^CFAtNSRY&nC!$W&Ui zu%Lr{{`{YO#q~wc*{Ea<2q+BOZGql>0o!Q0TY*dw{S(LEAFqOaa0mX)__8RcMT#R& z-n5A28!8@RU(^8&C%h!xxId5uX)uz1SF8wk2Bzz9jocdY(%cG(q*g}N#6F$cp`T4o zrArU3^S9(+E6^_5+IHjy4~?j(_$#=zrOw;1>Z73(w(5?%g(Y4Dg{He?zQw;DjS#O% z*Q}6VRq#o`ADJ@Ga=O3#oe`Q&iBu@IOD&~T-(q5Uoh%q@7+O3OcZ>(TNr+V7jH@6z zduju>s0s1&&xYc$H2)t*R~^vg_w|VZ8{!xnAkFCRZbml)8|E@{>tHTm-ICoV*ar>Z{l&XIF^XK<&%Y|*&w2wnPI8b5$1Ms?u3vcK(EO`TE zDvgPh#W(=oz0@@s{A zNE{X7VB<{0M|xyN@5t#i<1IX0{!q^bfL;MwYs}O>C>|n2E5nz?>0%?PBjTK2q3Q84 zD730Cx>r@W*h&1L9((h94rprB52vYLn~O#hAV7C>Zzs!~Wy%|Sp#d61+2UCIbA;(Y z>zdNxu8sQHS2BbM`rD}?FrEkyS)bs*oHxk4xfFY|3t$FA(Qi>`_YHufaM9c(&~v3L zF0!l*?UD77QheCXLi>_~%J@b{tRPcWEa+~shk<>3G%nujtl{I_h0xbQ&Vg_>Z0`4> z(;KOmR+D6uz)o9j@E!NIrQm|$Bzw>{*KhL+6qT7hp<({hjPu!(@|7Kcy{&^q?<0d| zAFghWI8^hVoG4k`_@=Ec=HKK4QO-t&d9$Z>*dg)QGFA8!xBpf`ynjCo(E@vNs`)WS zz>SCq1MR`U>yC}U?=&)05QZfZBJy5XMb};mdhzRUpG51wk`4-uk(*wPkc&^xE6WlW zqn)q&1!N@b|Hkl9y!fDCJi+B<>7J#*W6wNhfA>CI0J07PS~tMWH%p0VYu-*|%M-;Z z*8wR`o+~Q@2r>(3yKSoh_I?2meVb0dbTgp1x+|H4??1n0@4(&B`KcE=(A0=$LW6b+ z`%RuVHu{V4!tRUf%p``agpMR)hsP|v>310_!t@BdJmVgIWgmrcwwcrz=RArhWapbH z8F9nW*oNQ@zZKtr%1xcYYj~B!vCs4jMDZS=*x)Vt8q5ke2bYW)$D=Fv!~#5o_E0Go9H>_SpYhB(H)xg`l$3hHl_yT>S50yi zU^K5V`&Kh8ItfR;0g5v$nK;1y>(iTpems37WZl=uE>C$VwfiDC!`x&kZt{&prOXYN zilS<>9XvBKuhrMLavnY-lJ2h_f!xeO9>BvZDC5 zP=3loN1DkNCI0>z#LP((TOh#)Wq5!d5n&;9+$Z2)A9VExP%LpRh+vUM7RXCPh1NmD zlo`#~p~xeL@8<^|P?ikV-<7WS`C4lX+X3G1th-+BSd}?rdonBrb4hA$91VyfseqfA?EmKqHRUXWpq@ot5qPa-99VF#jLYslk0;&b^< zpSV*GC=2|6$-~V6ue{j^K*XHTjMl-h$CMeTi?sZNud*RNjA@%D?WvfP_VBZKa*b^2 z>6xIdCjXi6UzD<#Un#2&I@aDgFqHX4Iuid8!7OvpklGSq;1E4g({xwFECBt3_^A%! zsu0?jVb63(MK}`LA7fvebUsO5nA@0~g8c(BkF}9Cv9v409q{8;3kqFsR0ta(73Jfm z0icuP^XUQ6v@xG3(`+ig0|D+)8%~17XuVC~D1**{C?1=b!SnX3`df@^ntxISfJo5`7=iE!^&B&QD=ttwEVw8!L$3Y(+^K0%QUgI27Ys_ z>HQ+S=j+WO(8L>``Ja!U0jGtrcNXymS^GU)0Zhf z#Zu!V*JB&L`;Pk;F=e7N0#mQ*#3saM=n%R?q>(MM45a$*1?V(+BCn`1F#3aODEAYi zYo$=Qg~PqFQ3zHRdz{P$2ab?*su;~wMeqN23=UrnVjvZGF2}3>&42daS5~X_zehuR z0&}I~t2ccYhHw6TI16N%E_rF)6L9V!iLRfN6_l`)sMCji7?AmMv77Nzz6^nc0{+rh zF8)0G2qFc9AFqL9a_V0=5ci^vo#&E#(Q@i>VKz_CUNv8boKE(50DecHYGIK|&IGn_ zh{so^`L{9%T5veyw+At%@XoP?95ou?4lSaud?F>v&j6Bd%%W%Yxu+xfu1l(^WEg0- z+Pj6@0U&_L*vNnWXb~)v(;3_OTz?PW zf!l|pwdO7o>&W=<^qcYbnO%eLfJAYE56AO-jJfmS`jCdftmomV*6LcQpsbrMShreA4S|C6s zg*e$?EAJw2+eFH(in2KT=K_Yrw17@ABgm3J7Y&3=z~no~j_A-BL3FwF!w?g;FUt@Z|!Ul{*FCZN(DcZ(H!LXn; zD&Y1ksyO0#Vm2~KnFdJIU``{*H^2&$HK)@bR5@Uop!4cb{=;q$`Nmui1&6BC%tDL1}C=4!tJ6zf7(h3UB>^UNJ21_ z$8AU(=105fY!$h@pv&;jAi5w2&^~O+cmN2=iBz7!1(}xQI{@55Hf0S9g^942oTDcq zPCkA%A_Bxj)@w_%uGn3-ZPW&_Rz?b5S$1cH$v%qjBiVvkzP{Zr!fN2$1|y_Jdd`km zfkX^cEVRJzh_}e4l4m*~%k@dvnCSIjSD;`+5)!}y=Vw(7Jd?HaT~1g`zuE>!{Yc4} z!Jpw~o3TK&=}i$N;BSPicEntDtlcqtSSx0vlqo|1jcKXo60m0C4+GO6Vu0$q8SZM- zOfZ5w&rzA13qDK6(d5l>*7<^`8+)gK8?QS8!}dyKnYH;F=x#U}*(U;(MbSkLt^SI) zn@LOf2_Yp=;j*fcu4q2Zdc(4 z8@uOG+P8?5KR|hL{h@(SLt!|LWw}OvtOO7K&-Pak&E<)~=Wx-tSsIGxN|xsLY$O$KynkkGFoU=EXhoUEVj^EM)D!PRWQsx^UPT7*W*J7SsHNY^g(KNcdyQl4C{C zPWq;wId+*#_is!6(FIeDmx+42%D>2iowMFblBv(CH7w+JwncbGGe4=FI|w%%&CO-A zS)6J=8CaALi_h0SL&hCc7q`jyyLdIbotnbUg5* zYbQsHshaXgQOVNt@QWS)NTe{z9giP}++~WbA&z|H-5kn!Sz;i3cCh+x8wu#4RcnoY zjz6Y;EtlEc_^!zYetE|U^h}7fovXP9Mu+7d#$FL-3V6iLgQ`3^ipqTd6eC8yn=hXJ z!o!ds;&j0XXSC6OOq<}l80XGIYLBGU?%6y%@t0Jw7+m>}AR2#2p3$K4vk#irs}}Ck z^zfB@c?gTdw6S_cG$l+0-&n_0Y%TUlOGCwp?EV9^Ed7xvDjI23Yse?8Rb$s*!opfo z$^5g-&mbW~TpF|tf}b`P?>C^+SL*~?H_Qj)t%MI&}6aDp~2 z0asgVWWy>RKe(=S@wvU__64qHc+^T(v31vw^kGNwrsg*m+)25Bc>g}a>FrOWB!Hkp z(3{nqa`nOSoYw4JGyBRjP-rNeCJkVV-QG0|9^%F*E?(&gXUl44;}?Axf?q$0L^J+- zfV|R9Jg|?@d!#-K@QD=feR380loum6*3_p6$)W&6J`;5s>aD1h`yN>zCtCgJwYi z632%ejo9YxgvdCDTy-Xq*^>pQyzcYs|7AY(U&+Wl!lsGBA~7VlRQVyCdA$um21e_R z%xlBLK&6*8&-gikcb5SVfZvNF?v9e6#zccI8vW**fDi9+858o?xhU6e8tIoA=PV#V zW05SL^569c7feiZ3(wDs~JnuGNdNhPEsj>ed0Vw^UGR4HmWA zvVK?l=8U*=cn@H5VX_b45>!!sXNd5^7w`{p^6WzW`fXxFXkOWt$DmG#n%*)xiVIbkwb^lm}ulLPjtW$;7SKhn55MzK9s$x{tNpcf}Pl% zf!3+5`_0VjGr}sHM#HL@vV|a#g#%n%lGM%oIqi(Q7|H9WkFPSoORT3MjQOY%E0o!z z!2i}Mwn4i+Aavn*X%Ws1+I`5ebF~_2{_T6`T8vbL>Ag^O8UfN<;R>xGPaOG=eXT%-2YD~6MR0d;{6(vn9b=GwNx;?pz6F+S30ZJQpKGOO zexqHUJ)Aw4kip!x^*nJiz2TEad{XPEf;lYQUZas7afbq!IJ;Flt~{l(be-v4RxVDz z;xaqMRLQzjnAO05_@JV}Oev^Uow1ZM=Kt4$$!7>}fCEspb=FnjQP*k37n{~F!0A2- zU{DUgj0z7<7{jgnf6m9ArUh|m;nc4K7ruFqC`QO3z0emZ7UPbup3_yi$VWsNBketv zQTUTzREgpW3p5S-tR+)d_eb!;jr@E)f{L6(toOqwW*1s$JX1=99JHvKJ@o3>1nT<+ zcxMe=E546+pU1mg9cOppc@fnREBAF{T? zSNUst=nXQ;ZZT!){YEwNbJ;671x}%3&1kjx$a9$my=(!^nCrn!jWb zdU9)j`9PlHYg%Y3N{lPFJH0hMUZDC6Ct^A&!2k!>m3} zZnvvdo+9bQ$~mFK`xw9TSpwK<)g15!e_AEG4Cec|ahi8Ch5;*}_;DjA4BDt!@PB-u zbCp`H2}Y6IoX>#%o5W;3F$`K8R%)tP0|s_J7H+AiKZ67{Iiqm(xXSG*^krMw?hLj z|xu;?3;u-j(0FU>+3smMomNX}(NthEb5t zU#&`!vSlra5%kg9d`%hv5|@{=*H5DMl6^HMALC(tdYJ6Tpu_5sj5M4n`g!ucQ>#ft z)MQNmMqB=PHGhAGV5zgX$J5@Hc>AQbQ$Pn!hC#|CDlPBZ~7j}XNl`MeSMeSy5da}jIN5tCb6-I9BB7t z-+hsdWc}3T^Sj8w@|9r7>&ZQn4y~1XsKeRJYlCd$kE0VOzr9DQZlM&%R7@o%rhBVB z+!=b~pJR4h%u81FjbAw%3L7EY;3Y9wdmmnm5UX|Y4!%P6LjrX_Ic9xE)#hijzmL`9 z7Sx;Oc)jZYNkpoAn54La{j(X`46z=l$7;`RqZY@dv&@voD``uRqNt1E$tBCU)vLOI zR|b6=Yk%CBwW^2v70>9L1&UsxPx zArAjBF4@TxwL{xIe>|gq8P8-yS^}-{_O5;D#_o^Y8S3(_FVL+3XJdV3JPbH?$$mDC z3D}U9AW@zM<0A2#`nyYXzkkVw)qy!s$F{B|*<~zk!`W;U&U&Q8te>C8z$-SCJ-XDA z8k`xW!-}cvobPIv1a#PgvZ-^)icHZ?)@4TPkGuxb(Jk>}YCulgj?Vsr%Y7>2mZiV_ z2Of)B+AltRN?orvVV%`U|6;p`*3fh?Cc`{1Mx{XXQnDH6!+H7Svev%gk`}uTd(f)vgFi`?W=!CM%BtNWZ=i!^>WcjhWi3BBQUmpl4#^p ztq?Z6oTGhkQxJ!_aG>3mxd7nXo!73K2%rfRQ7H^~8;pJz-sU^ImO#;K^Z=uJ{b_Gn z6=J4K$bAHA4B@HK=g5-=DAmPaWu}v}RAxf8@%X1z(+xSy#RKf3zdyM*1ctdm@pNY) zTNIHnV#8#k%?3B1?D)Ssv;9)YhzJ5NTL(2NH=-W(GJ{3-$wN$sp-R!>%NTgUFrNQZ z(|*{ zld8?P1$Y4kvGDg?QXTm;+SVY`#x0iJ_7a09+brhcbf_(sSo>KA|GnPsoK!hbtn48dG#$oU zh82l+%jucgjP%Oh`^lWSuRVfQZ>}g6k*n7;;iITPIMP;~nX;9Q1l-0q6>5lQh11KI z&HWfOrfVX7tFN8GK!>mlY8B}pN66Mf#sCEjP0www^Z(P_^7eVKsB zhCfs*SkooICOP{rZ>?-7|I?`0rTo%J=)B>bH!p+1J`%qwLL%P^7@LG?;tj66k6PkH z3ny>VC!sGxV>8OqS0m<<5Fcx`444Q?qR&mXoQ&+2RJC<{Kpslv^p6U)MPC#gd^nmq zy$_9#b6#Hw)TGfD?wjApZczXRpW%O}aoyfKX<-RyX{NFW5swfpK<2TyDEfJD$ks2$ zNl(8Y-jG7rJB2=r$;WS>1*ks6oR63yKadL4oUYN#-Wm#bL&SG#1q2kNBBU=K(H0+G zi-;ra4aA-qzjDL#JKAaXfRVZN54;U_*X;>?ffp!_K@}obD5oZrhg{KIL1Gy8ONjV- z*y`I#2RJsmY$>U*1t%GoHQcpUTMYB#2n9N{7-!lL5aPox2}Se1 zZ)bHw_iQi+Hxpf`MHEA}e5EHi^WM{tA0UVayM@ROn392|;JB-{cKf^)LcMT$ygLX# zdxj0O=UfU!H7MuzMv!eO_p?@2s^u>0!R)OcshHw??7Q?rQdjUa4%f5N^B0h}yAvJ@E`eK-R&fCL@hjnmo<841Chz%mC| za!A5dD9l3zSVDnTE|zAr4hIibfCv(oSZe%a*V6OhEWm|N!T#oD4?LwXJ6AiX2yy}Z z8cBe<23j0}H}J*wCnt_pv2_hXNehy!19{7mEquI}DN?(idwrpVFo?s~-iK@{;g~1k zT5TXs0VgzGv|-#coTveCfSbwY5ihz3Ot=h0v~W)7L54Jdb?Y>?No4SMKtxAA{2oMr zJrdT3L#B8C%fFXnvR5w{YJQjQt@4z=6{I+x`;Kuv) ztGzM`T^j+_Puq=&@3%{~<_Q`=`)pg?rsj`OW z*mrMUMF(W1{bkYNrC*mJX_Mqh)^3&jDDw`{+yJYeo(@G%pJ!stAXW$&emyj&3<(9H zp>O$@u7Z}97%%KBI?Ck*!OZG1glMev43O~}*-<@l$uiXUB`q0k)_bfvr>wTJ`j;*q zadO_54JbT(hElJdm|%CQruqVSwt+gSQOr|N8y3mkJ?dIX2 za`)o(DXH2NI#MaiVr_31_sxiF~qCb@Z9~> zrX(tsHTJ+7)58UnWK{eYItZxz+04u-4vNhZz<~78!I;%DZB*$u%^m~vsawFj1xjMx zwj8j@_2k%QKV1m3L8yneUC*}yg+*wiingH91>kT$Kp`E+Why7;pndZZ^J}v^Apkts6&tk}+BV zHw98|#^i_)iRuC>{Wu;(m|O^mgBy8O0yluxpLNRUq(dtJHhBQAb5Kbp(l57(4L3<) zj)2(tjY=FTYXx1mMFCWPxCHB6U&}QSisP})H9}w5Lao4~rvUdzoG?*VnA{Y*7O0UN z*B7M`JEHl2tvVo_|F0M#=*X}CaRs^oVTL(XfG^El6Q=-tj)~1P+?+?}ZS&l^ZK3r< zIME_Za2)-2NzMP)-9RIQ#^8%oZBz|q# zE~5X%#?=|4iJ-TBt6UT8d4!or8F}?>#jLW3N)k3{oO*C$8Op5W!O-^k=V{{}EPosi zCj8{_8ZLZ@YY{` z_8sZXQFnG=%KJH$kN+Rnv4zt$l>+FOe==Dm;EZ{oQP;>R9m;UcUULDe%b{8mc|)GO z3q9~kOlHMAy$`0gYDfdSldvQDW$JZNpns_pIN4KxALti!;h6F6%Ms12osYEJZuY%D z(qXXN?9K*sw2u23si>n{%5}-CJJbD#<2vZy7e$YGUzebl|1nR^{AFajQ7XE$SgifE zu%oW}(!~<}{xjpP#UkccjQcp5g6M8!#zs&H)-5F!eEcjD@Lp>1n-kBB+i{BB{j<5l zs=+5g1utLj{)l?t0@pTrehOGuO#7-R#Bi&)E+$gm+h^qljY@JRA^T@*WVowm>bkMn~B^Z*tY!4kJ>JrZ!l|GZK6FiYjEOz_9nMY zL_unovPL{^kpnaOsPkihJX6v2-=4eQn;$-WXmfsm-7NfK;#HTYw^$M`OxLS943+mw zI1L&f>wb_X^z`Lg@2Sy`?c!%=y8rdtTeJSTv?YJ>179lcKeA_~*k4b7?ZTeeLW>Gt zNEWS_^XE+G=v4BHOUr#_r8_b zg@v5ffUUz?A6vXGGvXfzao?qz);TfyH_<(;3qNgm=707vC8#5aNIo?=gCIdmI^?dV zoaAqC+)b=Jxfap1Z3hSDVN*3rcPy+oiDG5B$o2zL+&~Yj;OqqE?>WUctC>x$;{$<% zkPchJpDZ8O1j64_MgZ4ee(Mk1+}-^=J3Fh|DIGx^^Joyz1-3#Ll3Vpa zQquvBVewx|qlo_bjDhMZF9-+uF%EM-+5sxl|IzpAqAeL{Rt8V{%mtGi%afgi;IIMamHx%% zK;Jg6k$`0`-Dacq>-zjZw<@_hOK$-F@_p1B45=vgITp;{y4;awAlSO*|LB|G+Amg7i4!xH~n2}XOc?^6|#!LL-npVej+ z2%_nS$u#8sg+fVo<>?=R5=>BskUCT5Z{5Fl$1*j~+!AGG%wSOnIUC5QFYEpsOw$r^ zDI_oD!9HMCD2R``NH)CEl0@p4SzT%+oJKNG<}*g-NMX+{TFnrB-9JpY4+G4e`*MIt zM0u&WdI@ufDdU+iiG2I)pjh^Yb!;H;NoUV7>+U@`cW zfW(+m@5ki!!CExwYb-8Xd%3RkC=spPADLc8NhD_1V5+4LHL@wfBr@TH^;Q&?81{_$ zsbhXj6^>^2Sja)wg6}P($!fTT`7MO)RL*a#Ba0SHwGrjoE~-e1Fb?*}Sipk?%cu!@1!0n&1JRL1qL|AcZ&I zPDt%#g`T{Nz@}R8-Z|>5A-7*kV8AC zJe`AHOf^!PzMDTM!q~#K)B5G*-XmUm6+-f-j8`XpoYh0#sfI?6n0Xq2BPt&}1>on} zH$7H@szeC>liI9@qNa351_r{wO9!sYs>PB;!KsvL3rQmx2li+vW@lzupx#^)Z6WK*pjzTSd?cj1X(_I}JMW z{1RB1Nyv{fXrp)j5bjjHek@MNFl2FpwC@eg4c)s~pIRb2O9KlHKpcpuz2(W99zT%E zg{iyIY^HzP;fW{un9MFS8FP;0{n>^H-BL;up!vIUAX)g0(1uz&>h$=o=4pKxs6vRw_32Ea)c{!vV*Bk`w@gy6kKz2kzSY~Rgv zGTw4LN)W>p@I5g;PU@pD$)`XggR+omplDLJ@3SbieoO%{o> zwcy>|VDBnN_rKXQ;Rlg`|33ahfznYv~)mMbs2l>4O522+j< zP1w8yrwPjEs={OX$@sNMqoTC~I@9ZP z=LTz;^Ng|PHyv3ITw_G{9?}ODPCF>-pbgO4kedob7nvTAT+(SL?@V^H%&CN{`_j8= zj966^3MvsN2I=gP6F5-g-sfuUy~v#+0bNJvXTT!>j}6(OG2T7r-m@pVPZTV!r?U6! z8Tp4p3Hk1|qOAKITx@tkd_=?pg4@a;1?6IYvFM`PHj= zS1^XF5l?4)gb-c<3c6&L(_9~$mNWLMGQ*YgD-o1lS_GOF4@+T5V#i@u`%k=}Ya!uo zA@YA3ZuJ=H-V!yHI$%;mXIi4Zage9ltax4$1(hOg6r`s@(f$;Kv((`3iO2{C=U2TO z!ZKId5;dw6TAXSLk`D5;AJO%@S>NJQ=!LjqwRziMjJ6Qnu2A&&eIvlXKR=Q%#)@^k zl_~8ZF#;>hU-4e(p!iu5+f&LIs>dhfL>(dll@b6}7S1Xit@081Ee@nnMrw9yg0^gd zS|9vPYP=aGf_6%tY%U&1*clM~IOJ?`9cvj}dQdT+?fPD~&~5&m;Epks5ZP(V=aroU zI=m=F*%c0y1J{FA??&E*n(dfmEZhb_9$MCHxtC_s{Yv3effZ2k@7O0ftAE}!s86Fm zG9q8hZrMT>nBt31(YCLAQCk8bVQwTqHd66ktwjH2L%3=cdGVRcSMCU48%pJXl51Q4Uk2 zf6cKueohbt9Ys>Z*+|lYNljTbW?Cof%R^aMR6-0^wdrue7n}GA7R{LbY87@Gq6=y7 zmC(lI{Phw{XZ>0~i7yKN4j2DTE#wGa|G@+0 zs(JV-@u7oI6#M(!0h1lboQ-_;!D3p>i^ui%|w`3aUFbc5%6*Y6%bX7)u;af@R~%@2&P}P zQigCOdBl&LU_h&hwAOvFbk7N^I*Ld>vWl$+x*K_;^IuD{TzOM6m|#a?dB-C{mGsSL zb-dzR`ee*-t%Iw;12|n{bSy5p0fl9fumEJuMiM#i%q1P|`jFh>R zwHrxwb$+Pcwk&3yLwM~N9H0eX9u4v1-iJAe;#K`gkB#-38lRq&7fdTpE@kaJ!IP4w zO$j$_cr40txtFRUobtB07w;sG<@dL7_p4%+jcJ;djvrNXt9gdWKw>X;JhZbES52V3 zL*P`S2MLbyR|nA%Y0&B!qS0>$95`$9ISaP|3RKF}v*K2s2Jr|xI|%efU$`ID zyFPpMD*lj-h$t{M*r3%{LpJoqP2c18i0&jn*dNIUERIw?odERVUbY{PBNT+uTwe{e z^d>OYOLe2!vSqXEU+(V)!JCA}m7}nqdj}~V8Jw&a!`8UDx<~2HhB-oXN4U9vKQ~t> zA{JW;;JxGDeuo`y;N6j(i@=ns4?t^}w?PYClM5e`rJ3P%E zODiih-2d6(U{dLs-YrG~1WUHt38v4b_}QuwkIFbWKJR)WoB;{>Q(RmPL~z)Q2ujD4 zD9m0f(E&A;n@_@iZ6%UpQVL;xzhh5n85N6R?W>sYeDC!+i9MDarJ6?r7_WIu#r4O-m)!=t~<~Z=hPtKj2(T(ttxVXWO9_#*+ zSbaRqx2FH3G3+WQ-`yjSMDNvaf4M9)&fIJ3@JG>(pvj`yM=--NYVbdXp1k-RLY3Us zf8|)}qRZB8~ z3y|graJ|TO0zv+Aazw||;>{MB>ngv+aUuV=T@JDGL#Gp@d!pu4Fq+nFfmc0k-ss;- z17TmjY(BbP-0NNk(@)e0ZGbCuVkRUviZf;c5o_k-JbrDF#0W(WyvJ0)*y6svvGxU} zru=_~tN`ZgHxXYP=YYhK1qfX-m)6H8UZkw9AYhe%{OxD9TAD-C1ep`K%n7WkC*z-F>4`FMEn8w)0~hMrWgCpnwRXGi~fVD$ADw` zx44BUO_Myf*u2i{D~GU;sIOb2WA!2{AyqDr&5oEo)UP1x$nIsw0pa#R2&aKU7gZtrKg_py3S;a9AhT z`h1c8ub;;KUF)lyL`3K$^X5i6HAHJZY+>HIE}y@Z{~^3h9SY58&;$M6_;UGDi99&& zc#yS}8a#XiH*=+w>p=|i=~nvXy~}_c(LAPUJw!8g+NTN$#A(VF^E$Rg2gaI@0AIEC zcyuu;@Z>22zuzT6m`i3DO8rxDd~!tx3PoLv&NKKf*LqTc_~&NyqKq$ zdn)O^t|5y7gn6I-x90-j+a(E;DvYA?xcoL-_Qs+z#$NXJj0#QA7mNGGQ}n@O3ZF(N zG8{=+F+@%S3zUmb+j_sKWb#-C4k!)mRR&hs63zR|@tK={qhXLyHWg%g#0U;RoVTf* zSpKTOZM#XkC!Eq4!UI~T>pTl`)0uaNhMi)vte*q0)R5|$Hjf+8&p$sFXtnrri=%Tw z!(rnNqPCSwUo~bAo*SrhWN0IiTaRc4&uiA1W1~pBO<F*Odp^HP?FJ@j|7~S%0rN zluv`+l$Sf4TSl0NFtcZ~EKlm>Y0e(rQpxBh;A~k`i==PPu!7ZBgzNGp==Q5H*RJyAf!S*fNS6h9;kM4#n;SfH zlZ5{%Q}|%Pn&)pZ2cZiMB_18%S=+yakvOhO>dC2!vrt~v7T-Tm?zNlgng`6wFD`~5 zh1+#uMr8CU8KrG6yz9A%&f0V*)vW)FEa8&gn6F-Q<;!yXU^&KH{`yun`q+%U%1jbW zunh+R2R9VBlc<8J;h$Z2Gs@?^8|+I-)=YdI?P{W=AI@O9L7s!*l0;re3f8vmloX za85DO8^$dk4~*Qgzdv~R^cno8-NH3ZV0J!d`=Z- z3#57V!Hvf5eoZ*piak>vsCe?50llY8$Xtd@PmL{;STZ2_hT(c%~&Uc70Bx;l-M+I&A$6~-T%wqXQG9S6@-5KG;Diyz5n9853s+|81>n)I`KyP^NSH`;jlmknkcdFx=wAWOgBZd9Hb=LD)Zi@Qmk*%=B6np-Wq%bNR9t7Zk=4ED1KurrK0OpSCC)kU9GLqsQa8e7^aXw* zP9T!0_|A1&K@kd6X|bsOlTIg2bb4jSX)>Z94`(jxK-zcy)pw~zKLQUn*xQx>r1JB( zqw!ln;R=x5Fl^O27${2W>@x@!O;RU0bFNIR zy??|sXA`n6mp7JZq_FZ^3Tp0-=7U%tji zQ&13kHw0Ba>6%~S=NmEYNOaYa-ETV%19j1SR5Z@;X~>d!_Bn%|5@=ec(Kiu-WYaJ- zPk0@>m^_rYaAJAoFscu=Yex|{%Rokc_L|+_EQ88=-E?|*w ze*x~F`dy}^eUdq89BQ0P@U|n(99gid&P0ypt?8;XCuA|m>XH57km^2({H~T;JS$2G zAdw30Ry9RAfs8-ZvL#TxdhM01PS9l!2yM4?Rc^LcasSuII9$>rPO$VQCTgdy5-MC1 z;cSM`VHi?7*`U>j9|;R&Yatf3BVX#s>PLmi!c(R4$fuqdQMppma_uzu{>R1yW&pel ziUm^sh>XZ|1H8K&0V%9?{|xzoQMM;)`D0{<{O&aw6JJuOao6_i1Otv8Ujl{o7!$8~ zJ9=j8Qcjw4rFgac_bDS1z&txnyA$9VnUuAr<`4`LA5z9kM>mXA{)bR$j^ezzjONPs z_?J|IjxM{GK`f~+OIEEmd@XzSuDEkwnVwqe6!=4Y3JD@$e@D54J87bZ16l1RF|VUE z|MseYVu{dwWAxn)i4I6M=3%bgjhDggxww%ZKd-tNwsZx>6TQGvv$#ybohUWe0y5LR z+6p7z1Qb0Aj5x*+tsnNdj)VhKwapgU#v787aU|HXF$q0f{zzwZcW%KUPj{#8d6DLT}}C1~r}L*$Hu{$RRrpD)qBv zwET~aA;d{!AQ48!dh}RZp5Nj_aj#o?)R+(sX$%V>Mu&W29C%Fqqt8!$qVgU!J`pK| zE1zq#A5nWl9}1+Vx!NW@3D92fk$S{dL+O4=)jmRFOc5V-o!6DX!$w6dL<+b%dU1X- zsiPt+8lyjQ`^Ae`j`Hr24C0>U(!SxDz)A$N*sJ0B4r{(e#c$rdC$a)3Z4|U!zXJH| zfx9?+NeY|s%t+uc)$4pVjeY$eVCy}_7je=2zTPAY6nfToRqTI8v(5>q4*U?G5cF{< zA$hIm=by-^ugPc1jztFPb09<{TzqHI;_RfX^52@M=o{zcwclTg;6nQma2jB373iRm z+~b93YbEsnH`G`Sn*czk($Jp4YQA9VA?arI{YPFf(xchu66nJT3Qqb;MftKaDvb{| z3#-Bb5y-9r4b0o8`jx!5)fUOwGp6Nr3x@=e5PCi>wR)DCJQp#)iTj*6zIRVGjHI=I zc2|B(QoDS`W81cQQ?JeB8Ki-VpE|Ee(Y_JU@F-j5bRU5b$sJ*IY_x%m%hJO?pDd{H zjW)eNu~eK-Z5C~RH{U}Ta_g}fnt-3}J@-z<@b$DX2e{Tqxj%s$eFZY@E-l7h;&rS6 zsRn!u11Z&dF@lfaB$DIh0RmMR`N38TJI#jLWc^I9O3u}Y8ft&(moD}S&=5*!Eh~nsYB+ZR_*~-$IgH46oqL(SxMHhK}9ggJ;Hs0bwGtK&{kP5)cy4#_>*4?&1ZjWmf(hT3Rue=~W}ny2_oP zG}v+tg?Pe4FCP(UYUJM>S6R0H$1;N##?0A$oxKV?>v2EzDJ#wPe%=A-sCsNH&_qmR z|3$f`sNqyjyp>&GVZqVcrjXwIn|%9$^af7eZBrKJe{)uqrtoU}d&=UbhC}GQ>*qAM# zXS1VmTwsm0teV&t`2hP!iec}iD{TLP790{RN+HB_(o25eMjd+Nx^-^r^%xNi3 z-9IF~XAk@$B6B#Zq2<}-;yx#%xb`40pEcB5{L7x#0^TBvn6^EiEPm3U`3oD#Qi>g- z@1p?XLh`{RBH`Rr9W_!E%U24S<|nSKJQ>kwu`&l#7sX{tA^JA~Lwx1Sg7FaSh_=_VU-mqU;nRWQxkHa?hBU|XUKE6*4? zag~-J+R9IXiHaSVe^kso5Krewn$gbyIfx+O*F$$jgEW2oJ|Z+A%08lqq0Y9Yk*C4C zc;pcDA2qVanQ1-#mOH}u#+0HSE8WCYuQ3ciVzWc z{&S&fuVAwDV5U=}G&3cN;`y^DH-up?Wt!As40pzaGL~jc_nsYPC~XsT=OGh}oH>Fr zWbqSAcJ=ky=1GdewKo)G4Z9jGgaCi2*4Kb2eJ(eM2@Su_#%0gH2|6PfVp|iIRcx!U6V-cWZYIULe`9bOTZQf#O zknx_35sjmRO09@?1MSgwaR~FFN8OjQt=}P)=U-{LBX1JL!UKjGMrO%>M}uGBOeI!r zm!#1+^C+C8D6&kqifIB?IDs;{U+Qz!{!w*gQAO3!Nv#Pa+TdGK1D+nqg*&EjN+8G; zzkcf3OHd;N{@7HGmNV!xVhYP7^f|>``Seif4y_W_{{s&_3Ab+|X)F?BOS&9zx4Z2H zWAzah=~xZ*gK;d6i~hY#`ONvRlNvIGu}ecCX2I=D(hWJZ-TN3VIBOR7yEBSfw6PLa zidl#qCc&!@-$8Hu;`u~dKq&;2y3d90-hq#7b45rVEt^NdH`a)dd2MT1WS~=VU8-t3 zK|br!FsI~`@N#KSA%=DzZ>5g#(3YkB+;lufp_H>smq!~vSr7%!da47ZQ6Duj+SONx zbBau&f+sd8yzebUFMnsDqd5uQZuo~d+5h!o)6QG25VJnLr)Kx~mg3iVsn*h!BeC^_ zIcr-zmx^}(-pOqSNM#6rj3V*@Usm$#7_k~m1w8lqOo_n9f_g=Eg>XO(g;M?odPeR-h3F=H6Y;y!&kuP@@UA{ZWu& zA9ddK08l1JX26o?7Qf5sc&J#aV5~bCs7sBc{scJb^ivALVl&Dav{)|7LG8twHws}p2#Z?(A9&KBM&v|9I#zME7%U3+vI z${wPG)#m~KJNYb$^2xLg-kep@>{SyEZU%9pEPHVe%E*z_rO~2+D=Ib|Jhc~H zal-=c6kyycJ3Lo^Jy4FMK&uej@JRGcovNL#CVpvjOVxwsrW2p|mYv$JM+N(lq>M_y zQtN!=;dK3X?*t9C$k*`SZuK8_%&L1o_1q+`7l4`33s6w#A|L-XJC9ZEu{Xm1;!yiZ z0Ecg}%wMl)C!#fB9s9+W#o_z4XU>|X!mrL@0XG>6|B58BQgraP`Ftgri6*82qrB%2 ze?^w}aPdbdW3y0-E1hSz5$?;?J;c22x$n-F^|Wj3B0DFC#vpYs2kvMfgguY%_CXwA zSSSTW)6fm=3HH3>QTN|6;{)NH`zvKC`zq{8$f|CIS^B;Y4(bibciy%9tfTHX|Kpyo zGOw;asGc4}pm%~R+Qc3?Qa3Xu-m{>`cVL>VJE8nr)<)2^G662057OIrs_fK0){v-M+;t_wQh-MTWQS zgNcsMJ!tRq7?e~lBZV?Nml1N%xzNj3hD#e|^7alRy^(A?wDMI1kMglm3;Xut{O9hb z8%vSJ4zpQik@q$~gfaiI4CiU`-E)|hYGJEbDyT*~d$1W=ujV(*eMPTL48Hz2&v#i_ z1PiD+IHXFr4L{|(@+uBLP9i@6zVrlwcT})hBl9Fp+CQNO-*p8;mZQ*hqh_#F7#ILv zdR0$B4;(Jw@p+SR=WVcC7iwX%=mDY3l1~M9h9t~^ftTG<8cD;<-HG^%}MT~nrfcO(3 zXEpoAkFtDzXD|o=6{?x!*A5$c`xp&;yz?q4IAcJ_#+L752d-eMkb~y-{Q)TV!XHDJ zyVG+uM_LP?Wr7_#nuH2;Ec$^7XsX+sYp(~(RBwB6hlUJHZ+`W|ug8`+0@1!ARHSmU z?#+_dpa$z)X|m?1wJ;_S1B(9M4a%dB{c>BY=f`dTbVVe@G8$dx7sVU=UkU|CX~JUf zY<}`;p>zRnt}Mz*5H`IigztYNh%yRuM^5H_H1(M%#O-P$jtKJ-7NW?^`bZJs|6-mm zy;>F|0c`@oz=DMLBF~?H0vP zI?ON`a4w3RmWRnTHgxo1UIt7o9_#(T9h9kim5^TG}kmW^T+TUfOX5 zFbE7L2VSUcO;A2P1o=0C*~y`^BRvh+m`~oAj|N=i(nwcx0QyWFMhqpw(&XQldi?po z53H1zsonzWEnsG2K63H?+M{;n&-#C3c)R|+Zx-Nu<*#tFucv7;Iu35QRG5%UAE0Su zH!D#nC(AwkHWM_A|69|u*)adpUIV|}^h5FT^=G*l!gfEUV%YA!sI4D`$bYxJ&Oz&? z7s`4929%^d>eR^RPyy1=l%%`rKEfMRPwy!R2k)>@fGv`=w7O**)doKvm{9p@^~8gI zn*^ppgAo}~m$HoRc^97BgbTp!dt{PBBaKsAI?#OkHX$ZJ_P?y?Xq>O(F3`#wd@)c} z>^~L4@(`iMX;ZcVP@kz<)U!gEeIi!Po|C7KZb3=>lVebV5TyTvi30`9cJOfy^8)bD z!f0S?`Iyd{uMFOneA%O@Ci|pydPb2mMVJ4k4btdyAFw`!!ip9@?UzU%!c-R+t+A#fO6NzEQeEp|p97J0 zIkU_MwBVffD7BV`4|O12a~#qXse#~w$xUmel5<*#ym9M|LMM>7e@F6t%*>(i6Tg|$ z%?_H&L7J`C>#g|!g1+uX7kKcbJvK8A6#b(?5YHTMyygP!uX$Zw+mrPPasREvM57CT z-9V1EJ1&1o=vDCt`zXXHii7@btUY=YP`uZ1x_DpnO7d0EQvd&~cuXpah2*14zji5N zm(}m)@)y&CohV~BeLni#KqDUPoP7>cz?BC7M@NApYPPoINo$vspS7iu8uiW}DE-Uv zFJa3qC5*j-4_y(W!5H4Q229z)+2=LDmDt<_|8;b3MGg2y7JVT@3{;e2qH%AX3&YtF z!K-=B#i6V1YX|QmJJRbZ(|(XVCc=JF!Kz%z|Ic|sTZWWhFTAjXQI8BQ=TAZNSO00t zD117W_Hi<4kY%8QC>yQe3kfA9TnsV_C;To@T$$r$3ltmhIVn{s^kIh4D!N3+K+mlL z{T3vn2%Qu`;vcB{gdp$r#A5Dqt7ya70!RJ*PE1OKEb#})v^8JVe}PuJu-+~uLNX_C6*cpr1kX7OH*B!ILz&j1xwAe3><K*poh1lNPWkHVy-8v|d| zjr_nR6BcP;=6{7RU99X6MRHbvJR3DHwezLaX!IVWBMtp~8cGj(yvZMyVHW}_6u0Y= z1n7Bce4(5Xp?GbrwBSwLSu0`mG@K!ki8^LZc>&G!tf>kg^G!&u91T3uu! ztl5f9ca2sCXxB4(Z9np1{69%DlOHSNL~%HzGp3b6^>2BE>QI!Gh>PNStbJrR^3xDG z4SMk26M4?~F3r(69`8tk_~4LJmTI(O6>qK)dt&Tk#EShRKB#&_%yp3Fb!WI7c#&{* zt?9!AYj&)mE|b*2zde*Ws~D(qsucAFok|5rO~**6kh^(X9LOq$6s@r!~^y`iDoB^Ne9HF0G) z5*ua0CBKj7gR|I8jBLh|SCeYVdL8tDvyglzC@ zk^w}!_D>8Yb|p?p8dQ81+-gPGv9_7EOcpj8*SKWEB?K6#&a{H%aD)!cZbJOnsQT!2 z%&VDk9~mWV%L_}VXewTvIW~xiifN1~p9UgF5a8!V;nf}rv;Gw)eC$7%G#S4`K`8d9 zfa7Y{R)&}VeB_?oYj+m7d~8EA@~Tg;9;pehH%HH1rNWlQkWADZ!t4DI2mN4anB995A2QfcP;ueq zyFhT^`ZlLUU_LI`(DE9v*tgg zGY;^S3!~isJDi)TbehOUkPH-p%d-kVvEAVrF^SWxswbWIH6kQ4c%KDHg9|Tm=~JCt z0a8$xIf42Np&`RSUB_s)V($xHOwB@`8>wOOEHx?RKlL`ukH#EqTz7yZ)ssnkO{6Go zRSm`Wp0SaWs|22#5J?Gsc6nI9{Y1hc;J<;DhQzP90T4acUR|Vv(N=2s7@RsTh72TR z-w)H!>y3nE3m0FtGd&Q5bZjuoOp&dUu}~2r16wv@Z(sXy`j`>_o3*kQ$K@=;j>PyK zNqLxM#T9`pgHQxrXmGu000qi6R0n$^kodW470w7RuLp3&st%DvNYBRXzpeWwM)0;Z zhF4+nxV9qc*G-_8c>fec6hf6511#(+JDzy&mzVb8+9O!BgT6z?p)!JrUznY5Him+m zy!@~LC2V=ui(DV8n>l^E3%wH^yz?l2#g3v1DE22aO?nKS(@AWz`sn1kKP&d-13`w_ zcnlLMP&?rqdYy1b4~18f%(l?>!Oq_IaY2phYPN))#=O%E{kiZwBU}qZR!RwaQP9Vr ziaHEsB+9u|FNY`>fbbX$dc9s2BB*cZ?5Nx2x=rn^y3RG8!^`lgV^SV=eYng7S0m5EN%de`=o(ids`(j+;NB~lA! z*8HsOe^|VT8zs&^mIMC%4KFa3osEdNDjC1w zP)p&i{2B%-OAcNjn?O*Rgj~Sb^SUI4GVuJ_hkOZxJAL!$ZpEtF8 zNQBq>zR0w3V;PbcCeV#=mG6XPsb}@oVd;KNReV`fW1mV5Fm{ z{IEA?NjwRgLZWF@Yt_Z1WooX~^IP6_PnMk-^5Yj=^Y&x-=U*L(Ov3(&2_+@f)Zd}Z z-Kzj)X@0c~d!78$O;ZlCZ7XJ1`C$5=ogWqKqK2MCizJ6-p2l8(9(8FYJ>QE5J;NZyh(x%I+${wwkKNDF>B3-Q@Vi5Vu|#pCS2wPssR`A^AmM0<21cB*T<= zSy=4vh<68agFT^FYR!r8;Nui=0d7OP5p|qIy$3}HtaJ5pi^0yIkf2Q8@C<1JV>P4E zh%KGr&mcBd3?={<$)Ygc7Dg{-3XAjCHn#d9dJ{I|xBW$h6ASW9{*>dI4r9^S`UHKg z`%XT~PaG@9XVG$0QxAj_--*B^-U}U5MV_wVN6N`I`hTXI!!hQ)&plnB_n`-zlEl7>b z*b?|xbq}ND;tJiBVGh2(&EH-vACA2GK&e@Xei@qJeY??ELO!(CARyhfW_q@}TYVVn zrrX{GGVpL$xmQll(W z;qdhx;2{MccLZ*s*VLX@u@Z&IW-=qhrEcU5{}@{*=L1;rljp6J95mw5e(!o>;V*3G zH-BN(ci2fb%<>`h5%DQQKnJYw+s2k5JxCa&`8sWgpZpY5Ha)HWpj`aYtcBg-N$0?) z_t>)N(pW4^c>Uw3ZRj)4Upyck;r?w$4)|_9c|~`WfGao=p37ebN{w6p^Q*;Z_fAq% zK;q)UP&^qgV>GaoKPV}YIro$}l;&oue{QD6pTsQm)B;sdR z8Zr`1#BkX*Lr&M9>Lv*XxXYOEy*fuBDQ9CUp;t)&TGzbT1B#?>X;=t>`I<+;o@hIDIbw2Oe^-up%`GS>_UO ze@YO$n4X1%sIrp7n)l9>;ip<&3!Hd=6nI_JjW=SFtGXJvrJ=zDms?B8(cdPnu>= zK;?TW+|*OMA%Yj;{vsbzQtn<8KxB})v#6x_3Q3tQE}D-iPHo4hrM-61JqwNgV29Hb zpV5C{%mi*=mA%^ZK&{=+RfJQ36pHnv}sxBI2}-I>kBriUV*Hz znwt}9oQpu2>eF14Ik1(dlENWXf19<`VwMNMSg;hJ@2BVJyzwZS&)@j<{9g z`zAT~?>Sr$-5;eIc_SftIqsLqqM{i?iPcoe94`8oHvilHDX!ptQ`b9!CSwO90H~oZ zj`z5l<%EbD$$FBpVHE$w(@^HgF%JL#(r>_yT0qXOtzQKH!ka>-Zu*1j+TEs{Es}h9 zMukW}2PAIUb}rS@T*rQu)`xy5=&-T+Qf0F`$Q;qB#QuQH;!N_d*w4NH-~X>i{j;)b zjwGaD(@AH3uowZH?CV~gzX5!ue9jmXf^4xOc&)w-c1TDjfRKP$L#AZo1tt5aa%%Gb zv_`R-$HKev_9j-lbo|Uu$(686s-DkLK0O|ss}UK=v$tv#o6{=KbWfd)-oRcyZGS&j zw6EqRN$|DH?#$Yh;NEU)UL^plK#|l6s$d(Hf=;6thThSML+-_PJH}wdrXga$ zgcDwVIwYP~!zUyOc9eaSk`j7m@4C@p7#2CNp_xvgR29w@OY2vuHEu_)tE+}-pBADi z?kf8SpRQPhX9s5d>r{tz_foz5Xw={|PjVyKihFm+bM3lOTcQC5aKq4%%MdJI8a=8{|w2_mXa5n4~ zIq1cWvh!U7B4<2W6>Op~H%0~^ekXnKA6y*-^LLMv( zpZ?VWDV)0jdU23ORFGygQ_JaMpM8!G_g4}t|1p~i0Y7_u2(45cqEGy2^6a|Po)URa z_B9buQ0w*UqrZz5EX-N(v!vg;%56JQYV3pS;hyU`hmA&S$s)1m<=Z%ya_#X7Off!W zs@>in)J%mR-~BwP025dbc*iLSn^=!GV0gka6wj5=|N z$Tt~{9~x*#k&*oU8!SctEao*vr|t}KLQwlz#r5UGjJCp7TThku{w)i>C7i@V?a(aP zHuG$FkBsa$uQ{)-oI*5v^d?|4TS9M0h#9Tv^hbeU9-{zfPEP%q#J(B6yT5IRiy26k zLA+7qY63ejv%!={M@9Aq4)D*$5VQ5Qtx`T z%CGjeXGD!C?O`lZm6Hs-vPeJNp?PgjxFoot3Nd;kb_#%*eKnPB`tf+n4+}2XkU8(T ztajI&%g%=e{RYtCo?H0PzbG(425d`XekZW7vlWGtN~+=marc|P$D)}@oK63ZD0#`= zMXKX>dTp{~wTTC>YGgm5cgZhNk|DlE1FeLQrM(5ddgli-JkcfCO)nf{p{<4zVC1CYG<&8yklk=uA|c!4V||o_)MVd z@0y$JQ5C547>$O*9bbzCN~9mCQ1bh++>FzuW`i?b ze^O^a9B!dnhpC$q<`JTa;1(vN`%(}f;Z*&$=WTNE{)k`%1tqp|7%FyS7^bE7Lk@Vr z28AH6%W)s4RopI3Y>4^qxBtP8u^OmoSn!b&re(8ne2^Oa znWATrLUOJb7ab=(_@$Zz`}M2LE1SroU@>mU+;JbJ4)li@Aj|R%m#O=qP5a5&-Rs+N zS^uqq>jEmAo!SypSUF(FZv%%ST*~p9(eUql0wwaM70rPfWPmH_z-Q7dRxS5UsW5+V zKek7q`1f5@gH0ohktZ?QU)=d|>H>z6u%K8m+fnJ+;K?sIVa?Nn0v+hTCqQ(MJ`w1B zdc|${gB2>o@~>O10*zo)hIOvzzUv{z{$yu}Ad60yXL#A#Y~aK8#=0T@-N`wjQ%2z% z^yQNG`_9$7sYiE&_>2m%HnWVM-r(>vHD+4XSbG1yW0rTPL(lD~MqXFzr zF0iEWxYHu}90H8QIFd_SDhG_kDMb>2zpg%YCyHDrX6)Q7mNLm_AQ6EyUo@#`Ge!!A z08u8K5eEapx=0Dei%x`_czUXruTH`U}rpUig&BuqVWb`rd(eCcC z=!&1p3-{N9Dfmx5IrFZMsUgIL`mkHUjx9&R#i0}=nm!&X_nlkKAf)OaWBYV?S!bZD ztjM2FRbt_j-=dxcMM6fu*;uXry`SEWe_;)S5XT%w;Y^$F=7em-k*(3Ia=2(W*a%)fXOM70*{1w0N{fGN4v%YKZSBRzE*3r^u9YD93Q1-v+&yZo zKL`N#n}1zr6LM1#Dhbmm-T1?Ut0X;hBN#nPzk+BRS#;dW+-h@T_1N zzsT{+K8eBBIs(_#Ynk<_=Q=qy_QCr1`l99Oz9H%m3asf5W${ji0L7P|0#EOgU^g-! za+Ym5xlru?kuwN{i!ey0E*!9`r^{q#>EVH-z0kHXsh#P}C@byjSU@)>{ZA37ED9Yc_Tgi<5xtaf!F>y-gDu|pP1 z&B@bZrOaMwi-bt|K)PbVam<;cv{n&ZGAU7-IKmoU3T z#yq%z7yXp^<+!q>9AZtMnsX><+-@h%Z7#`hi43uYneDFFU#(!2*`Jw< zYb2g&@~$e4)oaCmm75x)ho{H*(1dTZ&?h%@$B>`LUH>VApo|lepfOT2I70F0`0U4| zTdmNYbYufJLYNy?29BtP*$DT04?DPaj^-Zs2-q3dF-U}cN-+nwK8Tr=D<<@k90Sb<5)W%?O}8&?nP3`>uB_XISJNGcEeV@UziY=yFN7&?!67l zt|DYyxDADknz@d!68|*$|qqMAi$3VO7_& z8P}ILwg629qc&z(uWP}u9_g8SGS$ST-vJq!=N*`42E!AQ3Pg8`x`bDA7zc%R6AC}I z27r&q>v-%bd^andrE0&x3e6Hev2B2c(K(vNECu9)y+7PGA_t(WY*^xRVHg;wKDtZa zxX|!ZmF~?#LzA8l_QB1xf#zs5w(1V22q*V#z?&DCp7qlFJNQ7jpO(<(5MO1?1VucrqE-+LaNHlc;++<3AZVDD{A?j~^EHu4fh z5ZVp3&2?&x)5Ji5U!M?h3;^ln>6}tT!U{!I%k3S3W+!D5cqf&LBITveg=R+M` zgv%K@-d^mK;m<>V9j3aVE}eK0breDbi2ThDe56)XR~`LA@hXj0;y;>2?w48+EL(=U zQP6N{;*9&*-~a8JHqrsU&fWT4yj7w*WOdHIu;u9eNy#P-Mj!<6A!PDK-*7<4V@2d2 z<<8_yA8HxxbblLG<_cwz#J{{QV*CVTsuIdb>YYm=&hXE;%0KKUZa&33B9qzUE7zE zS`?t(gn9Dx1?`B6vtQsN6;~qhtTi!EV zeQz*{w0muf&nXx0KlLh;_S=97VqcJsK%51FcaULoLOH#&esI|3ey9wTI1?w{^tot7 z;LRbB5G8;dwN~}`$hkXJX`p)bZ~KpCGMEE>q(aV;dGJ?HH`V=qm?ukL!F^3|Jw-ng zuzX)^3=61~J~*TkNW8)atZPQw8-d5q&)>JhAN~%!xDMyLnrbV^{M7{e55b|4wxiA#!H9sSe`*qwt1EYROQYH_b3qFHPPT1d+HspNy@WY~NB45aX#@XEY zRxw@Owy+hZqDKJ9*b7Epw7rnl;Hk|t30pO}pW0TX^2d%c1csGvQ+wQz^Gck4=*K)9 z`Wh}N#FZ!>VX~kq!YRq@ZF{WWAco!P2nuG^8RX6rfYfP%9>_&McMrS#R{ zOiX338m5c?GrO+`3QuMLN#~4YNqVG?F%@WKcsE?)j92~J?{D9w=Yg3Y0F1$*HzbXC8D1q`0-u)Rx11Iws-5Jty9c-1 zbP=sSOM1@)B?K%7infVKdtU#ktM19dMTV?bhST56f%W7|6ma=x#TpROqKWB;lZgmKRg)rChkxLaPV1jlHOa0L~m z3LrCZqu+p)dvc08R9P5Vac%8)#X1ef}KU@gg8W<@*9x!7Bjy!6sV5ZCf)&TWK^;8k?alsOSUT%*BKYK$3xT z9q^i|IVDvHnTl(0@&@|Lqz51QY+?Xd;D3XV)Bzz?-ZJ za}Zn^7|#bhv(6m#jfC%SC1-p#hE~4T^^sT)-DxP4uOcjGCHQ96-g!X4GSx-N?#HPwaJw1;qy;HZ>X{3T4l>}HFBm=iB>6hD;RNiv_UVAxNql9z=!38aWwl-iR z1)|TvpW5%EZcnk{L)vHWs?3iv`L^p5okmAZcyI@5LVqzZ#fN2f2fZhNB!I+USzloN z$;0|#PZDjXbTlp-_dFj{!kTICNdt9D$MhA`9G-R*^fKiUp8&UX@GMpZ(|7)xUAUcr zGocrt*8(ZEK%$%q%6Of0C2Zjaje9z#SBhZI6O9-y`l0e33IVI=y;*x=BuD8N%DW(^ zd97P&It@Seix^T5OujYC;9&&LFgRH$;|VQDFv7txwyfGeB0$^eH`i5sKJKq5Pfj0% z@N&v~==re2S;`$fq}vsy6NW9J^vw>4`h z_XtnB=)ZRQFo~XVRh4bQWRQ=m?%&w?487sr<^8&=v4k0VyX_*Rdkq5iZT{Q@1bCfb zRP6$)#G&}t8s5+L$6s9kuDf(B@ECxIe_ej+`UEj{p~A7`w3IA*Nj5fAH<!eL|zS4y8m}pQwcWhDaOE=wFfux@364`N329nRnlcOI90KmnJv;@Ln7kq zeI53$S;l;K(>(tTH*FK7O;f>d1of`jc;zhN#XefurFh9^>v(wvPdUqi2=-O|_oRO8 zl_(){jk99hTQs10p(s)A>Akh?;UAcKu!VRRPxsx)tt3hQyR!ZuOtT=N_@RHGzFPfO z_gH1;-Bs1y_uO;R#Id_mk8S7YuOAkkv>wZgYZfAnrk=6?YPD_72=kPb8h%*dYw@bo zAfyDRi{@0#X8=$?Dq^ z%6Vn_A+WW>}U=y|Et^3%M^s zOu>mS9h}nz7mtfS8gWRz{={Dzm%a(x?;5v=f1x#X9LKE_|72`_`1KAI6lb!V4cY9O zDI)#4G!?t!`#R2Hj2L~#Tjddl$w8UY?mNDhc{nK|_a5xrg2sYc=+ks!I7Ev`ZsY1H zO(mQ~<6YzDVA{5W^Rp99xfo24;aWO1lY@Fs+ z^OSw!fd%+u+)cp@ggF~S2fqj{89_BTckrm}C}wT=fI|r;J45m~yz#+5hdnA2&V*}80dyULfBee52I}si@agwI z3*6;P#GGEgpwk1DU7qH`C#gTlJ4a>0ku^LW52mODk)V~5;az-MP{OB!(M@6K`*3aw zc`3W?>em}i4}ZOPPj(}JgsxI$MPb{O)=JR}s}@}!GiVhogY(wX=xU;00ws{hr@@hi z+!xTL99x-O%?JI+@{1xfs`qW6%BX?5TjsfIV*!1kKgIW9?p2>loRH_%>Rp8qOV=?a zBwjf=$0ipX*b$!}Hh*M&^kTg*Iknws>6g@nekfx81l{U7117IchsFZK zyXl!2=LSGh49o~y)6I;|i_j0Ljyi1K#qypDC<@I^fbUky9f@d^1hI|eve|NN_6-m{ z(2i)O4*K#?&Zq5FH92Z3Qx-l-ph8d zg<3)C2;YDsDk1DwcQ8Zl7K3lXEwD-`cpA~b{~E5iP+8=|pU?4|&KM?l59=^)&`Khn zs+;chN?TPBnXrQwgu*V-U3wlaRQ7lZ3$138bOGm>f`D=A`tM912aw-tH5IH+T~@TS zfVUifsVvl|w~os;-Kb*P*?mN8UOWkXt{det`*KM_L9^wN!oAvpXRiuAkW-r7O}~;~ zW77vmcJN|Z7|9*8-{Won#+S}V{r|fla8JLGgmM#jj36weRu~Czf=V3vucaMMei&g- ztrcv8)pxLw5>%LE&`LUtX%f@X#ZL#HPtc6aa6R|fzizlt`6gl2ZTosk=~tU5Ii5udCL{%GkVnMukN+WuJ92%Wnfb`Jp5p1)#7l1-Z+{~ldgQ$ z{<_TognZXn_;N#n{Z1scbT`cdxXY~Eve19+qRee?*{m?rT$S$Tx1*8xw~(u;?uzQ{ z(H9R)XZ{e!rw}*I|wseU{Zg zO2x}I+sRI<_Mzu!u8^X{()Dsii%x>{m(;$(^mEWM9Ogkat?NMPT6`)w$ zMbtw7t?l%vX-9ahl~!o0y)sB}4kp>E8s&+#zcE`md(;<$NGssiil4Q&X1e%3$F}u> zn#8`1ed?a_m)BH`_)I?aVvM108Tri+dW{%nH+nfpEPQ>~`m4-R?rXQf^7|<#k6jo- z$7na#X7_c(!niOn0|A%9QQv-Zj+TX`+8#06DY-0~z89_a)N*Yv`5P);c#az2x1*e5 zc5foab&MoDVr~yIYDJH|y8hnXNhFaim?;0q^Ld~1+Lv;Kx4ae&vu!SXhgBMOU~D~t zOj|9UClkE!LSb!b6@=?}yq>JI2|ju@lz2B<@?gPtnzM-SkTo-lvd@Fljqv_^;&Se$*h%R-Av6!8|HHR`v_RYi)#~_=$`13ix`i2N<&vL;Rel~{t^Or9 z;lJwBMqI4(^lIeF8=woi`=oCND+zXUTE#rAFZ%C!MgqO7fe~Y6W7q}jcg1qJb?SRM z0Z-W?%DtXDT(gM5*O*e%j&-3uQ~vcXAvOX-i%zDFJ811neouxbBu2Pz#{1tElTGB< zcL$3C_FPr>tb*nZ^z_ReLcR;)k`@$K>G_{B>aQ7QutmD~{w6PL-rr$e_+@%#bXh?L z`t#zGl20->5x^7Yo|`7+MWq|J>)PRa?8^EW5&RB!*XioF(}4WndbjU zmq1iM@3_uTvtNBqo7%v=B!l!a2DlJ)D+{|F+D3D>ceJ3)w)ybD{!_t8F8+MzDrJ#< z#;5gsXeF9Yn8DUV$!^{Pqo0m4!lxwz5370-E~is8=l+uWB+UuAbefnRS$jG!O}RXb z`h<9-vSH03@3xd~`E4p7U%tq7wWQf&XS00Yy*o7FDsDYLMemB2Ihh*ZIcif+9nF3jE7y>NrSV{eFT$Tw4eQ_e zt9^>Sl3a!GD8!orul2W-I;bzNoXVIZp%l)cKWD+5SSH_+uWD%k>wuaFtQYlOcK4sn z^$K$g{kLwQ#M7|&&`WH`4E^F7x~R}rCX?NC@Z3_-r#Qcv%_@Bg;iDZB4~lLD$J}1K zx3nA*YlG3j3lYBnT55#)4?a(jH+?`j$i*IaZvOy0!25ktQi0FtJ?GdIW48KAMsB9+ z*oJ?H97FHqYJK)Qyw{L{xld?AcB8$v;{JQ0ocmZ)NaVfyRDgCtm`{`B>w6$k0S3XS ze=m4iLcjQy)&B*v5=`wd+b2l*us5zRU;hzoP4EreQ5I+%%=wYQgfL_^YdJSi2CdD^ zQ7Ph6n_N3gK+%>#YU6J5T<#WNN}Kg-M!E^o-eK<~?k`{ewYwzDRlZwW7;1ETrs~g~ zCw_rLu`S(w7 z3&-plye8A&a3=>3aq_!sZMsYYHMDQsug%L7Xd{X>+DNcsx?_YQ!39D;MTWipcIt!g zFM9^=P@$kLSmkgpZ2uCxHmq8q&5(wt&F|L(xTdkx#y$|FNbu2osC)K6cPC39T*ANu zU1m+ufeTph+K2)(TLRSP03Ik?du?j4f@*?`JVzw>99U23C?OW4wKffdNT|_!0->8A zUAO6zQQSC9a9qQ)0sGD0D5*%Twb}Y5e4pf%r8cbqJJdx>v}5D}B$3`be4?{T`f&3X zN?sx?wb}YTbN3{~94xssL8=LQCyDd6xry55J>UEdOIk0q1zW#dM4LVR7Ez|vVTuGF zLK1O0Jh~vg=cLUF`0Xx;O%AqPMuJom^vl#K9d9HEOwxP4;DVUlhKy!WL~}te9;i%^ zR)-%#5_Kea>zj@ddf?64MCgIHyP(X$9<@45HNgjvT%9Kvp9$VHnz4WJ9NxL@-TAzMV8n;v4#gm2P@!5t_Qq=Th> zqawlRO%R~0ha$siM4$dsRCPR?!IrhDG;Idb=B!QoRU0gZTEIOh6QsSvzEKVs=>ZDY zu#(HFZ;O$(uOz3p{1Z)^2-{*zl-;K`?I5|x;XY{Z@MB57#oZ^UJ7Fn=DCr%afgMR3 zBa=2cIAAssq&`7UjJn3WV}u}rL^r`PRv{1cgMNz44>Cc5_@Af)6fPq{vOtB8nqc%T zG6WG8mysadz3!P0aiiWgM-buh*(^N#Z?Onjiw@WP(%^ z^o}YDQY1+HVefuc+XjL-0Ba${kzxl*PJ#Ls-&+E@rwGE|(G$E-#VRdG zXgm(P9gb#!0wgphLA$hqmEq@OX~<-9JFFuZs5HJ4gk)@yIm_%YT)VL+C<%tDv%~-S zLraj2BsiP$@n@eP|xMtoRo=>q}AM%j|XH=S_BzU6;!awuw@a3sFd+Z6`DuS?->BrKNV5m}if{GyI zF-?L+5)4!JeL?H>A&^m8Mvr0NH#L!CPBoW^!~fa${ly7FCPjBnf(dJ;MH< z>vkA2(G!d|?FqUVfkb}!#z^Dc%_=krcI)RJ_;ZrrB|9-T*R8(wz*1g!n|3IICPtzS zG5hGXxo)-Vfu+1{H|@QBf@cL!jI^umTMsPc>*Kx%njN0SbYkSa2tH~G!eXA*lO)*4 zf+df;uz=?;>rHz%Bte^{r)D?~-?i;#{jmGd1G9VCz6ZhaV#Kw`PxkI_HDMTv z<2XS_S8emB&FQ>%y^$dn|6C9D0>1y#tfw&~S{MUOu6`f!1r)xV(}+pU7ch?Cds!E) z>3=Q&klAsN6>r09+%b}e5Ra4Ka$JX}eOOX|y#PQ~=fSi^y^7XhoQtIPc-!3a%|)=N zBn_W9BL>Lm`>;2%x{n}!CYYA+uQ-Bh7s1w0)9>(P5FnH5Y0y@-A%Y9H4&#@CiMayK zBghrBsvG*#*Ty?;03e0)?$GZWWzE>YqAsInf_NmDn0S~37jXoou}U}H_5%PC+jfmo zG&Zm*>NtY9X(>5ZzO1KoSkpT3Ir(t=u+zyLNbl0;VPSJ-c{#U6!jU zf>Q;pQaa#otARh@6M}!z5v43~19=;spNla3w|*+Z7cfN7@54L_N<*AMPXoZ~D9_rd zfo>4=5nSMrU|J!8@xQ8u2>MZQs-Wv2S_tqWDzJ>m7#RjZA3;ol8E^q-$HVa`$Q2}e zqX6Kg?0o~nHjGIy4-sB2g3&(gD<}=IkU_K%;8`{x7B_HyHjMi=f7v_Z-o`-~iYvN5 zxG{nh<@o+z^}`h^?t*f_AprA-MiwR}#d}8~O&?0({T7!uyEla~rq6>PI%KC9u8-WF z-5C$pdd52*?!CXUIeJFND3!1^&is zvx4)YTqIizQzEE&U~G-7V&gBDmQ)ZbXfo*3vj#!%NzUs4kU(f)B!XYZroZmDMr?yv zR1h)<&L9ZpP~<2|G6_@-eE)Yb99zRn(dixkRS*l}cT>SVbxIHf3rNW&@XdCHeQS99 z9<9*AWsDyh=^MnRf+~Y~zeq&UUviYn`xnnv55Q)y|LYemjWuJ_y)#+ zs51_fC}hIn!I-CyD40@$!Ye#|ps5eS8$G=GVs!TQaoztL z!FppkYhZqIcmgEXDx!i_2+_hMNv>ptF9}?B3Cu5*o`>xRpn{dPWvlndl#iF&e)Uzv zjNU-c);FeogT2si-kKQqM<*ao_egOf?x>P8?x|(uZAUJ2yo5kC2FF3}HDNaT>C>Po zs`VZ+XS&y1Zep@U(J%xIcQeToCFo~Q+ZZk@PnQFk31RT~)AT``-*`GU%G3)B+d$R8 z{Mhgu?1bN0U@bpMl3c~IE-j7*=FRYIbSvn*I#T{E2O&fW-$4Ux3MCE+z0nJf+>V^s2@-?@b;-eUk7etbNxXe3gK6f`{7Ea?TVHId-ml#36F zjEEDBoMqZaRtsivgS$2<-ZtxM4(#zSBIte0PXd^4kC}_H7XNM~9AQKh*Ka z=v*pg*fQLagWgiXXhVN$+ik-iDIUt-ANv-9)e>1U+guH&Pn<`q#Rrbj)pAaW%AYFW z?Oe!jkeQ9i3&n%DU5a1i&>!{ZbH;mFcz$;0*Nydo;GR9Z{^ZpHPsm{0o13xJzt>=m z5+=zv!tFnx?f~;Ok(WaDErl@o-Od?k#|pwgl==UkerJ0)DLOHYJgU*oWh=^tkN}II zR&hCcKDq|5si1~IA+Dj>RIusR@V)f9M-Q403ULul{~=NcT^SVOS{ho9nqHoDKluD{ z(3mL1;^ptSOJ9QPKldvs{}_u1&dn4(~4o_^dvG2ar@`qU-61Pk+zgJTyek!Ybb4F^ZA(YNFr zK@J7P)yE>NlBE609t+?SSzl~wUYsP@Jl4SH2ET#aacZ`=@Dba`UWL8cjPJKYG!v`@ znvHmzZjGA`@l1v$GTtO-K7`r3Mry(32BE zQ^`ib*MOaLu8GiQCW5irp#J=pq7G>2shFyu?V2naQd;VlNa;s%&DZnu$mC0yzIb78 z8**&UT^92tKct*Nr0|03vjDH`^cnIX6U%X0zB$Nj5>57&IP4o7tkci9N&fu+|MUxEWEc`ig>lGA`{cF?eWo|2;5sE)FtIpW1mhA57tytU-pPhP<4U zk@M%&vD|*g*LSu#W~(JHnb95Dl2F58zPGp~2E}R-EQAnW=%rcWLU2|X?GBJlt+eRH z!xrTzrB1`&GeE@?A2y#;fTF&sT4N6N+8AjOyklB~X5bB7K)mfoo%9Hti~^MgF9k!i zq_B0PKPb*f;wOa|cS?0=$1FT}JQvRcOEYs4?lTd-f%l)P@ZWOCyUy}O`VYL^XnNE| zq$tsmu{kJl9WeR81{-`Kh$<;#9vo@fx}e~agho3W%rzYpTS{I~tT^@|DT0+NS}Y$E zkZ8Yf90VtV1aIm+@Q?BSD@dXs&{fWNc=0CGB0>lugb+dqA%qY@2qA Date: Thu, 8 Dec 2022 16:07:14 -0700 Subject: [PATCH 005/263] Working now (side-loading from node_modules/retail-react-app) next step: overrides working --- .../pwa-kit-dev/src/configs/webpack/config.js | 39 +- .../src/configs/webpack/plugins.js | 130 +- .../src/ssr/server/build-dev-server.js | 46 + .../src/ssr/browser/main.jsx | 4 +- .../src/ssr/server/react-rendering.js | 37 +- .../build/loadable-stats.json | 1353 ++++++++++++++++- .../spike-extendend-retail-app/package.json | 7 +- .../pwa-kit/overrides/app/main.jsx | 14 + .../overrides/app/pages/home/index.jsx | 46 +- .../pwa-kit/overrides/app/routes.tsx | 112 ++ .../pwa-kit/overrides/app/ssr.js | 65 + 11 files changed, 1778 insertions(+), 75 deletions(-) create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/main.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/ssr.js diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 8d63c2d229..023d861b8b 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -54,16 +54,25 @@ const getBundleAnalyzerPlugin = (name = 'report', pluginOptions) => ...pluginOptions }) -const entryPointExists = (segments) => { +const entryPointExists = (segments, overrideSegments = []) => { for (let ext of ['.js', '.jsx', '.ts', '.tsx']) { - const p = resolve(projectDir, ...segments) + ext - if (fs.existsSync(p)) { + const primary = resolve(projectDir, ...segments) + ext + const override = resolve(projectDir, ...overrideSegments) + ext + + if (fs.existsSync(primary) || fs.existsSync(override)) { return true } } return false } +const getAppEntryPoint = (pkg) => { + const APP_MAIN_PATH = '/app/main' + const ret = pkg?.mobify?.overridesDir ? pkg.mobify.overridesDir + APP_MAIN_PATH : APP_MAIN_PATH + console.log('~appEntry', ret) + return ret +} + const findInProjectThenSDK = (pkg) => { const projectPath = resolve(projectDir, 'node_modules', pkg) console.log('~projectPath', projectPath) @@ -77,6 +86,10 @@ const baseConfig = (target) => { class Builder { constructor() { + console.log( + `~in constructor findInProjectThenSDK('@loadable/server')`, + findInProjectThenSDK('@loadable/server') + ) this.config = { watchOptions: { aggregateTimeout: 1000 @@ -259,7 +272,7 @@ const enableReactRefresh = (config) => { }, entry: { ...config.entry, - main: ['webpack-hot-middleware/client?path=/__mrt/hmr', './app/main'] + main: ['webpack-hot-middleware/client?path=/__mrt/hmr', getAppEntryPoint(pkg)] }, plugins: [ ...config.plugins, @@ -277,11 +290,21 @@ const enableReactRefresh = (config) => { } } +console.log( + '~client entryPointExists()', + entryPointExists(['app', 'main'], pkg?.mobify?.overridesDir.split('/')) +) + const client = - entryPointExists(['app', 'main']) && + entryPointExists( + ['app', 'main'], + [...pkg?.mobify?.overridesDir?.split?.('/'), 'app', 'main'] + ) && baseConfig('web') .extend(withChunking) .extend((config) => { + console.log('~got to 303') + console.log(`~getAppEntryPoint(pkg)`, getAppEntryPoint(pkg)) return { ...config, // Must be named "client". See - https://www.npmjs.com/package/webpack-hot-server-middleware#usage @@ -289,7 +312,7 @@ const client = // use source map to make debugging easier devtool: mode === development ? 'source-map' : false, entry: { - main: './app/main' + main: getAppEntryPoint(pkg) }, plugins: [ ...config.plugins, @@ -358,9 +381,7 @@ const renderer = // Must only appear on one config – this one is the only mandatory one. new CopyPlugin({ - patterns: [ - {from: 'app/static/', to: 'static/', noErrorOnMissing: true}, - ] + patterns: [{from: 'app/static/', to: 'static/', noErrorOnMissing: true}] }), analyzeBundle && getBundleAnalyzerPlugin('server-renderer') diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 865e1ebbfa..8abf900ba2 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -33,64 +33,148 @@ export const createModuleReplacementPlugin = (projectDir) => { console.log('~pkg?.mobify', pkg?.mobify) console.log('~pkg?.mobify?.extends', pkg?.mobify?.extends) - const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : undefined + const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : '' + console.log( + `~LEGACY example 'path'`, + makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$') + ) + console.log( + `~LEGACY example 'newPath'`, + resolve(projectDir, 'app', 'components', '_app-config', 'index') + ) + + // const getOverridePath = (path) => { + // const arr = [] + // // order matters here, we perform look ups starting with the first + // // override alias, falling back to the default if none are found + // if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { + // const first = resolve(projectDir, pkg?.mobify?.overridesDir, ...path) + // if (first) return first + // const second = resolve(projectDir, extendPath, ...path) + // if (second) return second + // } + // return resolve(projectDir, extendPath, ...path) + // } + + // @TODO: this was working, but doesn't account for the full cascade / fallback const overridables = [ - { - path: makeRegExp('app$'), - // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), - newPath: resolve( - 'node_modules', - extendPath, - projectDir + '/pwa-kit/overrides/app' - ) - }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), - newPath: resolve( - 'node_modules', - extendPath, - 'app', - 'components', - '_app-config', - 'index' - ) + newPath: resolve(projectDir, extendPath, 'app', 'components', '_app-config', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), - newPath: resolve(projectDir, 'app', 'components', '_document', 'index') + newPath: resolve(projectDir, extendPath, 'app', 'components', '_document', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), - newPath: resolve('node_modules', extendPath, 'app', 'components', '_app', 'index') + newPath: resolve(projectDir, extendPath, 'app', 'components', '_app', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), // newPath: resolve(projectDir, 'app', 'components', '_error', 'index'), - newPath: resolve('node_modules', extendPath, 'app', 'components', '_error', 'index') + newPath: resolve(projectDir, extendPath, 'app', 'components', '_error', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), // newPath: resolve(projectDir, 'app', 'routes') - newPath: resolve('node_modules', extendPath, 'app', 'routes') + newPath: resolve(projectDir, extendPath, 'app', 'routes') } ] + + // @TODO: make this work + // const overridables = [ + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), + // // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), + // newPath: getOverridePath(['app', 'components', '_app-config', 'index']) + + // // @TODO: finish the pattern above for the below so that fallback + // // happens either at the overrides dir or the extends dir, but if + // // both are absent, look up in projectDir... new function to generate the arrays? + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), + // newPath: getOverridePath(['app', 'components', '_document', 'index']) + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), + // // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), + // newPath: getOverridePath(['app', 'components', '_app', 'index']) + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), + // // newPath: resolve(projectDir, 'app', 'components', '_error', 'index'), + // newPath: getOverridePath(['app', 'components', '_error', 'index']) + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), + // // newPath: resolve(projectDir, 'app', 'routes') + // newPath: getOverridePath(['app', 'routes']) + // } + // ] + + if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { + console.log('~got to 66') + console.log(`~projectDir`, projectDir) + console.log( + `~resolve(projectDir, pkg?.mobify?.overridesDir, 'app')`, + resolve(projectDir, pkg?.mobify?.overridesDir, 'app') + ) + console.log( + `~resolve(projectDir, extendPath, pkg?.mobify?.overridesDir, 'app')`, + resolve(projectDir, extendPath, pkg?.mobify?.overridesDir, 'app') + ) + overridables.push({ + // path: makeRegExp('app$'), + // @TODO: this should alias by npm package name (`retail-react-app`) + // but instead looks up `template-retail-react-app` + path: makeRegExp(`${pkg?.mobify?.extends}/app$`), + // newPatnpmh: resolve(projectDir, 'app', 'components', '_app-config', 'index'), + newPath: getOverrideArray(['app']) + }) + } const extensions = ['.ts', '.tsx', '.js', '.jsx'] const replacements = [] overridables.forEach(({path, newPath}) => { - console.log('~path', path, '~newPath', newPath) + console.log('~path', path) + console.log('~newPath', newPath) extensions.forEach((ext) => { const replacement = newPath + ext if (fs.existsSync(replacement)) { + // newPath can be an array for cascading file search, search the array + if (Array.isArray(newPath)) { + let found = false + newPath.forEach((_newPath) => { + if (fs.existsSync(_newPath) && !found) { + found = true + newPath = _newPath + } + }) + } replacements.push({path, newPath: replacement}) } }) }) + console.log('~replacements', replacements) + return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { + if ( + resource?.contextInfo?.issuer?.match( + /spike\-extendend\-retail\-app\/pwa-kit\/overrides/ + ) + ) { + console.log('~resource req path via overrides', resource?.contextInfo?.issuer) + } + + if (resource?.contextInfo?.issuer?.match(/retail\-react\-app\/\-app/)) { + console.log('~resource req path via retail-react-app', resource?.contextInfo?.issuer) + } const resolved = path.resolve(resource.context, resource.request) const replacement = replacements.find(({path}) => resolved.match(path)) diff --git a/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js b/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js index eb68f814ac..a9a4f74c8f 100644 --- a/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js +++ b/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js @@ -29,6 +29,7 @@ import { import {randomUUID} from 'crypto' const projectDir = process.cwd() const projectWebpackPath = path.resolve(projectDir, 'webpack.config.js') +const projectPackageJSON = path.resolve(projectDir, 'package.json') const chalk = require('chalk') @@ -203,6 +204,51 @@ export const DevServerMixin = { fallthrough: true }) ) + + // // we use two `app.use` servers on the same path with a fallback pattern to check first in + // // package.json => mobify.overridesDir and then fall back to mobify.extends (the base app) + // if (fs.existsSync(`${process.cwd()}/${projectPackageJSON?.mobify?.overridesDir}`)) { + // // the local overridesDir search + // app.use( + // '/mobify/bundle/development', + // express.static( + // path.resolve(process.cwd(), projectPackageJSON?.mobify?.overridesDir), + // { + // dotFiles: 'deny', + // setHeaders: setLocalAssetHeaders, + // fallthrough: true + // } + // ) + // ) + + // // the fallback `mobify.extends` (in package.json) check + // app.use( + // '/mobify/bundle/development', + // express.static( + // path.resolve( + // process.cwd(), + // 'node_modules', + // ...projectPackageJSON?.mobify?.extends?.split('/') + // ), + // { + // dotFiles: 'deny', + // setHeaders: setLocalAssetHeaders, + // fallthrough: true + // } + // ) + // ) + // } else { + // // Proxy bundle asset requests to the local + // // build directory. + // app.use( + // '/mobify/bundle/development', + // express.static(path.resolve(process.cwd(), 'src'), { + // dotFiles: 'deny', + // setHeaders: setLocalAssetHeaders, + // fallthrough: true + // }) + // ) + // } }, /** diff --git a/packages/pwa-kit-react-sdk/src/ssr/browser/main.jsx b/packages/pwa-kit-react-sdk/src/ssr/browser/main.jsx index e5de27c9df..dae227f891 100644 --- a/packages/pwa-kit-react-sdk/src/ssr/browser/main.jsx +++ b/packages/pwa-kit-react-sdk/src/ssr/browser/main.jsx @@ -46,7 +46,7 @@ export const start = () => { // Tell webpack how to find javascript files Object.defineProperty(__webpack_require__, 'p', { - get: () => window.Progressive.buildOrigin + get: () => window.Progressive.buildOrigin, }) // On the browser we don't have request.locals, so we just provide an empty @@ -57,6 +57,8 @@ export const start = () => { // AppConfig.restore *must* come before getRoutes() AppConfig.restore(locals, window.__PRELOADED_STATE__.__STATE_MANAGEMENT_LIBRARY) const routes = getRoutes(locals) + console.log(`~locals`, locals) + console.log(`~routes`, routes) // We need to tell the routeComponent HOC when the app is hydrating in order to // prevent pages from re-fetching data on the first client-side render. The diff --git a/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js b/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js index 2a3defc7fb..8c0193a911 100644 --- a/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js +++ b/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js @@ -48,7 +48,7 @@ const VALID_TAG_NAMES = [ 'noscript', 'script', 'style', - 'title' + 'title', ] export const ALLOWLISTED_INLINE_SCRIPTS = [] @@ -96,7 +96,7 @@ export const render = async (req, res, next) => { const [pathname, search] = req.originalUrl.split('?') const location = { pathname, - search: search ? `?${search}` : '' + search: search ? `?${search}` : '', } // Step 1 - Find the match. @@ -126,7 +126,7 @@ export const render = async (req, res, next) => { App: WrappedApp, routes, location, - deviceType + deviceType, } let appJSX = @@ -144,11 +144,11 @@ export const render = async (req, res, next) => { req, res, location, - appJSX + appJSX, }) appState = { ...ret.appState, - __STATE_MANAGEMENT_LIBRARY: AppConfig.freeze(res.locals) + __STATE_MANAGEMENT_LIBRARY: AppConfig.freeze(res.locals), } appStateError = ret.error } @@ -168,7 +168,7 @@ export const render = async (req, res, next) => { location, config, appJSX, - deviceType + deviceType, }) } catch (e) { // This is an unrecoverable error. @@ -201,14 +201,16 @@ const OuterApp = ({ routes, routerContext, location, - deviceType + deviceType, }) => { const AppConfig = getAppConfig() return ( @@ -231,7 +233,7 @@ OuterApp.propTypes = { routes: PropTypes.array, routerContext: PropTypes.object, location: PropTypes.object, - deviceType: PropTypes.string + deviceType: PropTypes.string, } const renderToString = (jsx, extractor) => @@ -274,7 +276,7 @@ const renderApp = (args) => { bundles = extractor.getScriptElements().map((el) => React.cloneElement(el, { ...el.props, - ...scriptProps + ...scriptProps, }) ) } @@ -304,7 +306,7 @@ const renderApp = (args) => { __ERROR__: error, // `window.Progressive` has a long history at Mobify and some // client-side code depends on it. Maintain its name out of tradition. - Progressive: getWindowProgressive(req, res) + Progressive: getWindowProgressive(req, res), } const scripts = [ @@ -313,10 +315,10 @@ const renderApp = (args) => { key="mobify-data" type="application/json" // Not executable dangerouslySetInnerHTML={{ - __html: serialize(windowGlobals, {isJSON: true, space: indent}) + __html: serialize(windowGlobals, {isJSON: true, space: indent}), }} />, - ...bundles + ...bundles, ] const svgs = [
] @@ -359,12 +361,15 @@ const getWindowProgressive = (req, res) => { deployTarget: process.env.DEPLOY_TARGET || 'local', proxyConfigs, // The request class (undefined by default) - requestClass: res.locals.requestClass - } + requestClass: res.locals.requestClass, + }, } } // eslint-disable-next-line no-unused-vars -const serverRenderer = ({clientStats, serverStats}) => (req, res, next) => render(req, res, next) +const serverRenderer = + ({clientStats, serverStats}) => + (req, res, next) => + render(req, res, next) export default serverRenderer diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 0967ef424b..e52565d1e3 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1 +1,1352 @@ -{} +{ + "name": "client", + "hash": "48e263f4894a4df1288c", + "publicPath": "/mobify/bundle/development/", + "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", + "assetsByChunkName": { + "main": [ + "main.js" + ], + "pages-home": [ + "pages-home.js" + ], + "pages-login": [ + "pages-login.js" + ], + "pages-registration": [ + "pages-registration.js" + ], + "pages-reset-password": [ + "pages-reset-password.js" + ], + "pages-account": [ + "pages-account.js" + ], + "pages-cart": [ + "pages-cart.js" + ], + "pages-checkout": [ + "pages-checkout.js" + ], + "pages-checkout-confirmation": [ + "pages-checkout-confirmation.js" + ], + "pages-login-redirect": [ + "pages-login-redirect.js" + ], + "pages-product-detail": [ + "pages-product-detail.js" + ], + "pages-product-list": [ + "pages-product-list.js" + ], + "pages-account-wishlist": [ + "pages-account-wishlist.js" + ], + "pages-page-not-found": [ + "pages-page-not-found.js" + ], + "vendor": [ + "vendor.js" + ] + }, + "assets": [ + { + "type": "asset", + "name": "vendor.js", + "size": 4711284, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "vendor.js.map" + } + }, + "chunkNames": [ + "vendor" + ], + "chunkIdHints": [ + "vendor" + ], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "vendor" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "main.js", + "size": 1108910, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "main.js.map" + } + }, + "chunkNames": [ + "main" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "main" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-account.js", + "size": 170593, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-account.js.map" + } + }, + "chunkNames": [ + "pages-account" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-account" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-checkout.js", + "size": 156584, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-checkout.js.map" + } + }, + "chunkNames": [ + "pages-checkout" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-checkout" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-product-list.js", + "size": 120122, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-product-list.js.map" + } + }, + "chunkNames": [ + "pages-product-list" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-product-list" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", + "size": 78837, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-XB_json.js", + "size": 68918, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-XB_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js", + "size": 61798, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_partials_product-view_index_jsx.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_partials_product-view_index_jsx" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-cart.js", + "size": 61613, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-cart.js.map" + } + }, + "chunkNames": [ + "pages-cart" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-cart" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-checkout-confirmation.js", + "size": 54138, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-checkout-confirmation.js.map" + } + }, + "chunkNames": [ + "pages-checkout-confirmation" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-checkout-confirmation" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_ja-JP_json.js", + "size": 48140, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_ja-JP_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_fr-FR_json.js", + "size": 45583, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_fr-FR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", + "size": 45426, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_order-summary_index_jsx.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_order-summary_index_jsx" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_de-DE_json.js", + "size": 45199, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_de-DE_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_es-MX_json.js", + "size": 44920, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_es-MX_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_ko-KR_json.js", + "size": 44685, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_ko-KR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_it-IT_json.js", + "size": 43806, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_it-IT_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_pt-BR_json.js", + "size": 43767, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_pt-BR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", + "size": 43172, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-GB_json.js", + "size": 42943, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-GB_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-US_json.js", + "size": 42374, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-US_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_zh-TW_json.js", + "size": 42287, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_zh-TW_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_zh-CN_json.js", + "size": 42265, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_zh-CN_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-account-wishlist.js", + "size": 39288, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-account-wishlist.js.map" + } + }, + "chunkNames": [ + "pages-account-wishlist" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-account-wishlist" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-home.js", + "size": 37922, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-home.js.map" + } + }, + "chunkNames": [ + "pages-home" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-home" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", + "size": 36610, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-product-detail.js", + "size": 23811, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-product-detail.js.map" + } + }, + "chunkNames": [ + "pages-product-detail" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-product-detail" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-reset-password.js", + "size": 10495, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-reset-password.js.map" + } + }, + "chunkNames": [ + "pages-reset-password" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-reset-password" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-login.js", + "size": 8391, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-login.js.map" + } + }, + "chunkNames": [ + "pages-login" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-login" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-page-not-found.js", + "size": 7813, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-page-not-found.js.map" + } + }, + "chunkNames": [ + "pages-page-not-found" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-page-not-found" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-registration.js", + "size": 7547, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-registration.js.map" + } + }, + "chunkNames": [ + "pages-registration" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-registration" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-login-redirect.js", + "size": 3018, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-login-redirect.js.map" + } + }, + "chunkNames": [ + "pages-login-redirect" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-login-redirect" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "_8dba.js", + "size": 284, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "_8dba.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "_8dba" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "_cc12.js", + "size": 284, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "_cc12.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "_cc12" + ], + "auxiliaryChunks": [] + } + ], + "namedChunkGroups": { + "main": { + "name": "main", + "chunks": [ + "vendor", + "main" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "main.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 2, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-home": { + "name": "pages-home", + "chunks": [ + "pages-home" + ], + "assets": [ + { + "name": "pages-home.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-login": { + "name": "pages-login", + "chunks": [ + "pages-login" + ], + "assets": [ + { + "name": "pages-login.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-registration": { + "name": "pages-registration", + "chunks": [ + "pages-registration" + ], + "assets": [ + { + "name": "pages-registration.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-reset-password": { + "name": "pages-reset-password", + "chunks": [ + "pages-reset-password" + ], + "assets": [ + { + "name": "pages-reset-password.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-account": { + "name": "pages-account", + "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_partials_product-view_index_jsx", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "pages-account-wishlist", + "pages-account" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, + { + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + }, + { + "name": "pages-account-wishlist.js" + }, + { + "name": "pages-account.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 8, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-cart": { + "name": "pages-cart", + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_partials_product-view_index_jsx", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "pages-cart" + ], + "assets": [ + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, + { + "name": "pages-cart.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 5, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-checkout": { + "name": "pages-checkout", + "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "pages-checkout" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + }, + { + "name": "pages-checkout.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 5, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-checkout-confirmation": { + "name": "pages-checkout-confirmation", + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "pages-checkout-confirmation" + ], + "assets": [ + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "pages-checkout-confirmation.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 2, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-login-redirect": { + "name": "pages-login-redirect", + "chunks": [ + "pages-login-redirect" + ], + "assets": [ + { + "name": "pages-login-redirect.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-product-detail": { + "name": "pages-product-detail", + "chunks": [ + "template-retail-react-app_app_partials_product-view_index_jsx", + "pages-product-detail" + ], + "assets": [ + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, + { + "name": "pages-product-detail.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 2, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-product-list": { + "name": "pages-product-list", + "chunks": [ + "pages-product-list" + ], + "assets": [ + { + "name": "pages-product-list.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-account-wishlist": { + "name": "pages-account-wishlist", + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_partials_product-view_index_jsx", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "pages-account-wishlist" + ], + "assets": [ + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, + { + "name": "pages-account-wishlist.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 4, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-page-not-found": { + "name": "pages-page-not-found", + "chunks": [ + "pages-page-not-found" + ], + "assets": [ + { + "name": "pages-page-not-found.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + } + }, + "generator": "loadable-components", + "chunks": [ + { + "id": "main", + "files": [ + "main.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_de-DE_json", + "files": [ + "template-retail-react-app_app_translations_compiled_de-DE_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-GB_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-GB_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-US_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-US_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-XB_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-XB_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_es-MX_json", + "files": [ + "template-retail-react-app_app_translations_compiled_es-MX_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_fr-FR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_fr-FR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_it-IT_json", + "files": [ + "template-retail-react-app_app_translations_compiled_it-IT_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_ja-JP_json", + "files": [ + "template-retail-react-app_app_translations_compiled_ja-JP_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_ko-KR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_ko-KR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_pt-BR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_pt-BR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_zh-CN_json", + "files": [ + "template-retail-react-app_app_translations_compiled_zh-CN_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_zh-TW_json", + "files": [ + "template-retail-react-app_app_translations_compiled_zh-TW_json.js" + ] + }, + { + "id": "_cc12", + "files": [ + "_cc12.js" + ] + }, + { + "id": "_8dba", + "files": [ + "_8dba.js" + ] + }, + { + "id": "pages-home", + "files": [ + "pages-home.js" + ] + }, + { + "id": "pages-login", + "files": [ + "pages-login.js" + ] + }, + { + "id": "pages-registration", + "files": [ + "pages-registration.js" + ] + }, + { + "id": "pages-reset-password", + "files": [ + "pages-reset-password.js" + ] + }, + { + "id": "pages-account", + "files": [ + "pages-account.js" + ] + }, + { + "id": "pages-cart", + "files": [ + "pages-cart.js" + ] + }, + { + "id": "pages-checkout", + "files": [ + "pages-checkout.js" + ] + }, + { + "id": "pages-checkout-confirmation", + "files": [ + "pages-checkout-confirmation.js" + ] + }, + { + "id": "pages-login-redirect", + "files": [ + "pages-login-redirect.js" + ] + }, + { + "id": "pages-product-detail", + "files": [ + "pages-product-detail.js" + ] + }, + { + "id": "pages-product-list", + "files": [ + "pages-product-list.js" + ] + }, + { + "id": "pages-account-wishlist", + "files": [ + "pages-account-wishlist.js" + ] + }, + { + "id": "pages-page-not-found", + "files": [ + "pages-page-not-found.js" + ] + }, + { + "id": "vendor", + "files": [ + "vendor.js" + ] + }, + { + "id": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "files": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + ] + }, + { + "id": "template-retail-react-app_app_partials_product-view_index_jsx", + "files": [ + "template-retail-react-app_app_partials_product-view_index_jsx.js" + ] + }, + { + "id": "template-retail-react-app_app_components_order-summary_index_jsx", + "files": [ + "template-retail-react-app_app_components_order-summary_index_jsx.js" + ] + }, + { + "id": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "files": [ + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + ] + }, + { + "id": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "files": [ + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + ] + } + ] +} \ No newline at end of file diff --git a/packages/spike-extendend-retail-app/package.json b/packages/spike-extendend-retail-app/package.json index 2a0129e1c8..123b2e6f6a 100644 --- a/packages/spike-extendend-retail-app/package.json +++ b/packages/spike-extendend-retail-app/package.json @@ -9,7 +9,12 @@ "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" }, "mobify": { - "extends": "retail-react-app" + "extends": "retail-react-app", + "overridesDir": "/pwa-kit/overrides", + "routes": [ + {"cart": "retail-react-app/cart"}, + {"plp": "bens-retail-app/plp"} + ] }, "files": [ "CHANGELOG.md", diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/main.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/main.jsx new file mode 100644 index 0000000000..167c23b9dc --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/main.jsx @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {start, registerServiceWorker} from 'pwa-kit-react-sdk/ssr/browser/main' + +const main = () => { + // The path to your service worker should match what is set up in ssr.js + return Promise.all([start(), registerServiceWorker('/worker.js')]) +} + +main() diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx index 24ad6ece7f..86aefaf18b 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -21,14 +21,14 @@ import { Flex, Stack, Container, - Link + Link, } from '@chakra-ui/react' // Project Components -import Hero from '../../components/hero' -import Seo from '../../components/seo' -import Section from '../../components/section' -import ProductScroller from '../../components/product-scroller' +import Hero from 'retail-react-app/app/components/hero' +import Seo from 'retail-react-app/app/components/seo' +import Section from 'retail-react-app/app/components/section' +import ProductScroller from 'retail-react-app/app/components/product-scroller' // Others import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' @@ -41,7 +41,7 @@ import useEinstein from '../../commerce-api/hooks/useEinstein' import { MAX_CACHE_AGE, HOME_SHOP_PRODUCTS_CATEGORY_ID, - HOME_SHOP_PRODUCTS_LIMIT + HOME_SHOP_PRODUCTS_LIMIT, } from '../../constants' /** @@ -69,13 +69,11 @@ const Home = ({productSearchResult, isLoading}) => { /> @@ -150,7 +148,7 @@ const Home = ({productSearchResult, isLoading}) => { paddingTop={16} title={intl.formatMessage({ defaultMessage: 'Shop Products', - id: 'home.heading.shop_products' + id: 'home.heading.shop_products', })} subtitle={intl.formatMessage( { @@ -158,7 +156,7 @@ const Home = ({productSearchResult, isLoading}) => { 'This section contains content from the catalog. {docLink} on how to replace it.', id: 'home.description.shop_products', description: - '{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs' + '{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs', }, { docLink: ( @@ -175,16 +173,16 @@ const Home = ({productSearchResult, isLoading}) => { margin: '0 auto', left: 0, right: 0, - background: 'gray.700' + background: 'gray.700', }} _hover={{textDecoration: 'none'}} > {intl.formatMessage({ defaultMessage: 'Read docs', - id: 'home.link.read_docs' + id: 'home.link.read_docs', })} - ) + ), } )} > @@ -202,12 +200,12 @@ const Home = ({productSearchResult, isLoading}) => { paddingTop={32} title={intl.formatMessage({ defaultMessage: 'Features', - id: 'home.heading.features' + id: 'home.heading.features', })} subtitle={intl.formatMessage({ defaultMessage: 'Out-of-the-box features so that you focus only on adding enhancements.', - id: 'home.description.features' + id: 'home.description.features', })} > @@ -246,21 +244,21 @@ const Home = ({productSearchResult, isLoading}) => { paddingTop={32} title={intl.formatMessage({ defaultMessage: "We're here to help", - id: 'home.heading.here_to_help' + id: 'home.heading.here_to_help', })} subtitle={ <> <> {intl.formatMessage({ defaultMessage: 'Contact our support staff.', - id: 'home.description.here_to_help' + id: 'home.description.here_to_help', })}
<> {intl.formatMessage({ defaultMessage: 'They will get you to the right place.', - id: 'home.description.here_to_help_line_2' + id: 'home.description.here_to_help_line_2', })} @@ -296,8 +294,8 @@ Home.getProps = async ({res, api}) => { const productSearchResult = await api.shopperSearch.productSearch({ parameters: { refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master'], - limit: HOME_SHOP_PRODUCTS_LIMIT - } + limit: HOME_SHOP_PRODUCTS_LIMIT, + }, }) return {productSearchResult} @@ -313,7 +311,7 @@ Home.propTypes = { * The current state of `getProps` when running this value is `true`, otherwise it's * `false`. (Provided internally) */ - isLoading: PropTypes.bool + isLoading: PropTypes.bool, } export default Home diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx new file mode 100644 index 0000000000..c0eff0f426 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +/* istanbul ignore file */ +// NOTE! +// This file is being ignored in the test coverage report for now. It reports `0%` functions +// tested, which brings down the overall coverage and blocks CI. There are tests still, but +// we don't want it to count toward coverage until we figure out how to cover the `functions` +// metric for this file in its test. + +import React from 'react' +import loadable from '@loadable/component' +import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' + +// Components +import {Skeleton} from '@chakra-ui/react' +import {configureRoutes} from './utils/routes-utils' + +const fallback = + +// Pages +const Home = loadable(() => import('./pages/home'), {fallback}) +const Login = loadable(() => import('./pages/login'), {fallback}) +const Registration = loadable(() => import('./pages/registration'), {fallback}) +const ResetPassword = loadable(() => import('./pages/reset-password'), {fallback}) +const Account = loadable(() => import('./pages/account'), {fallback}) +const Cart = loadable(() => import('./pages/cart'), {fallback}) +const Checkout = loadable(() => import('./pages/checkout'), {fallback}) +const CheckoutConfirmation = loadable(() => import('./pages/checkout/confirmation'), {fallback}) +const LoginRedirect = loadable(() => import('./pages/login-redirect'), {fallback}) +const ProductDetail = loadable(() => import('./pages/product-detail'), {fallback}) +const ProductList = loadable(() => import('./pages/product-list'), {fallback}) +const Wishlist = loadable(() => import('./pages/account/wishlist'), {fallback}) +const PageNotFound = loadable(() => import('./pages/page-not-found')) + +const routes = [ + { + path: '/', + component: Home, + exact: true, + }, + { + path: '/login', + component: Login, + exact: true, + }, + { + path: '/registration', + component: Registration, + exact: true, + }, + { + path: '/reset-password', + component: ResetPassword, + exact: true, + }, + { + path: '/account', + component: Account, + }, + { + path: '/checkout', + component: Checkout, + exact: true, + }, + { + path: '/checkout/confirmation', + component: CheckoutConfirmation, + exact: true, + }, + { + path: '/callback', + component: LoginRedirect, + exact: true, + }, + { + path: '/cart', + component: Cart, + exact: true, + }, + { + path: '/product/:productId', + component: ProductDetail, + }, + { + path: '/search', + component: ProductList, + }, + { + path: '/category/:categoryId', + component: ProductList, + }, + { + path: '/account/wishlist', + component: Wishlist, + }, + { + path: '*', + component: PageNotFound, + }, +] + +export default () => { + const config = getConfig() + return configureRoutes(routes, config, { + ignoredRoutes: ['/callback', '*'], + }) +} diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/ssr.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/ssr.js new file mode 100644 index 0000000000..3432a0de57 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/ssr.js @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +'use strict' + +const path = require('path') +const {getRuntime} = require('pwa-kit-runtime/ssr/server/express') +const {isRemote} = require('pwa-kit-runtime/utils/ssr-server') +const {getConfig} = require('pwa-kit-runtime/utils/ssr-config') +const helmet = require('helmet') + +const options = { + // The build directory (an absolute path) + buildDir: path.resolve(process.cwd(), 'build'), + + // The cache time for SSR'd pages (defaults to 600 seconds) + defaultCacheTimeSeconds: 600, + + // This is the value of the 'mobify' object from package.json + mobify: getConfig(), + + // The port that the local dev server listens on + port: 3000, + + // The protocol on which the development Express app listens. + // Note that http://localhost is treated as a secure context for development. + protocol: 'http', +} + +const runtime = getRuntime() + +const {handler} = runtime.createHandler(options, (app) => { + // Set HTTP security headers + app.use( + helmet({ + contentSecurityPolicy: { + useDefaults: true, + directives: { + 'img-src': ["'self'", '*.commercecloud.salesforce.com', 'data:'], + 'script-src': ["'self'", "'unsafe-eval'", 'storage.googleapis.com'], + + // Do not upgrade insecure requests for local development + 'upgrade-insecure-requests': isRemote() ? [] : null, + }, + }, + hsts: isRemote(), + }) + ) + + // Handle the redirect from SLAS as to avoid error + app.get('/callback?*', (req, res) => { + res.send() + }) + app.get('/robots.txt', runtime.serveStaticFile('static/robots.txt')) + app.get('/favicon.ico', runtime.serveStaticFile('static/ico/favicon.ico')) + + app.get('/worker.js(.map)?', runtime.serveServiceWorker) + app.get('*', runtime.render) +}) +// SSR requires that we export a single handler function called 'get', that +// supports AWS use of the server that we created above. +exports.get = handler From 7ed385efc86a4350c882894532be34d99bac0e10 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 8 Dec 2022 16:12:51 -0700 Subject: [PATCH 006/263] fix broken WIP bit --- packages/pwa-kit-dev/src/configs/webpack/plugins.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 8abf900ba2..e8ae673405 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -133,8 +133,8 @@ export const createModuleReplacementPlugin = (projectDir) => { // @TODO: this should alias by npm package name (`retail-react-app`) // but instead looks up `template-retail-react-app` path: makeRegExp(`${pkg?.mobify?.extends}/app$`), - // newPatnpmh: resolve(projectDir, 'app', 'components', '_app-config', 'index'), - newPath: getOverrideArray(['app']) + newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index') + // newPath: getOverridePath(['app']) }) } const extensions = ['.ts', '.tsx', '.js', '.jsx'] From ebffe3203644185ed24222dd00ab606bd3056672 Mon Sep 17 00:00:00 2001 From: Ben Chypak Date: Thu, 8 Dec 2022 16:32:05 -0800 Subject: [PATCH 007/263] Working example of overrides --- diff.txt | 606 ++++++++++++ .../pwa-kit-dev/src/configs/webpack/config.js | 1 - .../src/configs/webpack/plugins.js | 91 +- .../build/loadable-stats.json | 879 +----------------- .../overrides/app/pages/home/index.jsx | 300 +----- .../app/pages/product-detail/index.jsx | 25 + .../pwa-kit/overrides/app/routes.jsx | 41 + .../pwa-kit/overrides/app/routes.tsx | 112 --- 8 files changed, 702 insertions(+), 1353 deletions(-) create mode 100644 diff.txt create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx diff --git a/diff.txt b/diff.txt new file mode 100644 index 0000000000..c6c1fe8ae1 --- /dev/null +++ b/diff.txt @@ -0,0 +1,606 @@ +diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js +index 023d861b..8fcc6570 100644 +--- a/packages/pwa-kit-dev/src/configs/webpack/config.js ++++ b/packages/pwa-kit-dev/src/configs/webpack/config.js +@@ -75,7 +75,6 @@ const getAppEntryPoint = (pkg) => { + + const findInProjectThenSDK = (pkg) => { + const projectPath = resolve(projectDir, 'node_modules', pkg) +- console.log('~projectPath', projectPath) + return fs.existsSync(projectPath) ? projectPath : resolve(sdkDir, 'node_modules', pkg) + } + +diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js +index e8ae6734..51f43c1c 100644 +--- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js ++++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js +@@ -12,8 +12,6 @@ import fs from 'fs' + const projectDir = process.cwd() + const pkg = require(resolve(projectDir, 'package.json')) + +-console.log('~testing!!!') +- + /** + * Allows users to override special SDK components by placing override + * files in certain magic locations in a project. +@@ -29,34 +27,9 @@ export const createModuleReplacementPlugin = (projectDir) => { + } + return new RegExp(str) + } +- console.log('~pkg', pkg) +- console.log('~pkg?.mobify', pkg?.mobify) +- console.log('~pkg?.mobify?.extends', pkg?.mobify?.extends) + + const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : '' + +- console.log( +- `~LEGACY example 'path'`, +- makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$') +- ) +- console.log( +- `~LEGACY example 'newPath'`, +- resolve(projectDir, 'app', 'components', '_app-config', 'index') +- ) +- +- // const getOverridePath = (path) => { +- // const arr = [] +- // // order matters here, we perform look ups starting with the first +- // // override alias, falling back to the default if none are found +- // if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { +- // const first = resolve(projectDir, pkg?.mobify?.overridesDir, ...path) +- // if (first) return first +- // const second = resolve(projectDir, extendPath, ...path) +- // if (second) return second +- // } +- // return resolve(projectDir, extendPath, ...path) +- // } +- + // @TODO: this was working, but doesn't account for the full cascade / fallback + const overridables = [ + { +@@ -81,53 +54,14 @@ export const createModuleReplacementPlugin = (projectDir) => { + { + path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), + // newPath: resolve(projectDir, 'app', 'routes') +- newPath: resolve(projectDir, extendPath, 'app', 'routes') ++ // newPath: resolve(projectDir, extendPath, 'app', 'routes') ++ newPath: fs.existsSync('/Users/bchypak/Projects/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx') ? ++ resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'routes') : ++ resolve(projectDir, extendPath, 'app', 'routes') + } + ] + +- // @TODO: make this work +- // const overridables = [ +- // { +- // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), +- // // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), +- // newPath: getOverridePath(['app', 'components', '_app-config', 'index']) +- +- // // @TODO: finish the pattern above for the below so that fallback +- // // happens either at the overrides dir or the extends dir, but if +- // // both are absent, look up in projectDir... new function to generate the arrays? +- // }, +- // { +- // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), +- // newPath: getOverridePath(['app', 'components', '_document', 'index']) +- // }, +- // { +- // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), +- // // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), +- // newPath: getOverridePath(['app', 'components', '_app', 'index']) +- // }, +- // { +- // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), +- // // newPath: resolve(projectDir, 'app', 'components', '_error', 'index'), +- // newPath: getOverridePath(['app', 'components', '_error', 'index']) +- // }, +- // { +- // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), +- // // newPath: resolve(projectDir, 'app', 'routes') +- // newPath: getOverridePath(['app', 'routes']) +- // } +- // ] +- + if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { +- console.log('~got to 66') +- console.log(`~projectDir`, projectDir) +- console.log( +- `~resolve(projectDir, pkg?.mobify?.overridesDir, 'app')`, +- resolve(projectDir, pkg?.mobify?.overridesDir, 'app') +- ) +- console.log( +- `~resolve(projectDir, extendPath, pkg?.mobify?.overridesDir, 'app')`, +- resolve(projectDir, extendPath, pkg?.mobify?.overridesDir, 'app') +- ) + overridables.push({ + // path: makeRegExp('app$'), + // @TODO: this should alias by npm package name (`retail-react-app`) +@@ -141,8 +75,6 @@ export const createModuleReplacementPlugin = (projectDir) => { + + const replacements = [] + overridables.forEach(({path, newPath}) => { +- console.log('~path', path) +- console.log('~newPath', newPath) + extensions.forEach((ext) => { + const replacement = newPath + ext + if (fs.existsSync(replacement)) { +@@ -161,22 +93,9 @@ export const createModuleReplacementPlugin = (projectDir) => { + }) + }) + +- console.log('~replacements', replacements) +- + return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { +- if ( +- resource?.contextInfo?.issuer?.match( +- /spike\-extendend\-retail\-app\/pwa-kit\/overrides/ +- ) +- ) { +- console.log('~resource req path via overrides', resource?.contextInfo?.issuer) +- } +- +- if (resource?.contextInfo?.issuer?.match(/retail\-react\-app\/\-app/)) { +- console.log('~resource req path via retail-react-app', resource?.contextInfo?.issuer) +- } + const resolved = path.resolve(resource.context, resource.request) +- ++ + const replacement = replacements.find(({path}) => resolved.match(path)) + + const sdkPaths = [ +diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json +index e52565d1..781bcf91 100644 +--- a/packages/spike-extendend-retail-app/build/loadable-stats.json ++++ b/packages/spike-extendend-retail-app/build/loadable-stats.json +@@ -1,8 +1,8 @@ + { + "name": "client", +- "hash": "48e263f4894a4df1288c", ++ "hash": "727fe09345de2164087d", + "publicPath": "/mobify/bundle/development/", +- "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", ++ "outputPath": "/Users/bchypak/Projects/pwa-kit/packages/spike-extendend-retail-app/build", + "assetsByChunkName": { + "main": [ + "main.js" +diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +index 86aefaf1..36c94729 100644 +--- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx ++++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +@@ -5,44 +5,7 @@ + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +-import React, {useEffect} from 'react' +-import PropTypes from 'prop-types' +-import {useIntl, FormattedMessage} from 'react-intl' +-import {useLocation} from 'react-router-dom' +- +-// Components +-import { +- Box, +- Button, +- SimpleGrid, +- HStack, +- VStack, +- Text, +- Flex, +- Stack, +- Container, +- Link, +-} from '@chakra-ui/react' +- +-// Project Components +-import Hero from 'retail-react-app/app/components/hero' +-import Seo from 'retail-react-app/app/components/seo' +-import Section from 'retail-react-app/app/components/section' +-import ProductScroller from 'retail-react-app/app/components/product-scroller' +- +-// Others +-import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' +-import {heroFeatures, features} from './data' +- +-//Hooks +-import useEinstein from '../../commerce-api/hooks/useEinstein' +- +-// Constants +-import { +- MAX_CACHE_AGE, +- HOME_SHOP_PRODUCTS_CATEGORY_ID, +- HOME_SHOP_PRODUCTS_LIMIT, +-} from '../../constants' ++import React from 'react' + + /** + * This is the home page for Retail React App. +@@ -50,268 +13,13 @@ import { + * The page renders SEO metadata and a few promotion + * categories and products, data is from local file. + */ +-const Home = ({productSearchResult, isLoading}) => { +- const intl = useIntl() +- const einstein = useEinstein() +- const {pathname} = useLocation() +- +- /**************** Einstein ****************/ +- useEffect(() => { +- einstein.sendViewPage(pathname) +- }, []) +- +- return ( +- +- +- +- +- +- +- } +- /> +- +-
+- +- {heroFeatures.map((feature, index) => { +- const featureMessage = feature.message +- return ( +- +- +- +- +- {feature.icon} +- +- +- {intl.formatMessage(featureMessage.title)} +- +- +- +- +- ) +- })} +- +-
+- +- {productSearchResult && ( +-
+- {intl.formatMessage({ +- defaultMessage: 'Read docs', +- id: 'home.link.read_docs', +- })} +- +- ), +- } +- )} +- > +- +- +- +-
+- )} +- +-
+- +- +- {features.map((feature, index) => { +- const featureMessage = feature.message +- return ( +- +- +- +- {feature.icon} +- +- +- {intl.formatMessage(featureMessage.title)} +- +- +- {intl.formatMessage(featureMessage.text)} +- +- +- +- ) +- })} +- +- +-
+- +-
+- <> +- {intl.formatMessage({ +- defaultMessage: 'Contact our support staff.', +- id: 'home.description.here_to_help', +- })} +- +-
+- <> +- {intl.formatMessage({ +- defaultMessage: 'They will get you to the right place.', +- id: 'home.description.here_to_help_line_2', +- })} +- +- +- } +- actions={ +- +- } +- maxWidth={'xl'} +- /> +- +- ) ++const Home = () => { ++ return
This is my new home
+ } + + Home.getTemplateName = () => 'home' + +-Home.shouldGetProps = ({previousLocation, location}) => +- !previousLocation || previousLocation.pathname !== location.pathname +- +-Home.getProps = async ({res, api}) => { +- if (res) { +- res.set('Cache-Control', `max-age=${MAX_CACHE_AGE}`) +- } + +- const productSearchResult = await api.shopperSearch.productSearch({ +- parameters: { +- refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master'], +- limit: HOME_SHOP_PRODUCTS_LIMIT, +- }, +- }) +- +- return {productSearchResult} +-} +- +-Home.propTypes = { +- /** +- * The search result object showing all the product hits, that belong +- * in the supplied category. +- */ +- productSearchResult: PropTypes.object, +- /** +- * The current state of `getProps` when running this value is `true`, otherwise it's +- * `false`. (Provided internally) +- */ +- isLoading: PropTypes.bool, +-} ++Home.propTypes = {} + + export default Home +diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx +deleted file mode 100644 +index c0eff0f4..00000000 +--- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx ++++ /dev/null +@@ -1,112 +0,0 @@ +-/* +- * Copyright (c) 2021, salesforce.com, inc. +- * All rights reserved. +- * SPDX-License-Identifier: BSD-3-Clause +- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause +- */ +- +-/* istanbul ignore file */ +-// NOTE! +-// This file is being ignored in the test coverage report for now. It reports `0%` functions +-// tested, which brings down the overall coverage and blocks CI. There are tests still, but +-// we don't want it to count toward coverage until we figure out how to cover the `functions` +-// metric for this file in its test. +- +-import React from 'react' +-import loadable from '@loadable/component' +-import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' +- +-// Components +-import {Skeleton} from '@chakra-ui/react' +-import {configureRoutes} from './utils/routes-utils' +- +-const fallback = +- +-// Pages +-const Home = loadable(() => import('./pages/home'), {fallback}) +-const Login = loadable(() => import('./pages/login'), {fallback}) +-const Registration = loadable(() => import('./pages/registration'), {fallback}) +-const ResetPassword = loadable(() => import('./pages/reset-password'), {fallback}) +-const Account = loadable(() => import('./pages/account'), {fallback}) +-const Cart = loadable(() => import('./pages/cart'), {fallback}) +-const Checkout = loadable(() => import('./pages/checkout'), {fallback}) +-const CheckoutConfirmation = loadable(() => import('./pages/checkout/confirmation'), {fallback}) +-const LoginRedirect = loadable(() => import('./pages/login-redirect'), {fallback}) +-const ProductDetail = loadable(() => import('./pages/product-detail'), {fallback}) +-const ProductList = loadable(() => import('./pages/product-list'), {fallback}) +-const Wishlist = loadable(() => import('./pages/account/wishlist'), {fallback}) +-const PageNotFound = loadable(() => import('./pages/page-not-found')) +- +-const routes = [ +- { +- path: '/', +- component: Home, +- exact: true, +- }, +- { +- path: '/login', +- component: Login, +- exact: true, +- }, +- { +- path: '/registration', +- component: Registration, +- exact: true, +- }, +- { +- path: '/reset-password', +- component: ResetPassword, +- exact: true, +- }, +- { +- path: '/account', +- component: Account, +- }, +- { +- path: '/checkout', +- component: Checkout, +- exact: true, +- }, +- { +- path: '/checkout/confirmation', +- component: CheckoutConfirmation, +- exact: true, +- }, +- { +- path: '/callback', +- component: LoginRedirect, +- exact: true, +- }, +- { +- path: '/cart', +- component: Cart, +- exact: true, +- }, +- { +- path: '/product/:productId', +- component: ProductDetail, +- }, +- { +- path: '/search', +- component: ProductList, +- }, +- { +- path: '/category/:categoryId', +- component: ProductList, +- }, +- { +- path: '/account/wishlist', +- component: Wishlist, +- }, +- { +- path: '*', +- component: PageNotFound, +- }, +-] +- +-export default () => { +- const config = getConfig() +- return configureRoutes(routes, config, { +- ignoredRoutes: ['/callback', '*'], +- }) +-} diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 023d861b8b..8fcc657072 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -75,7 +75,6 @@ const getAppEntryPoint = (pkg) => { const findInProjectThenSDK = (pkg) => { const projectPath = resolve(projectDir, 'node_modules', pkg) - console.log('~projectPath', projectPath) return fs.existsSync(projectPath) ? projectPath : resolve(sdkDir, 'node_modules', pkg) } diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index e8ae673405..51f43c1ccb 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -12,8 +12,6 @@ import fs from 'fs' const projectDir = process.cwd() const pkg = require(resolve(projectDir, 'package.json')) -console.log('~testing!!!') - /** * Allows users to override special SDK components by placing override * files in certain magic locations in a project. @@ -29,34 +27,9 @@ export const createModuleReplacementPlugin = (projectDir) => { } return new RegExp(str) } - console.log('~pkg', pkg) - console.log('~pkg?.mobify', pkg?.mobify) - console.log('~pkg?.mobify?.extends', pkg?.mobify?.extends) const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : '' - console.log( - `~LEGACY example 'path'`, - makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$') - ) - console.log( - `~LEGACY example 'newPath'`, - resolve(projectDir, 'app', 'components', '_app-config', 'index') - ) - - // const getOverridePath = (path) => { - // const arr = [] - // // order matters here, we perform look ups starting with the first - // // override alias, falling back to the default if none are found - // if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { - // const first = resolve(projectDir, pkg?.mobify?.overridesDir, ...path) - // if (first) return first - // const second = resolve(projectDir, extendPath, ...path) - // if (second) return second - // } - // return resolve(projectDir, extendPath, ...path) - // } - // @TODO: this was working, but doesn't account for the full cascade / fallback const overridables = [ { @@ -81,53 +54,14 @@ export const createModuleReplacementPlugin = (projectDir) => { { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), // newPath: resolve(projectDir, 'app', 'routes') - newPath: resolve(projectDir, extendPath, 'app', 'routes') + // newPath: resolve(projectDir, extendPath, 'app', 'routes') + newPath: fs.existsSync('/Users/bchypak/Projects/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx') ? + resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'routes') : + resolve(projectDir, extendPath, 'app', 'routes') } ] - // @TODO: make this work - // const overridables = [ - // { - // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), - // // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), - // newPath: getOverridePath(['app', 'components', '_app-config', 'index']) - - // // @TODO: finish the pattern above for the below so that fallback - // // happens either at the overrides dir or the extends dir, but if - // // both are absent, look up in projectDir... new function to generate the arrays? - // }, - // { - // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), - // newPath: getOverridePath(['app', 'components', '_document', 'index']) - // }, - // { - // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), - // // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), - // newPath: getOverridePath(['app', 'components', '_app', 'index']) - // }, - // { - // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), - // // newPath: resolve(projectDir, 'app', 'components', '_error', 'index'), - // newPath: getOverridePath(['app', 'components', '_error', 'index']) - // }, - // { - // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), - // // newPath: resolve(projectDir, 'app', 'routes') - // newPath: getOverridePath(['app', 'routes']) - // } - // ] - if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { - console.log('~got to 66') - console.log(`~projectDir`, projectDir) - console.log( - `~resolve(projectDir, pkg?.mobify?.overridesDir, 'app')`, - resolve(projectDir, pkg?.mobify?.overridesDir, 'app') - ) - console.log( - `~resolve(projectDir, extendPath, pkg?.mobify?.overridesDir, 'app')`, - resolve(projectDir, extendPath, pkg?.mobify?.overridesDir, 'app') - ) overridables.push({ // path: makeRegExp('app$'), // @TODO: this should alias by npm package name (`retail-react-app`) @@ -141,8 +75,6 @@ export const createModuleReplacementPlugin = (projectDir) => { const replacements = [] overridables.forEach(({path, newPath}) => { - console.log('~path', path) - console.log('~newPath', newPath) extensions.forEach((ext) => { const replacement = newPath + ext if (fs.existsSync(replacement)) { @@ -161,22 +93,9 @@ export const createModuleReplacementPlugin = (projectDir) => { }) }) - console.log('~replacements', replacements) - return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { - if ( - resource?.contextInfo?.issuer?.match( - /spike\-extendend\-retail\-app\/pwa-kit\/overrides/ - ) - ) { - console.log('~resource req path via overrides', resource?.contextInfo?.issuer) - } - - if (resource?.contextInfo?.issuer?.match(/retail\-react\-app\/\-app/)) { - console.log('~resource req path via retail-react-app', resource?.contextInfo?.issuer) - } const resolved = path.resolve(resource.context, resource.request) - + const replacement = replacements.find(({path}) => resolved.match(path)) const sdkPaths = [ diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index e52565d1e3..e000587ed0 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,8 +1,8 @@ { "name": "client", - "hash": "48e263f4894a4df1288c", + "hash": "c63104de15edeeabc5dc", "publicPath": "/mobify/bundle/development/", - "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", + "outputPath": "/Users/bchypak/Projects/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ "main.js" @@ -10,42 +10,6 @@ "pages-home": [ "pages-home.js" ], - "pages-login": [ - "pages-login.js" - ], - "pages-registration": [ - "pages-registration.js" - ], - "pages-reset-password": [ - "pages-reset-password.js" - ], - "pages-account": [ - "pages-account.js" - ], - "pages-cart": [ - "pages-cart.js" - ], - "pages-checkout": [ - "pages-checkout.js" - ], - "pages-checkout-confirmation": [ - "pages-checkout-confirmation.js" - ], - "pages-login-redirect": [ - "pages-login-redirect.js" - ], - "pages-product-detail": [ - "pages-product-detail.js" - ], - "pages-product-list": [ - "pages-product-list.js" - ], - "pages-account-wishlist": [ - "pages-account-wishlist.js" - ], - "pages-page-not-found": [ - "pages-page-not-found.js" - ], "vendor": [ "vendor.js" ] @@ -54,7 +18,7 @@ { "type": "asset", "name": "vendor.js", - "size": 4711284, + "size": 4672509, "emitted": false, "comparedForEmit": false, "cached": true, @@ -81,7 +45,7 @@ { "type": "asset", "name": "main.js", - "size": 1108910, + "size": 1090806, "emitted": false, "comparedForEmit": false, "cached": true, @@ -103,104 +67,6 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "pages-account.js", - "size": 170593, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-account.js.map" - } - }, - "chunkNames": [ - "pages-account" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-account" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-checkout.js", - "size": 156584, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-checkout.js.map" - } - }, - "chunkNames": [ - "pages-checkout" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-checkout" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-product-list.js", - "size": 120122, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-product-list.js.map" - } - }, - "chunkNames": [ - "pages-product-list" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-product-list" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", - "size": 78837, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "template-retail-react-app_app_translations_compiled_en-XB_json.js", @@ -220,79 +86,6 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js", - "size": 61798, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_partials_product-view_index_jsx.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_partials_product-view_index_jsx" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-cart.js", - "size": 61613, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-cart.js.map" - } - }, - "chunkNames": [ - "pages-cart" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-cart" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-checkout-confirmation.js", - "size": 54138, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-checkout-confirmation.js.map" - } - }, - "chunkNames": [ - "pages-checkout-confirmation" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-checkout-confirmation" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "template-retail-react-app_app_translations_compiled_ja-JP_json.js", @@ -331,29 +124,6 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", - "size": 45426, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_components_order-summary_index_jsx.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_components_order-summary_index_jsx" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "template-retail-react-app_app_translations_compiled_de-DE_json.js", @@ -449,29 +219,6 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", - "size": 43172, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "template-retail-react-app_app_translations_compiled_en-GB_json.js", @@ -548,35 +295,10 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "pages-account-wishlist.js", - "size": 39288, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-account-wishlist.js.map" - } - }, - "chunkNames": [ - "pages-account-wishlist" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-account-wishlist" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "pages-home.js", - "size": 37922, + "size": 2807, "emitted": false, "comparedForEmit": false, "cached": true, @@ -600,15 +322,15 @@ }, { "type": "asset", - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", - "size": 36610, + "name": "_8dba.js", + "size": 284, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js.map" + "sourceMap": "_8dba.js.map" } }, "chunkNames": [], @@ -617,213 +339,40 @@ "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1" + "_8dba" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "pages-product-detail.js", - "size": 23811, + "name": "_cc12.js", + "size": 284, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "pages-product-detail.js.map" + "sourceMap": "_cc12.js.map" } }, - "chunkNames": [ - "pages-product-detail" - ], + "chunkNames": [], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "pages-product-detail" + "_cc12" ], "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-reset-password.js", - "size": 10495, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-reset-password.js.map" - } - }, - "chunkNames": [ - "pages-reset-password" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, + } + ], + "namedChunkGroups": { + "main": { + "name": "main", "chunks": [ - "pages-reset-password" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-login.js", - "size": 8391, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-login.js.map" - } - }, - "chunkNames": [ - "pages-login" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-login" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-page-not-found.js", - "size": 7813, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-page-not-found.js.map" - } - }, - "chunkNames": [ - "pages-page-not-found" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-page-not-found" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-registration.js", - "size": 7547, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-registration.js.map" - } - }, - "chunkNames": [ - "pages-registration" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-registration" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-login-redirect.js", - "size": 3018, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "pages-login-redirect.js.map" - } - }, - "chunkNames": [ - "pages-login-redirect" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "pages-login-redirect" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "_8dba.js", - "size": 284, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "_8dba.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "_8dba" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "_cc12.js", - "size": 284, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "_cc12.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "_cc12" - ], - "auxiliaryChunks": [] - } - ], - "namedChunkGroups": { - "main": { - "name": "main", - "chunks": [ - "vendor", - "main" + "vendor", + "main" ], "assets": [ { @@ -856,290 +405,6 @@ "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} - }, - "pages-login": { - "name": "pages-login", - "chunks": [ - "pages-login" - ], - "assets": [ - { - "name": "pages-login.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 1, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-registration": { - "name": "pages-registration", - "chunks": [ - "pages-registration" - ], - "assets": [ - { - "name": "pages-registration.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 1, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-reset-password": { - "name": "pages-reset-password", - "chunks": [ - "pages-reset-password" - ], - "assets": [ - { - "name": "pages-reset-password.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 1, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-account": { - "name": "pages-account", - "chunks": [ - "vendor", - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_partials_product-view_index_jsx", - "template-retail-react-app_app_components_order-summary_index_jsx", - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", - "pages-account-wishlist", - "pages-account" - ], - "assets": [ - { - "name": "vendor.js" - }, - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - }, - { - "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" - }, - { - "name": "pages-account-wishlist.js" - }, - { - "name": "pages-account.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 8, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-cart": { - "name": "pages-cart", - "chunks": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_partials_product-view_index_jsx", - "template-retail-react-app_app_components_order-summary_index_jsx", - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "pages-cart" - ], - "assets": [ - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - }, - { - "name": "pages-cart.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 5, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-checkout": { - "name": "pages-checkout", - "chunks": [ - "vendor", - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_components_order-summary_index_jsx", - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", - "pages-checkout" - ], - "assets": [ - { - "name": "vendor.js" - }, - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" - }, - { - "name": "pages-checkout.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 5, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-checkout-confirmation": { - "name": "pages-checkout-confirmation", - "chunks": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "pages-checkout-confirmation" - ], - "assets": [ - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "pages-checkout-confirmation.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 2, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-login-redirect": { - "name": "pages-login-redirect", - "chunks": [ - "pages-login-redirect" - ], - "assets": [ - { - "name": "pages-login-redirect.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 1, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-product-detail": { - "name": "pages-product-detail", - "chunks": [ - "template-retail-react-app_app_partials_product-view_index_jsx", - "pages-product-detail" - ], - "assets": [ - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, - { - "name": "pages-product-detail.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 2, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-product-list": { - "name": "pages-product-list", - "chunks": [ - "pages-product-list" - ], - "assets": [ - { - "name": "pages-product-list.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 1, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-account-wishlist": { - "name": "pages-account-wishlist", - "chunks": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_partials_product-view_index_jsx", - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "pages-account-wishlist" - ], - "assets": [ - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - }, - { - "name": "pages-account-wishlist.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 4, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - }, - "pages-page-not-found": { - "name": "pages-page-not-found", - "chunks": [ - "pages-page-not-found" - ], - "assets": [ - { - "name": "pages-page-not-found.js" - } - ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 1, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} } }, "generator": "loadable-components", @@ -1240,113 +505,11 @@ "pages-home.js" ] }, - { - "id": "pages-login", - "files": [ - "pages-login.js" - ] - }, - { - "id": "pages-registration", - "files": [ - "pages-registration.js" - ] - }, - { - "id": "pages-reset-password", - "files": [ - "pages-reset-password.js" - ] - }, - { - "id": "pages-account", - "files": [ - "pages-account.js" - ] - }, - { - "id": "pages-cart", - "files": [ - "pages-cart.js" - ] - }, - { - "id": "pages-checkout", - "files": [ - "pages-checkout.js" - ] - }, - { - "id": "pages-checkout-confirmation", - "files": [ - "pages-checkout-confirmation.js" - ] - }, - { - "id": "pages-login-redirect", - "files": [ - "pages-login-redirect.js" - ] - }, - { - "id": "pages-product-detail", - "files": [ - "pages-product-detail.js" - ] - }, - { - "id": "pages-product-list", - "files": [ - "pages-product-list.js" - ] - }, - { - "id": "pages-account-wishlist", - "files": [ - "pages-account-wishlist.js" - ] - }, - { - "id": "pages-page-not-found", - "files": [ - "pages-page-not-found.js" - ] - }, { "id": "vendor", "files": [ "vendor.js" ] - }, - { - "id": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "files": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - ] - }, - { - "id": "template-retail-react-app_app_partials_product-view_index_jsx", - "files": [ - "template-retail-react-app_app_partials_product-view_index_jsx.js" - ] - }, - { - "id": "template-retail-react-app_app_components_order-summary_index_jsx", - "files": [ - "template-retail-react-app_app_components_order-summary_index_jsx.js" - ] - }, - { - "id": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "files": [ - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - ] - }, - { - "id": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", - "files": [ - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" - ] } ] } \ No newline at end of file diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx index 86aefaf18b..36c9472937 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -5,44 +5,7 @@ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import React, {useEffect} from 'react' -import PropTypes from 'prop-types' -import {useIntl, FormattedMessage} from 'react-intl' -import {useLocation} from 'react-router-dom' - -// Components -import { - Box, - Button, - SimpleGrid, - HStack, - VStack, - Text, - Flex, - Stack, - Container, - Link, -} from '@chakra-ui/react' - -// Project Components -import Hero from 'retail-react-app/app/components/hero' -import Seo from 'retail-react-app/app/components/seo' -import Section from 'retail-react-app/app/components/section' -import ProductScroller from 'retail-react-app/app/components/product-scroller' - -// Others -import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' -import {heroFeatures, features} from './data' - -//Hooks -import useEinstein from '../../commerce-api/hooks/useEinstein' - -// Constants -import { - MAX_CACHE_AGE, - HOME_SHOP_PRODUCTS_CATEGORY_ID, - HOME_SHOP_PRODUCTS_LIMIT, -} from '../../constants' +import React from 'react' /** * This is the home page for Retail React App. @@ -50,268 +13,13 @@ import { * The page renders SEO metadata and a few promotion * categories and products, data is from local file. */ -const Home = ({productSearchResult, isLoading}) => { - const intl = useIntl() - const einstein = useEinstein() - const {pathname} = useLocation() - - /**************** Einstein ****************/ - useEffect(() => { - einstein.sendViewPage(pathname) - }, []) - - return ( - - - - - - - } - /> - -
- - {heroFeatures.map((feature, index) => { - const featureMessage = feature.message - return ( - - - - - {feature.icon} - - - {intl.formatMessage(featureMessage.title)} - - - - - ) - })} - -
- - {productSearchResult && ( -
- {intl.formatMessage({ - defaultMessage: 'Read docs', - id: 'home.link.read_docs', - })} - - ), - } - )} - > - - - -
- )} - -
- - - {features.map((feature, index) => { - const featureMessage = feature.message - return ( - - - - {feature.icon} - - - {intl.formatMessage(featureMessage.title)} - - - {intl.formatMessage(featureMessage.text)} - - - - ) - })} - - -
- -
- <> - {intl.formatMessage({ - defaultMessage: 'Contact our support staff.', - id: 'home.description.here_to_help', - })} - -
- <> - {intl.formatMessage({ - defaultMessage: 'They will get you to the right place.', - id: 'home.description.here_to_help_line_2', - })} - - - } - actions={ - - } - maxWidth={'xl'} - /> - - ) +const Home = () => { + return
This is my new home
} Home.getTemplateName = () => 'home' -Home.shouldGetProps = ({previousLocation, location}) => - !previousLocation || previousLocation.pathname !== location.pathname - -Home.getProps = async ({res, api}) => { - if (res) { - res.set('Cache-Control', `max-age=${MAX_CACHE_AGE}`) - } - const productSearchResult = await api.shopperSearch.productSearch({ - parameters: { - refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master'], - limit: HOME_SHOP_PRODUCTS_LIMIT, - }, - }) - - return {productSearchResult} -} - -Home.propTypes = { - /** - * The search result object showing all the product hits, that belong - * in the supplied category. - */ - productSearchResult: PropTypes.object, - /** - * The current state of `getProps` when running this value is `true`, otherwise it's - * `false`. (Provided internally) - */ - isLoading: PropTypes.bool, -} +Home.propTypes = {} export default Home diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx new file mode 100644 index 0000000000..6e1c7a0563 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2022, Salesforce, Inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import React from 'react' + +/** + * This is the home page for Retail React App. + * The page is created for demonstration purposes. + * The page renders SEO metadata and a few promotion + * categories and products, data is from local file. + */ +const ProductDetail = () => { + return
This is my new product detail
+} + +ProductDetail.getTemplateName = () => 'product detail' + + +ProductDetail.propTypes = {} + +export default ProductDetail diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx new file mode 100644 index 0000000000..8a3ba0ee47 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +/* istanbul ignore file */ +// NOTE! +// This file is being ignored in the test coverage report for now. It reports `0%` functions +// tested, which brings down the overall coverage and blocks CI. There are tests still, but +// we don't want it to count toward coverage until we figure out how to cover the `functions` +// metric for this file in its test. + +import React from 'react' +import loadable from '@loadable/component' +import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' + +// Components +import {configureRoutes} from 'retail-react-app/app/utils/routes-utils' + +const fallback = () => (
spinner
) + +// Pages +// import Home from './pages/home' +const Home = loadable(() => import('./pages/home'), {fallback}) + +const routes = [ + { + path: '/', + component: Home, + exact: true, + } +] + +export default () => { + const config = getConfig() + return configureRoutes(routes, config, { + ignoredRoutes: ['/callback', '*'], + }) +} diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx deleted file mode 100644 index c0eff0f426..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.tsx +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ - -/* istanbul ignore file */ -// NOTE! -// This file is being ignored in the test coverage report for now. It reports `0%` functions -// tested, which brings down the overall coverage and blocks CI. There are tests still, but -// we don't want it to count toward coverage until we figure out how to cover the `functions` -// metric for this file in its test. - -import React from 'react' -import loadable from '@loadable/component' -import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' - -// Components -import {Skeleton} from '@chakra-ui/react' -import {configureRoutes} from './utils/routes-utils' - -const fallback = - -// Pages -const Home = loadable(() => import('./pages/home'), {fallback}) -const Login = loadable(() => import('./pages/login'), {fallback}) -const Registration = loadable(() => import('./pages/registration'), {fallback}) -const ResetPassword = loadable(() => import('./pages/reset-password'), {fallback}) -const Account = loadable(() => import('./pages/account'), {fallback}) -const Cart = loadable(() => import('./pages/cart'), {fallback}) -const Checkout = loadable(() => import('./pages/checkout'), {fallback}) -const CheckoutConfirmation = loadable(() => import('./pages/checkout/confirmation'), {fallback}) -const LoginRedirect = loadable(() => import('./pages/login-redirect'), {fallback}) -const ProductDetail = loadable(() => import('./pages/product-detail'), {fallback}) -const ProductList = loadable(() => import('./pages/product-list'), {fallback}) -const Wishlist = loadable(() => import('./pages/account/wishlist'), {fallback}) -const PageNotFound = loadable(() => import('./pages/page-not-found')) - -const routes = [ - { - path: '/', - component: Home, - exact: true, - }, - { - path: '/login', - component: Login, - exact: true, - }, - { - path: '/registration', - component: Registration, - exact: true, - }, - { - path: '/reset-password', - component: ResetPassword, - exact: true, - }, - { - path: '/account', - component: Account, - }, - { - path: '/checkout', - component: Checkout, - exact: true, - }, - { - path: '/checkout/confirmation', - component: CheckoutConfirmation, - exact: true, - }, - { - path: '/callback', - component: LoginRedirect, - exact: true, - }, - { - path: '/cart', - component: Cart, - exact: true, - }, - { - path: '/product/:productId', - component: ProductDetail, - }, - { - path: '/search', - component: ProductList, - }, - { - path: '/category/:categoryId', - component: ProductList, - }, - { - path: '/account/wishlist', - component: Wishlist, - }, - { - path: '*', - component: PageNotFound, - }, -] - -export default () => { - const config = getConfig() - return configureRoutes(routes, config, { - ignoredRoutes: ['/callback', '*'], - }) -} From a857623bce503bd3bddaac1f4b414341cda51fae Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Fri, 9 Dec 2022 09:05:48 -0700 Subject: [PATCH 008/263] remove system dependent lookup --- packages/pwa-kit-dev/src/configs/webpack/plugins.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 51f43c1ccb..e734501473 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -55,9 +55,9 @@ export const createModuleReplacementPlugin = (projectDir) => { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), // newPath: resolve(projectDir, 'app', 'routes') // newPath: resolve(projectDir, extendPath, 'app', 'routes') - newPath: fs.existsSync('/Users/bchypak/Projects/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx') ? - resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'routes') : - resolve(projectDir, extendPath, 'app', 'routes') + newPath: fs.existsSync(`${projectDir}/pwa-kit/overrides/app/routes.jsx`) + ? resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'routes') + : resolve(projectDir, extendPath, 'app', 'routes') } ] @@ -95,7 +95,7 @@ export const createModuleReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - + const replacement = replacements.find(({path}) => resolved.match(path)) const sdkPaths = [ From 21f22d1e79a41600faf0a1b36fdb18d06c396d7e Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Wed, 21 Dec 2022 17:46:12 -0700 Subject: [PATCH 009/263] WIP, working server side now, broken client side (bundle/development/vendor.js throws an error) --- packages/pwa-kit-dev/package-lock.json | 14 +- packages/pwa-kit-dev/package.json | 1 + .../pwa-kit-dev/src/configs/webpack/config.js | 27 +- .../src/configs/webpack/plugins.js | 267 ++++++- .../src/ssr/server/build-dev-server.js | 14 +- .../components/_app-config/index.jsx | 3 +- .../universal/components/_document/index.jsx | 4 +- .../build/loadable-stats.json | 368 +--------- .../overrides/app/components/Input/index.tsx | 0 .../app/components/_app-config/index.jsx | 94 +++ .../overrides/app/components/_app/index.jsx | 319 +++++++++ .../app/components/drawer-menu/index.jsx | 416 +++++++++++ .../overrides/app/components/header/index.jsx | 293 ++++++++ .../app/components/list-menu/index.jsx | 272 +++++++ .../overrides/app/components/search/index.jsx | 269 +++++++ .../overrides/app/pages/account/constant.js | 64 ++ .../checkout/partials/checkout-header.tsx | 49 ++ .../pwa-kit/overrides/app/pages/home/data.js | 170 +++++ .../overrides/app/pages/home/index.jsx | 662 +++++++++++++++++- .../app/theme/components/project/_app.js | 25 + .../app/theme/components/project/header.js | 85 +++ .../app/components/_app-config/index.jsx | 9 +- .../app/components/header/index.jsx | 28 +- .../app/components/icons/index.jsx | 4 +- 24 files changed, 3009 insertions(+), 448 deletions(-) delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/Input/index.tsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js diff --git a/packages/pwa-kit-dev/package-lock.json b/packages/pwa-kit-dev/package-lock.json index 7ac18f93f8..a7121a3e13 100644 --- a/packages/pwa-kit-dev/package-lock.json +++ b/packages/pwa-kit-dev/package-lock.json @@ -4870,9 +4870,9 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -4903,9 +4903,9 @@ "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "requires": { "reusify": "^1.0.4" } @@ -6994,7 +6994,7 @@ "memory-fs": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=" + "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==" }, "merge": { "version": "1.2.1", diff --git a/packages/pwa-kit-dev/package.json b/packages/pwa-kit-dev/package.json index 480bd09cfb..372402f1e6 100644 --- a/packages/pwa-kit-dev/package.json +++ b/packages/pwa-kit-dev/package.json @@ -74,6 +74,7 @@ "eslint-plugin-prettier": "3.0.1", "eslint-plugin-react": "7.24.0", "express": "^4.17.1", + "fast-glob": "^3.2.12", "fs-extra": "^10.1.0", "git-rev-sync": "^3.0.1", "glob": "7.1.1", diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 8fcc657072..fee1198fc4 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -19,13 +19,13 @@ import LoadablePlugin from '@loadable/webpack-plugin' import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin' import SpeedMeasurePlugin from 'speed-measure-webpack-plugin' -import {createModuleReplacementPlugin} from './plugins' +import {sdkReplacementPlugin, extendedTemplateReplacementPlugin} from './plugins' import {CLIENT, SERVER, CLIENT_OPTIONAL, SSR, REQUEST_PROCESSOR} from './config-names' const projectDir = process.cwd() +const pkg = require(resolve(projectDir, 'package.json')) const sdkDir = resolve(path.join(__dirname, '..', '..', '..')) -const pkg = require(resolve(projectDir, 'package.json')) const buildDir = process.env.PWA_KIT_BUILD_DIR ? resolve(process.env.PWA_KIT_BUILD_DIR) : resolve(projectDir, 'build') @@ -85,10 +85,6 @@ const baseConfig = (target) => { class Builder { constructor() { - console.log( - `~in constructor findInProjectThenSDK('@loadable/server')`, - findInProjectThenSDK('@loadable/server') - ) this.config = { watchOptions: { aggregateTimeout: 1000 @@ -157,7 +153,11 @@ const baseConfig = (target) => { mode === development && new webpack.NoEmitOnErrorsPlugin(), - createModuleReplacementPlugin(projectDir), + sdkReplacementPlugin(projectDir), + + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? extendedTemplateReplacementPlugin(projectDir) + : () => null, // Don't chunk if it's a node target – faster Lambda startup. target === 'node' && new webpack.optimize.LimitChunkCountPlugin({maxChunks: 1}) @@ -288,22 +288,11 @@ const enableReactRefresh = (config) => { } } } - -console.log( - '~client entryPointExists()', - entryPointExists(['app', 'main'], pkg?.mobify?.overridesDir.split('/')) -) - const client = - entryPointExists( - ['app', 'main'], - [...pkg?.mobify?.overridesDir?.split?.('/'), 'app', 'main'] - ) && + entryPointExists(['app', 'main']) && baseConfig('web') .extend(withChunking) .extend((config) => { - console.log('~got to 303') - console.log(`~getAppEntryPoint(pkg)`, getAppEntryPoint(pkg)) return { ...config, // Must be named "client". See - https://www.npmjs.com/package/webpack-hot-server-middleware#usage diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index e734501473..830ad7c363 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -8,10 +8,28 @@ import webpack from 'webpack' import path, {resolve} from 'path' import fs from 'fs' +import fg from 'fast-glob' const projectDir = process.cwd() const pkg = require(resolve(projectDir, 'package.json')) +const getOverridePath = (path) => { + const arr = [] + // order matters here, we perform look ups starting with the first + // override alias, falling back to the default if none are found + if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { + const first = resolve(projectDir, pkg?.mobify?.overridesDir, ...path) + console.log('~first', first) + if (first) return first + const second = resolve(projectDir, extendPath, ...path) + console.log('~second', second) + if (second) return second + } + const ret = resolve(projectDir, extendPath, ...path) + console.log('~ret', ret) + return ret +} + /** * Allows users to override special SDK components by placing override * files in certain magic locations in a project. @@ -19,23 +37,84 @@ const pkg = require(resolve(projectDir, 'package.json')) * @param {string} projectDir - absolute path to the project root. * @returns {webpack.NormalModuleReplacementPlugin} */ -export const createModuleReplacementPlugin = (projectDir) => { - const makeRegExp = (str, sep = path.sep) => { - // Replace unix paths with windows if needed and build a RegExp - if (sep === '\\') { - str = str.replace(/\//g, '\\\\') - } - return new RegExp(str) + +const makeRegExp = (str, sep = path.sep) => { + // Replace unix paths with windows if needed and build a RegExp + if (sep === '\\') { + str = str.replace(/\//g, '\\\\') } + return new RegExp(str) +} +export const sdkReplacementPlugin = (projectDir) => { const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : '' + // @TODO: all relative paths (e.g. with `app/**/*` need to resolve properly) + // right now, `app/components/header/index` attempts to import + // but fails to find `intl` in tree ancestry, meaning the `` + // component is failing to load server side. + + // @NEXT STEP: try to load just the and log out + // to see what it's doing server side + // const overridables = [ + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), + // // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), + // newPath: getOverridePath(['app', 'components', '_app-config', 'index']) + + // // @TODO: finish the pattern above for the below so that fallback + // // happens either at the overrides dir or the extends dir, but if + // // both are absent, look up in projectDir... new function to generate the arrays? + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), + // newPath: getOverridePath(['app', 'components', '_document', 'index']) + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), + // // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), + // // newPath: getOverridePath(['app', 'components', '_app', 'index']) + + // // @TODO: pwa-kit/overrides needs to be dynamic here + // newPath: fs.existsSync(`${projectDir}/pwa-kit/overrides/app/components/_app/index.jsx`) + // ? resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'components', '_app', 'index') + // : resolve(projectDir, extendPath, 'app', 'components', '_app', 'index') + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), + // // newPath: resolve(projectDir, 'app', 'components', '_error', 'index'), + // newPath: getOverridePath(['app', 'components', '_error', 'index']) + // }, + // { + // path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), + // // newPath: resolve(projectDir, 'app', 'routes') + // // newPath: getOverridePath(['app', 'routes']) + // newPath: fs.existsSync(`${projectDir}/pwa-kit/overrides/app/routes.jsx`) + // ? resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'routes') + // : resolve(projectDir, extendPath, 'app', 'routes') + // } + // ] + // @TODO: this was working, but doesn't account for the full cascade / fallback const overridables = [ { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), - newPath: resolve(projectDir, extendPath, 'app', 'components', '_app-config', 'index') + // newPath: resolve(projectDir, extendPath, 'app', 'components', '_app-config', 'index') + // TODO: this needs to be dynamic + newPath: fs.existsSync( + `${projectDir}/pwa-kit/overrides/app/components/_app-config/index.jsx` + ) + ? resolve( + projectDir, + 'pwa-kit', + 'overrides', + 'app', + 'components', + '_app-config', + 'index' + ) + : resolve(projectDir, extendPath, 'app', 'components', '_app-config', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), @@ -44,7 +123,12 @@ export const createModuleReplacementPlugin = (projectDir) => { { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), - newPath: resolve(projectDir, extendPath, 'app', 'components', '_app', 'index') + // newPath: resolve(projectDir, extendPath, 'app', 'components', '_app', 'index') + + // @TODO: pwa-kit/overrides needs to be dynamic here + newPath: fs.existsSync(`${projectDir}/pwa-kit/overrides/app/components/_app/index.jsx`) + ? resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'components', '_app', 'index') + : resolve(projectDir, extendPath, 'app', 'components', '_app', 'index') }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), @@ -75,24 +159,33 @@ export const createModuleReplacementPlugin = (projectDir) => { const replacements = [] overridables.forEach(({path, newPath}) => { + console.log('~overrideable path', path) + console.log('~overrideable newPath', newPath) extensions.forEach((ext) => { const replacement = newPath + ext if (fs.existsSync(replacement)) { - // newPath can be an array for cascading file search, search the array - if (Array.isArray(newPath)) { - let found = false - newPath.forEach((_newPath) => { - if (fs.existsSync(_newPath) && !found) { - found = true - newPath = _newPath - } - }) - } + // // newPath can be an array for cascading file search, search the array + // if (Array.isArray(newPath)) { + // let found = false + // newPath.forEach((_newPath) => { + // if (fs.existsSync(_newPath) && !found) { + // found = true + // newPath = _newPath + // } + // }) + // } replacements.push({path, newPath: replacement}) } }) }) + console.log('~replacements', replacements) + + // @TODO: this is currently running on every single resource that webpack loads + // which is deoptimized, the regex `/.*/` currently matches all files and then + // has an O(n) complexity tax that compares each file to as many file names + // as are found in the `overrideables` array + return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) @@ -110,3 +203,139 @@ export const createModuleReplacementPlugin = (projectDir) => { } }) } + +const templateAppPathRegex = makeRegExp( + `${projectDir + pkg?.mobify?.overridesDir}|node_modules${pkg?.mobify?.extends}` +) + +export const extendedTemplateReplacementPlugin = (projectDir) => { + const extendPath = `${projectDir}/node_modules/${pkg?.mobify?.extends}` + const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.{js,jsx,ts,tsx}` + console.log('~globPattern', globPattern) + const overridesMap = fg.sync([ + // `/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx` + globPattern + ]) + // TODO: make this agnostic of file extension by replacing `.jsx` in the split here with `.{js,jsx,ts,tsx}` + // overridesMap = overridesMap.map((item) => item.split('.')?.[0]) + + console.log('~overridesMap', overridesMap) + + return new webpack.NormalModuleReplacementPlugin(templateAppPathRegex, (resource) => { + const requestedFile = path.resolve(resource.context, resource.request) + console.log('~requestedFile', requestedFile) + const found = overridesMap?.filter((override) => { + // console.log('~requestedFile?.match?.(override)', requestedFile?.match?.(override)) + return requestedFile?.match?.(override)?.length + }) + // console.log('~found', JSON.stringify(found)) + if (!found?.length) { + // console.log('~!NOT FOUND requestedFile', requestedFile) + const relativePath = requestedFile?.split?.(pkg?.mobify?.overridesDir)?.[1] + // console.log('~relativePath', relativePath) + if (!relativePath) return + const newPath = extendPath + relativePath + // console.log('~newPath', newPath) + resource.request = newPath + return + } else { + console.log('~FOUND requestedFile', requestedFile) + } + }) + + // return new webpack.NormalModuleReplacementPlugin(templateAppPathRegex, (resource) => { + // console.log('~resource.context', resource.context) + // console.log('~resource.request', resource.request) + // console.log('~projectDir', projectDir) + // console.log('~extendPath', extendPath) + // const overridesPath = pkg?.mobify?.overridesDir?.split('/')?.filter((item) => item) + // console.log('~overridesPath', overridesPath) + // const override = path.resolve( + // projectDir, + // ...overridesPath, + // resource?.context?.replace(projectDir, ''), + // resource.request + // ) + // const parentDir = path.resolve(projectDir, '..') + // // console.log('~override', override) + // // const pattern = `${projectDir}*(/node_modules/${pkg?.mobify?.extends}|${ + // // pkg?.mobify?.overridesDir + // // })${resource?.context?.replace(parentDir, '')}${resource.request}*(/index).{js,jsx,ts,tsx}` + // // const pattern = `**/app/utils/site-utils.js` + // // console.log('~pattern', pattern) + // // const overrideFiles = fg.sync([pattern]) + // console.log('~override--', override) + // // const overrideFile = fs.accessSync(override) + + // const overrideFile = fg.sync([ + // // `/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx` + // override, + // `${override}.{js,jsx,ts,tsx}`, + // `${override}*(/index).{js,jsx,ts,tsx}` + // ]) + // console.log('~overrideFile', overrideFile) + // if (overrideFile?.length) { + // console.log('~REWRITE overrideFile', overrideFile) + // // resource.request = override + // } + + // const extend = path.resolve( + // projectDir, + // '..', + // extendPath, + // resource?.context?.replace(projectDir, ''), + // resource.request + // ) + // console.log('~extend--', extend) + // const extendFile = fg.sync([`${extend}.{js,jsx,ts,tsx}`, `${extend}/index.{js,jsx,ts,tsx}`]) + // if (extendFile?.length) { + // console.log('~REWRITE extend', extend) + // // resource.request = extend + // } + + // if (fileCascade) { + // console.log('~RETURN override', overrideFile) + // console.log('~RETURN overrideFiles', overrideFile) + // resource.request = overrideFiles[0] + // return + // } + + // const extendFile = fg.sync([`${extend}*(/index).{js,jsx,ts,tsx}`]) + // console.log('~extended', extend) + // console.log('~extendFile', extendFile) + // if (extend && extendFile?.length) { + // console.log('~RETURN extend', extend) + // console.log('~RETURN extendFile', extendFile) + // resource.request = extend + // return + // } + + // const baseline = path.resolve(resource.context, resource.request) + // const baselineFile = fg.sync([`${extend}.{js,jsx,ts,tsx}`]) + // console.log('~baseline', baseline) + // if (baseline && baselineFile?.length) { + // console.log('~RETURN baseline', baseline) + // console.log('~RETURN baselineFile', baselineFile) + // resource.request = baseline + // } + + // @TODO: make this variable + // const resolved = path.resolve( + // resource.context, + // resource.request?.replace(/@retail\-app/, 'app') + // ) + + // const replacement = replacements.find(({path}) => resolved.match(path)) + + // const templatePaths = [ + // // path.join('packages', 'pwa-kit-react-sdk'), + // // path.join('node_modules', 'pwa-kit-react-sdk'), + // path.join('packages', pkg?.mobify?.extends), + // path.join('node_modules', 'pwa-kit-react-sdk') + // ] + + // const requestedFromBaseTemplate = templatePaths.some((p) => resource.context.includes(p)) + + // console.log('~FINAL resource.request', resource.request) + // }) +} diff --git a/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js b/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js index a9a4f74c8f..016468726c 100644 --- a/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js +++ b/packages/pwa-kit-dev/src/ssr/server/build-dev-server.js @@ -28,8 +28,8 @@ import { } from '../../configs/webpack/config-names' import {randomUUID} from 'crypto' const projectDir = process.cwd() -const projectWebpackPath = path.resolve(projectDir, 'webpack.config.js') const projectPackageJSON = path.resolve(projectDir, 'package.json') +const projectWebpackPath = path.resolve(projectDir, 'webpack.config.js') const chalk = require('chalk') @@ -141,6 +141,7 @@ export const DevServerMixin = { if (fs.existsSync(projectWebpackPath)) { config = require(projectWebpackPath) } + console.log('~webpack config', config) app.__compiler = webpack(config) app.__devMiddleware = webpackDevMiddleware(app.__compiler, {serverSideRender: true}) app.__webpackReady = () => Boolean(app.__devMiddleware.context.state) @@ -205,9 +206,12 @@ export const DevServerMixin = { }) ) - // // we use two `app.use` servers on the same path with a fallback pattern to check first in - // // package.json => mobify.overridesDir and then fall back to mobify.extends (the base app) - // if (fs.existsSync(`${process.cwd()}/${projectPackageJSON?.mobify?.overridesDir}`)) { + // we use two `app.use` servers on the same path with a fallback pattern to check first in + // package.json => mobify.overridesDir and then fall back to mobify.extends (the base app) + // if ( + // fs.existsSync(`${process.cwd()}/node_modules${projectPackageJSON?.mobify?.extends}`) && + // fs.existsSync(`${process.cwd()}/${projectPackageJSON?.mobify?.overridesDir}`) + // ) { // // the local overridesDir search // app.use( // '/mobify/bundle/development', @@ -228,7 +232,7 @@ export const DevServerMixin = { // path.resolve( // process.cwd(), // 'node_modules', - // ...projectPackageJSON?.mobify?.extends?.split('/') + // projectPackageJSON?.mobify?.extends // ), // { // dotFiles: 'deny', diff --git a/packages/pwa-kit-react-sdk/src/ssr/universal/components/_app-config/index.jsx b/packages/pwa-kit-react-sdk/src/ssr/universal/components/_app-config/index.jsx index e940efc3f1..1af4aca0ee 100644 --- a/packages/pwa-kit-react-sdk/src/ssr/universal/components/_app-config/index.jsx +++ b/packages/pwa-kit-react-sdk/src/ssr/universal/components/_app-config/index.jsx @@ -69,13 +69,14 @@ class AppConfig extends React.Component { * you set up context Providers for a state-management library such as Redux. */ render() { + console.log('hello from universal/components/_app-config') return {this.props.children} } } AppConfig.propTypes = { children: PropTypes.node, - locals: PropTypes.object + locals: PropTypes.object, } export default AppConfig diff --git a/packages/pwa-kit-react-sdk/src/ssr/universal/components/_document/index.jsx b/packages/pwa-kit-react-sdk/src/ssr/universal/components/_document/index.jsx index 21380cd36d..5d8535c3c0 100644 --- a/packages/pwa-kit-react-sdk/src/ssr/universal/components/_document/index.jsx +++ b/packages/pwa-kit-react-sdk/src/ssr/universal/components/_document/index.jsx @@ -67,7 +67,7 @@ Document.propTypes = { head: PropTypes.arrayOf(PropTypes.node).isRequired, html: PropTypes.string.isRequired, htmlAttributes: PropTypes.object, - bodyAttributes: PropTypes.object + bodyAttributes: PropTypes.object, } Document.defaultProps = { @@ -76,7 +76,7 @@ Document.defaultProps = { head: [], html: '', htmlAttributes: {}, - bodyAttributes: {} + bodyAttributes: {}, } export default Document diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index e000587ed0..1cfaeedb3a 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,8 +1,8 @@ { "name": "client", - "hash": "c63104de15edeeabc5dc", + "hash": "fd4118e2c92d29713500", "publicPath": "/mobify/bundle/development/", - "outputPath": "/Users/bchypak/Projects/pwa-kit/packages/spike-extendend-retail-app/build", + "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ "main.js" @@ -18,7 +18,7 @@ { "type": "asset", "name": "vendor.js", - "size": 4672509, + "size": 2867366, "emitted": false, "comparedForEmit": false, "cached": true, @@ -45,7 +45,7 @@ { "type": "asset", "name": "main.js", - "size": 1090806, + "size": 216229, "emitted": false, "comparedForEmit": false, "cached": true, @@ -67,238 +67,10 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_en-XB_json.js", - "size": 68918, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_en-XB_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_ja-JP_json.js", - "size": 48140, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_ja-JP_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_fr-FR_json.js", - "size": 45583, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_fr-FR_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_de-DE_json.js", - "size": 45199, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_de-DE_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_es-MX_json.js", - "size": 44920, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_es-MX_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_ko-KR_json.js", - "size": 44685, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_ko-KR_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_it-IT_json.js", - "size": 43806, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_it-IT_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_pt-BR_json.js", - "size": 43767, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_pt-BR_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_en-GB_json.js", - "size": 42943, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_en-GB_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_en-US_json.js", - "size": 42374, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_en-US_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_zh-TW_json.js", - "size": 42287, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_zh-TW_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_zh-CN_json.js", - "size": 42265, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_zh-CN_json" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "pages-home.js", - "size": 2807, + "size": 19146, "emitted": false, "comparedForEmit": false, "cached": true, @@ -319,52 +91,6 @@ "pages-home" ], "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "_8dba.js", - "size": 284, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "_8dba.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "_8dba" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "_cc12.js", - "size": 284, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "_cc12.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "_cc12" - ], - "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -415,90 +141,6 @@ "main.js" ] }, - { - "id": "template-retail-react-app_app_translations_compiled_de-DE_json", - "files": [ - "template-retail-react-app_app_translations_compiled_de-DE_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_en-GB_json", - "files": [ - "template-retail-react-app_app_translations_compiled_en-GB_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_en-US_json", - "files": [ - "template-retail-react-app_app_translations_compiled_en-US_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_en-XB_json", - "files": [ - "template-retail-react-app_app_translations_compiled_en-XB_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_es-MX_json", - "files": [ - "template-retail-react-app_app_translations_compiled_es-MX_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_fr-FR_json", - "files": [ - "template-retail-react-app_app_translations_compiled_fr-FR_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_it-IT_json", - "files": [ - "template-retail-react-app_app_translations_compiled_it-IT_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_ja-JP_json", - "files": [ - "template-retail-react-app_app_translations_compiled_ja-JP_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_ko-KR_json", - "files": [ - "template-retail-react-app_app_translations_compiled_ko-KR_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_pt-BR_json", - "files": [ - "template-retail-react-app_app_translations_compiled_pt-BR_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_zh-CN_json", - "files": [ - "template-retail-react-app_app_translations_compiled_zh-CN_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_zh-TW_json", - "files": [ - "template-retail-react-app_app_translations_compiled_zh-TW_json.js" - ] - }, - { - "id": "_cc12", - "files": [ - "_cc12.js" - ] - }, - { - "id": "_8dba", - "files": [ - "_8dba.js" - ] - }, { "id": "pages-home", "files": [ diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/Input/index.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/Input/index.tsx deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx new file mode 100644 index 0000000000..2e7210200b --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import React, {useState} from 'react' +import PropTypes from 'prop-types' +import {ChakraProvider} from '@chakra-ui/react' + +// Removes focus for non-keyboard interactions for the whole application +import 'focus-visible/dist/focus-visible' + +import theme from 'retail-react-app/app/theme' +import CommerceAPI from 'retail-react-app/app/commerce-api' +import { + BasketProvider, + CommerceAPIProvider, + CustomerProductListsProvider, + CustomerProvider, +} from 'retail-react-app/app/commerce-api/contexts' +import {MultiSiteProvider} from 'retail-react-app/app/contexts' +import {resolveSiteFromUrl} from 'retail-react-app/app/utils/site-utils' +import {resolveLocaleFromUrl} from 'retail-react-app/app/utils/utils' +import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' +import {createUrlTemplate} from 'retail-react-app/app/utils/url' + +/** + * Use the AppConfig component to inject extra arguments into the getProps + * methods for all Route Components in the app – typically you'd want to do this + * to inject a connector instance that can be used in all Pages. + * + * You can also use the AppConfig to configure a state-management library such + * as Redux, or Mobx, if you like. + */ +const AppConfig = ({children, locals = {}}) => { + console.log('~hello from overrides _app-config') + const [basket, setBasket] = useState(null) + const [customer, setCustomer] = useState(null) + return ( + + + + + + {children} + + + + + + ) +} + +AppConfig.restore = (locals = {}) => { + const path = + typeof window === 'undefined' + ? locals.originalUrl + : `${window.location.pathname}${window.location.search}` + const site = resolveSiteFromUrl(path) + const locale = resolveLocaleFromUrl(path) + const currency = locale.preferredCurrency + + const {app: appConfig} = getConfig() + const apiConfig = { + ...appConfig.commerceAPI, + einsteinConfig: appConfig.einsteinAPI, + } + + apiConfig.parameters.siteId = site.id + + locals.api = new CommerceAPI({...apiConfig, locale: locale.id, currency}) + locals.buildUrl = createUrlTemplate(appConfig, site.alias || site.id, locale.id) + locals.site = site + locals.locale = locale +} + +AppConfig.freeze = () => undefined + +AppConfig.extraGetPropsArgs = (locals = {}) => { + return { + api: locals.api, + buildUrl: locals.buildUrl, + site: locals.site, + locale: locals.locale, + } +} + +AppConfig.propTypes = { + children: PropTypes.node, + locals: PropTypes.object, +} + +export default AppConfig diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx new file mode 100644 index 0000000000..00883d9650 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import React, {useState, useEffect} from 'react' +import PropTypes from 'prop-types' +import {useHistory, useLocation} from 'react-router-dom' +import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' +import {getAppOrigin} from 'pwa-kit-react-sdk/utils/url' + +// Chakra +import {Box, useDisclosure, useStyleConfig} from '@chakra-ui/react' +import {SkipNavLink, SkipNavContent} from '@chakra-ui/skip-nav' + +// Contexts +import {CategoriesProvider, CurrencyProvider} from 'retail-react-app/app/contexts' + +// Local Project Components +import Header from '../header' +import OfflineBanner from 'retail-react-app/app/components/offline-banner' +import OfflineBoundary from 'retail-react-app/app/components/offline-boundary' +import ScrollToTop from 'retail-react-app/app/components/scroll-to-top' +import Footer from 'retail-react-app/app/components/footer' +import CheckoutHeader from '../../pages/checkout/partials/checkout-header' +import CheckoutFooter from 'retail-react-app/app/pages/checkout/partials/checkout-footer' +import DrawerMenu from '../drawer-menu' +import ListMenu from '../list-menu' +import {HideOnDesktop, HideOnMobile} from 'retail-react-app/app/components/responsive' + +// Hooks +import useShopper from 'retail-react-app/app/commerce-api/hooks/useShopper' +import useCustomer from 'retail-react-app/app/commerce-api/hooks/useCustomer' +import {AuthModal, useAuthModal} from 'retail-react-app/app/hooks/use-auth-modal' +import {AddToCartModalProvider} from 'retail-react-app/app/hooks/use-add-to-cart-modal' +import useWishlist from 'retail-react-app/app/hooks/use-wishlist' + +// Localization +import {IntlProvider} from 'react-intl' + +// Others +import {watchOnlineStatus, flatten} from 'retail-react-app/app/utils/utils' +import {getTargetLocale, fetchTranslations} from 'retail-react-app/app/utils/locale' +import {DEFAULT_SITE_TITLE, HOME_HREF, THEME_COLOR} from 'retail-react-app/app/constants' + +import Seo from 'retail-react-app/app/components/seo' +import {resolveSiteFromUrl} from 'retail-react-app/app/utils/site-utils' +import useMultiSite from 'retail-react-app/app/hooks/use-multi-site' + +const DEFAULT_NAV_DEPTH = 3 +const DEFAULT_ROOT_CATEGORY = 'root' +const DEFAULT_LOCALE = 'en-US' + +const App = (props) => { + const { + children, + targetLocale = DEFAULT_LOCALE, + messages = {}, + categories: allCategories = {}, + } = props + + const appOrigin = getAppOrigin() + + const history = useHistory() + const location = useLocation() + const authModal = useAuthModal() + const customer = useCustomer() + const {site, locale, buildUrl} = useMultiSite() + + const [isOnline, setIsOnline] = useState(true) + const styles = useStyleConfig('App') + + const {isOpen, onOpen, onClose} = useDisclosure() + + // Used to conditionally render header/footer for checkout page + const isCheckout = /\/checkout$/.test(location?.pathname) + + const {l10n} = site + // Get the current currency to be used through out the app + const currency = locale.preferredCurrency || l10n.defaultCurrency + + // Set up customer and basket + useShopper({currency}) + + const wishlist = useWishlist() + useEffect(() => { + if (!customer.isInitialized) { + return + } + if (customer.isRegistered) { + wishlist.init() + } + if (customer.isGuest) { + wishlist.reset() + } + }, [customer.authType]) + + useEffect(() => { + // Listen for online status changes. + watchOnlineStatus((isOnline) => { + setIsOnline(isOnline) + }) + }, []) + + useEffect(() => { + // Lets automatically close the mobile navigation when the + // location path is changed. + onClose() + }, [location]) + + const onLogoClick = () => { + // Goto the home page. + const path = buildUrl(HOME_HREF) + + history.push(path) + + // Close the drawer. + onClose() + } + + const onCartClick = () => { + const path = buildUrl('/cart') + history.push(path) + + // Close the drawer. + onClose() + } + + const onAccountClick = () => { + // Link to account page for registered customer, open auth modal otherwise + if (customer.isRegistered) { + const path = buildUrl('/account') + history.push(path) + } else { + // if they already are at the login page, do not show login modal + if (new RegExp(`^/login$`).test(location.pathname)) return + authModal.onOpen() + } + } + + const onWishlistClick = () => { + const path = buildUrl('/account/wishlist') + history.push(path) + } + + return ( + { + if (err.code === 'MISSING_TRANSLATION') { + // NOTE: Remove the console error for missing translations during development, + // as we knew translations would be added later. + console.warn('Missing translation', err.message) + return + } + throw err + }} + locale={targetLocale} + messages={messages} + // For react-intl, the _default locale_ refers to the locale that the inline `defaultMessage`s are written for. + // NOTE: if you update this value, please also update the following npm scripts in `template-retail-react-app/package.json`: + // - "extract-default-translations" + // - "compile-translations:pseudo" + defaultLocale={DEFAULT_LOCALE} + > + + + + + + + + + + {/* Urls for all localized versions of this page (including current page) + For more details on hrefLang, see https://developers.google.com/search/docs/advanced/crawling/localized-versions */} + {site.l10n?.supportedLocales.map((locale) => ( + + ))} + {/* A general locale as fallback. For example: "en" if default locale is "en-GB" */} + + {/* A wider fallback for user locales that the app does not support */} + + + + + + + Skip to Content + + + {!isCheckout ? ( +
+ + + + + + + +
+ ) : ( + + )} +
+ + {children} +
+
+
+
+
+ ) +} + +App.shouldGetProps = () => { + // In this case, we only want to fetch data for the app once, on the server. + return typeof window === 'undefined' +} + +App.getProps = async ({api, res}) => { + const site = resolveSiteFromUrl(res.locals.originalUrl) + const l10nConfig = site.l10n + const targetLocale = getTargetLocale({ + getUserPreferredLocales: () => { + // CONFIG: This function should return an array of preferred locales. They can be + // derived from various sources. Below are some examples of those: + // + // - client side: window.navigator.languages + // - the page URL they're on (example.com/en-GB/home) + // - cookie (if their previous preference is saved there) + // + // If this function returns an empty array (e.g. there isn't locale in the page url), + // then the app would use the default locale as the fallback. + + // NOTE: Your implementation may differ, this is just what we did. + // + // Since the CommerceAPI client already has the current `locale` set, + // we can use it's value to load the correct messages for the application. + // Take a look at the `app/components/_app-config` component on how the + // preferred locale was derived. + const {locale} = api.getConfig() + + return [locale] + }, + l10nConfig, + }) + const messages = await fetchTranslations(targetLocale) + // Login as `guest` to get session. + await api.auth.login() + + // Get the root category, this will be used for things like the navigation. + const rootCategory = await api.shopperProducts.getCategory({ + parameters: { + id: DEFAULT_ROOT_CATEGORY, + levels: DEFAULT_NAV_DEPTH, + }, + }) + + if (rootCategory.isError) { + const message = + rootCategory.title === 'Unsupported Locale' + ? ` +It looks like the locale “${rootCategory.locale}” isn’t set up, yet. The locale settings in your package.json must match what is enabled in your Business Manager instance. +Learn more with our localization guide. https://sfdc.co/localization-guide +` + : rootCategory.detail + throw new Error(message) + } + + // Flatten the root so we can easily access all the categories throughout + // the application. + const categories = flatten(rootCategory, 'categories') + + return { + targetLocale, + messages, + categories, + config: res?.locals?.config, + } +} + +App.propTypes = { + children: PropTypes.node, + targetLocale: PropTypes.string, + messages: PropTypes.object, + categories: PropTypes.object, + config: PropTypes.object, +} + +export default App diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx new file mode 100644 index 0000000000..fe3d303f0c --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx @@ -0,0 +1,416 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import React, {useState} from 'react' +import PropTypes from 'prop-types' +// import {useIntl} from 'react-intl' + +// Project Components +import LocaleSelector from 'retail-react-app/app/components/locale-selector' +import NestedAccordion from 'retail-react-app/app/components/nested-accordion' +import SocialIcons from 'retail-react-app/app/components/social-icons' + +// Components +import { + Box, + AccordionButton, + AccordionItem, + Button, + Center, + Divider, + Drawer, + DrawerBody, + DrawerFooter, + DrawerHeader, + DrawerOverlay, + DrawerContent, + DrawerCloseButton, + Fade, + HStack, + IconButton, + Flex, + Spinner, + Text, + VStack, + + // Hooks + useBreakpointValue, + useMultiStyleConfig, +} from '@chakra-ui/react' +import Link from 'retail-react-app/app/components/link' +// Icons +import {BrandLogo, LocationIcon, SignoutIcon, UserIcon} from 'retail-react-app/app/components/icons' + +// Others +import {noop} from 'retail-react-app/app/utils/utils' +import {getPathWithLocale, categoryUrlBuilder} from 'retail-react-app/app/utils/url' +import useCustomer from 'retail-react-app/app/commerce-api/hooks/useCustomer' +import LoadingSpinner from 'retail-react-app/app/components/loading-spinner' + +import useNavigation from 'retail-react-app/app/hooks/use-navigation' +import useMultiSite from 'retail-react-app/app/hooks/use-multi-site' + +// The FONT_SIZES and FONT_WEIGHTS constants are used to control the styling for +// the accordion buttons as their current depth. In the below definition we assign +// values for depths 0 - 3, any depth deeper than that will use the default styling. +const FONT_SIZES = ['lg', 'md', 'md'] +const FONT_WEIGHTS = ['semibold', 'semibold', 'regular'] +const PHONE_DRAWER_SIZE = 'xs' +const TABLET_DRAWER_SIZE = 'lg' + +const DrawerSeparator = () => ( + + + +) + +// CUSTOMIZE YOUR NAVIGATION BY ALTERING THESE VALUES +const SIGN_IN_HREF = '/login' +const STORE_LOCATOR_HREF = '/store-locator' + +/** + * This is the navigation component used for mobile devices (phone and tablet). It's + * main usage is to navigate from one category to the next, but also homes links to + * support, log in and out actions, as support links. + */ +const DrawerMenu = ({isOpen, onClose = noop, onLogoClick = noop, root}) => { + // const intl = useIntl() + const customer = useCustomer() + const navigate = useNavigation() + const styles = useMultiStyleConfig('DrawerMenu') + const drawerSize = useBreakpointValue({sm: PHONE_DRAWER_SIZE, md: TABLET_DRAWER_SIZE}) + const socialIconVariant = useBreakpointValue({base: 'flex', md: 'flex-start'}) + const {site, buildUrl} = useMultiSite() + const {l10n} = site + const [showLoading, setShowLoading] = useState(false) + const onSignoutClick = async () => { + setShowLoading(true) + await customer.logout() + navigate('/login') + setShowLoading(false) + } + + const supportedLocaleIds = l10n?.supportedLocales.map((locale) => locale.id) + const showLocaleSelector = supportedLocaleIds?.length > 1 + + return ( + + + + {/* Header Content */} + + } + variant="unstyled" + onClick={onLogoClick} + /> + + + + + {/* Main Content */} + + {showLoading && } + + {/* Category Navigation */} + {root ? ( + + + depth > 0 ? ( + [ + + + {/* {intl.formatMessage({ + id: 'drawer_menu.link.shop_all', + defaultMessage: 'Shop All' + })} */} + Shop All + + , + ] + ) : ( + <> + ) + } + urlBuilder={categoryUrlBuilder} + /> + + ) : ( +
+ +
+ )} + + + + {/* Application Actions */} + + + {customer.isRegistered ? ( + + `/${locale}/account${item.path}` + } + itemsAfter={({depth}) => + depth === 1 && ( + + ) + } + item={{ + id: 'root', + items: [ + { + id: 'my-account', + name: 'My Account', + // intl.formatMessage({ + // id: 'drawer_menu.button.my_account', + // defaultMessage: 'My Account', + // }) + items: [ + { + id: 'profile', + path: '', + name: 'Account Details', + // intl.formatMessage({ + // id: 'drawer_menu.button.account_details', + // defaultMessage: 'Account Details', + // }) + }, + { + id: 'orders', + path: '/orders', + name: 'Order History', + // intl.formatMessage({ + // id: 'drawer_menu.button.order_history', + // defaultMessage: 'Order History', + // }) + }, + { + id: 'addresses', + path: '/addresses', + name: 'Addresses', + // intl.formatMessage({ + // id: 'drawer_menu.button.addresses', + // defaultMessage: 'Addresses', + // }) + }, + { + id: 'payments', + path: '/payments', + name: 'Payment Methods', + // intl.formatMessage({ + // id: 'drawer_menu.button.payment_methods', + // defaultMessage: 'Payment Methods', + // }) + }, + ], + }, + ], + }} + /> + ) : ( + + + {' '} + + {/* {intl.formatMessage({ + id: 'drawer_menu.link.sign_in', + defaultMessage: 'Sign In', + })} */} + Sign In + + + + )} + + + + + {' '} + + {/* {intl.formatMessage({ + id: 'drawer_menu.link.store_locator', + defaultMessage: 'Store Locator', + })} */} + Store Locator + + + + + {showLocaleSelector && ( + + {/* { + // Update the `locale` in the URL. + const newUrl = getPathWithLocale(newLocale, buildUrl, { + disallowParams: ['refine'], + }) + window.location = newUrl + }} + /> */} + + )} + + + + + {/* Support Links */} + '/'} + item={{ + id: 'links-root', + items: [ + { + id: 'customersupport', + items: [ + { + id: 'contactus', + name: 'Contact Us', + // intl.formatMessage({ + // id: 'drawer_menu.link.customer_support.contact_us', + // defaultMessage: 'Contact Us', + // }) + }, + { + id: 'shippingandreturns', + name: 'Shipping & Returns', + // intl.formatMessage({ + // id: 'drawer_menu.link.customer_support.shipping_and_returns', + // defaultMessage: 'Shipping & Returns', + // }) + }, + ], + name: 'Customer Support', + // intl.formatMessage({ + // id: 'drawer_menu.link.customer_support', + // defaultMessage: 'Customer Support', + // }) + }, + { + id: 'ourcompany', + items: [ + { + id: 'aboutus', + name: 'About Us', + // intl.formatMessage({ + // id: 'drawer_menu.link.about_us', + // defaultMessage: 'About Us', + // }) + }, + ], + name: 'Out Company', + // intl.formatMessage({ + // id: 'drawer_menu.link.our_company', + // defaultMessage: 'Our Company', + // }) + }, + { + id: 'privacyandsecurity', + items: [ + { + id: 'termsandconditions', + name: 'Terms & Conditions', + // intl.formatMessage({ + // id: 'drawer_menu.link.terms_and_conditions', + // defaultMessage: 'Terms & Conditions', + // }) + }, + { + id: 'privacypolicy', + name: 'Privacy Policy', + // intl.formatMessage({ + // id: 'drawer_menu.link.privacy_policy', + // defaultMessage: 'Privacy Policy', + // }) + }, + { + id: 'sitemap', + name: 'Site Map', + // intl.formatMessage({ + // id: 'drawer_menu.link.site_map', + // defaultMessage: 'Site Map', + // }) + }, + ], + name: 'Privacy & Security', + // intl.formatMessage({ + // id: 'drawer_menu.link.privacy_and_security', + // defaultMessage: 'Privacy & Security', + // }) + }, + ], + }} + /> + + +
+ + + + +
+
+
+ ) +} + +DrawerMenu.displayName = 'DrawerMenu' + +DrawerMenu.propTypes = { + /** + * The root category in your commerce cloud back-end. + */ + root: PropTypes.object, + /** + * The opened state of the drawer. + */ + isOpen: PropTypes.bool, + /** + * Function called when the drawer is dismissed. + */ + onClose: PropTypes.func, + /** + * Function called when the drawer logo is clicked. + */ + onLogoClick: PropTypes.func, +} + +export default DrawerMenu diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx new file mode 100644 index 0000000000..7966a0917e --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -0,0 +1,293 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import React, {useRef, useState} from 'react' +import PropTypes from 'prop-types' +// import {useIntl} from 'react-intl' +import { + useMultiStyleConfig, + Box, + Flex, + IconButton, + Badge, + Button, + Popover, + PopoverHeader, + PopoverTrigger, + PopoverContent, + PopoverBody, + PopoverFooter, + PopoverArrow, + Stack, + Text, + Divider, + useDisclosure, + useMediaQuery, +} from '@chakra-ui/react' + +// import useBasket from 'retail-react-app/app/commerce-api/hooks/useBasket' +// import useCustomer from 'retail-react-app/app/commerce-api/hooks/useCustomer' + +// import Link from 'retail-react-app/app/components/link' +import Search from '../search' +// import withRegistration from 'retail-react-app/app/hoc/with-registration' +import { + AccountIcon, + BrandLogo, + BasketIcon, + HamburgerIcon, + ChevronDownIcon, + HeartIcon, + SignoutIcon, +} from 'retail-react-app/app/components/icons' + +import {noop} from 'retail-react-app/app/utils/utils' +// import {navLinks, messages} from 'retail-react-app/app/pages/account/constant' +import {navLinks} from '../../pages/account/constant' +import useNavigation from 'retail-react-app/app/hooks/use-navigation' +import LoadingSpinner from 'retail-react-app/app/components/loading-spinner' + +const ENTER_KEY = 'Enter' + +// const IconButtonWithRegistration = withRegistration(IconButton) +/** + * The header is the main source for accessing + * navigation, search, basket, and other + * important information and actions. It persists + * on the top of your application and will + * respond to changes in device size. + * + * To customize the styles, update the themes + * in theme/components/project/header.js + * @param props + * @param {func} props.onMenuClick click event handler for menu button + * @param {func} props.onLogoClick click event handler for menu button + * @param {object} props.searchInputRef reference of the search input + * @param {func} props.onMyAccountClick click event handler for my account button + * @param {func} props.onMyCartClick click event handler for my cart button + * @return {React.ReactElement} - Header component + */ +const Header = ({ + children, + onMenuClick = noop, + onMyAccountClick = noop, + onLogoClick = noop, + onMyCartClick = noop, + onWishlistClick = noop, + ...props +}) => { + // const intl = useIntl() + // const basket = useBasket() + // const customer = useCustomer() + // const navigate = useNavigation() + + // const {isOpen, onClose, onOpen} = useDisclosure() + const [isDesktop] = useMediaQuery('(min-width: 992px)') + + const [showLoading, setShowLoading] = useState(false) + // // tracking if users enter the popover Content, + // // so we can decide whether to close the menu when users leave account icons + // const hasEnterPopoverContent = useRef() + + const styles = useMultiStyleConfig('Header') + + const onSignoutClick = async () => { + setShowLoading(true) + // await customer.logout() + navigate('/login') + setShowLoading(false) + } + + // const keyMap = { + // Escape: () => onClose(), + // Enter: () => onOpen(), + // } + + // const handleIconsMouseLeave = () => { + // // don't close the menu if users enter the popover content + // setTimeout(() => { + // if (!hasEnterPopoverContent.current) onClose() + // }, 100) + // } + + // return ( + // + // + // {showLoading && } + // + // } + // variant="unstyled" + // display={{lg: 'none'}} + // {...styles.icons} + // onClick={onMenuClick} + // /> + // } + // {...styles.icons} + // variant="unstyled" + // onClick={onLogoClick} + // /> + // {children} + // + // + // + // Hello Header + // + // + // + // ) + + return ( + + + {showLoading && } + + } + variant="unstyled" + display={{lg: 'none'}} + {...styles.icons} + onClick={onMenuClick} + /> + } + {...styles.icons} + variant="unstyled" + onClick={onLogoClick} + /> + {children} + + + + { + e.key === ENTER_KEY ? onMyAccountClick() : noop + }} + onClick={onMyAccountClick} + aria-label="My account" + /> + + {/* {customer.isRegistered && ( + + + { + keyMap[e.key]?.(e) + }} + {...styles.arrowDown} + onMouseOver={onOpen} + tabIndex={0} + /> + + + { + hasEnterPopoverContent.current = false + onClose() + }} + onMouseOver={() => { + hasEnterPopoverContent.current = true + }} + > + + + My account + + + + {navLinks.map((link) => { + const LinkIcon = link.icon + return ( + + ) + })} + + + + + + + + + )} */} + {/* } + variant="unstyled" + {...styles.icons} + onClick={onWishlistClick} + /> */} + {/* + + {basket?.loaded && ( + + {basket.itemAccumulatedCount} + + )} + + } + variant="unstyled" + {...styles.icons} + onClick={onMyCartClick} + /> */} + + + + ) +} + +Header.propTypes = { + children: PropTypes.node, + onMenuClick: PropTypes.func, + onLogoClick: PropTypes.func, + onMyAccountClick: PropTypes.func, + onWishlistClick: PropTypes.func, + onMyCartClick: PropTypes.func, + searchInputRef: PropTypes.oneOfType([ + PropTypes.func, + PropTypes.shape({current: PropTypes.elementType}), + ]), +} + +export default Header diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx new file mode 100644 index 0000000000..45915d4a2b --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx @@ -0,0 +1,272 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import React, {Fragment, useRef, forwardRef, useState, useEffect} from 'react' +import PropTypes from 'prop-types' +// import {useIntl} from 'react-intl' +import {Link as RouteLink} from 'react-router-dom' +import omit from 'lodash/omit' +import {useCategories} from 'retail-react-app/app/hooks/use-categories' + +// Project Components +import LinksList from 'retail-react-app/app/components/links-list' + +// Components +import { + Box, + Container, + SimpleGrid, + Flex, + Stack, + Popover, + PopoverTrigger, + PopoverContent, + PopoverBody, + Center, + Spinner, + + // Hooks + useTheme, + useDisclosure, +} from '@chakra-ui/react' +import Link from 'retail-react-app/app/components/link' +// Others +import {categoryUrlBuilder} from 'retail-react-app/app/utils/url' +import {ChevronDownIcon} from 'retail-react-app/app/components/icons' + +const MAXIMUM_NUMBER_COLUMNS = 5 + +const ChevronIconTrigger = forwardRef(function ChevronIconTrigger(props, ref) { + return ( + + + + ) +}) + +const ListMenuTrigger = ({item, name, isOpen, onOpen, onClose, hasItems}) => { + const theme = useTheme() + // const {baseStyle} = theme.components.ListMenu + + const keyMap = { + Escape: () => onClose(), + Enter: () => onOpen(), + } + + return ( + + + {name} + + + {hasItems && ( + { + keyMap[e.key]?.(e) + }} + > + + + + + )} + + {!hasItems && !item.loaded && } + + ) +} +ListMenuTrigger.propTypes = { + item: PropTypes.object, + name: PropTypes.string, + isOpen: PropTypes.bool, + onOpen: PropTypes.func, + onClose: PropTypes.func, + hasItems: PropTypes.bool, +} + +const ListMenuContent = ({maxColumns, items, itemsKey, onClose, initialFocusRef}) => { + const theme = useTheme() + // const {baseStyle} = theme.components.ListMenu + // const {locale} = useIntl() + + return ( + + + + maxColumns ? maxColumns : items.length + }, minmax(0, 21%))`} + marginInlineStart={{lg: '68px', xl: '96px'}} + > + {items.map((item, index) => { + const {id, name} = item + const items = item[itemsKey] + + const heading = { + href: categoryUrlBuilder(item, 'en-GB'), + text: name, + styles: { + fontSize: 'md', + marginBottom: 2, + }, + } + + const links = items + ? items.map((item) => { + const {name} = item + return { + href: categoryUrlBuilder(item, 'en-GB'), + text: name, + styles: { + fontSize: 'md', + paddingTop: 3, + paddingBottom: 3, + }, + } + }) + : [] + return ( + + ) + })} + + + + + ) +} +ListMenuContent.propTypes = { + items: PropTypes.array, + maxColumns: PropTypes.number, + onClose: PropTypes.func, + initialFocusRef: PropTypes.object, +} + +const ListMenuPopover = ({items, item, name, maxColumns}) => { + const initialFocusRef = useRef() + const {root, itemsKey, setRoot, findFirst} = useCategories() + const {isOpen, onClose, onOpen} = useDisclosure() + + const _onOpen = () => { + console.log('~_onOpen()') + // setRoot({ + // ...root, + // [itemsKey]: + // }) + onOpen() + } + return ( + + + + + {items && ( + + )} + + + + ) +} + +ListMenuPopover.propTypes = { + items: PropTypes.array, + item: PropTypes.object, + name: PropTypes.string, + maxColumns: PropTypes.number, + itemsKey: PropTypes.string, +} + +/** + * This is the navigation component used for desktop devices. Holds the site navigation, + * providing users with a way to access all product categories and other important pages. + * The submenus are open when the user moves the mouse over the trigger and for A11y when + * users use the keyboard Tab key to focus over the chevron icon and press Enter. + * + * @param maxColumns The maximum number of columns that we want to use per row inside the ListMenu. + */ +const ListMenu = ({maxColumns = MAXIMUM_NUMBER_COLUMNS}) => { + const {root, setRoot, findFirst, itemsKey} = useCategories() + const theme = useTheme() + // const {baseStyle} = theme.components.ListMenu + return ( + + ) +} + +ListMenu.displayName = 'ListMenu' + +ListMenu.propTypes = { + /** + * The maximum number of columns that we want to use per row in the menu. + */ + maxColumns: PropTypes.number, +} + +export default ListMenu diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx new file mode 100644 index 0000000000..31f2873bff --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx @@ -0,0 +1,269 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import React, {useRef, useState, useEffect} from 'react' +import { + Input, + InputGroup, + InputLeftElement, + Popover, + PopoverTrigger, + PopoverContent, + Button, + Box, + Flex, + HStack, + Spinner, +} from '@chakra-ui/react' +import SearchSuggestions from 'retail-react-app/app/components/search/partials/search-suggestions' +import {SearchIcon} from 'retail-react-app/app/components/icons' +import useSearchSuggestions from 'retail-react-app/app/commerce-api/hooks/useSearchSuggestions' +import { + capitalize, + boldString, + getSessionJSONItem, + setSessionJSONItem, +} from 'retail-react-app/app/utils/utils' +import useNavigation from 'retail-react-app/app/hooks/use-navigation' +import {HideOnDesktop, HideOnMobile} from 'retail-react-app/app/components/responsive' +// import {FormattedMessage} from 'react-intl' +import debounce from 'lodash/debounce' +import { + RECENT_SEARCH_KEY, + RECENT_SEARCH_LIMIT, + RECENT_SEARCH_MIN_LENGTH, +} from 'retail-react-app/app/constants' +import { + productUrlBuilder, + searchUrlBuilder, + categoryUrlBuilder, +} from 'retail-react-app/app/utils/url' + +const formatSuggestions = (searchSuggestions, input) => { + return { + categorySuggestions: searchSuggestions?.categorySuggestions?.categories?.map( + (suggestion) => { + return { + type: 'category', + id: suggestion.id, + link: categoryUrlBuilder({id: suggestion.id}), + name: boldString(suggestion.name, capitalize(input)), + } + } + ), + productSuggestions: searchSuggestions?.productSuggestions?.products?.map((product) => { + return { + type: 'product', + currency: product.currency, + price: product.price, + productId: product.productId, + name: boldString(product.productName, capitalize(input)), + link: productUrlBuilder({id: product.productId}), + } + }), + phraseSuggestions: searchSuggestions?.categorySuggestions?.suggestedPhrases?.map( + (phrase) => { + return { + type: 'phrase', + name: boldString(phrase.phrase, capitalize(input)), + link: searchUrlBuilder(phrase.phrase), + } + } + ), + } +} + +/** + * The SearchInput component is a stylized + * text input made specifically for use in + * the application header. + * @param {object} props + * @param {object} ref reference to the input element + * @return {React.ReactElement} - SearchInput component + */ +const Search = (props) => { + const navigate = useNavigation() + const searchSuggestion = useSearchSuggestions() + const searchInputRef = useRef() + const [isOpen, setIsOpen] = useState(false) + const recentSearches = getSessionJSONItem(RECENT_SEARCH_KEY) + const searchSuggestions = formatSuggestions( + searchSuggestion.results, + searchInputRef?.current?.value + ) + + // check if popover should open if we have suggestions + useEffect(() => { + shouldOpenPopover() + }, [searchSuggestions]) + + // Want to make sure we clear the suggestions when we are deleting characters + useEffect(() => { + if (searchInputRef?.current?.value <= 2) { + searchSuggestion.clearSuggestedSearch() + } + }, [searchInputRef?.current?.value]) + + const searchSuggestionsAvailable = + searchSuggestions && + (searchSuggestions?.categorySuggestions?.length || + searchSuggestions?.phraseSuggestions?.length) + + const saveRecentSearch = (searchText) => { + // Get recent searches or an empty array if undefined. + let searches = getSessionJSONItem(RECENT_SEARCH_KEY) || [] + + // Check if term is already in the saved searches + searches = searches.filter((savedSearchTerm) => { + searchText.toLowerCase() !== savedSearchTerm.toLowerCase() + }) + + // Create a new array consisting of the search text and up to 4 other resent searches. + // I'm assuming the order is newest to oldest. + searches = [searchText, ...searches].slice(0, RECENT_SEARCH_LIMIT) + + // Replace the save resent search with the updated value. + setSessionJSONItem(RECENT_SEARCH_KEY, searches) + } + + const debouncedSearch = debounce((input) => searchSuggestion.getSearchSuggestions(input), 300) + + const onSearchChange = async (e) => { + const input = e.target.value + if (input.length >= RECENT_SEARCH_MIN_LENGTH) { + debouncedSearch(input) + } + } + + const clearInput = () => { + searchInputRef.current.blur() + searchSuggestion.clearSuggestedSearch() + setIsOpen(false) + } + + const onSubmitSearch = (e) => { + e.preventDefault() + // Avoid blank spaces to be searched + let searchText = searchInputRef.current.value.trim() + // Avoid empty string searches + if (searchText.length < 1) { + return + } + saveRecentSearch(searchText) + clearInput() + navigate(searchUrlBuilder(searchText)) + } + + const closeAndNavigate = (link) => { + if (!link) { + clearInput() + setIsOpen(false) + } else { + clearInput() + setIsOpen(false) + navigate(link) + } + } + + const shouldOpenPopover = () => { + // As per design we only want to show the popover if the input is focused and we have recent searches saved + // or we have search suggestions available and have inputed some text (empty text in this scenario should show recent searches) + if ( + (document.activeElement.id === 'search-input' && recentSearches?.length > 0) || + (searchSuggestionsAvailable && searchInputRef.current.value.length > 0) + ) { + setIsOpen(true) + } else { + setIsOpen(false) + } + } + + const onSearchInputChange = (e) => { + onSearchChange(e) + shouldOpenPopover() + } + + return ( + + + +
+ + + + + + onSearchInputChange(e)} + onFocus={() => shouldOpenPopover()} + onBlur={() => setIsOpen(false)} + type="search" + ref={searchInputRef} + {...props} + variant="filled" + /> + + + + + +
+
+ + + + + + +
+ + 0 ? 'block' : 'none'} + postion="absolute" + background="white" + left={0} + right={0} + height="100vh" + > + {searchSuggestion.isLoading ? ( + + ) : ( + + )} + + +
+ ) +} + +Search.displayName = 'SearchInput' + +export default Search diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js new file mode 100644 index 0000000000..0f4b7af345 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +// import {defineMessages} from 'react-intl' +import { + AccountIcon, + LocationIcon, + PaymentIcon, + ReceiptIcon, + HeartIcon, +} from 'retail-react-app/app/components/icons' + +// export const messages = defineMessages({ +// profile: {defaultMessage: 'Account Details', id: 'global.account.link.account_details'}, +// addresses: {defaultMessage: 'Addresses', id: 'global.account.link.addresses'}, +// orders: {defaultMessage: 'Order History', id: 'global.account.link.order_history'}, +// payments: {defaultMessage: 'Payment Methods', id: 'global.account.link.payment_methods'}, +// wishlist: {defaultMessage: 'Wishlist', id: 'global.account.link.wishlist'} +// }) + +export const navLinks = [ + { + name: 'profile', + path: '', + icon: AccountIcon, + }, + { + name: 'wishlist', + path: '/wishlist', + icon: HeartIcon, + }, + { + name: 'orders', + path: '/orders', + icon: ReceiptIcon, + }, + { + name: 'addresses', + path: '/addresses', + icon: LocationIcon, + }, + { + name: 'payments', + path: '/payments', + icon: PaymentIcon, + }, +] + +// export const CONFIRMATION_DIALOG_DEFAULT_CONFIG = defineMessages({ +// dialogTitle: { +// defaultMessage: 'Confirm Action', +// id: 'confirmation_modal.default.title.confirm_action', +// }, +// confirmationMessage: { +// defaultMessage: 'Are you sure you want to continue?', +// id: 'confirmation_modal.default.message.you_want_to_continue', +// }, +// primaryActionLabel: {defaultMessage: 'Yes', id: 'confirmation_modal.default.action.yes'}, +// alternateActionLabel: {defaultMessage: 'No', id: 'confirmation_modal.default.action.no'}, +// }) diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx new file mode 100644 index 0000000000..7a2bff3631 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import React from 'react' +// import {FormattedMessage} from 'react-intl' +import {Badge, Box, Button, Flex, Center} from '@chakra-ui/react' +import useBasket from 'retail-react-app/app/commerce-api/hooks/useBasket' +import Link from 'retail-react-app/app/components/link' +import {BasketIcon, BrandLogo} from 'retail-react-app/app/components/icons' +import {HOME_HREF} from 'retail-react-app/app/constants' + +const CheckoutHeader = () => { + const basket = useBasket() + return ( + + + + + + + + + + + + ) +} + +export default CheckoutHeader diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js new file mode 100644 index 0000000000..ae0f888898 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is the data used in by the Retail React App home page. + * The example static data is created for demonstration purposes. + * Typically you'd get this information from the API or possibly + * from content slots. + */ +import React from 'react' +import {defineMessages} from 'react-intl' +import { + AccountIcon, + BasketIcon, + BrandLogo, + FigmaLogo, + GithubLogo, + DashboardIcon, + HeartIcon, + LikeIcon, + PlugIcon, +} from 'retail-react-app/app/components/icons' + +export const heroFeatures = [ + { + // message: defineMessages({ + // title: {defaultMessage: 'Download on Github', id: 'home.hero_features.link.on_github'} + // }), + message: { + title: 'Download on Github', + text: '', + }, + icon: , + href: 'https://github.com/SalesforceCommerceCloud/pwa-kit', + }, + { + // message: defineMessages({ + // title: { + // defaultMessage: 'Deploy on Managed Runtime', + // id: 'home.hero_features.link.on_managed_runtime', + // }, + // }), + message: { + title: 'Deploy on Managed Runtime', + text: '', + }, + icon: , + href: 'https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/pushing-and-deploying-bundles.html', + }, + { + // message: defineMessages({ + // title: { + // defaultMessage: 'Create with the Figma PWA Design Kit', + // id: 'home.hero_features.link.design_kit', + // }, + // }), + message: { + title: 'Create with the Figma PWA Design Kit', + text: '', + }, + icon: , + href: 'https://sfdc.co/figma-pwa-design-kit', + }, +] + +export const features = [ + { + // message: defineMessages({ + // title: {defaultMessage: 'Cart & Checkout', id: 'home.features.heading.cart_checkout'}, + // text: { + // defaultMessage: + // "Ecommerce best practice for a shopper's cart and checkout experience.", + // id: 'home.features.description.cart_checkout', + // }, + // }), + message: { + title: 'Cart & Checkout', + text: `Ecommerce best practice for a shopper's cart and checkout experience.`, + }, + icon: , + }, + { + // message: defineMessages({ + // title: { + // defaultMessage: 'Einstein Recommendations', + // id: 'home.features.heading.einstein_recommendations', + // }, + // text: { + // defaultMessage: + // 'Deliver the next best product or offer to every shopper through product recommendations.', + // id: 'home.features.description.einstein_recommendations', + // }, + // }), + message: { + title: 'Einstein Recommendations', + text: 'Deliver the next best product or offer to every shopper through product recommendations.', + }, + icon: , + }, + { + // message: defineMessages({ + // title: {defaultMessage: 'My Account', id: 'home.features.heading.my_account'}, + // text: { + // defaultMessage: + // 'Shoppers can manage account information such as their profile, addresses, payments and orders.', + // id: 'home.features.description.my_account', + // }, + // }), + message: { + title: 'My Account', + text: `Shoppers can manage account information such as their profile, addresses, payments and orders.`, + }, + icon: , + }, + { + // message: defineMessages({ + // title: { + // defaultMessage: 'Shopper Login and API Access Service', + // id: 'home.features.heading.shopper_login', + // }, + // text: { + // defaultMessage: + // 'Enable shoppers to easily log in with a more personalized shopping experience.', + // id: 'home.features.description.shopper_login', + // }, + // }), + message: { + title: `Shopper Login and API Access Service`, + text: 'Enable shoppers to easily log in with a more personalized shopping experience.', + }, + icon: , + }, + { + // message: defineMessages({ + // title: { + // defaultMessage: 'Components & Design Kit', + // id: 'home.features.heading.components', + // }, + // text: { + // defaultMessage: + // 'Built using Chakra UI, a simple, modular and accessible React component library.', + // id: 'home.features.description.components', + // }, + // }), + message: { + title: 'Components & Design Kit', + text: 'Built using Chakra UI, a simple, modular and accessible React component library.', + }, + icon: , + }, + { + // message: defineMessages({ + // title: {defaultMessage: 'Wishlist', id: 'home.features.heading.wishlist'}, + // text: { + // defaultMessage: + // 'Registered shoppers can add product items to their wishlist from purchasing later. ', + // id: 'home.features.description.wishlist', + // }, + // }), + message: { + title: 'Wishlist', + text: 'Registered shoppers can add product items to their wishlist from purchasing later. ', + }, + icon: , + }, +] diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx index 36c9472937..f10a1a3e82 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -1,3 +1,347 @@ +import React, {useEffect} from 'react' +import PropTypes from 'prop-types' +import {useIntl, FormattedMessage} from 'react-intl' +import {useLocation} from 'react-router-dom' + +// Components +import { + Box, + Button, + SimpleGrid, + HStack, + VStack, + Text, + Flex, + Stack, + Container, + Link, +} from '@chakra-ui/react' + +// Project Components +import Hero from 'retail-react-app/app/components/hero' +import Seo from 'retail-react-app/app/components/seo' +import Section from 'retail-react-app/app/components/section' +import ProductScroller from 'retail-react-app/app/components/product-scroller' + +// Others +import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' + +console.log('~TODO: override pages/home/data below !!! (uses useIntl())') +import {heroFeatures, features} from './data' + +// TODO: remove me! +import {ChakraProvider} from '@chakra-ui/react' +import theme from 'retail-react-app/app/theme' + +//Hooks +import useEinstein from 'retail-react-app/app/commerce-api/hooks/useEinstein' + +// Constants +import { + MAX_CACHE_AGE, + HOME_SHOP_PRODUCTS_CATEGORY_ID, + HOME_SHOP_PRODUCTS_LIMIT, +} from 'retail-react-app/app/constants' + +const Home = ({productSearchResult, isLoading}) => { + const intl = useIntl() + if (isLoading) return <>Loding... + // return ( + // + // + //
This is my new home
+ // Total products: {productSearchResult?.hits?.length} + //
    + // {productSearchResult?.hits?.map((item) => ( + //
  • + // {item?.productName} + //
    + // {JSON.stringify(item)} + // + //
  • + // ))} + //
+ //
+ //
+ // ) + + useEffect(() => { + console.log('~74 theme', theme) + }) + + return ( + + + + + + + + } + /> + +
+ + {heroFeatures.map((feature, index) => { + const featureMessage = feature.message + return ( + + + + + {feature.icon} + + + {/* {intl.formatMessage(featureMessage.title)} */} + {featureMessage.title} + + + + + ) + })} + +
+ + {/* {productSearchResult && ( +
+ // {intl.formatMessage({ + // defaultMessage: 'Read docs', + // id: 'home.link.read_docs', + // })} + // + // ), + // } + // )} + > + + + +
+ )} */} + +
+ + + {features.map((feature, index) => { + const featureMessage = feature.message + return ( + + + + {feature.icon} + + + {/* {intl.formatMessage(featureMessage.title)} */} + {featureMessage.title} + + + {/* {intl.formatMessage(featureMessage.text)} */} + {featureMessage.text} + + + + ) + })} + + +
+ + {/*
+ <> + {intl.formatMessage({ + defaultMessage: 'Contact our support staff.', + id: 'home.description.here_to_help', + })} + +
+ <> + {intl.formatMessage({ + defaultMessage: 'They will get you to the right place.', + id: 'home.description.here_to_help_line_2', + })} + + + } + actions={ + + } + maxWidth={'xl'} + /> */} + + + ) +} + +Home.getTemplateName = () => 'home' + +Home.shouldGetProps = ({previousLocation, location}) => + !previousLocation || previousLocation.pathname !== location.pathname + +Home.getProps = async ({res, api}) => { + if (res) { + res.set('Cache-Control', `max-age=${MAX_CACHE_AGE}`) + } + + const productSearchResult = await api.shopperSearch.productSearch({ + parameters: { + refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master'], + limit: HOME_SHOP_PRODUCTS_LIMIT, + }, + }) + + return {productSearchResult} +} + +Home.propTypes = { + /** + * The search result object showing all the product hits, that belong + * in the supplied category. + */ + productSearchResult: PropTypes.object, + /** + * The current state of `getProps` when running this value is `true`, otherwise it's + * `false`. (Provided internally) + */ + isLoading: PropTypes.bool, +} + +export default Home + /* * Copyright (c) 2022, Salesforce, Inc. * All rights reserved. @@ -5,21 +349,313 @@ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import React from 'react' +// import React, {useEffect} from 'react' +// import PropTypes from 'prop-types' +// import {useIntl, FormattedMessage} from 'react-intl' +// import {useLocation} from 'react-router-dom' -/** - * This is the home page for Retail React App. - * The page is created for demonstration purposes. - * The page renders SEO metadata and a few promotion - * categories and products, data is from local file. - */ -const Home = () => { - return
This is my new home
-} +// // Components +// import { +// Box, +// Button, +// SimpleGrid, +// HStack, +// VStack, +// Text, +// Flex, +// Stack, +// Container, +// Link, +// } from '@chakra-ui/react' -Home.getTemplateName = () => 'home' +// // Project Components +// import Hero from 'retail-react-app/app/components/hero' +// import Seo from 'retail-react-app/app/components/seo' +// import Section from 'retail-react-app/app/components/section' +// import ProductScroller from 'retail-react-app/app/components/product-scroller' +// // Others +// import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' +// import {heroFeatures, features} from 'retail-react-app/app/pages/home/data' -Home.propTypes = {} +// //Hooks +// import useEinstein from 'retail-react-app/app/commerce-api/hooks/useEinstein' -export default Home +// // Constants +// import { +// MAX_CACHE_AGE, +// HOME_SHOP_PRODUCTS_CATEGORY_ID, +// HOME_SHOP_PRODUCTS_LIMIT, +// } from 'retail-react-app/app/constants' + +// /** +// * This is the home page for Retail React App. +// * The page is created for demonstration purposes. +// * The page renders SEO metadata and a few promotion +// * categories and products, data is from local file. +// */ +// const Home = ({productSearchResult, isLoading}) => { +// const intl = useIntl() +// const einstein = useEinstein() +// const {pathname} = useLocation() + +// /**************** Einstein ****************/ +// useEffect(() => { +// einstein.sendViewPage(pathname) +// }, []) + +// return ( +// +// + +// +// +// +// } +// /> + +//
+// +// {heroFeatures.map((feature, index) => { +// const featureMessage = feature.message +// return ( +// +// +// +// +// {feature.icon} +// +// +// {intl.formatMessage(featureMessage.title)} +// +// +// +// +// ) +// })} +// +//
+ +// {productSearchResult && ( +//
+// {intl.formatMessage({ +// defaultMessage: 'Read docs', +// id: 'home.link.read_docs', +// })} +// +// ), +// } +// )} +// > +// +// +// +//
+// )} + +//
+// +// +// {features.map((feature, index) => { +// const featureMessage = feature.message +// return ( +// +// +// +// {feature.icon} +// +// +// {intl.formatMessage(featureMessage.title)} +// +// +// {intl.formatMessage(featureMessage.text)} +// +// +// +// ) +// })} +// +// +//
+ +//
+// <> +// {intl.formatMessage({ +// defaultMessage: 'Contact our support staff.', +// id: 'home.description.here_to_help', +// })} +// +//
+// <> +// {intl.formatMessage({ +// defaultMessage: 'They will get you to the right place.', +// id: 'home.description.here_to_help_line_2', +// })} +// +// +// } +// actions={ +// +// } +// maxWidth={'xl'} +// /> +// +// ) +// } + +// Home.getTemplateName = () => 'home' + +// Home.shouldGetProps = ({previousLocation, location}) => +// !previousLocation || previousLocation.pathname !== location.pathname + +// Home.getProps = async ({res, api}) => { +// if (res) { +// res.set('Cache-Control', `max-age=${MAX_CACHE_AGE}`) +// } + +// const productSearchResult = await api.shopperSearch.productSearch({ +// parameters: { +// refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master'], +// limit: HOME_SHOP_PRODUCTS_LIMIT, +// }, +// }) + +// return {productSearchResult} +// } + +// Home.propTypes = { +// /** +// * The search result object showing all the product hits, that belong +// * in the supplied category. +// */ +// productSearchResult: PropTypes.object, +// /** +// * The current state of `getProps` when running this value is `true`, otherwise it's +// * `false`. (Provided internally) +// */ +// isLoading: PropTypes.bool, +// } + +// export default Home diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js new file mode 100644 index 0000000000..b3a7f2e2d4 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import theme from '@chakra-ui/theme' + +export default { + baseStyle: { + container: { + flex: 1, + display: 'flex', + flexDirection: 'column', + backgroundColor: 'white', + minWidth: '375px', + }, + headerWrapper: { + position: 'sticky', + top: 0, + zIndex: theme.zIndices.sticky, + }, + }, + parts: ['container'], +} diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js new file mode 100644 index 0000000000..e0f84581a6 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +export default { + baseStyle: { + container: { + height: 'full', + minWidth: 'xs', + width: 'full', + boxShadow: 'base', + backgroundColor: 'white', + }, + content: { + maxWidth: 'container.xxxl', + marginLeft: 'auto', + marginRight: 'auto', + paddingLeft: [4, 4, 6, 8], + paddingRight: [4, 4, 6, 8], + paddingTop: [1, 1, 2, 4], + paddingBottom: [3, 3, 2, 4], + }, + searchContainer: { + order: [2, 2, 2, 'inherit'], + width: ['full', 'full', 'full', 60], + marginRight: [0, 0, 0, 4], + marginBottom: [1, 1, 2, 0], + }, + bodyContainer: { + flex: '1', + }, + logo: { + width: [8, 8, 8, 12], + height: [6, 6, 6, 8], + }, + icons: { + marginBottom: [1, 1, 2, 0], + }, + accountIcon: { + height: 11, + cursor: 'pointer', + alignSelf: ['self-start', 'self-start', 'self-start', 'auto'], + _focus: { + boxShadow: 'outline', + }, + _focusVisible: { + outline: 0, + }, + }, + arrowDown: { + height: 11, + marginRight: 0, + alignSelf: ['self-start', 'self-start', 'self-start', 'auto'], + cursor: 'pointer', + _focus: { + boxShadow: 'outline', + }, + _focusVisible: { + outline: 0, + }, + display: ['none', 'none', 'none', 'block'], + }, + signout: { + width: '100%', + borderRadius: '4px', + height: 11, + padding: 4, + py: 3, + marginTop: 1, + _hover: { + background: 'gray.50', + }, + }, + signoutText: { + fontSize: 'sm', + fontWeight: 'normal', + }, + signoutIcon: { + marginRight: 2, + }, + }, + parts: ['container', 'content', 'searchContainer', 'bodyContainer', 'logo', 'icons', 'signout'], +} diff --git a/packages/template-retail-react-app/app/components/_app-config/index.jsx b/packages/template-retail-react-app/app/components/_app-config/index.jsx index 985a1c25f3..e8db49b973 100644 --- a/packages/template-retail-react-app/app/components/_app-config/index.jsx +++ b/packages/template-retail-react-app/app/components/_app-config/index.jsx @@ -17,7 +17,7 @@ import { BasketProvider, CommerceAPIProvider, CustomerProductListsProvider, - CustomerProvider + CustomerProvider, } from '../../commerce-api/contexts' import {MultiSiteProvider} from '../../contexts' import {resolveSiteFromUrl} from '../../utils/site-utils' @@ -34,6 +34,7 @@ import {createUrlTemplate} from '../../utils/url' * as Redux, or Mobx, if you like. */ const AppConfig = ({children, locals = {}}) => { + console.log('~hello from template-retail-react-app/app/components/_app-config') const [basket, setBasket] = useState(null) const [customer, setCustomer] = useState(null) @@ -64,7 +65,7 @@ AppConfig.restore = (locals = {}) => { const {app: appConfig} = getConfig() const apiConfig = { ...appConfig.commerceAPI, - einsteinConfig: appConfig.einsteinAPI + einsteinConfig: appConfig.einsteinAPI, } apiConfig.parameters.siteId = site.id @@ -82,13 +83,13 @@ AppConfig.extraGetPropsArgs = (locals = {}) => { api: locals.api, buildUrl: locals.buildUrl, site: locals.site, - locale: locals.locale + locale: locals.locale, } } AppConfig.propTypes = { children: PropTypes.node, - locals: PropTypes.object + locals: PropTypes.object, } export default AppConfig diff --git a/packages/template-retail-react-app/app/components/header/index.jsx b/packages/template-retail-react-app/app/components/header/index.jsx index be09a09d15..6f37fb229b 100644 --- a/packages/template-retail-react-app/app/components/header/index.jsx +++ b/packages/template-retail-react-app/app/components/header/index.jsx @@ -25,7 +25,7 @@ import { Text, Divider, useDisclosure, - useMediaQuery + useMediaQuery, } from '@chakra-ui/react' import useBasket from '../../commerce-api/hooks/useBasket' @@ -41,7 +41,7 @@ import { HamburgerIcon, ChevronDownIcon, HeartIcon, - SignoutIcon + SignoutIcon, } from '../icons' import {noop} from '../../utils/utils' @@ -51,6 +51,8 @@ import LoadingSpinner from '../loading-spinner' const ENTER_KEY = 'Enter' +const unused = '' + const IconButtonWithRegistration = withRegistration(IconButton) /** * The header is the main source for accessing @@ -102,7 +104,7 @@ const Header = ({ const keyMap = { Escape: () => onClose(), - Enter: () => onOpen() + Enter: () => onOpen(), } const handleIconsMouseLeave = () => { @@ -120,7 +122,7 @@ const Header = ({ } variant="unstyled" @@ -131,7 +133,7 @@ const Header = ({ } {...styles.icons} @@ -143,7 +145,7 @@ const Header = ({ @@ -158,7 +160,7 @@ const Header = ({ onClick={onMyAccountClick} aria-label={intl.formatMessage({ id: 'header.button.assistive_msg.my_account', - defaultMessage: 'My account' + defaultMessage: 'My account', })} /> @@ -199,7 +201,7 @@ const Header = ({ {intl.formatMessage({ defaultMessage: 'My Account', - id: 'header.popover.title.my_account' + id: 'header.popover.title.my_account', })} @@ -230,7 +232,7 @@ const Header = ({ {intl.formatMessage({ defaultMessage: 'Log out', - id: 'header.popover.action.log_out' + id: 'header.popover.action.log_out', })} @@ -242,7 +244,7 @@ const Header = ({ } variant="unstyled" @@ -252,7 +254,7 @@ const Header = ({ @@ -283,8 +285,8 @@ Header.propTypes = { onMyCartClick: PropTypes.func, searchInputRef: PropTypes.oneOfType([ PropTypes.func, - PropTypes.shape({current: PropTypes.elementType}) - ]) + PropTypes.shape({current: PropTypes.elementType}), + ]), } export default Header diff --git a/packages/template-retail-react-app/app/components/icons/index.jsx b/packages/template-retail-react-app/app/components/icons/index.jsx index e7159ba623..586a41663c 100644 --- a/packages/template-retail-react-app/app/components/icons/index.jsx +++ b/packages/template-retail-react-app/app/components/icons/index.jsx @@ -92,7 +92,7 @@ const icon = (name, passProps) => { .replace(/-/g, '') const component = forwardRef((props, ref) => { const theme = useTheme() - const {baseStyle} = theme.components.Icon + const baseStyle = theme?.components?.Icon?.baseStyle return ( @@ -146,7 +146,7 @@ export const SearchIcon = icon('search') export const SocialFacebookIcon = icon('social-facebook') export const SocialInstagramIcon = icon('social-instagram') export const SocialPinterestIcon = icon('social-pinterest', { - viewBox: SocialPinterestSymbol.viewBox + viewBox: SocialPinterestSymbol.viewBox, }) export const SocialTwitterIcon = icon('social-twitter') export const SocialYoutubeIcon = icon('social-youtube') From 806418b67aea5974b22d95c76765c6e114620f14 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Fri, 30 Dec 2022 15:45:59 -0700 Subject: [PATCH 010/263] WIP, fix broken webpack dev server 404ing on `mobify/bundle/development/**/*` files --- packages/pwa-kit-dev/bin/pwa-kit-dev.js | 24 +- .../pwa-kit-dev/src/configs/webpack/config.js | 26 +- .../build/loadable-stats.json | 1319 ++++++++++++++++- .../overrides/app/components/header/index.jsx | 2 +- .../pwa-kit/overrides/app/routes.jsx | 84 +- 5 files changed, 1376 insertions(+), 79 deletions(-) diff --git a/packages/pwa-kit-dev/bin/pwa-kit-dev.js b/packages/pwa-kit-dev/bin/pwa-kit-dev.js index 1def3159fc..7df7506183 100755 --- a/packages/pwa-kit-dev/bin/pwa-kit-dev.js +++ b/packages/pwa-kit-dev/bin/pwa-kit-dev.js @@ -15,6 +15,7 @@ const {execSync: _execSync} = require('child_process') const scriptUtils = require('../scripts/utils') const uploadBundle = require('../scripts/upload.js') const pkg = require('../package.json') +const projectPkg = require(process.cwd() + '/package.json') const {getConfig} = require('pwa-kit-runtime/utils/ssr-config') const colors = { @@ -142,7 +143,11 @@ const main = () => { } }) - const appSSRjs = fse.pathExistsSync(p.join(process.cwd(), 'app', 'ssr.js')) + const appSSRpath = p.join(process.cwd(), 'app', 'ssr.js') + const appSSRjs = fse.pathExistsSync(appSSRpath) + const overrideSSRpath = p.join(process.cwd(), projectPkg?.mobify?.overridesDir, 'app', 'ssr.js') + const overrideSSRjs = fse.pathExistsSync(overrideSSRpath) + const resolvedSSRPath = appSSRjs ? appSSRpath : overrideSSRjs ? overrideSSRpath : null program .command('start') @@ -152,19 +157,12 @@ const main = () => { ) .addOption(new program.Option('--noHMR', 'disable the client-side hot module replacement')) .action(({inspect, noHMR}) => { - execSync( - `node${inspect ? ' --inspect' : ''} ${ - appSSRjs ? - p.join(process.cwd(), 'app', 'ssr.js') - : - p.join(process.cwd(), 'node_modules/retail-react-app', 'app', 'ssr.js')}`, - { - env: { - ...process.env, - ...(noHMR ? {HMR: 'false'} : {}) - } + execSync(`node${inspect ? ' --inspect' : ''} ${resolvedSSRPath}`, { + env: { + ...process.env, + ...(noHMR ? {HMR: 'false'} : {}) } - ) + }) }) program diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index fee1198fc4..ce19215dc0 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -54,12 +54,14 @@ const getBundleAnalyzerPlugin = (name = 'report', pluginOptions) => ...pluginOptions }) -const entryPointExists = (segments, overrideSegments = []) => { +const entryPointExists = (segments) => { for (let ext of ['.js', '.jsx', '.ts', '.tsx']) { const primary = resolve(projectDir, ...segments) + ext - const override = resolve(projectDir, ...overrideSegments) + ext + const override = pkg?.mobify?.overridesDir + ? resolve(projectDir, pkg?.mobify?.overridesDir?.replace(/^\//, ''), ...segments) + ext + : null - if (fs.existsSync(primary) || fs.existsSync(override)) { + if (fs.existsSync(primary) || (override && fs.existsSync(override))) { return true } } @@ -68,9 +70,7 @@ const entryPointExists = (segments, overrideSegments = []) => { const getAppEntryPoint = (pkg) => { const APP_MAIN_PATH = '/app/main' - const ret = pkg?.mobify?.overridesDir ? pkg.mobify.overridesDir + APP_MAIN_PATH : APP_MAIN_PATH - console.log('~appEntry', ret) - return ret + return pkg?.mobify?.overridesDir ? pkg.mobify.overridesDir + APP_MAIN_PATH : APP_MAIN_PATH } const findInProjectThenSDK = (pkg) => { @@ -369,7 +369,19 @@ const renderer = // Must only appear on one config – this one is the only mandatory one. new CopyPlugin({ - patterns: [{from: 'app/static/', to: 'static/', noErrorOnMissing: true}] + patterns: [ + { + from: + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? `${pkg?.mobify?.overridesDir?.replace( + /^\//, + '' + )}/app/static` + : 'app/static/', + to: 'static/', + noErrorOnMissing: true + } + ] }), analyzeBundle && getBundleAnalyzerPlugin('server-renderer') diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 1cfaeedb3a..ab8a6395d4 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,15 +1,52 @@ { "name": "client", - "hash": "fd4118e2c92d29713500", + "hash": "6efb697b21b0c365ae0e", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ - "main.js" + "main.js", + "main.20d98fa36e705b25c0a4.hot-update.js" ], "pages-home": [ "pages-home.js" ], + "retail-react-app-app-pages-login": [ + "retail-react-app-app-pages-login.js" + ], + "retail-react-app-app-pages-registration": [ + "retail-react-app-app-pages-registration.js" + ], + "retail-react-app-app-pages-reset-password": [ + "retail-react-app-app-pages-reset-password.js" + ], + "retail-react-app-app-pages-account": [ + "retail-react-app-app-pages-account.js" + ], + "retail-react-app-app-pages-cart": [ + "retail-react-app-app-pages-cart.js" + ], + "retail-react-app-app-pages-checkout": [ + "retail-react-app-app-pages-checkout.js" + ], + "retail-react-app-app-pages-checkout-confirmation": [ + "retail-react-app-app-pages-checkout-confirmation.js" + ], + "retail-react-app-app-pages-login-redirect": [ + "retail-react-app-app-pages-login-redirect.js" + ], + "pages-product-detail": [ + "pages-product-detail.js" + ], + "retail-react-app-app-pages-product-list": [ + "retail-react-app-app-pages-product-list.js" + ], + "retail-react-app-app-pages-account-wishlist": [ + "retail-react-app-app-pages-account-wishlist.js" + ], + "retail-react-app-app-pages-page-not-found": [ + "retail-react-app-app-pages-page-not-found.js" + ], "vendor": [ "vendor.js" ] @@ -18,7 +55,7 @@ { "type": "asset", "name": "vendor.js", - "size": 2867366, + "size": 7343350, "emitted": false, "comparedForEmit": false, "cached": true, @@ -45,7 +82,7 @@ { "type": "asset", "name": "main.js", - "size": 216229, + "size": 1106116, "emitted": false, "comparedForEmit": false, "cached": true, @@ -69,88 +106,1260 @@ }, { "type": "asset", - "name": "pages-home.js", - "size": 19146, + "name": "retail-react-app-app-pages-account.js", + "size": 170635, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "pages-home.js.map" + "sourceMap": "retail-react-app-app-pages-account.js.map" } }, "chunkNames": [ - "pages-home" + "retail-react-app-app-pages-account" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "pages-home" + "retail-react-app-app-pages-account" ], "auxiliaryChunks": [] - } - ], - "namedChunkGroups": { - "main": { - "name": "main", + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-checkout.js", + "size": 156626, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-checkout.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-checkout" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, "chunks": [ - "vendor", - "main" + "retail-react-app-app-pages-checkout" ], - "assets": [ - { - "name": "vendor.js" - }, - { - "name": "main.js" + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-product-list.js", + "size": 117328, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-product-list.js.map" } + }, + "chunkNames": [ + "retail-react-app-app-pages-product-list" ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 2, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-product-list" + ], + "auxiliaryChunks": [] }, - "pages-home": { - "name": "pages-home", + { + "type": "asset", + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", + "size": 102825, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, "chunks": [ - "pages-home" + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1" ], - "assets": [ - { - "name": "pages-home.js" + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", + "size": 78837, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js.map" } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51" ], - "filteredAssets": 0, - "assetsSize": null, - "filteredAuxiliaryAssets": 1, - "auxiliaryAssetsSize": null, - "children": {}, - "childAssets": {} - } - }, - "generator": "loadable-components", - "chunks": [ + "auxiliaryChunks": [] + }, { - "id": "main", - "files": [ - "main.js" - ] + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-XB_json.js", + "size": 68918, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-XB_json" + ], + "auxiliaryChunks": [] }, { - "id": "pages-home", - "files": [ - "pages-home.js" - ] + "type": "asset", + "name": "retail-react-app-app-pages-cart.js", + "size": 61655, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-cart.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-cart" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-cart" + ], + "auxiliaryChunks": [] }, { - "id": "vendor", - "files": [ - "vendor.js" + "type": "asset", + "name": "retail-react-app-app-pages-checkout-confirmation.js", + "size": 54180, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-checkout-confirmation.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-checkout-confirmation" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-checkout-confirmation" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-home.js", + "size": 48733, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-home.js.map" + } + }, + "chunkNames": [ + "pages-home" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-home" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_ja-JP_json.js", + "size": 48140, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_ja-JP_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_fr-FR_json.js", + "size": 45583, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_fr-FR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", + "size": 45426, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_order-summary_index_jsx.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_order-summary_index_jsx" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_de-DE_json.js", + "size": 45199, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_de-DE_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_es-MX_json.js", + "size": 44920, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_es-MX_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_ko-KR_json.js", + "size": 44685, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_ko-KR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_it-IT_json.js", + "size": 43806, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_it-IT_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_pt-BR_json.js", + "size": 43767, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_pt-BR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", + "size": 43172, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-GB_json.js", + "size": 42943, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-GB_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-US_json.js", + "size": 42374, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-US_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_zh-TW_json.js", + "size": 42287, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_zh-TW_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_zh-CN_json.js", + "size": 42265, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_zh-CN_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-account-wishlist.js", + "size": 39330, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-account-wishlist.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-account-wishlist" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-account-wishlist" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "main.20d98fa36e705b25c0a4.hot-update.js", + "size": 24235, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "20d98fa36e705b25c0a4", + "related": { + "sourceMap": "main.20d98fa36e705b25c0a4.hot-update.js.map" + } + }, + "chunkNames": [ + "main" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "main" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-reset-password.js", + "size": 10537, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-reset-password.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-reset-password" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-reset-password" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-login.js", + "size": 8433, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-login.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-login" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-login" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-page-not-found.js", + "size": 7855, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-page-not-found.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-page-not-found" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-page-not-found" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-registration.js", + "size": 7589, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-registration.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-registration" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-registration" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-login-redirect.js", + "size": 3060, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-login-redirect.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-login-redirect" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-login-redirect" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-product-detail.js", + "size": 2941, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-product-detail.js.map" + } + }, + "chunkNames": [ + "pages-product-detail" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-product-detail" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "_8dba.js", + "size": 284, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "_8dba.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "_8dba" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "_cc12.js", + "size": 284, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "_cc12.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "_cc12" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "main.20d98fa36e705b25c0a4.hot-update.json", + "size": 28, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "20d98fa36e705b25c0a4" + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [], + "auxiliaryChunks": [] + } + ], + "namedChunkGroups": { + "main": { + "name": "main", + "chunks": [ + "vendor", + "main" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "main.js" + }, + { + "name": "main.20d98fa36e705b25c0a4.hot-update.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 3, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-home": { + "name": "pages-home", + "chunks": [ + "vendor", + "pages-home" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "pages-home.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 2, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-login": { + "name": "retail-react-app-app-pages-login", + "chunks": [ + "retail-react-app-app-pages-login" + ], + "assets": [ + { + "name": "retail-react-app-app-pages-login.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-registration": { + "name": "retail-react-app-app-pages-registration", + "chunks": [ + "retail-react-app-app-pages-registration" + ], + "assets": [ + { + "name": "retail-react-app-app-pages-registration.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-reset-password": { + "name": "retail-react-app-app-pages-reset-password", + "chunks": [ + "retail-react-app-app-pages-reset-password" + ], + "assets": [ + { + "name": "retail-react-app-app-pages-reset-password.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-account": { + "name": "retail-react-app-app-pages-account", + "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "retail-react-app-app-pages-account-wishlist", + "retail-react-app-app-pages-account" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + }, + { + "name": "retail-react-app-app-pages-account-wishlist.js" + }, + { + "name": "retail-react-app-app-pages-account.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 7, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-cart": { + "name": "retail-react-app-app-pages-cart", + "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "template-retail-react-app_app_components_order-summary_index_jsx", + "retail-react-app-app-pages-cart" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "retail-react-app-app-pages-cart.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 5, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-checkout": { + "name": "retail-react-app-app-pages-checkout", + "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "retail-react-app-app-pages-checkout" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + }, + { + "name": "retail-react-app-app-pages-checkout.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 5, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-checkout-confirmation": { + "name": "retail-react-app-app-pages-checkout-confirmation", + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "retail-react-app-app-pages-checkout-confirmation" + ], + "assets": [ + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "retail-react-app-app-pages-checkout-confirmation.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 2, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-login-redirect": { + "name": "retail-react-app-app-pages-login-redirect", + "chunks": [ + "retail-react-app-app-pages-login-redirect" + ], + "assets": [ + { + "name": "retail-react-app-app-pages-login-redirect.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-product-detail": { + "name": "pages-product-detail", + "chunks": [ + "pages-product-detail" + ], + "assets": [ + { + "name": "pages-product-detail.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-product-list": { + "name": "retail-react-app-app-pages-product-list", + "chunks": [ + "retail-react-app-app-pages-product-list" + ], + "assets": [ + { + "name": "retail-react-app-app-pages-product-list.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-account-wishlist": { + "name": "retail-react-app-app-pages-account-wishlist", + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "retail-react-app-app-pages-account-wishlist" + ], + "assets": [ + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, + { + "name": "retail-react-app-app-pages-account-wishlist.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 3, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "retail-react-app-app-pages-page-not-found": { + "name": "retail-react-app-app-pages-page-not-found", + "chunks": [ + "retail-react-app-app-pages-page-not-found" + ], + "assets": [ + { + "name": "retail-react-app-app-pages-page-not-found.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 1, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + } + }, + "generator": "loadable-components", + "chunks": [ + { + "id": "main", + "files": [ + "main.js", + "main.20d98fa36e705b25c0a4.hot-update.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_de-DE_json", + "files": [ + "template-retail-react-app_app_translations_compiled_de-DE_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-GB_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-GB_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-US_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-US_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-XB_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-XB_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_es-MX_json", + "files": [ + "template-retail-react-app_app_translations_compiled_es-MX_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_fr-FR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_fr-FR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_it-IT_json", + "files": [ + "template-retail-react-app_app_translations_compiled_it-IT_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_ja-JP_json", + "files": [ + "template-retail-react-app_app_translations_compiled_ja-JP_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_ko-KR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_ko-KR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_pt-BR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_pt-BR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_zh-CN_json", + "files": [ + "template-retail-react-app_app_translations_compiled_zh-CN_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_zh-TW_json", + "files": [ + "template-retail-react-app_app_translations_compiled_zh-TW_json.js" + ] + }, + { + "id": "_cc12", + "files": [ + "_cc12.js" + ] + }, + { + "id": "_8dba", + "files": [ + "_8dba.js" + ] + }, + { + "id": "pages-home", + "files": [ + "pages-home.js" + ] + }, + { + "id": "retail-react-app-app-pages-login", + "files": [ + "retail-react-app-app-pages-login.js" + ] + }, + { + "id": "retail-react-app-app-pages-registration", + "files": [ + "retail-react-app-app-pages-registration.js" + ] + }, + { + "id": "retail-react-app-app-pages-reset-password", + "files": [ + "retail-react-app-app-pages-reset-password.js" + ] + }, + { + "id": "retail-react-app-app-pages-account", + "files": [ + "retail-react-app-app-pages-account.js" + ] + }, + { + "id": "retail-react-app-app-pages-cart", + "files": [ + "retail-react-app-app-pages-cart.js" + ] + }, + { + "id": "retail-react-app-app-pages-checkout", + "files": [ + "retail-react-app-app-pages-checkout.js" + ] + }, + { + "id": "retail-react-app-app-pages-checkout-confirmation", + "files": [ + "retail-react-app-app-pages-checkout-confirmation.js" + ] + }, + { + "id": "retail-react-app-app-pages-login-redirect", + "files": [ + "retail-react-app-app-pages-login-redirect.js" + ] + }, + { + "id": "pages-product-detail", + "files": [ + "pages-product-detail.js" + ] + }, + { + "id": "retail-react-app-app-pages-product-list", + "files": [ + "retail-react-app-app-pages-product-list.js" + ] + }, + { + "id": "retail-react-app-app-pages-account-wishlist", + "files": [ + "retail-react-app-app-pages-account-wishlist.js" + ] + }, + { + "id": "retail-react-app-app-pages-page-not-found", + "files": [ + "retail-react-app-app-pages-page-not-found.js" + ] + }, + { + "id": "vendor", + "files": [ + "vendor.js" + ] + }, + { + "id": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "files": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + ] + }, + { + "id": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "files": [ + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + ] + }, + { + "id": "template-retail-react-app_app_components_order-summary_index_jsx", + "files": [ + "template-retail-react-app_app_components_order-summary_index_jsx.js" + ] + }, + { + "id": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "files": [ + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" ] } ] diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index 7966a0917e..958ba7c911 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -84,7 +84,7 @@ const Header = ({ // const customer = useCustomer() // const navigate = useNavigation() - // const {isOpen, onClose, onOpen} = useDisclosure() + const {isOpen, onClose, onOpen} = useDisclosure() const [isDesktop] = useMediaQuery('(min-width: 992px)') const [showLoading, setShowLoading] = useState(false) diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx index 8a3ba0ee47..04fb81531f 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx @@ -17,20 +17,98 @@ import loadable from '@loadable/component' import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' // Components +import {Skeleton} from '@chakra-ui/react' import {configureRoutes} from 'retail-react-app/app/utils/routes-utils' -const fallback = () => (
spinner
) +const fallback = // Pages -// import Home from './pages/home' const Home = loadable(() => import('./pages/home'), {fallback}) +const Login = loadable(() => import('retail-react-app/app/pages/login'), {fallback}) +const Registration = loadable(() => import('retail-react-app/app/pages/registration'), {fallback}) +const ResetPassword = loadable(() => import('retail-react-app/app/pages/reset-password'), { + fallback, +}) +const Account = loadable(() => import('retail-react-app/app/pages/account'), {fallback}) +const Cart = loadable(() => import('retail-react-app/app/pages/cart'), {fallback}) +const Checkout = loadable(() => import('retail-react-app/app/pages/checkout'), {fallback}) +const CheckoutConfirmation = loadable( + () => import('retail-react-app/app/pages/checkout/confirmation'), + {fallback} +) +const LoginRedirect = loadable(() => import('retail-react-app/app/pages/login-redirect'), { + fallback, +}) +const ProductDetail = loadable(() => import('./pages/product-detail'), {fallback}) +const ProductList = loadable(() => import('retail-react-app/app/pages/product-list'), {fallback}) +const Wishlist = loadable(() => import('retail-react-app/app/pages/account/wishlist'), {fallback}) +const PageNotFound = loadable(() => import('retail-react-app/app/pages/page-not-found')) const routes = [ { path: '/', component: Home, exact: true, - } + }, + { + path: '/login', + component: Login, + exact: true, + }, + { + path: '/registration', + component: Registration, + exact: true, + }, + { + path: '/reset-password', + component: ResetPassword, + exact: true, + }, + { + path: '/account', + component: Account, + }, + { + path: '/checkout', + component: Checkout, + exact: true, + }, + { + path: '/checkout/confirmation', + component: CheckoutConfirmation, + exact: true, + }, + { + path: '/callback', + component: LoginRedirect, + exact: true, + }, + { + path: '/cart', + component: Cart, + exact: true, + }, + { + path: '/product/:productId', + component: ProductDetail, + }, + { + path: '/search', + component: ProductList, + }, + { + path: '/category/:categoryId', + component: ProductList, + }, + { + path: '/account/wishlist', + component: Wishlist, + }, + { + path: '*', + component: PageNotFound, + }, ] export default () => { From 02ce741ceac2d15b9eef860b43e01571ccff6554 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 3 Jan 2023 14:00:17 -0700 Subject: [PATCH 011/263] fix broken header menu state --- .../build/loadable-stats.json | 66 ++++++++--- .../app/components/list-menu/index.jsx | 105 +++++++++--------- 2 files changed, 103 insertions(+), 68 deletions(-) diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index ab8a6395d4..d8510d22cf 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,12 +1,12 @@ { "name": "client", - "hash": "6efb697b21b0c365ae0e", + "hash": "10d7e985c298abd2c00f", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ "main.js", - "main.20d98fa36e705b25c0a4.hot-update.js" + "main.c28e8bb8dbc408c71db4.hot-update.js" ], "pages-home": [ "pages-home.js" @@ -39,7 +39,8 @@ "pages-product-detail.js" ], "retail-react-app-app-pages-product-list": [ - "retail-react-app-app-pages-product-list.js" + "retail-react-app-app-pages-product-list.js", + "retail-react-app-app-pages-product-list.c28e8bb8dbc408c71db4.hot-update.js" ], "retail-react-app-app-pages-account-wishlist": [ "retail-react-app-app-pages-account-wishlist.js" @@ -82,7 +83,7 @@ { "type": "asset", "name": "main.js", - "size": 1106116, + "size": 1103074, "emitted": false, "comparedForEmit": false, "cached": true, @@ -157,7 +158,7 @@ { "type": "asset", "name": "retail-react-app-app-pages-product-list.js", - "size": 117328, + "size": 120164, "emitted": false, "comparedForEmit": false, "cached": true, @@ -297,7 +298,7 @@ { "type": "asset", "name": "pages-home.js", - "size": 48733, + "size": 49035, "emitted": false, "comparedForEmit": false, "cached": true, @@ -601,17 +602,17 @@ }, { "type": "asset", - "name": "main.20d98fa36e705b25c0a4.hot-update.js", - "size": 24235, + "name": "main.c28e8bb8dbc408c71db4.hot-update.js", + "size": 16762, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "hotModuleReplacement": true, "immutable": true, - "fullhash": "20d98fa36e705b25c0a4", + "fullhash": "c28e8bb8dbc408c71db4", "related": { - "sourceMap": "main.20d98fa36e705b25c0a4.hot-update.js.map" + "sourceMap": "main.c28e8bb8dbc408c71db4.hot-update.js.map" } }, "chunkNames": [ @@ -751,6 +752,33 @@ ], "auxiliaryChunks": [] }, + { + "type": "asset", + "name": "retail-react-app-app-pages-product-list.c28e8bb8dbc408c71db4.hot-update.js", + "size": 3047, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "c28e8bb8dbc408c71db4", + "related": { + "sourceMap": "retail-react-app-app-pages-product-list.c28e8bb8dbc408c71db4.hot-update.js.map" + } + }, + "chunkNames": [ + "retail-react-app-app-pages-product-list" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "retail-react-app-app-pages-product-list" + ], + "auxiliaryChunks": [] + }, { "type": "asset", "name": "pages-product-detail.js", @@ -824,15 +852,15 @@ }, { "type": "asset", - "name": "main.20d98fa36e705b25c0a4.hot-update.json", - "size": 28, + "name": "main.c28e8bb8dbc408c71db4.hot-update.json", + "size": 70, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "hotModuleReplacement": true, "immutable": true, - "fullhash": "20d98fa36e705b25c0a4" + "fullhash": "c28e8bb8dbc408c71db4" }, "chunkNames": [], "chunkIdHints": [], @@ -857,7 +885,7 @@ "name": "main.js" }, { - "name": "main.20d98fa36e705b25c0a4.hot-update.js" + "name": "main.c28e8bb8dbc408c71db4.hot-update.js" } ], "filteredAssets": 0, @@ -1109,11 +1137,14 @@ "assets": [ { "name": "retail-react-app-app-pages-product-list.js" + }, + { + "name": "retail-react-app-app-pages-product-list.c28e8bb8dbc408c71db4.hot-update.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 2, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1167,7 +1198,7 @@ "id": "main", "files": [ "main.js", - "main.20d98fa36e705b25c0a4.hot-update.js" + "main.c28e8bb8dbc408c71db4.hot-update.js" ] }, { @@ -1317,7 +1348,8 @@ { "id": "retail-react-app-app-pages-product-list", "files": [ - "retail-react-app-app-pages-product-list.js" + "retail-react-app-app-pages-product-list.js", + "retail-react-app-app-pages-product-list.c28e8bb8dbc408c71db4.hot-update.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx index 45915d4a2b..96495a6413 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx @@ -5,12 +5,11 @@ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import React, {Fragment, useRef, forwardRef, useState, useEffect} from 'react' +import React, {Fragment, useRef, forwardRef} from 'react' import PropTypes from 'prop-types' -// import {useIntl} from 'react-intl' +import {useIntl} from 'react-intl' import {Link as RouteLink} from 'react-router-dom' import omit from 'lodash/omit' -import {useCategories} from 'retail-react-app/app/hooks/use-categories' // Project Components import LinksList from 'retail-react-app/app/components/links-list' @@ -50,7 +49,7 @@ const ChevronIconTrigger = forwardRef(function ChevronIconTrigger(props, ref) { const ListMenuTrigger = ({item, name, isOpen, onOpen, onClose, hasItems}) => { const theme = useTheme() - // const {baseStyle} = theme.components.ListMenu + const {baseStyle} = theme.components.ListMenu const keyMap = { Escape: () => onClose(), @@ -58,8 +57,16 @@ const ListMenuTrigger = ({item, name, isOpen, onOpen, onClose, hasItems}) => { } return ( - - + + {name} @@ -71,14 +78,13 @@ const ListMenuTrigger = ({item, name, isOpen, onOpen, onClose, hasItems}) => { onKeyDown={(e) => { keyMap[e.key]?.(e) }} + {...baseStyle.listMenuTriggerLinkIcon} > - + )} - - {!hasItems && !item.loaded && } ) } @@ -93,13 +99,13 @@ ListMenuTrigger.propTypes = { const ListMenuContent = ({maxColumns, items, itemsKey, onClose, initialFocusRef}) => { const theme = useTheme() - // const {baseStyle} = theme.components.ListMenu - // const {locale} = useIntl() + const {baseStyle} = theme.components.ListMenu + const {locale} = useIntl() return ( - + - + { const {name} = item return { - href: categoryUrlBuilder(item, 'en-GB'), + href: categoryUrlBuilder(item, locale), text: name, styles: { fontSize: 'md', @@ -155,30 +161,21 @@ const ListMenuContent = ({maxColumns, items, itemsKey, onClose, initialFocusRef} ListMenuContent.propTypes = { items: PropTypes.array, maxColumns: PropTypes.number, + itemsKey: PropTypes.string, onClose: PropTypes.func, initialFocusRef: PropTypes.object, } -const ListMenuPopover = ({items, item, name, maxColumns}) => { +const ListMenuPopover = ({items, item, name, itemsKey, maxColumns}) => { const initialFocusRef = useRef() - const {root, itemsKey, setRoot, findFirst} = useCategories() const {isOpen, onClose, onOpen} = useDisclosure() - - const _onOpen = () => { - console.log('~_onOpen()') - // setRoot({ - // ...root, - // [itemsKey]: - // }) - onOpen() - } return ( { item={item} name={name} isOpen={isOpen} - onOpen={_onOpen} + onOpen={onOpen} onClose={onClose} hasItems={!!items} /> @@ -221,34 +218,36 @@ ListMenuPopover.propTypes = { * The submenus are open when the user moves the mouse over the trigger and for A11y when * users use the keyboard Tab key to focus over the chevron icon and press Enter. * + * @param root The root category in your commerce cloud back-end. * @param maxColumns The maximum number of columns that we want to use per row inside the ListMenu. */ -const ListMenu = ({maxColumns = MAXIMUM_NUMBER_COLUMNS}) => { - const {root, setRoot, findFirst, itemsKey} = useCategories() +const ListMenu = ({root, maxColumns = MAXIMUM_NUMBER_COLUMNS}) => { const theme = useTheme() - // const {baseStyle} = theme.components.ListMenu + const {baseStyle} = theme.components.ListMenu + + const itemsKey = 'categories' + const items = root ? root[itemsKey] : false + return (
- {/* {productSearchResult && ( -
- // {intl.formatMessage({ - // defaultMessage: 'Read docs', - // id: 'home.link.read_docs', - // })} - // - // ), - // } - // )} - > - - - -
- )} */} + {productSearchResult && ( +
+ // {intl.formatMessage({ + // defaultMessage: 'Read docs', + // id: 'home.link.read_docs', + // })} + // + // ), + // } + // )} + > + + + +
+ )}
{
- {/*
- <> - {intl.formatMessage({ - defaultMessage: 'Contact our support staff.', - id: 'home.description.here_to_help', - })} - -
+
- {intl.formatMessage({ - defaultMessage: 'They will get you to the right place.', - id: 'home.description.here_to_help_line_2', - })} + <> + {intl.formatMessage({ + defaultMessage: 'Contact our support staff.', + id: 'home.description.here_to_help', + })} + +
+ <> + {intl.formatMessage({ + defaultMessage: 'They will get you to the right place.', + id: 'home.description.here_to_help_line_2', + })} + - - } - actions={ - - } - maxWidth={'xl'} - /> */} + } + actions={ + + } + maxWidth={'xl'} + /> ) @@ -341,321 +344,3 @@ Home.propTypes = { } export default Home - -/* - * Copyright (c) 2022, Salesforce, Inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ - -// import React, {useEffect} from 'react' -// import PropTypes from 'prop-types' -// import {useIntl, FormattedMessage} from 'react-intl' -// import {useLocation} from 'react-router-dom' - -// // Components -// import { -// Box, -// Button, -// SimpleGrid, -// HStack, -// VStack, -// Text, -// Flex, -// Stack, -// Container, -// Link, -// } from '@chakra-ui/react' - -// // Project Components -// import Hero from 'retail-react-app/app/components/hero' -// import Seo from 'retail-react-app/app/components/seo' -// import Section from 'retail-react-app/app/components/section' -// import ProductScroller from 'retail-react-app/app/components/product-scroller' - -// // Others -// import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' -// import {heroFeatures, features} from 'retail-react-app/app/pages/home/data' - -// //Hooks -// import useEinstein from 'retail-react-app/app/commerce-api/hooks/useEinstein' - -// // Constants -// import { -// MAX_CACHE_AGE, -// HOME_SHOP_PRODUCTS_CATEGORY_ID, -// HOME_SHOP_PRODUCTS_LIMIT, -// } from 'retail-react-app/app/constants' - -// /** -// * This is the home page for Retail React App. -// * The page is created for demonstration purposes. -// * The page renders SEO metadata and a few promotion -// * categories and products, data is from local file. -// */ -// const Home = ({productSearchResult, isLoading}) => { -// const intl = useIntl() -// const einstein = useEinstein() -// const {pathname} = useLocation() - -// /**************** Einstein ****************/ -// useEffect(() => { -// einstein.sendViewPage(pathname) -// }, []) - -// return ( -// -// - -// -// -// -// } -// /> - -//
-// -// {heroFeatures.map((feature, index) => { -// const featureMessage = feature.message -// return ( -// -// -// -// -// {feature.icon} -// -// -// {intl.formatMessage(featureMessage.title)} -// -// -// -// -// ) -// })} -// -//
- -// {productSearchResult && ( -//
-// {intl.formatMessage({ -// defaultMessage: 'Read docs', -// id: 'home.link.read_docs', -// })} -// -// ), -// } -// )} -// > -// -// -// -//
-// )} - -//
-// -// -// {features.map((feature, index) => { -// const featureMessage = feature.message -// return ( -// -// -// -// {feature.icon} -// -// -// {intl.formatMessage(featureMessage.title)} -// -// -// {intl.formatMessage(featureMessage.text)} -// -// -// -// ) -// })} -// -// -//
- -//
-// <> -// {intl.formatMessage({ -// defaultMessage: 'Contact our support staff.', -// id: 'home.description.here_to_help', -// })} -// -//
-// <> -// {intl.formatMessage({ -// defaultMessage: 'They will get you to the right place.', -// id: 'home.description.here_to_help_line_2', -// })} -// -// -// } -// actions={ -// -// } -// maxWidth={'xl'} -// /> -// -// ) -// } - -// Home.getTemplateName = () => 'home' - -// Home.shouldGetProps = ({previousLocation, location}) => -// !previousLocation || previousLocation.pathname !== location.pathname - -// Home.getProps = async ({res, api}) => { -// if (res) { -// res.set('Cache-Control', `max-age=${MAX_CACHE_AGE}`) -// } - -// const productSearchResult = await api.shopperSearch.productSearch({ -// parameters: { -// refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master'], -// limit: HOME_SHOP_PRODUCTS_LIMIT, -// }, -// }) - -// return {productSearchResult} -// } - -// Home.propTypes = { -// /** -// * The search result object showing all the product hits, that belong -// * in the supplied category. -// */ -// productSearchResult: PropTypes.object, -// /** -// * The current state of `getProps` when running this value is `true`, otherwise it's -// * `false`. (Provided internally) -// */ -// isLoading: PropTypes.bool, -// } - -// export default Home diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx index 04fb81531f..4b86fead91 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx @@ -39,7 +39,9 @@ const CheckoutConfirmation = loadable( const LoginRedirect = loadable(() => import('retail-react-app/app/pages/login-redirect'), { fallback, }) -const ProductDetail = loadable(() => import('./pages/product-detail'), {fallback}) +const ProductDetail = loadable(() => import('retail-react-app/app/pages/product-detail'), { + fallback, +}) const ProductList = loadable(() => import('retail-react-app/app/pages/product-list'), {fallback}) const Wishlist = loadable(() => import('retail-react-app/app/pages/account/wishlist'), {fallback}) const PageNotFound = loadable(() => import('retail-react-app/app/pages/page-not-found')) diff --git a/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.js b/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.js index 48e52b137c..40a1faad8f 100644 --- a/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.js +++ b/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.js @@ -21,7 +21,7 @@ import { ModalContent, ModalOverlay, Stack, - useBreakpointValue + useBreakpointValue, } from '@chakra-ui/react' import useBasket from '../commerce-api/hooks/useBasket' import Link from '../components/link' @@ -46,7 +46,7 @@ export const AddToCartModalProvider = ({children}) => { ) } AddToCartModalProvider.propTypes = { - children: PropTypes.node.isRequired + children: PropTypes.node.isRequired, } /** @@ -67,7 +67,7 @@ export const AddToCartModal = () => { const lineItemPrice = productItems?.find((item) => item.productId === id)?.basePrice * quantity const image = findImageGroupBy(product.imageGroups, { viewType: 'small', - selectedVariationAttributes: variationValues + selectedVariationAttributes: variationValues, })?.images?.[0] return ( @@ -85,7 +85,7 @@ export const AddToCartModal = () => { { defaultMessage: '{quantity} {quantity, plural, one {item} other {items}} added to cart', - id: 'add_to_cart_modal.info.added_to_cart' + id: 'add_to_cart_modal.info.added_to_cart', }, {quantity} )} @@ -126,7 +126,7 @@ export const AddToCartModal = () => { {intl.formatMessage({ defaultMessage: 'Qty', - id: 'add_to_cart_modal.label.quantity' + id: 'add_to_cart_modal.label.quantity', })} : {quantity} @@ -138,7 +138,7 @@ export const AddToCartModal = () => { {!!lineItemPrice && intl.formatNumber(lineItemPrice, { style: 'currency', - currency: currency + currency: currency, })} @@ -155,7 +155,7 @@ export const AddToCartModal = () => { { defaultMessage: 'Cart Subtotal ({itemAccumulatedCount} item)', - id: 'add_to_cart_modal.label.cart_subtotal' + id: 'add_to_cart_modal.label.cart_subtotal', }, {itemAccumulatedCount} )} @@ -164,7 +164,7 @@ export const AddToCartModal = () => { {productSubTotal && intl.formatNumber(productSubTotal, { style: 'currency', - currency: currency + currency: currency, })} @@ -172,7 +172,7 @@ export const AddToCartModal = () => { @@ -185,7 +185,7 @@ export const AddToCartModal = () => { > {intl.formatMessage({ defaultMessage: 'Proceed to Checkout', - id: 'add_to_cart_modal.link.checkout' + id: 'add_to_cart_modal.link.checkout', })} @@ -214,22 +214,22 @@ export const AddToCartModal = () => { AddToCartModal.propTypes = { product: PropTypes.shape({ name: PropTypes.string, - imageGroups: PropTypes.array + imageGroups: PropTypes.array, }), variant: PropTypes.shape({ productId: PropTypes.string, - variationValues: PropTypes.object + variationValues: PropTypes.object, }), quantity: PropTypes.number, isOpen: PropTypes.bool, onClose: PropTypes.func, - children: PropTypes.any + children: PropTypes.any, } export const useAddToCartModal = () => { const [state, setState] = useState({ isOpen: false, - data: null + data: null, }) const {pathname} = useLocation() @@ -237,7 +237,7 @@ export const useAddToCartModal = () => { if (state.isOpen) { setState({ ...state, - isOpen: false + isOpen: false, }) } }, [pathname]) @@ -248,14 +248,14 @@ export const useAddToCartModal = () => { onOpen: (data) => { setState({ isOpen: true, - data + data, }) }, onClose: () => { setState({ isOpen: false, - data: null + data: null, }) - } + }, } } diff --git a/packages/template-retail-react-app/app/partials/product-view/index.jsx b/packages/template-retail-react-app/app/partials/product-view/index.jsx index 067493c27a..3f36dd715b 100644 --- a/packages/template-retail-react-app/app/partials/product-view/index.jsx +++ b/packages/template-retail-react-app/app/partials/product-view/index.jsx @@ -25,6 +25,7 @@ import {useCurrency} from '../../hooks' import {Skeleton as ImageGallerySkeleton} from '../../components/image-gallery' import {HideOnDesktop, HideOnMobile} from '../../components/responsive' import QuantityPicker from '../../components/quantity-picker' +import {noop} from '../../utils/utils' const ProductViewHeader = ({name, price, currency, category}) => { const intl = useIntl() @@ -47,7 +48,7 @@ const ProductViewHeader = ({name, price, currency, category}) => { {intl.formatNumber(price, { style: 'currency', - currency: currency || activeCurrency + currency: currency || activeCurrency, })} @@ -59,7 +60,7 @@ ProductViewHeader.propTypes = { name: PropTypes.string, price: PropTypes.number, currency: PropTypes.string, - category: PropTypes.array + category: PropTypes.array, } const ButtonWithRegistration = withRegistration(Button) @@ -78,16 +79,16 @@ const ProductView = ({ updateCart, addToWishlist, updateWishlist, - isProductLoading + isProductLoading, }) => { const intl = useIntl() const history = useHistory() const location = useLocation() - const { - isOpen: isAddToCartModalOpen, - onOpen: onAddToCartModalOpen, - onClose: onAddToCartModalClose - } = useAddToCartModalContext() + const cartModalContext = useAddToCartModalContext() + const isOpen = cartModalContext?.isOpen ?? false + const onOpen = cartModalContext?.onOpen ?? noop + const onClose = cartModalContext?.onClose ?? noop + const theme = useTheme() const [showOptionsMessage, toggleShowOptionsMessage] = useState(false) const { @@ -101,7 +102,7 @@ const ProductView = ({ variationParams, variationAttributes, stockLevel, - stepQuantity + stepQuantity, } = useProduct(product) const canAddToWishlist = !isProductLoading const canOrder = @@ -124,7 +125,7 @@ const ProductView = ({ return } await addToCart(variant, quantity) - onAddToCartModalOpen({product, quantity}) + onOpen({product, quantity}) } const handleWishlistItem = async () => { @@ -149,11 +150,11 @@ const ProductView = ({ {updateCart ? intl.formatMessage({ defaultMessage: 'Update', - id: 'product_view.button.update' + id: 'product_view.button.update', }) : intl.formatMessage({ defaultMessage: 'Add to Cart', - id: 'product_view.button.add_to_cart' + id: 'product_view.button.add_to_cart', })} ) @@ -173,11 +174,11 @@ const ProductView = ({ {updateWishlist ? intl.formatMessage({ defaultMessage: 'Update', - id: 'product_view.button.update' + id: 'product_view.button.update', }) : intl.formatMessage({ defaultMessage: 'Add to Wishlist', - id: 'product_view.button.add_to_wishlist' + id: 'product_view.button.add_to_wishlist', })} ) @@ -187,8 +188,8 @@ const ProductView = ({ } useEffect(() => { - if (isAddToCartModalOpen) { - onAddToCartModalClose() + if (isOpen) { + onClose() } }, [location.pathname]) @@ -224,7 +225,7 @@ const ProductView = ({ {intl.formatMessage({ defaultMessage: 'See full details', - id: 'product_view.link.full_details' + id: 'product_view.link.full_details', })} @@ -270,7 +271,7 @@ const ProductView = ({ id, name, selectedValue, - values = [] + values = [], } = variationAttribute return ( @@ -324,7 +327,7 @@ const ProductView = ({ @@ -365,7 +368,7 @@ const ProductView = ({ {intl.formatMessage({ - defaultMessage: 'Please select all your options above' + defaultMessage: 'Please select all your options above', })} @@ -377,7 +380,7 @@ const ProductView = ({ {intl.formatMessage({ defaultMessage: 'See full details', - id: 'product_view.link.full_details' + id: 'product_view.link.full_details', })} @@ -427,7 +430,7 @@ ProductView.propTypes = { updateCart: PropTypes.func, updateWishlist: PropTypes.func, showFullLink: PropTypes.bool, - imageSize: PropTypes.oneOf(['sm', 'md']) + imageSize: PropTypes.oneOf(['sm', 'md']), } export default ProductView From 1f8aa325044bbd74bd4a54dc5c8536ea20d3ff6e Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 10 Jan 2023 09:46:23 -0700 Subject: [PATCH 016/263] remove product detail page override --- .../app/pages/product-detail/index.jsx | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx deleted file mode 100644 index 6e1c7a0563..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/product-detail/index.jsx +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2022, Salesforce, Inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ - -import React from 'react' - -/** - * This is the home page for Retail React App. - * The page is created for demonstration purposes. - * The page renders SEO metadata and a few promotion - * categories and products, data is from local file. - */ -const ProductDetail = () => { - return
This is my new product detail
-} - -ProductDetail.getTemplateName = () => 'product detail' - - -ProductDetail.propTypes = {} - -export default ProductDetail From cc1a2fa39c29c48eba69632c54fab3eca64a1517 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 12 Jan 2023 18:01:50 -0700 Subject: [PATCH 017/263] Make overrideables (files like `_app-config`, `_app` etc. dynamic) + reduce filesystem lookups for performance --- packages/pwa-kit-dev/package.json | 1 - .../pwa-kit-dev/src/configs/webpack/config.js | 30 ++-- .../src/configs/webpack/plugins.js | 130 +++++------------- .../build/loadable-stats.json | 61 +------- .../package-lock.json | 13 -- 5 files changed, 56 insertions(+), 179 deletions(-) diff --git a/packages/pwa-kit-dev/package.json b/packages/pwa-kit-dev/package.json index 372402f1e6..480bd09cfb 100644 --- a/packages/pwa-kit-dev/package.json +++ b/packages/pwa-kit-dev/package.json @@ -74,7 +74,6 @@ "eslint-plugin-prettier": "3.0.1", "eslint-plugin-react": "7.24.0", "express": "^4.17.1", - "fast-glob": "^3.2.12", "fs-extra": "^10.1.0", "git-rev-sync": "^3.0.1", "glob": "7.1.1", diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 1c56684155..b637318cf2 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -10,6 +10,7 @@ // For more information on these settings, see https://webpack.js.org/configuration import fs from 'fs' import path, {resolve} from 'path' +import glob from 'glob' import webpack from 'webpack' import WebpackNotifierPlugin from 'webpack-notifier' @@ -78,15 +79,18 @@ const findInProjectThenSDK = (pkg) => { return fs.existsSync(projectPath) ? projectPath : resolve(sdkDir, 'node_modules', pkg) } -const findInProjectThenExtends = (pkg) => { +const findInProjectThenExtendsThenSDK = (pkg) => { const projectPath = resolve(projectDir, 'node_modules', pkg) - if (fs.existsSync(projectPath)) { + const projectFile = glob.sync(projectPath) + if (projectFile?.length) { return projectPath } - const extendsPath = resolve(projectDir, 'node_modules', pkg?.extends) - return fs.existsSync(extendsPath) - ? extendsPath - : resolve(projectPath, 'node_modules', pkg?.extends) + const extendPath = resolve(projectDir, 'node_modules', pkg?.extends) + const extendFile = glob.sync(extendPath) + if (extendFile?.length) { + return extendPath + } + return resolve(sdkDir, 'node_modules', pkg) } const baseConfig = (target) => { @@ -153,12 +157,14 @@ const baseConfig = (target) => { // TODO: these need to be declared in package.json as peerDependencies ? // https://salesforce-internal.slack.com/archives/C0DKK1FJS/p1672939909212589 - 'react-intl': findInProjectThenExtends('react-intl'), - '@chakra-ui/icons': findInProjectThenExtends('@chakra-ui/icons'), - '@chakra-ui/react': findInProjectThenExtends('@chakra-ui/react'), - '@chakra-ui/skip-nav': findInProjectThenExtends('@chakra-ui/skip-nav'), - '@emotion/react': findInProjectThenExtends('@emotion/react'), - '@emotion/styled': findInProjectThenExtends('@emotion/styled') + 'react-intl': findInProjectThenExtendsThenSDK('react-intl'), + '@chakra-ui/icons': findInProjectThenExtendsThenSDK('@chakra-ui/icons'), + '@chakra-ui/react': findInProjectThenExtendsThenSDK('@chakra-ui/react'), + '@chakra-ui/skip-nav': findInProjectThenExtendsThenSDK( + '@chakra-ui/skip-nav' + ), + '@emotion/react': findInProjectThenExtendsThenSDK('@emotion/react'), + '@emotion/styled': findInProjectThenExtendsThenSDK('@emotion/styled') }, ...(target === 'web' ? {fallback: {crypto: false}} : {}) }, diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 5dca856036..bc538042bb 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -8,26 +8,38 @@ import webpack from 'webpack' import path, {resolve} from 'path' import fs from 'fs' -import fg from 'fast-glob' +import glob from 'glob' const projectDir = process.cwd() const pkg = require(resolve(projectDir, 'package.json')) const getOverridePath = (path) => { - const arr = [] - // order matters here, we perform look ups starting with the first - // override alias, falling back to the default if none are found + const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : '' + // order matters here, we perform look ups starting in the following order: + // pkg.mobify.overridesDir => pkg.mobify.extends => current projectDir if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { - const first = resolve(projectDir, pkg?.mobify?.overridesDir, ...path) - console.log('~first', first) - if (first) return first - const second = resolve(projectDir, extendPath, ...path) - console.log('~second', second) - if (second) return second + const overrideFile = glob.sync( + `${projectDir}${resolve( + projectDir, + pkg?.mobify?.overridesDir, + ...path + )}.+(js|jsx|ts|tsx)` + ) + if (overrideFile?.length) { + return overrideFile?.[0] + } + const extendFile = glob.sync( + `${projectDir}${resolve(projectDir, extendPath, ...path)}.+(js|jsx|ts|tsx)` + ) + if (extendFile?.length) { + return extendFile?.[0] + } } - const ret = resolve(projectDir, extendPath, ...path) - console.log('~ret', ret) - return ret + const generatedProjectOverride = glob.sync( + `${projectDir}${resolve(projectDir, ...path)}.+(js|jsx|ts|tsx)` + ) + + return generatedProjectOverride?.length ? generatedProjectOverride?.[0] : null } /** @@ -52,93 +64,29 @@ export const sdkReplacementPlugin = (projectDir) => { const overridables = [ { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app-config$'), - // newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index'), - // newPath: resolve(projectDir, extendPath, 'app', 'components', '_app-config', 'index') - // TODO: this needs to be dynamic - newPath: fs.existsSync( - `${projectDir}/pwa-kit/overrides/app/components/_app-config/index.jsx` - ) - ? resolve( - projectDir, - 'pwa-kit', - 'overrides', - 'app', - 'components', - '_app-config', - 'index' - ) - : resolve(projectDir, extendPath, 'app', 'components', '_app-config', 'index') + newPath: getOverridePath(['app', 'components', '_app-config', 'index']) }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_document$'), - newPath: resolve(projectDir, extendPath, 'app', 'components', '_document', 'index') + newPath: getOverridePath(['app', 'components', '_document', 'index']) }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_app$'), - // newPath: resolve(projectDir, 'app', 'components', '_app', 'index'), - // newPath: resolve(projectDir, extendPath, 'app', 'components', '_app', 'index') - - // @TODO: pwa-kit/overrides needs to be dynamic here - newPath: fs.existsSync(`${projectDir}/pwa-kit/overrides/app/components/_app/index.jsx`) - ? resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'components', '_app', 'index') - : resolve(projectDir, extendPath, 'app', 'components', '_app', 'index') + newPath: getOverridePath(['app', 'components', '_app', 'index']) }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/components/_error$'), - // newPath: resolve(projectDir, 'app', 'components', '_error', 'index'), - newPath: resolve(projectDir, extendPath, 'app', 'components', '_error', 'index') + newPath: getOverridePath(['app', 'components', '_error', 'index']) }, { path: makeRegExp('pwa-kit-react-sdk(/dist)?/ssr/universal/routes$'), - // newPath: resolve(projectDir, 'app', 'routes') - // newPath: resolve(projectDir, extendPath, 'app', 'routes') - newPath: fs.existsSync(`${projectDir}/pwa-kit/overrides/app/routes.jsx`) - ? resolve(projectDir, 'pwa-kit', 'overrides', 'app', 'routes') - : resolve(projectDir, extendPath, 'app', 'routes') + newPath: getOverridePath(['app', 'routes']) } ] - if (pkg?.mobify?.extends && pkg?.mobify?.overridesDir) { - overridables.push({ - // path: makeRegExp('app$'), - // @TODO: this should alias by npm package name (`retail-react-app`) - // but instead looks up `template-retail-react-app` - path: makeRegExp(`${pkg?.mobify?.extends}/app$`), - newPath: resolve(projectDir, 'app', 'components', '_app-config', 'index') - // newPath: getOverridePath(['app']) - }) - } - const extensions = ['.ts', '.tsx', '.js', '.jsx'] - - const replacements = [] - overridables.forEach(({path, newPath}) => { - console.log('~overrideable path', path) - console.log('~overrideable newPath', newPath) - extensions.forEach((ext) => { - const replacement = newPath + ext - if (fs.existsSync(replacement)) { - // // newPath can be an array for cascading file search, search the array - // if (Array.isArray(newPath)) { - // let found = false - // newPath.forEach((_newPath) => { - // if (fs.existsSync(_newPath) && !found) { - // found = true - // newPath = _newPath - // } - // }) - // } - replacements.push({path, newPath: replacement}) - } - }) - }) - + const replacements = overridables?.filter?.((item) => item?.newPath) console.log('~replacements', replacements) - // @TODO: this is currently running on every single resource that webpack loads - // which is deoptimized, the regex `/.*/` currently matches all files and then - // has an O(n) complexity tax that compares each file to as many file names - // as are found in the `overrideables` array - return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) @@ -163,32 +111,20 @@ const templateAppPathRegex = makeRegExp( export const extendedTemplateReplacementPlugin = (projectDir) => { const extendPath = `${projectDir}/node_modules/${pkg?.mobify?.extends}` - const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.{js,jsx,ts,tsx}` - console.log('~globPattern', globPattern) - const overridesMap = fg.sync([ - // `/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx` - globPattern - ]) - // TODO: make this agnostic of file extension by replacing `.jsx` in the split here with `.{js,jsx,ts,tsx}` - // overridesMap = overridesMap.map((item) => item.split('.')?.[0]) - + const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` + const overridesMap = glob.sync(globPattern) console.log('~overridesMap', overridesMap) return new webpack.NormalModuleReplacementPlugin(templateAppPathRegex, (resource) => { const requestedFile = path.resolve(resource.context, resource.request) console.log('~requestedFile', requestedFile) const found = overridesMap?.filter((override) => { - // console.log('~requestedFile?.match?.(override)', requestedFile?.match?.(override)) return requestedFile?.match?.(override)?.length }) - // console.log('~found', JSON.stringify(found)) if (!found?.length) { - // console.log('~!NOT FOUND requestedFile', requestedFile) const relativePath = requestedFile?.split?.(pkg?.mobify?.overridesDir)?.[1] - // console.log('~relativePath', relativePath) if (!relativePath) return const newPath = extendPath + relativePath - // console.log('~newPath', newPath) resource.request = newPath return } else { diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 3fcc2e42a6..c17cb0ea5a 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,12 +1,11 @@ { "name": "client", - "hash": "de5e604529ae26f3691c", + "hash": "f4321b93911023444699", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ - "main.js", - "main.53c56c1eb3679d2df75d.hot-update.js" + "main.js" ], "pages-home": [ "pages-home.js" @@ -82,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1145583, + "size": 1140443, "emitted": false, "comparedForEmit": false, "cached": true, @@ -622,33 +621,6 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "main.53c56c1eb3679d2df75d.hot-update.js", - "size": 24207, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "hotModuleReplacement": true, - "immutable": true, - "fullhash": "53c56c1eb3679d2df75d", - "related": { - "sourceMap": "main.53c56c1eb3679d2df75d.hot-update.js.map" - } - }, - "chunkNames": [ - "main" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "main" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "retail-react-app-app-pages-product-detail.js", @@ -844,25 +816,6 @@ "_cc12" ], "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "main.53c56c1eb3679d2df75d.hot-update.json", - "size": 28, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "hotModuleReplacement": true, - "immutable": true, - "fullhash": "53c56c1eb3679d2df75d" - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [], - "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -878,14 +831,11 @@ }, { "name": "main.js" - }, - { - "name": "main.53c56c1eb3679d2df75d.hot-update.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 3, + "filteredAuxiliaryAssets": 2, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1201,8 +1151,7 @@ { "id": "main", "files": [ - "main.js", - "main.53c56c1eb3679d2df75d.hot-update.js" + "main.js" ] }, { diff --git a/packages/spike-extendend-retail-app/package-lock.json b/packages/spike-extendend-retail-app/package-lock.json index 924ee84080..ff480327ba 100644 --- a/packages/spike-extendend-retail-app/package-lock.json +++ b/packages/spike-extendend-retail-app/package-lock.json @@ -869,7 +869,6 @@ "@vue/compiler-core": "^3.2.23", "chalk": "^4.0.0", "commander": "8", - "fast-glob": "^3.2.7", "fs-extra": "10", "json-stable-stringify": "^1.0.1", "loud-rejection": "^2.2.0", @@ -3162,18 +3161,6 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", From d37425c2cdf6af1d06d51a8347ac52a4e5f2d221 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 31 Jan 2023 10:02:40 -0700 Subject: [PATCH 018/263] commit WIP to share --- .../src/configs/webpack/plugins.js | 86 +++++++++++++------ .../build/loadable-stats.json | 4 +- .../components/icons/{index.tsx => index.jsx} | 8 +- .../app/components/icons/index.jsx | 9 +- 4 files changed, 73 insertions(+), 34 deletions(-) rename packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/{index.tsx => index.jsx} (97%) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index bc538042bb..195aa447e8 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -42,14 +42,6 @@ const getOverridePath = (path) => { return generatedProjectOverride?.length ? generatedProjectOverride?.[0] : null } -/** - * Allows users to override special SDK components by placing override - * files in certain magic locations in a project. - * - * @param {string} projectDir - absolute path to the project root. - * @returns {webpack.NormalModuleReplacementPlugin} - */ - const makeRegExp = (str, sep = path.sep) => { // Replace unix paths with windows if needed and build a RegExp if (sep === '\\') { @@ -58,6 +50,14 @@ const makeRegExp = (str, sep = path.sep) => { return new RegExp(str) } +/** + * Allows users to override special SDK components by placing override + * files in certain magic locations in a project. + * + * @param {string} projectDir - absolute path to the project root. + * @returns {webpack.NormalModuleReplacementPlugin} + */ + export const sdkReplacementPlugin = (projectDir) => { const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : '' @@ -98,37 +98,73 @@ export const sdkReplacementPlugin = (projectDir) => { ] const requestedFromSDK = sdkPaths.some((p) => resource.context.includes(p)) - if (requestedFromSDK && replacement) { + console.log('~======= ', replacement.newPath) resource.request = replacement.newPath } }) } const templateAppPathRegex = makeRegExp( - `${projectDir + pkg?.mobify?.overridesDir}|node_modules${pkg?.mobify?.extends}` + `((.*)${pkg?.mobify?.overridesDir}(.*)|(.*)/${pkg?.mobify?.extends}(.*))` ) export const extendedTemplateReplacementPlugin = (projectDir) => { - const extendPath = `${projectDir}/node_modules/${pkg?.mobify?.extends}` + console.log('~templateAppPathRegex', templateAppPathRegex) const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` - const overridesMap = glob.sync(globPattern) + const overrides = glob.sync(globPattern) + const overridesMap = [ + ...overrides, + ...overrides?.map((item) => { + item = item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, '') + '/', '') + return item + }) + ] console.log('~overridesMap', overridesMap) - - return new webpack.NormalModuleReplacementPlugin(templateAppPathRegex, (resource) => { + const overridesRegex = makeRegExp( + `(${overridesMap?.map((override) => override?.replace?.(/^\//))?.join('|')})` + ) + console.log('~overridesRegex', overridesRegex) + return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { const requestedFile = path.resolve(resource.context, resource.request) - console.log('~requestedFile', requestedFile) - const found = overridesMap?.filter((override) => { - return requestedFile?.match?.(override)?.length - }) - if (!found?.length) { - const relativePath = requestedFile?.split?.(pkg?.mobify?.overridesDir)?.[1] - if (!relativePath) return - const newPath = extendPath + relativePath - resource.request = newPath + console.log('~requestedFile context:', resource.context) + console.log('~requestedFile request:', resource.request) + console.log('~requestedFile full path:', requestedFile) + + // from this context: + // ~requestedFile context: /Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons + // ~requestedFile request: @babel/runtime/helpers/extends + + // // if (overridables?.filter((override) => resource?.context?.match?.(override))?.length) { + // // console.log('~overr') + // // return + // // } + // const found = overridesMap?.filter((override) => { + // return requestedFile?.match?.(override)?.length + // }) + // TODO: we need to drop `template-` for this to work + if ( + requestedFile?.match?.(`/template-${pkg?.mobify?.extends}`) || + requestedFile?.match?.(`/${pkg?.mobify?.extends}`) + ) { + // TODO: rewrite this to the pkg.mobify.extends /node_modules + // currently yielding this: + // '/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/node_modules/retail-react-app/app/retail-react-app/app/pages/product-detail' + const newContext = projectDir + pkg?.mobify?.overridesDir + const newRequest = requestedFile?.split?.(`/template-${pkg?.mobify?.extends}/`)?.[1] + console.log('~!!! OVERRIDING', requestedFile) + console.log('~!!! newContext', newContext) + console.log('~!!! newRequest', newRequest) + if (newContext && newRequest) { + // resource.context = newContext + // const newreq = path.resolve(newContext, newRequest, 'index.jsx') + const newreq = + '/Users/bfeister/dev/pwa-kit/packages/template-retail-react-app/app/components/icons/index.jsx' + console.log('~newreq', newreq) + resource.request = newreq + console.log('new full path:', path.resolve(resource.context, resource.request)) + } return - } else { - console.log('~FOUND requestedFile', requestedFile) } }) } diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index c17cb0ea5a..e3f0395cb0 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "f4321b93911023444699", + "hash": "610fce5b7c58f828fbb7", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1140443, + "size": 1139592, "emitted": false, "comparedForEmit": false, "cached": true, diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx similarity index 97% rename from packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.tsx rename to packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx index e55c51eacd..aab30a93af 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.tsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx @@ -94,12 +94,12 @@ const icon = (name, passProps) => { const theme = useTheme() const baseStyle = theme?.components?.Icon?.baseStyle return ( - - - + // + // + // // TODO: for demo, this can show overrides, but highlight // that imports within the project don't respect them - // <>🎉 + <>x🎉 ) }) component.displayName = `${displayName}Icon` diff --git a/packages/template-retail-react-app/app/components/icons/index.jsx b/packages/template-retail-react-app/app/components/icons/index.jsx index 586a41663c..e413439c6e 100644 --- a/packages/template-retail-react-app/app/components/icons/index.jsx +++ b/packages/template-retail-react-app/app/components/icons/index.jsx @@ -94,9 +94,12 @@ const icon = (name, passProps) => { const theme = useTheme() const baseStyle = theme?.components?.Icon?.baseStyle return ( - - - + // + // + // + // TODO: for demo, this can show overrides, but highlight + // that imports within the project don't respect them + <>z🎉 ) }) component.displayName = `${displayName}Icon` From 91ae256234e42464d360e3f162dac567205f5738 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 2 Feb 2023 13:15:56 -0700 Subject: [PATCH 019/263] WIP algorithim for `file/path(.)(/index)(js|jsx|ts|tsx) --- .../pwa-kit-dev/src/configs/webpack/config.js | 33 +- .../src/configs/webpack/plugins.js | 38 +- .../build/loadable-stats.json | 695 ++---------------- 3 files changed, 121 insertions(+), 645 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index b637318cf2..f2f2c84478 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -20,7 +20,7 @@ import LoadablePlugin from '@loadable/webpack-plugin' import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin' import SpeedMeasurePlugin from 'speed-measure-webpack-plugin' -import {sdkReplacementPlugin, extendedTemplateReplacementPlugin} from './plugins' +import {sdkReplacementPlugin, extendedTemplateReplacementPlugin, allFiles} from './plugins' import {CLIENT, SERVER, CLIENT_OPTIONAL, SSR, REQUEST_PROCESSOR} from './config-names' const projectDir = process.cwd() @@ -93,6 +93,30 @@ const findInProjectThenExtendsThenSDK = (pkg) => { return resolve(sdkDir, 'node_modules', pkg) } +// const makeRegExp = (str, sep = path.sep) => { +// // Replace unix paths with windows if needed and build a RegExp +// if (sep === '\\') { +// str = str.replace(/\//g, '\\\\') +// } +// return new RegExp(str) +// } + +// const templateAppPathRegex = makeRegExp( +// `((.*)${pkg?.mobify?.overridesDir}(.*)|(.*)/${pkg?.mobify?.extends}(.*))` +// ) + +// console.log('~templateAppPathRegex', templateAppPathRegex) +// const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` +// const overrides = glob.sync(globPattern) +// const overridesMap = [ +// ...overrides, +// ...overrides?.map((item) => { +// item = item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, '') + '/', '') +// return item +// }) +// ] +// console.log('~overridesMap', overridesMap) + const baseConfig = (target) => { if (!['web', 'node'].includes(target)) { throw Error(`The value "${target}" is not a supported webpack target`) @@ -165,6 +189,12 @@ const baseConfig = (target) => { ), '@emotion/react': findInProjectThenExtendsThenSDK('@emotion/react'), '@emotion/styled': findInProjectThenExtendsThenSDK('@emotion/styled') + // ...overridesMap?.map?.((override) => { + // return [${override?.split?.('.')?.[0]?.replace( + // pkg?.mobify?.overridesDir, + // pkg?.mobify?.extends + // )}] : + // }) }, ...(target === 'web' ? {fallback: {crypto: false}} : {}) }, @@ -185,6 +215,7 @@ const baseConfig = (target) => { ? extendedTemplateReplacementPlugin(projectDir) : () => null, + allFiles(), // Don't chunk if it's a node target – faster Lambda startup. target === 'node' && new webpack.optimize.LimitChunkCountPlugin({maxChunks: 1}) ].filter(Boolean), diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 195aa447e8..3f8222edca 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -4,7 +4,6 @@ * SPDX-License-Identifier: BSD-3-Clause * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ - import webpack from 'webpack' import path, {resolve} from 'path' import fs from 'fs' @@ -12,6 +11,7 @@ import glob from 'glob' const projectDir = process.cwd() const pkg = require(resolve(projectDir, 'package.json')) +var minimatch = require('minimatch') const getOverridePath = (path) => { const extendPath = pkg?.mobify?.extends ? `node_modules/${pkg?.mobify?.extends}` : '' @@ -109,18 +109,45 @@ const templateAppPathRegex = makeRegExp( `((.*)${pkg?.mobify?.overridesDir}(.*)|(.*)/${pkg?.mobify?.extends}(.*))` ) +export const allFiles = (projectDir) => { + return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { + const resolved = path.resolve(resource.context, resource.request) + if (resolved.match(/icons/)) { + console.log('~resolved', resolved) + } + }) +} + export const extendedTemplateReplacementPlugin = (projectDir) => { - console.log('~templateAppPathRegex', templateAppPathRegex) + console.log('~templateAppPtsxathRegex', templateAppPathRegex) const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` const overrides = glob.sync(globPattern) const overridesMap = [ ...overrides, - ...overrides?.map((item) => { - item = item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, '') + '/', '') - return item + ...overrides?.flatMap((item) => { + item = item.split('.')?.[0] + var stripped = minimatch.makeRe(item + `*.+(js|jsx|ts|tsx)`) + const wIndex = minimatch.makeRe( + item.replace(/(\/index)\.*$/, '$1') + `*.+(js|jsx|ts|tsx)` + ) + console.log('~stripped', stripped) + console.log('~wIndex', wIndex) + // var wIndex = + // item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, ''), '') + // if (wIndex?.match(/(.*)\/$/)) { + // wIndex = wIndex.substring(0, wIndex.length - 1) + // } + // const sansIndex = + // item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, ''), '') + '$' + // console.log('~flatMap', [wIndex, sansIndex]) + + // return 'app/components/_app-config(/index).jsx' + + return [stripped, wIndex] }) ] console.log('~overridesMap', overridesMap) + // TODO: manually push a false positive e.g. chakra-ui/whatever/icons to make sure we don't override that const overridesRegex = makeRegExp( `(${overridesMap?.map((override) => override?.replace?.(/^\//))?.join('|')})` ) @@ -155,6 +182,7 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('~!!! OVERRIDING', requestedFile) console.log('~!!! newContext', newContext) console.log('~!!! newRequest', newRequest) + // if (requestedFile.match(makeRegExp('app/components/icons'))) { if (newContext && newRequest) { // resource.context = newContext // const newreq = path.resolve(newContext, newRequest, 'index.jsx') diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index e3f0395cb0..e87d630251 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "610fce5b7c58f828fbb7", + "hash": "886f0d1abafc166b8e92", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -54,7 +54,7 @@ { "type": "asset", "name": "vendor.js", - "size": 5285779, + "size": 4102322, "emitted": false, "comparedForEmit": false, "cached": true, @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1139592, + "size": 631768, "emitted": false, "comparedForEmit": false, "cached": true, @@ -105,58 +105,58 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-account.js", - "size": 169339, + "name": "pages-home.js", + "size": 57773, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-account.js.map" + "sourceMap": "pages-home.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-account" + "pages-home" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-account" + "pages-home" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-checkout.js", - "size": 155438, + "name": "retail-react-app-app-pages-checkout-confirmation.js", + "size": 40560, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-checkout.js.map" + "sourceMap": "retail-react-app-app-pages-checkout-confirmation.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-checkout" + "retail-react-app-app-pages-checkout-confirmation" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-checkout" + "retail-react-app-app-pages-checkout-confirmation" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-product-list.js", - "size": 119111, + "size": 38673, "emitted": false, "comparedForEmit": false, "cached": true, @@ -180,73 +180,33 @@ }, { "type": "asset", - "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", - "size": 78297, + "name": "retail-react-app-app-pages-product-detail.js", + "size": 23298, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js.map" + "sourceMap": "retail-react-app-app-pages-product-detail.js.map" } }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_en-XB_json.js", - "size": 68918, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_en-XB_json" + "chunkNames": [ + "retail-react-app-app-pages-product-detail" ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js", - "size": 61687, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_partials_product-view_index_jsx.js.map" - } - }, - "chunkNames": [], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "template-retail-react-app_app_partials_product-view_index_jsx" + "retail-react-app-app-pages-product-detail" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-cart.js", - "size": 61061, + "size": 20780, "emitted": false, "comparedForEmit": false, "cached": true, @@ -270,313 +230,33 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-checkout-confirmation.js", - "size": 53991, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "retail-react-app-app-pages-checkout-confirmation.js.map" - } - }, - "chunkNames": [ - "retail-react-app-app-pages-checkout-confirmation" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "retail-react-app-app-pages-checkout-confirmation" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_ja-JP_json.js", - "size": 48140, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_ja-JP_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_fr-FR_json.js", - "size": 45583, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_fr-FR_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_de-DE_json.js", - "size": 45199, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_de-DE_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", - "size": 45048, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_components_order-summary_index_jsx.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_components_order-summary_index_jsx" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_es-MX_json.js", - "size": 44920, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_es-MX_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_ko-KR_json.js", - "size": 44685, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_ko-KR_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_it-IT_json.js", - "size": 43806, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_it-IT_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_pt-BR_json.js", - "size": 43767, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_pt-BR_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_en-GB_json.js", - "size": 42943, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_en-GB_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", - "size": 42794, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_en-US_json.js", - "size": 42374, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_en-US_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_zh-TW_json.js", - "size": 42287, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_zh-TW_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "template-retail-react-app_app_translations_compiled_zh-CN_json.js", - "size": 42265, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [ - "template-retail-react-app_app_translations_compiled_zh-CN_json" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "pages-home.js", - "size": 39479, + "name": "retail-react-app-app-pages-account.js", + "size": 16895, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "pages-home.js.map" + "sourceMap": "retail-react-app-app-pages-account.js.map" } }, "chunkNames": [ - "pages-home" + "retail-react-app-app-pages-account" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "pages-home" + "retail-react-app-app-pages-account" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-account-wishlist.js", - "size": 39134, + "size": 12020, "emitted": false, "comparedForEmit": false, "cached": true, @@ -600,56 +280,33 @@ }, { "type": "asset", - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", - "size": 36367, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "retail-react-app-app-pages-product-detail.js", - "size": 23718, + "name": "retail-react-app-app-pages-checkout.js", + "size": 11497, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-product-detail.js.map" + "sourceMap": "retail-react-app-app-pages-checkout.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-product-detail" + "retail-react-app-app-pages-checkout" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-product-detail" + "retail-react-app-app-pages-checkout" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-reset-password.js", - "size": 10456, + "size": 9063, "emitted": false, "comparedForEmit": false, "cached": true, @@ -673,58 +330,58 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-login.js", - "size": 8379, + "name": "retail-react-app-app-pages-page-not-found.js", + "size": 7220, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-login.js.map" + "sourceMap": "retail-react-app-app-pages-page-not-found.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-login" + "retail-react-app-app-pages-page-not-found" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-login" + "retail-react-app-app-pages-page-not-found" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-page-not-found.js", - "size": 7774, + "name": "retail-react-app-app-pages-login.js", + "size": 6735, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-page-not-found.js.map" + "sourceMap": "retail-react-app-app-pages-login.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-page-not-found" + "retail-react-app-app-pages-login" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-page-not-found" + "retail-react-app-app-pages-login" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-registration.js", - "size": 7562, + "size": 6016, "emitted": false, "comparedForEmit": false, "cached": true, @@ -749,7 +406,7 @@ { "type": "asset", "name": "retail-react-app-app-pages-login-redirect.js", - "size": 3060, + "size": 3112, "emitted": false, "comparedForEmit": false, "cached": true, @@ -770,52 +427,6 @@ "retail-react-app-app-pages-login-redirect" ], "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "_8dba.js", - "size": 284, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "_8dba.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "_8dba" - ], - "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "_cc12.js", - "size": 284, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "javascriptModule": false, - "related": { - "sourceMap": "_cc12.js.map" - } - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "_cc12" - ], - "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -843,16 +454,20 @@ "pages-home": { "name": "pages-home", "chunks": [ + "vendor", "pages-home" ], "assets": [ + { + "name": "vendor.js" + }, { "name": "pages-home.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 2, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -911,44 +526,16 @@ "retail-react-app-app-pages-account": { "name": "retail-react-app-app-pages-account", "chunks": [ - "vendor", - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_partials_product-view_index_jsx", - "template-retail-react-app_app_components_order-summary_index_jsx", - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", - "retail-react-app-app-pages-account-wishlist", "retail-react-app-app-pages-account" ], "assets": [ - { - "name": "vendor.js" - }, - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - }, - { - "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" - }, - { - "name": "retail-react-app-app-pages-account-wishlist.js" - }, { "name": "retail-react-app-app-pages-account.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 8, + "filteredAuxiliaryAssets": 1, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -956,32 +543,16 @@ "retail-react-app-app-pages-cart": { "name": "retail-react-app-app-pages-cart", "chunks": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_partials_product-view_index_jsx", - "template-retail-react-app_app_components_order-summary_index_jsx", - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", "retail-react-app-app-pages-cart" ], "assets": [ - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - }, { "name": "retail-react-app-app-pages-cart.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 5, + "filteredAuxiliaryAssets": 1, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -989,32 +560,16 @@ "retail-react-app-app-pages-checkout": { "name": "retail-react-app-app-pages-checkout", "chunks": [ - "vendor", - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_components_order-summary_index_jsx", - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", "retail-react-app-app-pages-checkout" ], "assets": [ - { - "name": "vendor.js" - }, - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" - }, { "name": "retail-react-app-app-pages-checkout.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 5, + "filteredAuxiliaryAssets": 1, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1022,20 +577,16 @@ "retail-react-app-app-pages-checkout-confirmation": { "name": "retail-react-app-app-pages-checkout-confirmation", "chunks": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", "retail-react-app-app-pages-checkout-confirmation" ], "assets": [ - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, { "name": "retail-react-app-app-pages-checkout-confirmation.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 2, + "filteredAuxiliaryAssets": 1, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1060,20 +611,16 @@ "retail-react-app-app-pages-product-detail": { "name": "retail-react-app-app-pages-product-detail", "chunks": [ - "template-retail-react-app_app_partials_product-view_index_jsx", "retail-react-app-app-pages-product-detail" ], "assets": [ - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, { "name": "retail-react-app-app-pages-product-detail.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 2, + "filteredAuxiliaryAssets": 1, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1098,32 +645,16 @@ "retail-react-app-app-pages-account-wishlist": { "name": "retail-react-app-app-pages-account-wishlist", "chunks": [ - "vendor", - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "template-retail-react-app_app_partials_product-view_index_jsx", - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", "retail-react-app-app-pages-account-wishlist" ], "assets": [ - { - "name": "vendor.js" - }, - { - "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - }, - { - "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" - }, - { - "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - }, { "name": "retail-react-app-app-pages-account-wishlist.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 5, + "filteredAuxiliaryAssets": 1, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1154,90 +685,6 @@ "main.js" ] }, - { - "id": "template-retail-react-app_app_translations_compiled_de-DE_json", - "files": [ - "template-retail-react-app_app_translations_compiled_de-DE_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_en-GB_json", - "files": [ - "template-retail-react-app_app_translations_compiled_en-GB_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_en-US_json", - "files": [ - "template-retail-react-app_app_translations_compiled_en-US_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_en-XB_json", - "files": [ - "template-retail-react-app_app_translations_compiled_en-XB_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_es-MX_json", - "files": [ - "template-retail-react-app_app_translations_compiled_es-MX_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_fr-FR_json", - "files": [ - "template-retail-react-app_app_translations_compiled_fr-FR_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_it-IT_json", - "files": [ - "template-retail-react-app_app_translations_compiled_it-IT_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_ja-JP_json", - "files": [ - "template-retail-react-app_app_translations_compiled_ja-JP_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_ko-KR_json", - "files": [ - "template-retail-react-app_app_translations_compiled_ko-KR_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_pt-BR_json", - "files": [ - "template-retail-react-app_app_translations_compiled_pt-BR_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_zh-CN_json", - "files": [ - "template-retail-react-app_app_translations_compiled_zh-CN_json.js" - ] - }, - { - "id": "template-retail-react-app_app_translations_compiled_zh-TW_json", - "files": [ - "template-retail-react-app_app_translations_compiled_zh-TW_json.js" - ] - }, - { - "id": "_cc12", - "files": [ - "_cc12.js" - ] - }, - { - "id": "_8dba", - "files": [ - "_8dba.js" - ] - }, { "id": "pages-home", "files": [ @@ -1321,36 +768,6 @@ "files": [ "vendor.js" ] - }, - { - "id": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "files": [ - "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" - ] - }, - { - "id": "template-retail-react-app_app_partials_product-view_index_jsx", - "files": [ - "template-retail-react-app_app_partials_product-view_index_jsx.js" - ] - }, - { - "id": "template-retail-react-app_app_components_order-summary_index_jsx", - "files": [ - "template-retail-react-app_app_components_order-summary_index_jsx.js" - ] - }, - { - "id": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "files": [ - "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" - ] - }, - { - "id": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", - "files": [ - "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" - ] } ] } \ No newline at end of file From e787d6828c68775d1b9d6876cb5f8a96937d21f6 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Wed, 15 Feb 2023 09:18:33 -0700 Subject: [PATCH 020/263] clean up / simplify --- .../pwa-kit-dev/src/configs/webpack/config.js | 36 +- .../src/configs/webpack/plugins.js | 151 +- .../build/loadable-stats.json | 695 ++++- .../spike-extendend-retail-app/package.json | 166 +- .../app/commerce-api/mock-data.js | 2592 ++++++++--------- 5 files changed, 2078 insertions(+), 1562 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index f2f2c84478..940534b996 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -93,30 +93,6 @@ const findInProjectThenExtendsThenSDK = (pkg) => { return resolve(sdkDir, 'node_modules', pkg) } -// const makeRegExp = (str, sep = path.sep) => { -// // Replace unix paths with windows if needed and build a RegExp -// if (sep === '\\') { -// str = str.replace(/\//g, '\\\\') -// } -// return new RegExp(str) -// } - -// const templateAppPathRegex = makeRegExp( -// `((.*)${pkg?.mobify?.overridesDir}(.*)|(.*)/${pkg?.mobify?.extends}(.*))` -// ) - -// console.log('~templateAppPathRegex', templateAppPathRegex) -// const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` -// const overrides = glob.sync(globPattern) -// const overridesMap = [ -// ...overrides, -// ...overrides?.map((item) => { -// item = item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, '') + '/', '') -// return item -// }) -// ] -// console.log('~overridesMap', overridesMap) - const baseConfig = (target) => { if (!['web', 'node'].includes(target)) { throw Error(`The value "${target}" is not a supported webpack target`) @@ -189,12 +165,6 @@ const baseConfig = (target) => { ), '@emotion/react': findInProjectThenExtendsThenSDK('@emotion/react'), '@emotion/styled': findInProjectThenExtendsThenSDK('@emotion/styled') - // ...overridesMap?.map?.((override) => { - // return [${override?.split?.('.')?.[0]?.replace( - // pkg?.mobify?.overridesDir, - // pkg?.mobify?.extends - // )}] : - // }) }, ...(target === 'web' ? {fallback: {crypto: false}} : {}) }, @@ -211,9 +181,9 @@ const baseConfig = (target) => { sdkReplacementPlugin(projectDir), - pkg?.mobify?.extends && pkg?.mobify?.overridesDir - ? extendedTemplateReplacementPlugin(projectDir) - : () => null, + // pkg?.mobify?.extends && pkg?.mobify?.overridesDir + // ? extendedTemplateReplacementPlugin(projectDir) + // : () => null, allFiles(), // Don't chunk if it's a node target – faster Lambda startup. diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 3f8222edca..a283f81669 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -8,6 +8,7 @@ import webpack from 'webpack' import path, {resolve} from 'path' import fs from 'fs' import glob from 'glob' +import {password} from '../../../../template-retail-react-app/app/commerce-api/mock-data' const projectDir = process.cwd() const pkg = require(resolve(projectDir, 'package.json')) @@ -89,7 +90,6 @@ export const sdkReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - const replacement = replacements.find(({path}) => resolved.match(path)) const sdkPaths = [ @@ -99,7 +99,7 @@ export const sdkReplacementPlugin = (projectDir) => { const requestedFromSDK = sdkPaths.some((p) => resource.context.includes(p)) if (requestedFromSDK && replacement) { - console.log('~======= ', replacement.newPath) + // console.log('~======= ', replacement.newPath) resource.request = replacement.newPath } }) @@ -112,87 +112,108 @@ const templateAppPathRegex = makeRegExp( export const allFiles = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - if (resolved.match(/icons/)) { - console.log('~resolved', resolved) + if (resolved.match(/template\-retail\-react\-app\/app\/components\/icons/)) { + console.log('~OOPS!') + console.log('~ALL FILES ==== resource.context', resource.context) + console.log('~ALL FILES ==== resource.request', resource.request) + } + if (resolved.match(/\/app\/components\/icons/)) { + // console.log('~========================================') + // console.log('~ALL FILES ==== resolved', resolved) + // console.log('~ALL FILES ==== resource.context', resource.context) + // console.log('~ALL FILES ==== resource.request', resource.request) } }) } export const extendedTemplateReplacementPlugin = (projectDir) => { - console.log('~templateAppPtsxathRegex', templateAppPathRegex) + console.log('~templateAppPathRegex', templateAppPathRegex) const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` - const overrides = glob.sync(globPattern) + // push a copy of overrides array with the extends path as base + const overrides = glob.sync(globPattern)?.flatMap((item) => { + return [ + item, + item?.replace( + pkg?.mobify?.overridesDir?.replace(/^\//, ''), + `/${pkg?.mobify?.extends}` + ), + // TODO: this needs a better solution, but maybe only a pain for local dev until we publish + // the retail react app template? + item?.replace( + pkg?.mobify?.overridesDir?.replace(/^\//, ''), + `/template-${pkg?.mobify?.extends}` + ) + ] + }) + const _overrides = [...overrides] const overridesMap = [ ...overrides, - ...overrides?.flatMap((item) => { - item = item.split('.')?.[0] - var stripped = minimatch.makeRe(item + `*.+(js|jsx|ts|tsx)`) - const wIndex = minimatch.makeRe( - item.replace(/(\/index)\.*$/, '$1') + `*.+(js|jsx|ts|tsx)` - ) - console.log('~stripped', stripped) - console.log('~wIndex', wIndex) - // var wIndex = - // item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, ''), '') - // if (wIndex?.match(/(.*)\/$/)) { - // wIndex = wIndex.substring(0, wIndex.length - 1) - // } - // const sansIndex = - // item?.replace?.(pkg?.mobify?.overridesDir?.replace(/^\//, ''), '') + '$' - // console.log('~flatMap', [wIndex, sansIndex]) - - // return 'app/components/_app-config(/index).jsx' - - return [stripped, wIndex] + ...overrides.flatMap((item) => { + const EXTENSIONS = '.+(js|jsx|ts|tsx)$' + const patterns = [item] + const extRe = /\.\w+$/ + const hasExt = item?.test?.(extRe) + const hasSlash = item?.endsWith('/') + const endsWithIndex = item?.split(extRe)?.[0]?.endsWith?.('index') + if (!endsWithIndex) { + return patterns + } + if (hasExt || !hasSlash) { + const noExt = item.replace(extRe, '') + const noExtExtends = + pkg?.mobify?.extends + noExt.replace(pkg?.mobify?.overridesDir, '') + patterns.push(minimatch.makeRe('**/*' + noExt + EXTENSIONS)) + patterns.push(minimatch.makeRe('**/*' + noExtExtends + EXTENSIONS)) + } + if (hasSlash) { + patterns.push(minimatch.makeRe('**/*' + item + 'index' + EXTENSIONS)) + patterns.push( + minimatch.makeRe( + '**/*' + + item.replace(pkg?.mobify?.overridesDir?.replace(/\//, ''), '') + + EXTENSIONS + ) + ) + } + return patterns }) ] console.log('~overridesMap', overridesMap) // TODO: manually push a false positive e.g. chakra-ui/whatever/icons to make sure we don't override that + + // TODO: filter regex already generated above out of this map const overridesRegex = makeRegExp( - `(${overridesMap?.map((override) => override?.replace?.(/^\//))?.join('|')})` + `(${overridesMap + ?.map((override) => + override instanceof RegExp && override?.source + ? override?.source + : override?.replace && override?.startsWith('/') + ? override?.replace?.(/^\//, '') + : override + ) + ?.join('|')})` ) console.log('~overridesRegex', overridesRegex) + // TODO: maybe parse the whole dependency tree and rewrite it with this + // https://github.com/dependents/node-dependency-tree + return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { - const requestedFile = path.resolve(resource.context, resource.request) - console.log('~requestedFile context:', resource.context) - console.log('~requestedFile request:', resource.request) - console.log('~requestedFile full path:', requestedFile) - - // from this context: - // ~requestedFile context: /Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons - // ~requestedFile request: @babel/runtime/helpers/extends - - // // if (overridables?.filter((override) => resource?.context?.match?.(override))?.length) { - // // console.log('~overr') - // // return - // // } - // const found = overridesMap?.filter((override) => { - // return requestedFile?.match?.(override)?.length - // }) - // TODO: we need to drop `template-` for this to work if ( - requestedFile?.match?.(`/template-${pkg?.mobify?.extends}`) || - requestedFile?.match?.(`/${pkg?.mobify?.extends}`) + path + .resolve(resource.context, resource.request) + ?.match('template-retail-react-app/app/components/icons') ) { - // TODO: rewrite this to the pkg.mobify.extends /node_modules - // currently yielding this: - // '/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/node_modules/retail-react-app/app/retail-react-app/app/pages/product-detail' - const newContext = projectDir + pkg?.mobify?.overridesDir - const newRequest = requestedFile?.split?.(`/template-${pkg?.mobify?.extends}/`)?.[1] - console.log('~!!! OVERRIDING', requestedFile) - console.log('~!!! newContext', newContext) - console.log('~!!! newRequest', newRequest) - // if (requestedFile.match(makeRegExp('app/components/icons'))) { - if (newContext && newRequest) { - // resource.context = newContext - // const newreq = path.resolve(newContext, newRequest, 'index.jsx') - const newreq = - '/Users/bfeister/dev/pwa-kit/packages/template-retail-react-app/app/components/icons/index.jsx' - console.log('~newreq', newreq) - resource.request = newreq - console.log('new full path:', path.resolve(resource.context, resource.request)) - } - return + console.log( + '~======= file path.resolve()', + path.resolve(resource.context, resource.request) + ) + console.log('~requestedFile context:', resource.context) + console.log('~requestedFile request:', resource.request) + // resource.context = + // '/Users/bfeister/dev/pwa-kit/packages/spike-extended-retail-app/pwa-kit/overrides' + // resource.request = '/app/components/icons' + resource.context = '/Users/bfeister/dev/pwa-kit/packages/spike-extended-retail-app' + resource.request = 'pwa-kit/overrides/app/components/icons' } }) } diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index e87d630251..722281f48f 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "886f0d1abafc166b8e92", + "hash": "fdf85cc8ac040a7f4666", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -54,7 +54,7 @@ { "type": "asset", "name": "vendor.js", - "size": 4102322, + "size": 5285779, "emitted": false, "comparedForEmit": false, "cached": true, @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 631768, + "size": 1162543, "emitted": false, "comparedForEmit": false, "cached": true, @@ -105,58 +105,58 @@ }, { "type": "asset", - "name": "pages-home.js", - "size": 57773, + "name": "retail-react-app-app-pages-account.js", + "size": 169374, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "pages-home.js.map" + "sourceMap": "retail-react-app-app-pages-account.js.map" } }, "chunkNames": [ - "pages-home" + "retail-react-app-app-pages-account" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "pages-home" + "retail-react-app-app-pages-account" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-checkout-confirmation.js", - "size": 40560, + "name": "retail-react-app-app-pages-checkout.js", + "size": 155463, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-checkout-confirmation.js.map" + "sourceMap": "retail-react-app-app-pages-checkout.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-checkout-confirmation" + "retail-react-app-app-pages-checkout" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-checkout-confirmation" + "retail-react-app-app-pages-checkout" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-product-list.js", - "size": 38673, + "size": 119136, "emitted": false, "comparedForEmit": false, "cached": true, @@ -180,33 +180,73 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-product-detail.js", - "size": 23298, + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", + "size": 78307, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-product-detail.js.map" + "sourceMap": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js.map" } }, - "chunkNames": [ - "retail-react-app-app-pages-product-detail" + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-XB_json.js", + "size": 68918, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-XB_json" ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js", + "size": 61692, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_partials_product-view_index_jsx.js.map" + } + }, + "chunkNames": [], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-product-detail" + "template-retail-react-app_app_partials_product-view_index_jsx" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-cart.js", - "size": 20780, + "size": 61071, "emitted": false, "comparedForEmit": false, "cached": true, @@ -230,33 +270,313 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-account.js", - "size": 16895, + "name": "retail-react-app-app-pages-checkout-confirmation.js", + "size": 53996, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-account.js.map" + "sourceMap": "retail-react-app-app-pages-checkout-confirmation.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-account" + "retail-react-app-app-pages-checkout-confirmation" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-account" + "retail-react-app-app-pages-checkout-confirmation" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_ja-JP_json.js", + "size": 48140, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_ja-JP_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_fr-FR_json.js", + "size": 45583, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_fr-FR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_de-DE_json.js", + "size": 45199, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_de-DE_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", + "size": 45058, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_order-summary_index_jsx.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_order-summary_index_jsx" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_es-MX_json.js", + "size": 44920, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_es-MX_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_ko-KR_json.js", + "size": 44685, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_ko-KR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_it-IT_json.js", + "size": 43806, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_it-IT_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_pt-BR_json.js", + "size": 43767, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_pt-BR_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-GB_json.js", + "size": 42943, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-GB_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", + "size": 42799, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_en-US_json.js", + "size": 42374, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_en-US_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_zh-TW_json.js", + "size": 42287, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_zh-TW_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "template-retail-react-app_app_translations_compiled_zh-CN_json.js", + "size": 42265, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [ + "template-retail-react-app_app_translations_compiled_zh-CN_json" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-home.js", + "size": 39484, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-home.js.map" + } + }, + "chunkNames": [ + "pages-home" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-home" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-account-wishlist.js", - "size": 12020, + "size": 39144, "emitted": false, "comparedForEmit": false, "cached": true, @@ -280,33 +600,56 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-checkout.js", - "size": 11497, + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", + "size": 36367, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-checkout.js.map" + "sourceMap": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "retail-react-app-app-pages-product-detail.js", + "size": 23718, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "retail-react-app-app-pages-product-detail.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-checkout" + "retail-react-app-app-pages-product-detail" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-checkout" + "retail-react-app-app-pages-product-detail" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-reset-password.js", - "size": 9063, + "size": 10461, "emitted": false, "comparedForEmit": false, "cached": true, @@ -330,58 +673,58 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-page-not-found.js", - "size": 7220, + "name": "retail-react-app-app-pages-login.js", + "size": 8379, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-page-not-found.js.map" + "sourceMap": "retail-react-app-app-pages-login.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-page-not-found" + "retail-react-app-app-pages-login" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-page-not-found" + "retail-react-app-app-pages-login" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-login.js", - "size": 6735, + "name": "retail-react-app-app-pages-page-not-found.js", + "size": 7779, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-login.js.map" + "sourceMap": "retail-react-app-app-pages-page-not-found.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-login" + "retail-react-app-app-pages-page-not-found" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-login" + "retail-react-app-app-pages-page-not-found" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "retail-react-app-app-pages-registration.js", - "size": 6016, + "size": 7562, "emitted": false, "comparedForEmit": false, "cached": true, @@ -406,7 +749,7 @@ { "type": "asset", "name": "retail-react-app-app-pages-login-redirect.js", - "size": 3112, + "size": 3060, "emitted": false, "comparedForEmit": false, "cached": true, @@ -427,6 +770,52 @@ "retail-react-app-app-pages-login-redirect" ], "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "_8dba.js", + "size": 284, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "_8dba.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "_8dba" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "_cc12.js", + "size": 284, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "_cc12.js.map" + } + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "_cc12" + ], + "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -454,20 +843,16 @@ "pages-home": { "name": "pages-home", "chunks": [ - "vendor", "pages-home" ], "assets": [ - { - "name": "vendor.js" - }, { "name": "pages-home.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 2, + "filteredAuxiliaryAssets": 1, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -526,16 +911,44 @@ "retail-react-app-app-pages-account": { "name": "retail-react-app-app-pages-account", "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_partials_product-view_index_jsx", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "retail-react-app-app-pages-account-wishlist", "retail-react-app-app-pages-account" ], "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, + { + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + }, + { + "name": "retail-react-app-app-pages-account-wishlist.js" + }, { "name": "retail-react-app-app-pages-account.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 8, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -543,16 +956,32 @@ "retail-react-app-app-pages-cart": { "name": "retail-react-app-app-pages-cart", "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_partials_product-view_index_jsx", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", "retail-react-app-app-pages-cart" ], "assets": [ + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, { "name": "retail-react-app-app-pages-cart.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 5, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -560,16 +989,32 @@ "retail-react-app-app-pages-checkout": { "name": "retail-react-app-app-pages-checkout", "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_components_order-summary_index_jsx", + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", "retail-react-app-app-pages-checkout" ], "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_components_order-summary_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + }, { "name": "retail-react-app-app-pages-checkout.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 5, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -577,16 +1022,20 @@ "retail-react-app-app-pages-checkout-confirmation": { "name": "retail-react-app-app-pages-checkout-confirmation", "chunks": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", "retail-react-app-app-pages-checkout-confirmation" ], "assets": [ + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, { "name": "retail-react-app-app-pages-checkout-confirmation.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 2, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -611,16 +1060,20 @@ "retail-react-app-app-pages-product-detail": { "name": "retail-react-app-app-pages-product-detail", "chunks": [ + "template-retail-react-app_app_partials_product-view_index_jsx", "retail-react-app-app-pages-product-detail" ], "assets": [ + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, { "name": "retail-react-app-app-pages-product-detail.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 2, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -645,16 +1098,32 @@ "retail-react-app-app-pages-account-wishlist": { "name": "retail-react-app-app-pages-account-wishlist", "chunks": [ + "vendor", + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "template-retail-react-app_app_partials_product-view_index_jsx", + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", "retail-react-app-app-pages-account-wishlist" ], "assets": [ + { + "name": "vendor.js" + }, + { + "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + }, + { + "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" + }, + { + "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + }, { "name": "retail-react-app-app-pages-account-wishlist.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 1, + "filteredAuxiliaryAssets": 5, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -685,6 +1154,90 @@ "main.js" ] }, + { + "id": "template-retail-react-app_app_translations_compiled_de-DE_json", + "files": [ + "template-retail-react-app_app_translations_compiled_de-DE_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-GB_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-GB_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-US_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-US_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_en-XB_json", + "files": [ + "template-retail-react-app_app_translations_compiled_en-XB_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_es-MX_json", + "files": [ + "template-retail-react-app_app_translations_compiled_es-MX_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_fr-FR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_fr-FR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_it-IT_json", + "files": [ + "template-retail-react-app_app_translations_compiled_it-IT_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_ja-JP_json", + "files": [ + "template-retail-react-app_app_translations_compiled_ja-JP_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_ko-KR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_ko-KR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_pt-BR_json", + "files": [ + "template-retail-react-app_app_translations_compiled_pt-BR_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_zh-CN_json", + "files": [ + "template-retail-react-app_app_translations_compiled_zh-CN_json.js" + ] + }, + { + "id": "template-retail-react-app_app_translations_compiled_zh-TW_json", + "files": [ + "template-retail-react-app_app_translations_compiled_zh-TW_json.js" + ] + }, + { + "id": "_cc12", + "files": [ + "_cc12.js" + ] + }, + { + "id": "_8dba", + "files": [ + "_8dba.js" + ] + }, { "id": "pages-home", "files": [ @@ -768,6 +1321,36 @@ "files": [ "vendor.js" ] + }, + { + "id": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", + "files": [ + "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" + ] + }, + { + "id": "template-retail-react-app_app_partials_product-view_index_jsx", + "files": [ + "template-retail-react-app_app_partials_product-view_index_jsx.js" + ] + }, + { + "id": "template-retail-react-app_app_components_order-summary_index_jsx", + "files": [ + "template-retail-react-app_app_components_order-summary_index_jsx.js" + ] + }, + { + "id": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", + "files": [ + "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" + ] + }, + { + "id": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", + "files": [ + "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" + ] } ] } \ No newline at end of file diff --git a/packages/spike-extendend-retail-app/package.json b/packages/spike-extendend-retail-app/package.json index 123b2e6f6a..293e76f587 100644 --- a/packages/spike-extendend-retail-app/package.json +++ b/packages/spike-extendend-retail-app/package.json @@ -1,87 +1,83 @@ { - "name": "spike-extended-retail-app", - "version": "2.5.0-dev", - "description": "", - "author": "cc-pwa-kit@salesforce.com", - "license": "See license in LICENSE", - "engines": { - "node": "^14.0.0", - "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" - }, - "mobify": { - "extends": "retail-react-app", - "overridesDir": "/pwa-kit/overrides", - "routes": [ - {"cart": "retail-react-app/cart"}, - {"plp": "bens-retail-app/plp"} - ] - }, - "files": [ - "CHANGELOG.md", - "LICENSE" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/SalesforceCommerceCloud/pwa-kit.git" - }, - "homepage": "https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/ecom-react-hooks#readme", - "bugs": { - "url": "https://github.com/SalesforceCommerceCloud/pwa-kit/issues" - }, - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "cross-env NODE_ICU_DATA=node_modules/full-icu pwa-kit-dev start" - }, - "devDependencies": { - "@chakra-ui/icons": "^1.0.6", - "@chakra-ui/react": "^1.7.1", - "@chakra-ui/skip-nav": "^1.1.4", - "@emotion/react": "^11.1.5", - "@emotion/styled": "^11.1.5", - "@formatjs/cli": "^4.2.27", - "@lerna/child-process": "^3.3.0", - "@lhci/cli": "^0.7.0", - "@loadable/component": "^5.15.0", - "@peculiar/webcrypto": "^1.3.3", - "@testing-library/jest-dom": "^5.16.4", - "@testing-library/react": "^11.2.5", - "@testing-library/react-hooks": "^7.0.2", - "@testing-library/user-event": "^12.8.1", - "base64-arraybuffer": "^0.2.0", - "bundlesize2": "^0.0.30", - "card-validator": "^8.1.0", - "chalk": "1.1.3", - "commerce-sdk-isomorphic": "^1.5.2", - "core-js": "2.4.0", - "cross-env": "^5.2.0", - "cross-fetch": "^3.1.5", - "focus-visible": "^5.2.0", - "framer-motion": "^3.7.0", - "full-icu": "^1.3.1", - "helmet": "^4.6.0", - "hoist-non-react-statics": "^3.3.2", - "jest-fetch-mock": "^2.1.2", - "js-cookie": "^3.0.1", - "jwt-decode": "^3.1.2", - "msw": "^0.28.1", - "nanoid": "^3.1.31", - "njwt": "^1.2.0", - "node-fetch": "^2.6.7", - "prop-types": "^15.6.0", - "pwa-kit-dev": "^2.5.0-dev", - "pwa-kit-react-sdk": "^2.5.0-dev", - "pwa-kit-runtime": "^2.5.0-dev", - "query-string": "^7.0.1", - "raf": "^3.4.0", - "randomstring": "^1.2.1", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-helmet": "^6.1.0", - "react-hook-form": "^6.15.5", - "react-intl": "^5.13.1", - "react-router-dom": "^5.1.2", - "retail-react-app": "^2.5.0-dev", - "whatwg-fetch": "1.0.0" - } + "name": "spike-extended-retail-app", + "version": "2.5.0-dev", + "description": "", + "author": "cc-pwa-kit@salesforce.com", + "license": "See license in LICENSE", + "engines": { + "node": "^14.0.0", + "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" + }, + "mobify": { + "extends": "retail-react-app", + "overridesDir": "/pwa-kit/overrides" + }, + "files": [ + "CHANGELOG.md", + "LICENSE" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/SalesforceCommerceCloud/pwa-kit.git" + }, + "homepage": "https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/ecom-react-hooks#readme", + "bugs": { + "url": "https://github.com/SalesforceCommerceCloud/pwa-kit/issues" + }, + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "cross-env NODE_ICU_DATA=node_modules/full-icu pwa-kit-dev start" + }, + "devDependencies": { + "@chakra-ui/icons": "^1.0.6", + "@chakra-ui/react": "^1.7.1", + "@chakra-ui/skip-nav": "^1.1.4", + "@emotion/react": "^11.1.5", + "@emotion/styled": "^11.1.5", + "@formatjs/cli": "^4.2.27", + "@lerna/child-process": "^3.3.0", + "@lhci/cli": "^0.7.0", + "@loadable/component": "^5.15.0", + "@peculiar/webcrypto": "^1.3.3", + "@testing-library/jest-dom": "^5.16.4", + "@testing-library/react": "^11.2.5", + "@testing-library/react-hooks": "^7.0.2", + "@testing-library/user-event": "^12.8.1", + "base64-arraybuffer": "^0.2.0", + "bundlesize2": "^0.0.30", + "card-validator": "^8.1.0", + "chalk": "1.1.3", + "commerce-sdk-isomorphic": "^1.5.2", + "core-js": "2.4.0", + "cross-env": "^5.2.0", + "cross-fetch": "^3.1.5", + "focus-visible": "^5.2.0", + "framer-motion": "^3.7.0", + "full-icu": "^1.3.1", + "helmet": "^4.6.0", + "hoist-non-react-statics": "^3.3.2", + "jest-fetch-mock": "^2.1.2", + "js-cookie": "^3.0.1", + "jwt-decode": "^3.1.2", + "msw": "^0.28.1", + "nanoid": "^3.1.31", + "njwt": "^1.2.0", + "node-fetch": "^2.6.7", + "prop-types": "^15.6.0", + "pwa-kit-dev": "^2.5.0-dev", + "pwa-kit-react-sdk": "^2.5.0-dev", + "pwa-kit-runtime": "^2.5.0-dev", + "query-string": "^7.0.1", + "raf": "^3.4.0", + "randomstring": "^1.2.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-helmet": "^6.1.0", + "react-hook-form": "^6.15.5", + "react-intl": "^5.13.1", + "react-router-dom": "^5.1.2", + "retail-react-app": "^2.5.0-dev", + "whatwg-fetch": "1.0.0" + } } diff --git a/packages/template-retail-react-app/app/commerce-api/mock-data.js b/packages/template-retail-react-app/app/commerce-api/mock-data.js index a9ef20cb29..a135a6d557 100644 --- a/packages/template-retail-react-app/app/commerce-api/mock-data.js +++ b/packages/template-retail-react-app/app/commerce-api/mock-data.js @@ -16,7 +16,7 @@ export const exampleTokenReponse = { token_type: 'BEARER', usid: 'f51fd491-eba1-4582-81f9-4a014a472a20', customer_id: 'customerid', - enc_user_id: 'ce5f0dd2fc1fdb7f06e8e97011200943' + enc_user_id: 'ce5f0dd2fc1fdb7f06e8e97011200943', } export const exampleTokenReponseForRefresh = { @@ -29,7 +29,7 @@ export const exampleTokenReponseForRefresh = { token_type: 'BEARER', usid: 'f51fd491-eba1-4582-81f9-4a014a472a20', customer_id: 'customerid', - enc_user_id: 'ce5f0dd2fc1fdb7f06e8e97011200943' + enc_user_id: 'ce5f0dd2fc1fdb7f06e8e97011200943', } export const exampleRedirectUrl = 'http://localhost:3000/callback?usid=395ac523-27dc-439e-b3a5-4a7ff6376392&state=1615564861486&scope=openid%20offline_access&code=Th32jvj25gC87fo48RYn3zRbxVhsDCyDT4kIaBh7QFM ' @@ -51,7 +51,7 @@ export const ocapiBasketResponse = { customer_info: { _type: 'customer_info', customer_id: 'adNJrbxJovaT5DPxUSfOywk6Et', - email: '' + email: '', }, order_total: 0.0, product_sub_total: 0.0, @@ -60,19 +60,19 @@ export const ocapiBasketResponse = { { _type: 'shipment', id: 'me', - shipment_id: 'bc5OTaOjgEqUoaaadkvHwbgrP5' - } + shipment_id: 'bc5OTaOjgEqUoaaadkvHwbgrP5', + }, ], shipping_items: [ { shipment_id: 'me', - item_id: 'bcwsbaOjgEqUsaaadkvHwbgrP5' - } + item_id: 'bcwsbaOjgEqUsaaadkvHwbgrP5', + }, ], shipping_total: 0.0, shipping_total_tax: 0.0, taxation: 'net', - tax_total: 0.0 + tax_total: 0.0, } export const ocapiBasketWithItem = { @@ -85,26 +85,26 @@ export const ocapiBasketWithItem = { type: 'PaymentMethodRequired', message: 'No payment method ID was specified. Please provide a valid payment method ID.', - path: '$.payment_instruments[0].payment_method_id' + path: '$.payment_instruments[0].payment_method_id', }, { _type: 'flash', type: 'BillingAddressRequired', message: 'No billing address was specified. Please provide a valid billing address.', - path: '$.billing_address' + path: '$.billing_address', }, { _type: 'flash', type: 'OrderTotalNotSet', message: 'Order total missing, calculation failed.', - path: '$.order_total' + path: '$.order_total', }, { _type: 'flash', type: 'ShippingAddressRequired', message: 'No shipping address was specified. Please provide a valid shipping address.', path: '$.shipments[0].shipping_address', - details: {shipmentId: 'me'} + details: {shipmentId: 'me'}, }, { _type: 'flash', @@ -112,14 +112,14 @@ export const ocapiBasketWithItem = { message: 'No shipping method ID was specified. Please provide a valid shipping method ID.', path: '$.shipments[0].shipping_method', - details: {shipmentId: 'me'} + details: {shipmentId: 'me'}, }, { _type: 'flash', type: 'ShippingItemAdjustedPriceNotSet', message: "Price missing for shipping item ''b2a1772eb5c47263499cb6d86b''.", - path: '$.shipping_items[0].adjusted_price' - } + path: '$.shipping_items[0].adjusted_price', + }, ], adjusted_merchandize_total_tax: 0.75, adjusted_shipping_total_tax: null, @@ -133,8 +133,7 @@ export const ocapiBasketWithItem = { merchandize_total_tax: 0.75, notes: { _type: 'simple_link', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/baskets/6d0ef818e2b431645b844e6ac2/notes' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/baskets/6d0ef818e2b431645b844e6ac2/notes', }, order_total: null, product_items: [ @@ -156,8 +155,8 @@ export const ocapiBasketWithItem = { tax: 0.75, tax_basis: 14.99, tax_class_id: 'standard', - tax_rate: 0.05 - } + tax_rate: 0.05, + }, ], product_sub_total: 14.99, product_total: 14.99, @@ -175,8 +174,8 @@ export const ocapiBasketWithItem = { shipping_status: 'not_shipped', shipping_total: null, shipping_total_tax: null, - tax_total: null - } + tax_total: null, + }, ], shipping_items: [ { @@ -191,13 +190,13 @@ export const ocapiBasketWithItem = { tax: null, tax_basis: null, tax_class_id: null, - tax_rate: 0.05 - } + tax_rate: 0.05, + }, ], shipping_total: null, shipping_total_tax: null, taxation: 'net', - tax_total: null + tax_total: null, } export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { @@ -210,26 +209,26 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { type: 'PaymentMethodRequired', message: 'No payment method ID was specified. Please provide a valid payment method ID.', - path: '$.payment_instruments[0].payment_method_id' + path: '$.payment_instruments[0].payment_method_id', }, { _type: 'flash', type: 'BillingAddressRequired', message: 'No billing address was specified. Please provide a valid billing address.', - path: '$.billing_address' + path: '$.billing_address', }, { _type: 'flash', type: 'OrderTotalNotSet', message: 'Order total missing, calculation failed.', - path: '$.order_total' + path: '$.order_total', }, { _type: 'flash', type: 'ShippingAddressRequired', message: 'No shipping address was specified. Please provide a valid shipping address.', path: '$.shipments[0].shipping_address', - details: {shipmentId: 'me'} + details: {shipmentId: 'me'}, }, { _type: 'flash', @@ -237,14 +236,14 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { message: 'No shipping method ID was specified. Please provide a valid shipping method ID.', path: '$.shipments[0].shipping_method', - details: {shipmentId: 'me'} + details: {shipmentId: 'me'}, }, { _type: 'flash', type: 'ShippingItemAdjustedPriceNotSet', message: "Price missing for shipping item ''b2a1772eb5c47263499cb6d86b''.", - path: '$.shipping_items[0].adjusted_price' - } + path: '$.shipping_items[0].adjusted_price', + }, ], adjusted_merchandize_total_tax: 0.75, adjusted_shipping_total_tax: null, @@ -257,7 +256,7 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { first_name: 'John', full_name: 'John Smith', last_name: 'Smith', - c_strValue: 'cTest' + c_strValue: 'cTest', }, channel_type: 'storefront', creation_date: '2021-04-08T19:54:00.772Z', @@ -267,8 +266,7 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { merchandize_total_tax: 0.75, notes: { _type: 'simple_link', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/baskets/6d0ef818e2b431645b844e6ac2/notes' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/baskets/6d0ef818e2b431645b844e6ac2/notes', }, order_total: null, payment_instruments: [ @@ -283,11 +281,11 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { expiration_year: 2021, holder: 'John Doe', masked_number: '***********1111', - number_last_digits: '1111' + number_last_digits: '1111', }, payment_method_id: 'CREDIT_CARD', payment_instrument_id: 'ceDUYiWbN1IkkaaadkYHRkclwC', - c_strValue: 'any custom value' + c_strValue: 'any custom value', }, { amount: 1.0, @@ -295,7 +293,7 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { drivers_license_last_digits: 'ense', drivers_license_masked: '**************ense', number_last_digits: 'mber', - number_masked: '*************mber' + number_masked: '*************mber', }, id: 'cdKCIiWbNVndQaaadhlSa35gtp', payment_card: { @@ -305,10 +303,10 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { expiration_year: 21.2, holder: 'TestPerson', number_last_digits: 'mber', - number_masked: '**********mber' + number_masked: '**********mber', }, - payment_method_id: 'OCAPI_Payment_Simple' - } + payment_method_id: 'OCAPI_Payment_Simple', + }, ], product_items: [ { @@ -329,8 +327,8 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { tax: 0.75, tax_basis: 14.99, tax_class_id: 'standard', - tax_rate: 0.05 - } + tax_rate: 0.05, + }, ], product_sub_total: 14.99, product_total: 14.99, @@ -344,9 +342,9 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { id: 'DefaultShippingMethod', name: 'Default Shipping Method', price: 5.55, - c_somestring: 'ShippingMethod String Value' + c_somestring: 'ShippingMethod String Value', }, - shipment_id: 'cdKeciWbNL21saaadjZkbNt6xg' + shipment_id: 'cdKeciWbNL21saaadjZkbNt6xg', }, { _type: 'shipment', @@ -358,10 +356,10 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { first_name: 'John', full_name: 'John Smith', last_name: 'Smith', - c_strValue: 'cTest' + c_strValue: 'cTest', }, - shipment_id: 'cdOlsiWbNLWhkaaadjbQdNt6xg' - } + shipment_id: 'cdOlsiWbNLWhkaaadjbQdNt6xg', + }, ], shipping_items: [ { @@ -376,13 +374,13 @@ export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { tax: null, tax_basis: null, tax_class_id: null, - tax_rate: 0.05 - } + tax_rate: 0.05, + }, ], shipping_total: null, shipping_total_tax: null, taxation: 'net', - tax_total: null + tax_total: null, } export const mockShippingMethods = { @@ -399,12 +397,11 @@ export const mockShippingMethods = { shipping_promotions: [ { callout_msg: 'Free Shipping Amount Above 150', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/promotions/3184d71eea54c9d27e88dc41ca', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/promotions/3184d71eea54c9d27e88dc41ca', promotion_id: 'FreeShippingAmountAbove150', - promotion_name: 'Free Shipping Amount Above 150' - } - ] + promotion_name: 'Free Shipping Amount Above 150', + }, + ], }, { _type: 'shipping_method', @@ -412,7 +409,7 @@ export const mockShippingMethods = { description: 'The base shipping method.', id: 'BaseShippingMethod', name: 'Base Shipping Method', - price: 0.99 + price: 0.99, }, { _type: 'shipping_method', @@ -420,10 +417,10 @@ export const mockShippingMethods = { description: 'A shipping method that contains product level shipping costs.', id: 'ProductLevelShippingCostsShippingMethod', name: 'Product Level Shipping Costs Shipping Method', - price: 0.1 - } + price: 0.1, + }, ], - default_shipping_method_id: 'DefaultShippingMethod' + default_shipping_method_id: 'DefaultShippingMethod', } export const ocapiOrderResponse = { @@ -438,14 +435,14 @@ export const ocapiOrderResponse = { first_name: 'Jeff', full_name: 'Jeff Lebowski', last_name: 'Lebowski', - c_strValue: 'cTest' + c_strValue: 'cTest', }, creation_date: '2014-11-06T13:36Z', currency: 'USD', customer_info: { customer_id: 'customerid', customer_no: 'jlebowski', - email: 'jeff@lebowski.com' + email: 'jeff@lebowski.com', }, merchandize_total_tax: 5.0, order_no: '00000101', @@ -458,7 +455,7 @@ export const ocapiOrderResponse = { drivers_license_last_digits: 'ense', drivers_license_masked: '**************ense', number_last_digits: 'mber', - number_masked: '*************mber' + number_masked: '*************mber', }, id: 'cdKCIiWbNVndQaaadhlSa35gtp', payment_card: { @@ -468,10 +465,10 @@ export const ocapiOrderResponse = { expiration_year: 21.2, holder: 'TestPerson', number_last_digits: 'mber', - number_masked: '**********mber' + number_masked: '**********mber', }, - payment_method_id: 'OCAPI_Payment_Simple' - } + payment_method_id: 'OCAPI_Payment_Simple', + }, ], product_items: [ { @@ -490,8 +487,8 @@ export const ocapiOrderResponse = { tax_class_id: null, tax_rate: 0.05, item_id: 'cdHBEiWbNV9ZcaaadhrCk35gtp', - c_strValue: 'Test' - } + c_strValue: 'Test', + }, ], product_sub_total: 16.49, product_total: 1.0, @@ -504,16 +501,16 @@ export const ocapiOrderResponse = { first_name: 'Jeff', full_name: 'Jeff Lebowski', last_name: 'Lebowski', - c_strValue: 'cTest' + c_strValue: 'cTest', }, shipping_method: { description: 'The base shipping method.', id: 'BaseShippingMethod', name: 'Base Shipping Method', price: 0.01, - c_somestring: 'ShippingMethod String Value' - } - } + c_somestring: 'ShippingMethod String Value', + }, + }, ], shipping_items: [ { @@ -527,15 +524,15 @@ export const ocapiOrderResponse = { tax_basis: 0.01, tax_class_id: 'DefaultTaxClass', tax_rate: 0.05, - item_id: 'devgoiWbNVc92aaadhrSk35gtp' - } + item_id: 'devgoiWbNVc92aaadhrSk35gtp', + }, ], shipping_total: 0.01, shipping_total_tax: 0.0, status: 'created', tax_total: 0.05, c_strValue: 'before submit basket', - c_textValue: 'after submit basket' + c_textValue: 'after submit basket', } export const ocapiFaultResponse = { @@ -544,8 +541,8 @@ export const ocapiFaultResponse = { arguments: {basketIds: '2fa6195f3722bea373afc9953f'}, type: 'CustomerBasketsQuotaExceededException', message: - 'The maximum number of baskets per customer was exceeded. Please reuse or delete one of the existing baskets (2fa6195f3722bea373afc9953f).' - } + 'The maximum number of baskets per customer was exceeded. Please reuse or delete one of the existing baskets (2fa6195f3722bea373afc9953f).', + }, } export const mockPaymentMethods = { @@ -562,7 +559,7 @@ export const mockPaymentMethods = { name: 'Visa', number_lengths: ['13', '16'], number_prefixes: ['4'], - security_code_length: 3 + security_code_length: 3, }, { _type: 'payment_card_spec', @@ -571,7 +568,7 @@ export const mockPaymentMethods = { name: 'American Express', number_lengths: ['15'], number_prefixes: ['34', '37'], - security_code_length: 4 + security_code_length: 4, }, { _type: 'payment_card_spec', @@ -580,7 +577,7 @@ export const mockPaymentMethods = { name: 'MasterCard', number_lengths: ['16'], number_prefixes: ['51-55'], - security_code_length: 3 + security_code_length: 3, }, { _type: 'payment_card_spec', @@ -589,14 +586,14 @@ export const mockPaymentMethods = { name: 'Discover', number_lengths: ['16'], number_prefixes: ['6011', '622126-622925', '644-649', '65'], - security_code_length: 3 - } + security_code_length: 3, + }, ], id: 'CREDIT_CARD', name: 'Credit Card', - payment_processor_id: 'BASIC_CREDIT' - } - ] + payment_processor_id: 'BASIC_CREDIT', + }, + ], } export const mockedRegisteredCustomerWithTwoAddresses = { @@ -614,7 +611,7 @@ export const mockedRegisteredCustomerWithTwoAddresses = { phone: '(727) 555-1234', postalCode: '33712', preferred: true, - stateCode: 'FL' + stateCode: 'FL', }, { address1: '123 Main St', @@ -629,8 +626,8 @@ export const mockedRegisteredCustomerWithTwoAddresses = { phone: '(727) 555-1234', postalCode: '33712', preferred: true, - stateCode: 'FL' - } + stateCode: 'FL', + }, ], authType: 'registered', creationDate: '2021-03-31T13:32:42.000Z', @@ -659,14 +656,14 @@ export const mockedRegisteredCustomerWithTwoAddresses = { maskedNumber: '************5454', numberLastDigits: '5454', validFromMonth: 1, - validFromYear: 2020 + validFromYear: 2020, }, paymentInstrumentId: 'testcard1', - paymentMethodId: 'CREDIT_CARD' - } + paymentMethodId: 'CREDIT_CARD', + }, ], previousLoginTime: '2021-04-14T13:38:29.778Z', - previousVisitTime: '2021-04-14T13:38:29.778Z' + previousVisitTime: '2021-04-14T13:38:29.778Z', } export const mockedRegisteredCustomer = { @@ -684,8 +681,8 @@ export const mockedRegisteredCustomer = { phone: '(727) 555-1234', postalCode: '33712', preferred: true, - stateCode: 'FL' - } + stateCode: 'FL', + }, ], authType: 'registered', creationDate: '2021-03-31T13:32:42.000Z', @@ -714,20 +711,20 @@ export const mockedRegisteredCustomer = { maskedNumber: '************5454', numberLastDigits: '5454', validFromMonth: 1, - validFromYear: 2020 + validFromYear: 2020, }, paymentInstrumentId: 'testcard1', - paymentMethodId: 'CREDIT_CARD' - } + paymentMethodId: 'CREDIT_CARD', + }, ], previousLoginTime: '2021-04-14T13:38:29.778Z', - previousVisitTime: '2021-04-14T13:38:29.778Z' + previousVisitTime: '2021-04-14T13:38:29.778Z', } export const mockedGuestCustomer = { authType: 'guest', customerId: 'customerid', - email: '' + email: '', } export const productsResponse = { @@ -743,30 +740,28 @@ export const productsResponse = { alt: 'Long Sleeve Crew Neck, Fire Red, large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', }, { alt: 'Long Sleeve Crew Neck, Fire Red, large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'large' + viewType: 'large', }, { images: [ @@ -774,30 +769,28 @@ export const productsResponse = { alt: 'Long Sleeve Crew Neck, Fire Red, medium', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', }, { alt: 'Long Sleeve Crew Neck, Fire Red, medium', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'medium' + viewType: 'medium', }, { images: [ @@ -805,30 +798,28 @@ export const productsResponse = { alt: 'Long Sleeve Crew Neck, Fire Red, small', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', }, { alt: 'Long Sleeve Crew Neck, Fire Red, small', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'small' + viewType: 'small', }, { images: [ @@ -836,23 +827,22 @@ export const productsResponse = { alt: 'Long Sleeve Crew Neck, Fire Red, swatch', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'swatch' - } + viewType: 'swatch', + }, ], inventory: { ats: 89, @@ -860,14 +850,14 @@ export const productsResponse = { id: 'inventory_m', orderable: true, preorderable: false, - stockLevel: 89 + stockLevel: 89, }, longDescription: 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', master: { masterId: '25517823M', orderable: true, - price: 14.99 + price: 14.99, }, minOrderQuantity: 1, name: 'Long Sleeve Crew Neck', @@ -878,18 +868,18 @@ export const productsResponse = { productPromotions: [ { calloutMsg: 'Buy one Long Center Seam Skirt and get 2 tops', - promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased' - } + promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased', + }, ], shortDescription: 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', stepQuantity: 1, type: { - variant: true + variant: true, }, upc: '701642811398', validFrom: { - default: '2010-11-18T05:00:00.000Z' + default: '2010-11-18T05:00:00.000Z', }, variants: [ { @@ -898,8 +888,8 @@ export const productsResponse = { productId: '701642811398M', variationValues: { color: 'JJ825XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -907,8 +897,8 @@ export const productsResponse = { productId: '701642841227M', variationValues: { color: 'JJ3HDXX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -916,8 +906,8 @@ export const productsResponse = { productId: '701642841265M', variationValues: { color: 'JJ5QZXX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -925,8 +915,8 @@ export const productsResponse = { productId: '701642811473M', variationValues: { color: 'JJI15XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -934,8 +924,8 @@ export const productsResponse = { productId: '701642811435M', variationValues: { color: 'JJG80XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -943,8 +933,8 @@ export const productsResponse = { productId: '701642811312M', variationValues: { color: 'JJ2XNXX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -952,8 +942,8 @@ export const productsResponse = { productId: '701642811237M', variationValues: { color: 'JJ169XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -961,8 +951,8 @@ export const productsResponse = { productId: '701643342570M', variationValues: { color: 'JJ3HDXX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -970,8 +960,8 @@ export const productsResponse = { productId: '701642811343M', variationValues: { color: 'JJ2XNXX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -979,8 +969,8 @@ export const productsResponse = { productId: '701642811404M', variationValues: { color: 'JJ825XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -988,8 +978,8 @@ export const productsResponse = { productId: '701642811336M', variationValues: { color: 'JJ2XNXX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -997,8 +987,8 @@ export const productsResponse = { productId: '701642811268M', variationValues: { color: 'JJ169XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -1006,8 +996,8 @@ export const productsResponse = { productId: '701643070756M', variationValues: { color: 'JJ2XNXX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -1015,8 +1005,8 @@ export const productsResponse = { productId: '701642811497M', variationValues: { color: 'JJI15XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -1024,8 +1014,8 @@ export const productsResponse = { productId: '701642811480M', variationValues: { color: 'JJI15XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -1033,8 +1023,8 @@ export const productsResponse = { productId: '701642811466M', variationValues: { color: 'JJG80XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -1042,8 +1032,8 @@ export const productsResponse = { productId: '701642811428M', variationValues: { color: 'JJ825XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -1051,8 +1041,8 @@ export const productsResponse = { productId: '701643070732M', variationValues: { color: 'JJ825XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -1060,8 +1050,8 @@ export const productsResponse = { productId: '701642811244M', variationValues: { color: 'JJ169XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -1069,8 +1059,8 @@ export const productsResponse = { productId: '701643070763M', variationValues: { color: 'JJG80XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -1078,8 +1068,8 @@ export const productsResponse = { productId: '701643342587M', variationValues: { color: 'JJ5QZXX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -1087,8 +1077,8 @@ export const productsResponse = { productId: '701642811503M', variationValues: { color: 'JJI15XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -1096,8 +1086,8 @@ export const productsResponse = { productId: '701642811459M', variationValues: { color: 'JJG80XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -1105,8 +1095,8 @@ export const productsResponse = { productId: '701643070725M', variationValues: { color: 'JJ169XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -1114,8 +1104,8 @@ export const productsResponse = { productId: '701642841289M', variationValues: { color: 'JJ5QZXX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -1123,8 +1113,8 @@ export const productsResponse = { productId: '701642841272M', variationValues: { color: 'JJ5QZXX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -1132,8 +1122,8 @@ export const productsResponse = { productId: '701642841241M', variationValues: { color: 'JJ3HDXX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -1141,8 +1131,8 @@ export const productsResponse = { productId: '701642811329M', variationValues: { color: 'JJ2XNXX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -1150,8 +1140,8 @@ export const productsResponse = { productId: '701642811251M', variationValues: { color: 'JJ169XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -1159,8 +1149,8 @@ export const productsResponse = { productId: '701643070770M', variationValues: { color: 'JJI15XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -1168,8 +1158,8 @@ export const productsResponse = { productId: '701642841296M', variationValues: { color: 'JJ5QZXX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -1177,8 +1167,8 @@ export const productsResponse = { productId: '701642841258M', variationValues: { color: 'JJ3HDXX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -1186,8 +1176,8 @@ export const productsResponse = { productId: '701642811442M', variationValues: { color: 'JJG80XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -1195,8 +1185,8 @@ export const productsResponse = { productId: '701642811411M', variationValues: { color: 'JJ825XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -1204,9 +1194,9 @@ export const productsResponse = { productId: '701642841234M', variationValues: { color: 'JJ3HDXX', - size: '9MD' - } - } + size: '9MD', + }, + }, ], variationAttributes: [ { @@ -1216,39 +1206,39 @@ export const productsResponse = { { name: 'Black', orderable: true, - value: 'JJ169XX' + value: 'JJ169XX', }, { name: 'Grey Heather', orderable: true, - value: 'JJ2XNXX' + value: 'JJ2XNXX', }, { name: 'Meadow Violet', orderable: true, - value: 'JJ3HDXX' + value: 'JJ3HDXX', }, { name: 'Begonia Pink', orderable: true, - value: 'JJ5QZXX' + value: 'JJ5QZXX', }, { name: 'Fire Red', orderable: true, - value: 'JJ825XX' + value: 'JJ825XX', }, { name: 'Sugar', orderable: true, - value: 'JJG80XX' + value: 'JJG80XX', }, { name: 'White', orderable: true, - value: 'JJI15XX' - } - ] + value: 'JJI15XX', + }, + ], }, { id: 'size', @@ -1257,42 +1247,42 @@ export const productsResponse = { { name: 'XS', orderable: true, - value: '9XS' + value: '9XS', }, { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'L', orderable: true, - value: '9LG' + value: '9LG', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } + value: '9XL', + }, + ], + }, ], variationValues: { color: 'JJ825XX', - size: '9LG' + size: '9LG', }, c_color: 'JJ825XX', c_refinementColor: 'red', c_size: '9LG', - c_width: 'Z' - } + c_width: 'Z', + }, ], - total: 1 + total: 1, } export const mockOrderHistory = { @@ -1311,7 +1301,7 @@ export const mockOrderHistory = { lastName: 'testing', phone: '7275551234', postalCode: '33712', - stateCode: 'FL' + stateCode: 'FL', }, channelType: 'storefront', confirmationStatus: 'not_confirmed', @@ -1322,7 +1312,7 @@ export const mockOrderHistory = { customerId: 'customerid', customerName: ' testing', customerNo: '00149004', - email: 'tester@test.com' + email: 'tester@test.com', }, customerName: ' testing', exportStatus: 'not_exported', @@ -1344,11 +1334,11 @@ export const mockOrderHistory = { maskedNumber: '************1111', numberLastDigits: '1111', validFromMonth: 1, - validFromYear: 2020 + validFromYear: 2020, }, paymentInstrumentId: 'fd4ddecfc5c95b60c7898bbd2a', - paymentMethodId: 'CREDIT_CARD' - } + paymentMethodId: 'CREDIT_CARD', + }, ], paymentStatus: 'not_paid', productItems: [ @@ -1369,7 +1359,7 @@ export const mockOrderHistory = { tax: 2.4, taxBasis: 47.99, taxClassId: 'standard', - taxRate: 0.05 + taxRate: 0.05, }, { adjustedTax: 0.75, @@ -1388,8 +1378,8 @@ export const mockOrderHistory = { tax: 0.75, taxBasis: 14.99, taxClassId: 'standard', - taxRate: 0.05 - } + taxRate: 0.05, + }, ], productSubTotal: 62.98, productTotal: 62.98, @@ -1413,19 +1403,19 @@ export const mockOrderHistory = { lastName: 'testing', phone: '7275551234', postalCode: '33712', - stateCode: 'FL' + stateCode: 'FL', }, shippingMethod: { description: 'Order received within 7-10 business days', id: '001', name: 'Ground', - c_estimatedArrivalTime: '7-10 Business Days' + c_estimatedArrivalTime: '7-10 Business Days', }, shippingStatus: 'not_shipped', shippingTotal: 5.99, shippingTotalTax: 0.3, - taxTotal: 3.45 - } + taxTotal: 3.45, + }, ], shippingItems: [ { @@ -1439,8 +1429,8 @@ export const mockOrderHistory = { tax: 0.3, taxBasis: 5.99, taxClassId: 'standard', - taxRate: 0.05 - } + taxRate: 0.05, + }, ], shippingStatus: 'not_shipped', shippingTotal: 5.99, @@ -1448,7 +1438,7 @@ export const mockOrderHistory = { siteId: 'RefArch', status: 'created', taxation: 'net', - taxTotal: 3.45 + taxTotal: 3.45, }, { adjustedMerchandizeTotalTax: 3.15, @@ -1463,7 +1453,7 @@ export const mockOrderHistory = { lastName: 'testing', phone: '7275551234', postalCode: '33712', - stateCode: 'FL' + stateCode: 'FL', }, channelType: 'storefront', confirmationStatus: 'not_confirmed', @@ -1474,7 +1464,7 @@ export const mockOrderHistory = { customerId: 'customerid', customerName: ' testing', customerNo: '00149004', - email: 'tester@test.com' + email: 'tester@test.com', }, customerName: ' testing', exportStatus: 'not_exported', @@ -1496,11 +1486,11 @@ export const mockOrderHistory = { maskedNumber: '************5454', numberLastDigits: '5454', validFromMonth: 1, - validFromYear: 2020 + validFromYear: 2020, }, paymentInstrumentId: '2aadecebb15f35913e8ce76a54', - paymentMethodId: 'CREDIT_CARD' - } + paymentMethodId: 'CREDIT_CARD', + }, ], paymentStatus: 'not_paid', productItems: [ @@ -1521,7 +1511,7 @@ export const mockOrderHistory = { tax: 2.4, taxBasis: 47.99, taxClassId: 'standard', - taxRate: 0.05 + taxRate: 0.05, }, { adjustedTax: 0.75, @@ -1540,8 +1530,8 @@ export const mockOrderHistory = { tax: 0.75, taxBasis: 14.99, taxClassId: 'standard', - taxRate: 0.05 - } + taxRate: 0.05, + }, ], productSubTotal: 62.98, productTotal: 62.98, @@ -1565,19 +1555,19 @@ export const mockOrderHistory = { lastName: 'testing', phone: '7275551234', postalCode: '33712', - stateCode: 'FL' + stateCode: 'FL', }, shippingMethod: { description: 'Order received within 7-10 business days', id: '001', name: 'Ground', - c_estimatedArrivalTime: '7-10 Business Days' + c_estimatedArrivalTime: '7-10 Business Days', }, shippingStatus: 'not_shipped', shippingTotal: 5.99, shippingTotalTax: 0.3, - taxTotal: 3.45 - } + taxTotal: 3.45, + }, ], shippingItems: [ { @@ -1591,8 +1581,8 @@ export const mockOrderHistory = { tax: 0.3, taxBasis: 5.99, taxClassId: 'standard', - taxRate: 0.05 - } + taxRate: 0.05, + }, ], shippingStatus: 'not_shipped', shippingTotal: 5.99, @@ -1600,7 +1590,7 @@ export const mockOrderHistory = { siteId: 'RefArch', status: 'created', taxation: 'net', - taxTotal: 3.45 + taxTotal: 3.45, }, { adjustedMerchandizeTotalTax: 6.3, @@ -1615,7 +1605,7 @@ export const mockOrderHistory = { lastName: 'testing', phone: '7275551234', postalCode: '33712', - stateCode: 'FL' + stateCode: 'FL', }, channelType: 'storefront', confirmationStatus: 'not_confirmed', @@ -1626,7 +1616,7 @@ export const mockOrderHistory = { customerId: 'customerid', customerName: ' testing', customerNo: '00149004', - email: 'tester@test.com' + email: 'tester@test.com', }, customerName: ' testing', exportStatus: 'not_exported', @@ -1648,11 +1638,11 @@ export const mockOrderHistory = { maskedNumber: '************5454', numberLastDigits: '5454', validFromMonth: 1, - validFromYear: 2020 + validFromYear: 2020, }, paymentInstrumentId: '99e32045955705b49b343b852a', - paymentMethodId: 'CREDIT_CARD' - } + paymentMethodId: 'CREDIT_CARD', + }, ], paymentStatus: 'not_paid', productItems: [ @@ -1673,7 +1663,7 @@ export const mockOrderHistory = { tax: 4.8, taxBasis: 95.98, taxClassId: 'standard', - taxRate: 0.05 + taxRate: 0.05, }, { adjustedTax: 1.5, @@ -1692,8 +1682,8 @@ export const mockOrderHistory = { tax: 1.5, taxBasis: 29.98, taxClassId: 'standard', - taxRate: 0.05 - } + taxRate: 0.05, + }, ], productSubTotal: 125.96, productTotal: 125.96, @@ -1717,19 +1707,19 @@ export const mockOrderHistory = { lastName: 'testing', phone: '7275551234', postalCode: '33712', - stateCode: 'FL' + stateCode: 'FL', }, shippingMethod: { description: 'Order received within 7-10 business days', id: '001', name: 'Ground', - c_estimatedArrivalTime: '7-10 Business Days' + c_estimatedArrivalTime: '7-10 Business Days', }, shippingStatus: 'not_shipped', shippingTotal: 7.99, shippingTotalTax: 0.4, - taxTotal: 6.7 - } + taxTotal: 6.7, + }, ], shippingItems: [ { @@ -1743,8 +1733,8 @@ export const mockOrderHistory = { tax: 0.4, taxBasis: 7.99, taxClassId: 'standard', - taxRate: 0.05 - } + taxRate: 0.05, + }, ], shippingStatus: 'not_shipped', shippingTotal: 7.99, @@ -1752,11 +1742,11 @@ export const mockOrderHistory = { siteId: 'RefArch', status: 'created', taxation: 'net', - taxTotal: 6.7 - } + taxTotal: 6.7, + }, ], offset: 0, - total: 20 + total: 20, } export const mockOrderProducts = { @@ -1772,30 +1762,28 @@ export const mockOrderProducts = { alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6dc64ae1/images/large/PG.10201818.JJ1ANXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6dc64ae1/images/large/PG.10201818.JJ1ANXX.PZ.jpg', - title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6dc64ae1/images/large/PG.10201818.JJ1ANXX.PZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey', }, { alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6c256020/images/large/PG.10201818.JJ1ANXX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6c256020/images/large/PG.10201818.JJ1ANXX.BZ.jpg', - title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6c256020/images/large/PG.10201818.JJ1ANXX.BZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ1ANXX' - } - ] - } + value: 'JJ1ANXX', + }, + ], + }, ], - viewType: 'large' + viewType: 'large', }, { images: [ @@ -1803,30 +1791,28 @@ export const mockOrderProducts = { alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, medium', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwad2ef842/images/medium/PG.10201818.JJ1ANXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwad2ef842/images/medium/PG.10201818.JJ1ANXX.PZ.jpg', - title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwad2ef842/images/medium/PG.10201818.JJ1ANXX.PZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey', }, { alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, medium', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwca64fee1/images/medium/PG.10201818.JJ1ANXX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwca64fee1/images/medium/PG.10201818.JJ1ANXX.BZ.jpg', - title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwca64fee1/images/medium/PG.10201818.JJ1ANXX.BZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ1ANXX' - } - ] - } + value: 'JJ1ANXX', + }, + ], + }, ], - viewType: 'medium' + viewType: 'medium', }, { images: [ @@ -1834,30 +1820,28 @@ export const mockOrderProducts = { alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, small', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ecc9f4b/images/small/PG.10201818.JJ1ANXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ecc9f4b/images/small/PG.10201818.JJ1ANXX.PZ.jpg', - title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ecc9f4b/images/small/PG.10201818.JJ1ANXX.PZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey', }, { alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, small', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc4b732e9/images/small/PG.10201818.JJ1ANXX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc4b732e9/images/small/PG.10201818.JJ1ANXX.BZ.jpg', - title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc4b732e9/images/small/PG.10201818.JJ1ANXX.BZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ1ANXX' - } - ] - } + value: 'JJ1ANXX', + }, + ], + }, ], - viewType: 'small' + viewType: 'small', }, { images: [ @@ -1865,23 +1849,22 @@ export const mockOrderProducts = { alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, swatch', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc39b144c/images/swatch/PG.10201818.JJ1ANXX.CP.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc39b144c/images/swatch/PG.10201818.JJ1ANXX.CP.jpg', - title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc39b144c/images/swatch/PG.10201818.JJ1ANXX.CP.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ1ANXX' - } - ] - } + value: 'JJ1ANXX', + }, + ], + }, ], - viewType: 'swatch' - } + viewType: 'swatch', + }, ], inventory: { ats: 99, @@ -1889,14 +1872,14 @@ export const mockOrderProducts = { id: 'inventory_m', orderable: true, preorderable: false, - stockLevel: 99 + stockLevel: 99, }, longDescription: 'This is a feminine take on a tuxedo classic. Pair it with a pair of Commerce Cloud Store slacks.', master: { masterId: '25518344M', orderable: true, - price: 47.99 + price: 47.99, }, minOrderQuantity: 1, name: 'Pleated Bib Long Sleeve Shirt', @@ -1907,18 +1890,18 @@ export const mockOrderProducts = { productPromotions: [ { calloutMsg: 'Buy one Long Center Seam Skirt and get 2 tops', - promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased' - } + promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased', + }, ], shortDescription: 'This is a feminine take on a tuxedo classic. Pair it with a pair of Commerce Cloud Store slacks.', stepQuantity: 1, type: { - variant: true + variant: true, }, upc: '701642852179', validFrom: { - default: '2010-10-21T04:00:00.000Z' + default: '2010-10-21T04:00:00.000Z', }, variants: [ { @@ -1927,8 +1910,8 @@ export const mockOrderProducts = { productId: '701642852179M', variationValues: { color: 'JJ1ANXX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -1936,8 +1919,8 @@ export const mockOrderProducts = { productId: '701642852209M', variationValues: { color: 'JJ1ANXX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -1945,8 +1928,8 @@ export const mockOrderProducts = { productId: '701642852193M', variationValues: { color: 'JJ1ANXX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -1954,9 +1937,9 @@ export const mockOrderProducts = { productId: '701642852186M', variationValues: { color: 'JJ1ANXX', - size: '9MD' - } - } + size: '9MD', + }, + }, ], variationAttributes: [ { @@ -1966,9 +1949,9 @@ export const mockOrderProducts = { { name: 'Silver Grey', orderable: true, - value: 'JJ1ANXX' - } - ] + value: 'JJ1ANXX', + }, + ], }, { id: 'size', @@ -1977,36 +1960,36 @@ export const mockOrderProducts = { { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'L', orderable: true, - value: '9LG' + value: '9LG', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } + value: '9XL', + }, + ], + }, ], variationValues: { color: 'JJ1ANXX', - size: '9LG' + size: '9LG', }, c_color: 'JJ1ANXX', c_isNewtest: true, c_isSale: true, c_refinementColor: 'grey', c_size: '9LG', - c_width: 'Z' + c_width: 'Z', }, { currency: 'USD', @@ -2018,30 +2001,28 @@ export const mockOrderProducts = { alt: 'Long Sleeve Crew Neck, Fire Red, large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', }, { alt: 'Long Sleeve Crew Neck, Fire Red, large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'large' + viewType: 'large', }, { images: [ @@ -2049,30 +2030,28 @@ export const mockOrderProducts = { alt: 'Long Sleeve Crew Neck, Fire Red, medium', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', }, { alt: 'Long Sleeve Crew Neck, Fire Red, medium', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'medium' + viewType: 'medium', }, { images: [ @@ -2080,30 +2059,28 @@ export const mockOrderProducts = { alt: 'Long Sleeve Crew Neck, Fire Red, small', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', }, { alt: 'Long Sleeve Crew Neck, Fire Red, small', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'small' + viewType: 'small', }, { images: [ @@ -2111,23 +2088,22 @@ export const mockOrderProducts = { alt: 'Long Sleeve Crew Neck, Fire Red, swatch', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', - title: 'Long Sleeve Crew Neck, Fire Red' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', + title: 'Long Sleeve Crew Neck, Fire Red', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'JJ825XX' - } - ] - } + value: 'JJ825XX', + }, + ], + }, ], - viewType: 'swatch' - } + viewType: 'swatch', + }, ], inventory: { ats: 34, @@ -2135,14 +2111,14 @@ export const mockOrderProducts = { id: 'inventory_m', orderable: true, preorderable: false, - stockLevel: 34 + stockLevel: 34, }, longDescription: 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', master: { masterId: '25517823M', orderable: true, - price: 14.99 + price: 14.99, }, minOrderQuantity: 1, name: 'Long Sleeve Crew Neck', @@ -2153,18 +2129,18 @@ export const mockOrderProducts = { productPromotions: [ { calloutMsg: 'Buy one Long Center Seam Skirt and get 2 tops', - promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased' - } + promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased', + }, ], shortDescription: 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', stepQuantity: 1, type: { - variant: true + variant: true, }, upc: '701642811398', validFrom: { - default: '2010-11-18T05:00:00.000Z' + default: '2010-11-18T05:00:00.000Z', }, variants: [ { @@ -2173,8 +2149,8 @@ export const mockOrderProducts = { productId: '701642811398M', variationValues: { color: 'JJ825XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -2182,8 +2158,8 @@ export const mockOrderProducts = { productId: '701642841227M', variationValues: { color: 'JJ3HDXX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -2191,8 +2167,8 @@ export const mockOrderProducts = { productId: '701642841265M', variationValues: { color: 'JJ5QZXX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -2200,8 +2176,8 @@ export const mockOrderProducts = { productId: '701642811473M', variationValues: { color: 'JJI15XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -2209,8 +2185,8 @@ export const mockOrderProducts = { productId: '701642811435M', variationValues: { color: 'JJG80XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -2218,8 +2194,8 @@ export const mockOrderProducts = { productId: '701642811312M', variationValues: { color: 'JJ2XNXX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -2227,8 +2203,8 @@ export const mockOrderProducts = { productId: '701642811237M', variationValues: { color: 'JJ169XX', - size: '9LG' - } + size: '9LG', + }, }, { orderable: true, @@ -2236,8 +2212,8 @@ export const mockOrderProducts = { productId: '701643342570M', variationValues: { color: 'JJ3HDXX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -2245,8 +2221,8 @@ export const mockOrderProducts = { productId: '701642811343M', variationValues: { color: 'JJ2XNXX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -2254,8 +2230,8 @@ export const mockOrderProducts = { productId: '701642811404M', variationValues: { color: 'JJ825XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -2263,8 +2239,8 @@ export const mockOrderProducts = { productId: '701642811336M', variationValues: { color: 'JJ2XNXX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -2272,8 +2248,8 @@ export const mockOrderProducts = { productId: '701642811268M', variationValues: { color: 'JJ169XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -2281,8 +2257,8 @@ export const mockOrderProducts = { productId: '701643070756M', variationValues: { color: 'JJ2XNXX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -2290,8 +2266,8 @@ export const mockOrderProducts = { productId: '701642811497M', variationValues: { color: 'JJI15XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -2299,8 +2275,8 @@ export const mockOrderProducts = { productId: '701642811480M', variationValues: { color: 'JJI15XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -2308,8 +2284,8 @@ export const mockOrderProducts = { productId: '701642811466M', variationValues: { color: 'JJG80XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -2317,8 +2293,8 @@ export const mockOrderProducts = { productId: '701642811428M', variationValues: { color: 'JJ825XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -2326,8 +2302,8 @@ export const mockOrderProducts = { productId: '701643070732M', variationValues: { color: 'JJ825XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -2335,8 +2311,8 @@ export const mockOrderProducts = { productId: '701642811244M', variationValues: { color: 'JJ169XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -2344,8 +2320,8 @@ export const mockOrderProducts = { productId: '701643070763M', variationValues: { color: 'JJG80XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -2353,8 +2329,8 @@ export const mockOrderProducts = { productId: '701643342587M', variationValues: { color: 'JJ5QZXX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -2362,8 +2338,8 @@ export const mockOrderProducts = { productId: '701642811503M', variationValues: { color: 'JJI15XX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -2371,8 +2347,8 @@ export const mockOrderProducts = { productId: '701642811459M', variationValues: { color: 'JJG80XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -2380,8 +2356,8 @@ export const mockOrderProducts = { productId: '701643070725M', variationValues: { color: 'JJ169XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -2389,8 +2365,8 @@ export const mockOrderProducts = { productId: '701642841289M', variationValues: { color: 'JJ5QZXX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -2398,8 +2374,8 @@ export const mockOrderProducts = { productId: '701642841272M', variationValues: { color: 'JJ5QZXX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -2407,8 +2383,8 @@ export const mockOrderProducts = { productId: '701642841241M', variationValues: { color: 'JJ3HDXX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -2416,8 +2392,8 @@ export const mockOrderProducts = { productId: '701642811329M', variationValues: { color: 'JJ2XNXX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -2425,8 +2401,8 @@ export const mockOrderProducts = { productId: '701642811251M', variationValues: { color: 'JJ169XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -2434,8 +2410,8 @@ export const mockOrderProducts = { productId: '701643070770M', variationValues: { color: 'JJI15XX', - size: '9XS' - } + size: '9XS', + }, }, { orderable: true, @@ -2443,8 +2419,8 @@ export const mockOrderProducts = { productId: '701642841296M', variationValues: { color: 'JJ5QZXX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -2452,8 +2428,8 @@ export const mockOrderProducts = { productId: '701642841258M', variationValues: { color: 'JJ3HDXX', - size: '9XL' - } + size: '9XL', + }, }, { orderable: true, @@ -2461,8 +2437,8 @@ export const mockOrderProducts = { productId: '701642811442M', variationValues: { color: 'JJG80XX', - size: '9MD' - } + size: '9MD', + }, }, { orderable: true, @@ -2470,8 +2446,8 @@ export const mockOrderProducts = { productId: '701642811411M', variationValues: { color: 'JJ825XX', - size: '9SM' - } + size: '9SM', + }, }, { orderable: true, @@ -2479,9 +2455,9 @@ export const mockOrderProducts = { productId: '701642841234M', variationValues: { color: 'JJ3HDXX', - size: '9MD' - } - } + size: '9MD', + }, + }, ], variationAttributes: [ { @@ -2491,39 +2467,39 @@ export const mockOrderProducts = { { name: 'Black', orderable: true, - value: 'JJ169XX' + value: 'JJ169XX', }, { name: 'Grey Heather', orderable: true, - value: 'JJ2XNXX' + value: 'JJ2XNXX', }, { name: 'Meadow Violet', orderable: true, - value: 'JJ3HDXX' + value: 'JJ3HDXX', }, { name: 'Begonia Pink', orderable: true, - value: 'JJ5QZXX' + value: 'JJ5QZXX', }, { name: 'Fire Red', orderable: true, - value: 'JJ825XX' + value: 'JJ825XX', }, { name: 'Sugar', orderable: true, - value: 'JJG80XX' + value: 'JJG80XX', }, { name: 'White', orderable: true, - value: 'JJI15XX' - } - ] + value: 'JJI15XX', + }, + ], }, { id: 'size', @@ -2532,42 +2508,42 @@ export const mockOrderProducts = { { name: 'XS', orderable: true, - value: '9XS' + value: '9XS', }, { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'L', orderable: true, - value: '9LG' + value: '9LG', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } + value: '9XL', + }, + ], + }, ], variationValues: { color: 'JJ825XX', - size: '9LG' + size: '9LG', }, c_color: 'JJ825XX', c_refinementColor: 'red', c_size: '9LG', - c_width: 'Z' - } + c_width: 'Z', + }, ], - total: 2 + total: 2, } export const mockedCustomerProductLists = { @@ -2583,18 +2559,18 @@ export const mockedCustomerProductLists = { public: false, purchasedQuantity: 0, quantity: 1, - type: 'product' - } + type: 'product', + }, ], event: {}, id: 'c1b0edb2ad6fcfb153044ef3b0', lastModified: '2021-06-30T04:11:12.602Z', public: false, name: 'PWA wishlist', - type: 'wish_list' - } + type: 'wish_list', + }, ], - total: 1 + total: 1, } export const mockedEmptyCustomerProductList = { @@ -2607,10 +2583,10 @@ export const mockedEmptyCustomerProductList = { id: 'c1b0edb2ad6fcfb153044ef3b0', lastModified: '2021-06-30T04:11:12.602Z', public: false, - type: 'wish_list' - } + type: 'wish_list', + }, ], - total: 1 + total: 1, } export const mockedCustomerProductListsDetails = { @@ -2627,22 +2603,21 @@ export const mockedCustomerProductListsDetails = { alt: 'Apple iPod Nano, Green, large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw26470cbd/images/large/ipod-nano-green.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw26470cbd/images/large/ipod-nano-green.jpg', - title: 'Apple iPod Nano, Green' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw26470cbd/images/large/ipod-nano-green.jpg', + title: 'Apple iPod Nano, Green', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'Green' - } - ] - } + value: 'Green', + }, + ], + }, ], - viewType: 'large' + viewType: 'large', }, { images: [ @@ -2650,22 +2625,21 @@ export const mockedCustomerProductListsDetails = { alt: 'Apple iPod Nano, Green, medium', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw610652b7/images/medium/ipod-nano-green.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw610652b7/images/medium/ipod-nano-green.jpg', - title: 'Apple iPod Nano, Green' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw610652b7/images/medium/ipod-nano-green.jpg', + title: 'Apple iPod Nano, Green', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'Green' - } - ] - } + value: 'Green', + }, + ], + }, ], - viewType: 'medium' + viewType: 'medium', }, { images: [ @@ -2673,22 +2647,21 @@ export const mockedCustomerProductListsDetails = { alt: 'Apple iPod Nano, Green, small', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw09f0fd49/images/small/ipod-nano-green.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw09f0fd49/images/small/ipod-nano-green.jpg', - title: 'Apple iPod Nano, Green' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw09f0fd49/images/small/ipod-nano-green.jpg', + title: 'Apple iPod Nano, Green', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'Green' - } - ] - } + value: 'Green', + }, + ], + }, ], - viewType: 'small' + viewType: 'small', }, { images: [ @@ -2696,23 +2669,22 @@ export const mockedCustomerProductListsDetails = { alt: 'Apple iPod Nano, Green, swatch', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw849cd37f/images/swatch/green.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw849cd37f/images/swatch/green.jpg', - title: 'Apple iPod Nano, Green' - } + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw849cd37f/images/swatch/green.jpg', + title: 'Apple iPod Nano, Green', + }, ], variationAttributes: [ { id: 'color', values: [ { - value: 'Green' - } - ] - } + value: 'Green', + }, + ], + }, ], - viewType: 'swatch' - } + viewType: 'swatch', + }, ], inventory: { ats: 10, @@ -2721,14 +2693,14 @@ export const mockedCustomerProductListsDetails = { inStockDate: '2009-03-31T00:00:00.000Z', orderable: true, preorderable: false, - stockLevel: 0 + stockLevel: 0, }, longDescription: 'Supports MP3 (up to 320 Kbps), MP3 VBR, AAC (up to 320 Kbps), Protected AAC (iTunes Music Store), Audible (formats 2, 3, 4), AIFF, Apple Lossless and WAV audio formats, plus BMP, JPEG, GIF, TIFF, PNG and PSD (Mac only) image formats; podcasting support', master: { masterId: 'apple-ipod-nanoM', orderable: true, - price: 119.0 + price: 119.0, }, minOrderQuantity: 1, name: 'Apple iPod Nano', @@ -2741,14 +2713,14 @@ export const mockedCustomerProductListsDetails = { productPromotions: [ { calloutMsg: '$50offOrderCountAbove5', - promotionId: '$50offOrderCountAbove5' - } + promotionId: '$50offOrderCountAbove5', + }, ], shortDescription: 'The all new iPod nano has a curved aluminum and glass design and stunning new features. The Genius music \r\nfeature helps you find music to fit your mood. With the built-in accelerometer, you can rotate the nano to flip through album art with \r\nCover Flow. Plus, view photos and videos in either portrait or landscape.', stepQuantity: 1, type: { - variant: true + variant: true, }, unitMeasure: '', unitQuantity: 0, @@ -2759,8 +2731,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-silver-8gM', variationValues: { color: 'Silver', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2768,8 +2740,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-black-8gM', variationValues: { color: 'Black', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2777,8 +2749,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-purple-8gM', variationValues: { color: 'Purple', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2786,8 +2758,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-blue-8gM', variationValues: { color: 'Blue', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2795,8 +2767,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-green-8gM', variationValues: { color: 'Green', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2804,8 +2776,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-yellow-8gM', variationValues: { color: 'Yellow', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2813,8 +2785,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-orange-8gM', variationValues: { color: 'Orange', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2822,8 +2794,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-red-8gM', variationValues: { color: 'Red', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2831,8 +2803,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-fuscia-8gM', variationValues: { color: 'Fuscia', - memorySize: '8 GB' - } + memorySize: '8 GB', + }, }, { orderable: true, @@ -2840,8 +2812,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-silver-16gM', variationValues: { color: 'Silver', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2849,8 +2821,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-black-16gM', variationValues: { color: 'Black', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2858,8 +2830,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-purple-16gM', variationValues: { color: 'Purple', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2867,8 +2839,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-blue-16gM', variationValues: { color: 'Blue', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2876,8 +2848,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-green-16gM', variationValues: { color: 'Green', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2885,8 +2857,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-yellow-16gM', variationValues: { color: 'Yellow', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2894,8 +2866,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-orange-16gM', variationValues: { color: 'Orange', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2903,8 +2875,8 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-red-16gM', variationValues: { color: 'Red', - memorySize: '16 GB' - } + memorySize: '16 GB', + }, }, { orderable: true, @@ -2912,9 +2884,9 @@ export const mockedCustomerProductListsDetails = { productId: 'apple-ipod-nano-fuscia-16gM', variationValues: { color: 'Fuscia', - memorySize: '16 GB' - } - } + memorySize: '16 GB', + }, + }, ], variationAttributes: [ { @@ -2924,49 +2896,49 @@ export const mockedCustomerProductListsDetails = { { name: 'Silver', orderable: true, - value: 'Silver' + value: 'Silver', }, { name: 'Black', orderable: true, - value: 'Black' + value: 'Black', }, { name: 'Purple', orderable: true, - value: 'Purple' + value: 'Purple', }, { name: 'Blue', orderable: true, - value: 'Blue' + value: 'Blue', }, { name: 'Green', orderable: true, - value: 'Green' + value: 'Green', }, { name: 'Yellow', orderable: true, - value: 'Yellow' + value: 'Yellow', }, { name: 'Orange', orderable: true, - value: 'Orange' + value: 'Orange', }, { name: 'Red', orderable: true, - value: 'Red' + value: 'Red', }, { name: 'Fuscia', orderable: true, - value: 'Fuscia' - } - ] + value: 'Fuscia', + }, + ], }, { id: 'memorySize', @@ -2975,19 +2947,19 @@ export const mockedCustomerProductListsDetails = { { name: '8 GB', orderable: true, - value: '8 GB' + value: '8 GB', }, { name: '16 GB', orderable: true, - value: '16 GB' - } - ] - } + value: '16 GB', + }, + ], + }, ], variationValues: { color: 'Green', - memorySize: '16 GB' + memorySize: '16 GB', }, c_batteryLife: '24 hours', c_batteryType: 'Lithium Ion', @@ -3007,17 +2979,16 @@ export const mockedCustomerProductListsDetails = { 'The all new iPod nano has a curved aluminum and glass design and stunning new features. The Genius music feature helps you find music to fit your mood. With the built-in accelerometer, you can rotate the nano to flip through album art with Cover Flow. Plus, view photos and videos in either portrait or landscape.', c_tabDetails: 'Supports MP3 (up to 320 Kbps), MP3 VBR, AAC (up to 320 Kbps), Protected AAC (iTunes Music Store), Audible (formats 2, 3, 4), AIFF, Apple Lossless and WAV audio formats, plus BMP, JPEG, GIF, TIFF, PNG and PSD (Mac only) image formats; podcasting support', - c_videoStorage: '16 hours' - } + c_videoStorage: '16 hours', + }, ], - total: 1 + total: 1, } export const mockCategories = { 'mens-clothing-jackets': { id: 'mens-clothing-suits', - image: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw56b28e03/images/slot/sub_banners/cat-banner-mens-suits.jpg', + image: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw56b28e03/images/slot/sub_banners/cat-banner-mens-suits.jpg', name: 'Suits', pageDescription: "Shop Men's suits for business or pleasure. Enjoy from a variety of different styles and cuts at Commerce Cloud.", @@ -3026,22 +2997,22 @@ export const mockCategories = { parentCategoryTree: [ { id: 'mens', - name: 'Mens' + name: 'Mens', }, { id: 'mens-clothing', - name: 'Clothing' + name: 'Clothing', }, { id: 'mens-clothing-suits', - name: 'Suits' - } + name: 'Suits', + }, ], c_enableCompare: false, c_showInMenu: true, c_slotBannerImage: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw2ec92167/images/slot/landing/cat-landing-slotbottom-mens-suits.jpg' - } + 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw2ec92167/images/slot/landing/cat-landing-slotbottom-mens-suits.jpg', + }, } export const mockProductSearch = { @@ -3054,42 +3025,41 @@ export const mockProductSearch = { alt: 'Slim Skirt With Back Kick Pleats, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1c5f9222/images/large/PG.10221626.JJ3WCXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1c5f9222/images/large/PG.10221626.JJ3WCXX.PZ.jpg', - title: 'Slim Skirt With Back Kick Pleats, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1c5f9222/images/large/PG.10221626.JJ3WCXX.PZ.jpg', + title: 'Slim Skirt With Back Kick Pleats, ', }, orderable: true, price: 73.99, productId: '25588993M', productName: 'Slim Skirt With Back Kick Pleats', productType: { - master: true + master: true, }, representedProduct: { - id: '701644042639M' + id: '701644042639M', }, representedProducts: [ { - id: '701644042639M' + id: '701644042639M', }, { - id: '701644042622M' + id: '701644042622M', }, { - id: '701644042653M' + id: '701644042653M', }, { - id: '701644042646M' + id: '701644042646M', }, { - id: '701644042592M' + id: '701644042592M', }, { - id: '701644042608M' + id: '701644042608M', }, { - id: '701644042615M' - } + id: '701644042615M', + }, ], variationAttributes: [ { @@ -3099,9 +3069,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -3110,41 +3080,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -3153,36 +3123,35 @@ export const mockProductSearch = { alt: 'Pull On Neutral Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw22e88fa3/images/large/PG.10224484.JJ0CZXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw22e88fa3/images/large/PG.10224484.JJ0CZXX.PZ.jpg', - title: 'Pull On Neutral Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw22e88fa3/images/large/PG.10224484.JJ0CZXX.PZ.jpg', + title: 'Pull On Neutral Pant, ', }, orderable: true, price: 69.0, productId: '25565094M', productName: 'Pull On Neutral Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701643458462M' + id: '701643458462M', }, representedProducts: [ { - id: '701643458462M' + id: '701643458462M', }, { - id: '701643458509M' + id: '701643458509M', }, { - id: '701643458479M' + id: '701643458479M', }, { - id: '701643458493M' + id: '701643458493M', }, { - id: '701643458486M' - } + id: '701643458486M', + }, ], variationAttributes: [ { @@ -3192,9 +3161,9 @@ export const mockProductSearch = { { name: 'Black & Sugar', orderable: true, - value: 'JJ0CZXX' - } - ] + value: 'JJ0CZXX', + }, + ], }, { id: 'size', @@ -3203,31 +3172,31 @@ export const mockProductSearch = { { name: 'XS', orderable: true, - value: '9XS' + value: '9XS', }, { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'L', orderable: true, - value: '9LG' + value: '9LG', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } - ] + value: '9XL', + }, + ], + }, + ], }, { currency: 'USD', @@ -3236,42 +3205,41 @@ export const mockProductSearch = { alt: 'Washable Linen Slim Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab413b1b/images/large/PG.10243116.JJ2DGXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab413b1b/images/large/PG.10243116.JJ2DGXX.PZ.jpg', - title: 'Washable Linen Slim Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab413b1b/images/large/PG.10243116.JJ2DGXX.PZ.jpg', + title: 'Washable Linen Slim Pant, ', }, orderable: true, price: 89.0, productId: '25593301M', productName: 'Washable Linen Slim Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701644068349M' + id: '701644068349M', }, representedProducts: [ { - id: '701644068349M' + id: '701644068349M', }, { - id: '701644068301M' + id: '701644068301M', }, { - id: '701644068318M' + id: '701644068318M', }, { - id: '701644068356M' + id: '701644068356M', }, { - id: '701644068325M' + id: '701644068325M', }, { - id: '701644068332M' + id: '701644068332M', }, { - id: '701644068363M' - } + id: '701644068363M', + }, ], variationAttributes: [ { @@ -3281,9 +3249,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -3292,41 +3260,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -3335,42 +3303,41 @@ export const mockProductSearch = { alt: 'Classic Crop Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbce5c490/images/large/PG.10232332.JJ169XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbce5c490/images/large/PG.10232332.JJ169XX.PZ.jpg', - title: 'Classic Crop Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbce5c490/images/large/PG.10232332.JJ169XX.PZ.jpg', + title: 'Classic Crop Pant, ', }, orderable: true, price: 69.0, productId: '25564454M', productName: 'Classic Crop Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701643370818M' + id: '701643370818M', }, representedProducts: [ { - id: '701643370818M' + id: '701643370818M', }, { - id: '701643370801M' + id: '701643370801M', }, { - id: '701643370825M' + id: '701643370825M', }, { - id: '701643370849M' + id: '701643370849M', }, { - id: '701643370832M' + id: '701643370832M', }, { - id: '701643370856M' + id: '701643370856M', }, { - id: '701643370795M' - } + id: '701643370795M', + }, ], variationAttributes: [ { @@ -3380,9 +3347,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ169XX' - } - ] + value: 'JJ169XX', + }, + ], }, { id: 'size', @@ -3391,41 +3358,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -3434,42 +3401,41 @@ export const mockProductSearch = { alt: 'Slim Floral Skirt, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwea207073/images/large/PG.10225656.JJ3WDXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwea207073/images/large/PG.10225656.JJ3WDXX.PZ.jpg', - title: 'Slim Floral Skirt, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwea207073/images/large/PG.10225656.JJ3WDXX.PZ.jpg', + title: 'Slim Floral Skirt, ', }, orderable: true, price: 73.99, productId: '25589419M', productName: 'Slim Floral Skirt', productType: { - master: true + master: true, }, representedProduct: { - id: '701643415397M' + id: '701643415397M', }, representedProducts: [ { - id: '701643415397M' + id: '701643415397M', }, { - id: '701643415434M' + id: '701643415434M', }, { - id: '701643415403M' + id: '701643415403M', }, { - id: '701643415410M' + id: '701643415410M', }, { - id: '701643415380M' + id: '701643415380M', }, { - id: '701643415427M' + id: '701643415427M', }, { - id: '701643415441M' - } + id: '701643415441M', + }, ], variationAttributes: [ { @@ -3479,9 +3445,9 @@ export const mockProductSearch = { { name: 'Black Multi', orderable: true, - value: 'JJ3WDXX' - } - ] + value: 'JJ3WDXX', + }, + ], }, { id: 'size', @@ -3490,41 +3456,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -3533,42 +3499,41 @@ export const mockProductSearch = { alt: 'Trouser Leg Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw56926d5f/images/large/PG.10207088.JJ169XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw56926d5f/images/large/PG.10207088.JJ169XX.PZ.jpg', - title: 'Trouser Leg Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw56926d5f/images/large/PG.10207088.JJ169XX.PZ.jpg', + title: 'Trouser Leg Pant, ', }, orderable: true, price: 47.99, productId: '25518746M', productName: 'Trouser Leg Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701642867753M' + id: '701642867753M', }, representedProducts: [ { - id: '701642867753M' + id: '701642867753M', }, { - id: '701642867777M' + id: '701642867777M', }, { - id: '701642867715M' + id: '701642867715M', }, { - id: '701642867722M' + id: '701642867722M', }, { - id: '701642867746M' + id: '701642867746M', }, { - id: '701642867760M' + id: '701642867760M', }, { - id: '701642867739M' - } + id: '701642867739M', + }, ], variationAttributes: [ { @@ -3578,9 +3543,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ169XX' - } - ] + value: 'JJ169XX', + }, + ], }, { id: 'size', @@ -3589,41 +3554,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -3632,36 +3597,35 @@ export const mockProductSearch = { alt: 'Tribal Inspired Slim Skirt, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ecd95d1/images/large/PG.10244521.JJ3WDXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ecd95d1/images/large/PG.10244521.JJ3WDXX.PZ.jpg', - title: 'Tribal Inspired Slim Skirt, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ecd95d1/images/large/PG.10244521.JJ3WDXX.PZ.jpg', + title: 'Tribal Inspired Slim Skirt, ', }, orderable: true, price: 73.99, productId: '25762759M', productName: 'Tribal Inspired Slim Skirt', productType: { - master: true + master: true, }, representedProduct: { - id: '701643636334M' + id: '701643636334M', }, representedProducts: [ { - id: '701643636334M' + id: '701643636334M', }, { - id: '701643636365M' + id: '701643636365M', }, { - id: '701643636372M' + id: '701643636372M', }, { - id: '701643636310M' + id: '701643636310M', }, { - id: '701643636341M' - } + id: '701643636341M', + }, ], variationAttributes: [ { @@ -3671,9 +3635,9 @@ export const mockProductSearch = { { name: 'Black Multi', orderable: true, - value: 'JJ3WDXX' - } - ] + value: 'JJ3WDXX', + }, + ], }, { id: 'size', @@ -3682,31 +3646,31 @@ export const mockProductSearch = { { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -3715,36 +3679,35 @@ export const mockProductSearch = { alt: 'Relaxed Fit Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4eee8da9/images/large/PG.10228765.JJ169XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4eee8da9/images/large/PG.10228765.JJ169XX.PZ.jpg', - title: 'Relaxed Fit Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4eee8da9/images/large/PG.10228765.JJ169XX.PZ.jpg', + title: 'Relaxed Fit Pant, ', }, orderable: true, price: 69.0, productId: '25565572M', productName: 'Relaxed Fit Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701644025151M' + id: '701644025151M', }, representedProducts: [ { - id: '701644025151M' + id: '701644025151M', }, { - id: '701644025182M' + id: '701644025182M', }, { - id: '701644025175M' + id: '701644025175M', }, { - id: '701644025168M' + id: '701644025168M', }, { - id: '701644025199M' - } + id: '701644025199M', + }, ], variationAttributes: [ { @@ -3754,9 +3717,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ169XX' - } - ] + value: 'JJ169XX', + }, + ], }, { id: 'size', @@ -3765,31 +3728,31 @@ export const mockProductSearch = { { name: 'XS', orderable: true, - value: '9XS' + value: '9XS', }, { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'L', orderable: true, - value: '9LG' + value: '9LG', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } - ] + value: '9XL', + }, + ], + }, + ], }, { currency: 'USD', @@ -3798,42 +3761,41 @@ export const mockProductSearch = { alt: '5 Pocket Cuffed Capri, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb4de158c/images/large/PG.60113984.JJ169XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb4de158c/images/large/PG.60113984.JJ169XX.PZ.jpg', - title: '5 Pocket Cuffed Capri, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb4de158c/images/large/PG.60113984.JJ169XX.PZ.jpg', + title: '5 Pocket Cuffed Capri, ', }, orderable: true, price: 49.0, productId: '25688156M', productName: '5 Pocket Cuffed Capri', productType: { - master: true + master: true, }, representedProduct: { - id: '609717696089M' + id: '609717696089M', }, representedProducts: [ { - id: '609717696089M' + id: '609717696089M', }, { - id: '609717696041M' + id: '609717696041M', }, { - id: '609717696096M' + id: '609717696096M', }, { - id: '609717696027M' + id: '609717696027M', }, { - id: '609717696102M' + id: '609717696102M', }, { - id: '609717696034M' + id: '609717696034M', }, { - id: '609717696058M' - } + id: '609717696058M', + }, ], variationAttributes: [ { @@ -3843,9 +3805,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ169XX' - } - ] + value: 'JJ169XX', + }, + ], }, { id: 'size', @@ -3854,41 +3816,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -3897,33 +3859,32 @@ export const mockProductSearch = { alt: 'Pleated Skirt., , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf573a20b/images/large/PG.10255878.JJ3WCXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf573a20b/images/large/PG.10255878.JJ3WCXX.PZ.jpg', - title: 'Pleated Skirt., ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf573a20b/images/large/PG.10255878.JJ3WCXX.PZ.jpg', + title: 'Pleated Skirt., ', }, orderable: true, price: 109.0, productId: '25697392M', productName: 'Pleated Skirt.', productType: { - master: true + master: true, }, representedProduct: { - id: '701644443054M' + id: '701644443054M', }, representedProducts: [ { - id: '701644443054M' + id: '701644443054M', }, { - id: '701644443061M' + id: '701644443061M', }, { - id: '701644443085M' + id: '701644443085M', }, { - id: '701644443078M' - } + id: '701644443078M', + }, ], variationAttributes: [ { @@ -3933,9 +3894,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -3944,26 +3905,26 @@ export const mockProductSearch = { { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'L', orderable: true, - value: '9LG' + value: '9LG', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } - ] + value: '9XL', + }, + ], + }, + ], }, { currency: 'USD', @@ -3972,36 +3933,35 @@ export const mockProductSearch = { alt: 'Classic Glen Plaid Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6d0a44b0/images/large/PG.10233641.JJ3WRXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6d0a44b0/images/large/PG.10233641.JJ3WRXX.PZ.jpg', - title: 'Classic Glen Plaid Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6d0a44b0/images/large/PG.10233641.JJ3WRXX.PZ.jpg', + title: 'Classic Glen Plaid Pant, ', }, orderable: true, price: 80.99, productId: '25589157M', productName: 'Classic Glen Plaid Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701643409747M' + id: '701643409747M', }, representedProducts: [ { - id: '701643409747M' + id: '701643409747M', }, { - id: '701643409716M' + id: '701643409716M', }, { - id: '701643409761M' + id: '701643409761M', }, { - id: '701643409723M' + id: '701643409723M', }, { - id: '701643409730M' - } + id: '701643409730M', + }, ], variationAttributes: [ { @@ -4011,9 +3971,9 @@ export const mockProductSearch = { { name: 'Black & Ivory', orderable: true, - value: 'JJ3WRXX' - } - ] + value: 'JJ3WRXX', + }, + ], }, { id: 'size', @@ -4022,31 +3982,31 @@ export const mockProductSearch = { { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4055,30 +4015,29 @@ export const mockProductSearch = { alt: 'Long Pleated Skirt, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw26c8763f/images/large/PG.10239110.JJ3WCXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw26c8763f/images/large/PG.10239110.JJ3WCXX.PZ.jpg', - title: 'Long Pleated Skirt, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw26c8763f/images/large/PG.10239110.JJ3WCXX.PZ.jpg', + title: 'Long Pleated Skirt, ', }, orderable: true, price: 109.0, productId: '25589795M', productName: 'Long Pleated Skirt', productType: { - master: true + master: true, }, representedProduct: { - id: '701644066987M' + id: '701644066987M', }, representedProducts: [ { - id: '701644066987M' + id: '701644066987M', }, { - id: '701644066994M' + id: '701644066994M', }, { - id: '701644067007M' - } + id: '701644067007M', + }, ], variationAttributes: [ { @@ -4088,9 +4047,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -4099,21 +4058,21 @@ export const mockProductSearch = { { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } - ] + value: '9XL', + }, + ], + }, + ], }, { currency: 'USD', @@ -4122,42 +4081,41 @@ export const mockProductSearch = { alt: 'Pleated Skirt With Embroidery., , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07b70fb1/images/large/PG.10245262.JJ3WCXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07b70fb1/images/large/PG.10245262.JJ3WCXX.PZ.jpg', - title: 'Pleated Skirt With Embroidery., ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07b70fb1/images/large/PG.10245262.JJ3WCXX.PZ.jpg', + title: 'Pleated Skirt With Embroidery., ', }, orderable: true, price: 149.0, productId: '25696693M', productName: 'Pleated Skirt With Embroidery.', productType: { - master: true + master: true, }, representedProduct: { - id: '701644335342M' + id: '701644335342M', }, representedProducts: [ { - id: '701644335342M' + id: '701644335342M', }, { - id: '701644335397M' + id: '701644335397M', }, { - id: '701644335373M' + id: '701644335373M', }, { - id: '701644335380M' + id: '701644335380M', }, { - id: '701644335366M' + id: '701644335366M', }, { - id: '701644335359M' + id: '701644335359M', }, { - id: '701644335403M' - } + id: '701644335403M', + }, ], variationAttributes: [ { @@ -4167,9 +4125,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -4178,41 +4136,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4221,42 +4179,41 @@ export const mockProductSearch = { alt: 'Straight Ankle Pant., , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdaccb91d/images/large/PG.10246102.JJ0DDXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdaccb91d/images/large/PG.10246102.JJ0DDXX.PZ.jpg', - title: 'Straight Ankle Pant., ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdaccb91d/images/large/PG.10246102.JJ0DDXX.PZ.jpg', + title: 'Straight Ankle Pant., ', }, orderable: true, price: 79.0, productId: '25697630M', productName: 'Straight Ankle Pant.', productType: { - master: true + master: true, }, representedProduct: { - id: '701644389383M' + id: '701644389383M', }, representedProducts: [ { - id: '701644389383M' + id: '701644389383M', }, { - id: '701644389369M' + id: '701644389369M', }, { - id: '701644389413M' + id: '701644389413M', }, { - id: '701644389420M' + id: '701644389420M', }, { - id: '701644389376M' + id: '701644389376M', }, { - id: '701644389437M' + id: '701644389437M', }, { - id: '701644389390M' - } + id: '701644389390M', + }, ], variationAttributes: [ { @@ -4266,9 +4223,9 @@ export const mockProductSearch = { { name: 'Black & White', orderable: true, - value: 'JJ0DDXX' - } - ] + value: 'JJ0DDXX', + }, + ], }, { id: 'size', @@ -4277,41 +4234,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4320,42 +4277,41 @@ export const mockProductSearch = { alt: 'Classic Tweed Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8ae5dac1/images/large/PG.10208897.JJ0QRXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8ae5dac1/images/large/PG.10208897.JJ0QRXX.PZ.jpg', - title: 'Classic Tweed Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8ae5dac1/images/large/PG.10208897.JJ0QRXX.PZ.jpg', + title: 'Classic Tweed Pant, ', }, orderable: true, price: 80.99, productId: '25502027M', productName: 'Classic Tweed Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701642884323M' + id: '701642884323M', }, representedProducts: [ { - id: '701642884323M' + id: '701642884323M', }, { - id: '701642884347M' + id: '701642884347M', }, { - id: '701642884309M' + id: '701642884309M', }, { - id: '701642884354M' + id: '701642884354M', }, { - id: '701642884361M' + id: '701642884361M', }, { - id: '701642884330M' + id: '701642884330M', }, { - id: '701642884316M' - } + id: '701642884316M', + }, ], variationAttributes: [ { @@ -4365,9 +4321,9 @@ export const mockProductSearch = { { name: 'Laurel Multi', orderable: true, - value: 'JJ0QRXX' - } - ] + value: 'JJ0QRXX', + }, + ], }, { id: 'size', @@ -4376,41 +4332,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4419,33 +4375,32 @@ export const mockProductSearch = { alt: 'Ribbed Pleated Skirt, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa7953e0e/images/large/PG.10218193.JJ0NLE5.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa7953e0e/images/large/PG.10218193.JJ0NLE5.PZ.jpg', - title: 'Ribbed Pleated Skirt, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa7953e0e/images/large/PG.10218193.JJ0NLE5.PZ.jpg', + title: 'Ribbed Pleated Skirt, ', }, orderable: true, price: 68.99, productId: '25503070M', productName: 'Ribbed Pleated Skirt', productType: { - master: true + master: true, }, representedProduct: { - id: '701643037582M' + id: '701643037582M', }, representedProducts: [ { - id: '701643037582M' + id: '701643037582M', }, { - id: '701643037612M' + id: '701643037612M', }, { - id: '701643037599M' + id: '701643037599M', }, { - id: '701643037605M' - } + id: '701643037605M', + }, ], variationAttributes: [ { @@ -4455,9 +4410,9 @@ export const mockProductSearch = { { name: 'Laurel', orderable: true, - value: 'JJ0NLE5' - } - ] + value: 'JJ0NLE5', + }, + ], }, { id: 'size', @@ -4466,26 +4421,26 @@ export const mockProductSearch = { { name: 'S', orderable: true, - value: '9SM' + value: '9SM', }, { name: 'M', orderable: true, - value: '9MD' + value: '9MD', }, { name: 'L', orderable: true, - value: '9LG' + value: '9LG', }, { name: 'XL', orderable: true, - value: '9XL' - } - ] - } - ] + value: '9XL', + }, + ], + }, + ], }, { currency: 'USD', @@ -4494,39 +4449,38 @@ export const mockProductSearch = { alt: 'Bootleg Trouser, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8641f0b8/images/large/PG.10204133.JJ0CZXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8641f0b8/images/large/PG.10204133.JJ0CZXX.PZ.jpg', - title: 'Bootleg Trouser, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8641f0b8/images/large/PG.10204133.JJ0CZXX.PZ.jpg', + title: 'Bootleg Trouser, ', }, orderable: true, price: 68.99, productId: '25518397M', productName: 'Bootleg Trouser', productType: { - master: true + master: true, }, representedProduct: { - id: '701642853077M' + id: '701642853077M', }, representedProducts: [ { - id: '701642853077M' + id: '701642853077M', }, { - id: '701642853084M' + id: '701642853084M', }, { - id: '701642853107M' + id: '701642853107M', }, { - id: '701642853145M' + id: '701642853145M', }, { - id: '701642853121M' + id: '701642853121M', }, { - id: '701642853091M' - } + id: '701642853091M', + }, ], variationAttributes: [ { @@ -4536,9 +4490,9 @@ export const mockProductSearch = { { name: 'Black & Sugar', orderable: true, - value: 'JJ0CZXX' - } - ] + value: 'JJ0CZXX', + }, + ], }, { id: 'size', @@ -4547,36 +4501,36 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4585,42 +4539,41 @@ export const mockProductSearch = { alt: 'Wide Leg Pant., , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2c21e32c/images/large/PG.10245233.JJ3WDXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2c21e32c/images/large/PG.10245233.JJ3WDXX.PZ.jpg', - title: 'Wide Leg Pant., ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2c21e32c/images/large/PG.10245233.JJ3WDXX.PZ.jpg', + title: 'Wide Leg Pant., ', }, orderable: true, price: 119.0, productId: '25696685M', productName: 'Wide Leg Pant.', productType: { - master: true + master: true, }, representedProduct: { - id: '701644334871M' + id: '701644334871M', }, representedProducts: [ { - id: '701644334871M' + id: '701644334871M', }, { - id: '701644334895M' + id: '701644334895M', }, { - id: '701644334864M' + id: '701644334864M', }, { - id: '701644334901M' + id: '701644334901M', }, { - id: '701644334840M' + id: '701644334840M', }, { - id: '701644334857M' + id: '701644334857M', }, { - id: '701644334888M' - } + id: '701644334888M', + }, ], variationAttributes: [ { @@ -4630,9 +4583,9 @@ export const mockProductSearch = { { name: 'Black Multi', orderable: true, - value: 'JJ3WDXX' - } - ] + value: 'JJ3WDXX', + }, + ], }, { id: 'size', @@ -4641,41 +4594,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4684,42 +4637,41 @@ export const mockProductSearch = { alt: 'Eyelet Skirt., , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9efe5554/images/large/PG.10253481.JJ169XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9efe5554/images/large/PG.10253481.JJ169XX.PZ.jpg', - title: 'Eyelet Skirt., ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9efe5554/images/large/PG.10253481.JJ169XX.PZ.jpg', + title: 'Eyelet Skirt., ', }, orderable: true, price: 89.0, productId: '25697659M', productName: 'Eyelet Skirt.', productType: { - master: true + master: true, }, representedProduct: { - id: '701644390952M' + id: '701644390952M', }, representedProducts: [ { - id: '701644390952M' + id: '701644390952M', }, { - id: '701644390891M' + id: '701644390891M', }, { - id: '701644390907M' + id: '701644390907M', }, { - id: '701644390921M' + id: '701644390921M', }, { - id: '701644390945M' + id: '701644390945M', }, { - id: '701644390914M' + id: '701644390914M', }, { - id: '701644390969M' - } + id: '701644390969M', + }, ], variationAttributes: [ { @@ -4729,9 +4681,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ169XX' - } - ] + value: 'JJ169XX', + }, + ], }, { id: 'size', @@ -4740,41 +4692,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4783,42 +4735,41 @@ export const mockProductSearch = { alt: 'Washable Wool Classic Straight Skirt , , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf6272a34/images/large/PG.10176157.JJ5AJXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf6272a34/images/large/PG.10176157.JJ5AJXX.PZ.jpg', - title: 'Washable Wool Classic Straight Skirt , ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf6272a34/images/large/PG.10176157.JJ5AJXX.PZ.jpg', + title: 'Washable Wool Classic Straight Skirt , ', }, orderable: true, price: 89.0, productId: '25328702M', productName: 'Washable Wool Classic Straight Skirt ', productType: { - master: true + master: true, }, representedProduct: { - id: '701641312858M' + id: '701641312858M', }, representedProducts: [ { - id: '701641312858M' + id: '701641312858M', }, { - id: '701641312865M' + id: '701641312865M', }, { - id: '701641312834M' + id: '701641312834M', }, { - id: '701641312841M' + id: '701641312841M', }, { - id: '701641312810M' + id: '701641312810M', }, { - id: '701641312827M' + id: '701641312827M', }, { - id: '701641312872M' - } + id: '701641312872M', + }, ], variationAttributes: [ { @@ -4828,9 +4779,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -4839,41 +4790,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4882,42 +4833,41 @@ export const mockProductSearch = { alt: 'Roll Up Cargo Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9f11c8e4/images/large/PG.10224067.JJ169XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9f11c8e4/images/large/PG.10224067.JJ169XX.PZ.jpg', - title: 'Roll Up Cargo Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9f11c8e4/images/large/PG.10224067.JJ169XX.PZ.jpg', + title: 'Roll Up Cargo Pant, ', }, orderable: true, price: 47.99, productId: '25564782M', productName: 'Roll Up Cargo Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701643422074M' + id: '701643422074M', }, representedProducts: [ { - id: '701643422074M' + id: '701643422074M', }, { - id: '701643422128M' + id: '701643422128M', }, { - id: '701643422111M' + id: '701643422111M', }, { - id: '701643422098M' + id: '701643422098M', }, { - id: '701643422104M' + id: '701643422104M', }, { - id: '701643422081M' + id: '701643422081M', }, { - id: '701643422135M' - } + id: '701643422135M', + }, ], variationAttributes: [ { @@ -4927,9 +4877,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ169XX' - } - ] + value: 'JJ169XX', + }, + ], }, { id: 'size', @@ -4938,41 +4888,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -4981,27 +4931,26 @@ export const mockProductSearch = { alt: 'Side Button Pleated Skirt, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw05ea84dc/images/large/PG.10227169.JJ3WCXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw05ea84dc/images/large/PG.10227169.JJ3WCXX.PZ.jpg', - title: 'Side Button Pleated Skirt, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw05ea84dc/images/large/PG.10227169.JJ3WCXX.PZ.jpg', + title: 'Side Button Pleated Skirt, ', }, orderable: true, price: 95.99, productId: '25629003M', productName: 'Side Button Pleated Skirt', productType: { - master: true + master: true, }, representedProduct: { - id: '701643408139M' + id: '701643408139M', }, representedProducts: [ { - id: '701643408139M' + id: '701643408139M', }, { - id: '701643408177M' - } + id: '701643408177M', + }, ], variationAttributes: [ { @@ -5011,9 +4960,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -5022,16 +4971,16 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '10', orderable: true, - value: '010' - } - ] - } - ] + value: '010', + }, + ], + }, + ], }, { currency: 'USD', @@ -5040,42 +4989,41 @@ export const mockProductSearch = { alt: 'Flat Front Pant, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw7e830b49/images/large/PG.10240166.JJ3WCXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw7e830b49/images/large/PG.10240166.JJ3WCXX.PZ.jpg', - title: 'Flat Front Pant, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw7e830b49/images/large/PG.10240166.JJ3WCXX.PZ.jpg', + title: 'Flat Front Pant, ', }, orderable: true, price: 99.0, productId: '25589652M', productName: 'Flat Front Pant', productType: { - master: true + master: true, }, representedProduct: { - id: '701643632909M' + id: '701643632909M', }, representedProducts: [ { - id: '701643632909M' + id: '701643632909M', }, { - id: '701643632930M' + id: '701643632930M', }, { - id: '701643632916M' + id: '701643632916M', }, { - id: '701643632893M' + id: '701643632893M', }, { - id: '701643632886M' + id: '701643632886M', }, { - id: '701643632879M' + id: '701643632879M', }, { - id: '701643632923M' - } + id: '701643632923M', + }, ], variationAttributes: [ { @@ -5085,9 +5033,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -5096,41 +5044,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -5139,42 +5087,41 @@ export const mockProductSearch = { alt: 'Pencil Skirt, , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw900cf60d/images/large/PG.10235198.JJ3WCXX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw900cf60d/images/large/PG.10235198.JJ3WCXX.PZ.jpg', - title: 'Pencil Skirt, ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw900cf60d/images/large/PG.10235198.JJ3WCXX.PZ.jpg', + title: 'Pencil Skirt, ', }, orderable: true, price: 79.0, productId: '25688325M', productName: 'Pencil Skirt', productType: { - master: true + master: true, }, representedProduct: { - id: '701643317820M' + id: '701643317820M', }, representedProducts: [ { - id: '701643317820M' + id: '701643317820M', }, { - id: '701643317806M' + id: '701643317806M', }, { - id: '701643317813M' + id: '701643317813M', }, { - id: '701643317844M' + id: '701643317844M', }, { - id: '701643317790M' + id: '701643317790M', }, { - id: '701643317837M' + id: '701643317837M', }, { - id: '701643317851M' - } + id: '701643317851M', + }, ], variationAttributes: [ { @@ -5184,9 +5131,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ3WCXX' - } - ] + value: 'JJ3WCXX', + }, + ], }, { id: 'size', @@ -5195,41 +5142,41 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] + value: '016', + }, + ], + }, + ], }, { currency: 'USD', @@ -5238,9 +5185,8 @@ export const mockProductSearch = { alt: 'Light Weight Cargo Capri (Master), , large', disBaseLink: 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe7549446/images/large/PG.60114143.JJ169XX.PZ.jpg', - link: - 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe7549446/images/large/PG.60114143.JJ169XX.PZ.jpg', - title: 'Light Weight Cargo Capri (Master), ' + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe7549446/images/large/PG.60114143.JJ169XX.PZ.jpg', + title: 'Light Weight Cargo Capri (Master), ', }, orderable: true, price: 29.0, @@ -5248,33 +5194,33 @@ export const mockProductSearch = { productId: '25688228M', productName: 'Light Weight Cargo Capri (Master)', productType: { - master: true + master: true, }, representedProduct: { - id: '609717701479M' + id: '609717701479M', }, representedProducts: [ { - id: '609717701479M' + id: '609717701479M', }, { - id: '609717701547M' + id: '609717701547M', }, { - id: '609717701493M' + id: '609717701493M', }, { - id: '609717701554M' + id: '609717701554M', }, { - id: '609717701530M' + id: '609717701530M', }, { - id: '609717701509M' + id: '609717701509M', }, { - id: '609717701486M' - } + id: '609717701486M', + }, ], variationAttributes: [ { @@ -5284,9 +5230,9 @@ export const mockProductSearch = { { name: 'Black', orderable: true, - value: 'JJ169XX' - } - ] + value: 'JJ169XX', + }, + ], }, { id: 'size', @@ -5295,42 +5241,42 @@ export const mockProductSearch = { { name: '4', orderable: true, - value: '004' + value: '004', }, { name: '6', orderable: true, - value: '006' + value: '006', }, { name: '8', orderable: true, - value: '008' + value: '008', }, { name: '10', orderable: true, - value: '010' + value: '010', }, { name: '12', orderable: true, - value: '012' + value: '012', }, { name: '14', orderable: true, - value: '014' + value: '014', }, { name: '16', orderable: true, - value: '016' - } - ] - } - ] - } + value: '016', + }, + ], + }, + ], + }, ], query: '', refinements: [ @@ -5341,7 +5287,7 @@ export const mockProductSearch = { { hitCount: 43, label: 'New Arrivals', - value: 'newarrivals' + value: 'newarrivals', }, { hitCount: 43, @@ -5356,13 +5302,13 @@ export const mockProductSearch = { { hitCount: 43, label: 'Bottoms', - value: 'womens-clothing-bottoms' - } - ] - } - ] - } - ] + value: 'womens-clothing-bottoms', + }, + ], + }, + ], + }, + ], }, { attributeId: 'c_refinementColor', @@ -5372,87 +5318,87 @@ export const mockProductSearch = { hitCount: 6, label: 'Beige', presentationId: 'beige', - value: 'Beige' + value: 'Beige', }, { hitCount: 43, label: 'Black', presentationId: 'black', - value: 'Black' + value: 'Black', }, { hitCount: 27, label: 'Blue', presentationId: 'blue', - value: 'Blue' + value: 'Blue', }, { hitCount: 0, label: 'Navy', presentationId: 'navy', - value: 'Navy' + value: 'Navy', }, { hitCount: 15, label: 'Brown', presentationId: 'brown', - value: 'Brown' + value: 'Brown', }, { hitCount: 4, label: 'Green', presentationId: 'green', - value: 'Green' + value: 'Green', }, { hitCount: 13, label: 'Grey', presentationId: 'grey', - value: 'Grey' + value: 'Grey', }, { hitCount: 0, label: 'Orange', presentationId: 'orange', - value: 'Orange' + value: 'Orange', }, { hitCount: 3, label: 'Pink', presentationId: 'pink', - value: 'Pink' + value: 'Pink', }, { hitCount: 0, label: 'Purple', presentationId: 'purple', - value: 'Purple' + value: 'Purple', }, { hitCount: 1, label: 'Red', presentationId: 'red', - value: 'Red' + value: 'Red', }, { hitCount: 30, label: 'White', presentationId: 'white', - value: 'White' + value: 'White', }, { hitCount: 0, label: 'Yellow', presentationId: 'yellow', - value: 'Yellow' + value: 'Yellow', }, { hitCount: 2, label: 'Miscellaneous', presentationId: 'miscellaneous', - value: 'Miscellaneous' - } - ] + value: 'Miscellaneous', + }, + ], }, { attributeId: 'c_isNew', @@ -5461,13 +5407,13 @@ export const mockProductSearch = { { hitCount: 4, label: 'true', - value: 'true' - } - ] + value: 'true', + }, + ], }, { attributeId: 'c_bottomType', - label: 'Type | Use' + label: 'Type | Use', }, { attributeId: 'c_size', @@ -5476,137 +5422,137 @@ export const mockProductSearch = { { hitCount: 31, label: '4', - value: '4' + value: '4', }, { hitCount: 32, label: '6', - value: '6' + value: '6', }, { hitCount: 32, label: '8', - value: '8' + value: '8', }, { hitCount: 34, label: '10', - value: '10' + value: '10', }, { hitCount: 31, label: '12', - value: '12' + value: '12', }, { hitCount: 33, label: '14', - value: '14' + value: '14', }, { hitCount: 32, label: '16', - value: '16' + value: '16', }, { hitCount: 5, label: 'XS', - value: 'XS' + value: 'XS', }, { hitCount: 8, label: 'S', - value: 'S' + value: 'S', }, { hitCount: 8, label: 'M', - value: 'M' + value: 'M', }, { hitCount: 6, label: 'L', - value: 'L' + value: 'L', }, { hitCount: 7, label: 'XL', - value: 'XL' + value: 'XL', }, { hitCount: 0, label: '10P', - value: '10P' + value: '10P', }, { hitCount: 0, label: '12P', - value: '12P' + value: '12P', }, { hitCount: 0, label: '14P', - value: '14P' + value: '14P', }, { hitCount: 0, label: '14W', - value: '14W' + value: '14W', }, { hitCount: 0, label: '16W', - value: '16W' + value: '16W', }, { hitCount: 0, label: '18W', - value: '18W' + value: '18W', }, { hitCount: 0, label: '20W', - value: '20W' + value: '20W', }, { hitCount: 0, label: '22W', - value: '22W' + value: '22W', }, { hitCount: 0, label: '24W', - value: '24W' + value: '24W', }, { hitCount: 0, label: '2P', - value: '2P' + value: '2P', }, { hitCount: 0, label: '4P', - value: '4P' + value: '4P', }, { hitCount: 0, label: '6P', - value: '6P' + value: '6P', }, { hitCount: 0, label: '8P', - value: '8P' - } - ] + value: '8P', + }, + ], }, { attributeId: 'c_waist', - label: 'Waist' + label: 'Waist', }, { attributeId: 'c_length', - label: 'Length' + label: 'Length', }, { attributeId: 'price', @@ -5615,62 +5561,62 @@ export const mockProductSearch = { { hitCount: 5, label: '$20 - $49.99', - value: '(20..50)' + value: '(20..50)', }, { hitCount: 32, label: '$50 - $99.99', - value: '(50..100)' + value: '(50..100)', }, { hitCount: 6, label: '$100 - $499.99', - value: '(100..500)' - } - ] - } + value: '(100..500)', + }, + ], + }, ], searchPhraseSuggestions: {}, selectedRefinements: { cgid: 'womens-clothing-bottoms', c_refinementColor: 'Black', - htype: 'master' + htype: 'master', }, selectedSortingOption: 'best-matches', sortingOptions: [ { id: 'best-matches', - label: 'Best Matches' + label: 'Best Matches', }, { id: 'price-low-to-high', - label: 'Price Low To High' + label: 'Price Low To High', }, { id: 'price-high-to-low', - label: 'Price High to Low' + label: 'Price High to Low', }, { id: 'product-name-ascending', - label: 'Product Name A - Z' + label: 'Product Name A - Z', }, { id: 'product-name-descending', - label: 'Product Name Z - A' + label: 'Product Name Z - A', }, { id: 'brand', - label: 'Brand' + label: 'Brand', }, { id: 'most-popular', - label: 'Most Popular' + label: 'Most Popular', }, { id: 'top-sellers', - label: 'Top Sellers' - } + label: 'Top Sellers', + }, ], offset: 0, - total: 43 + total: 43, } From 90c7ff851e7ede51a4a62212f0f41684367f5523 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 16 Feb 2023 12:39:51 -0700 Subject: [PATCH 021/263] working now! hardcoded for just icons/index.jsx override --- .../pwa-kit-dev/src/configs/webpack/config.js | 17 ++- .../src/configs/webpack/plugins.js | 39 ++++--- .../build/loadable-stats.json | 4 +- .../overrides/app/components/icons/index.jsx | 106 +++++++++--------- 4 files changed, 93 insertions(+), 73 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 940534b996..94cf7fe0d9 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -20,7 +20,12 @@ import LoadablePlugin from '@loadable/webpack-plugin' import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin' import SpeedMeasurePlugin from 'speed-measure-webpack-plugin' -import {sdkReplacementPlugin, extendedTemplateReplacementPlugin, allFiles} from './plugins' +import { + sdkReplacementPlugin, + extendedTemplateReplacementPlugin, + magicImportReplacementPlugin, + allFiles +} from './plugins' import {CLIENT, SERVER, CLIENT_OPTIONAL, SSR, REQUEST_PROCESSOR} from './config-names' const projectDir = process.cwd() @@ -181,9 +186,13 @@ const baseConfig = (target) => { sdkReplacementPlugin(projectDir), - // pkg?.mobify?.extends && pkg?.mobify?.overridesDir - // ? extendedTemplateReplacementPlugin(projectDir) - // : () => null, + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? magicImportReplacementPlugin(projectDir) + : () => null, + + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? extendedTemplateReplacementPlugin(projectDir) + : () => null, allFiles(), // Don't chunk if it's a node target – faster Lambda startup. diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 438e154e22..c25f17f6e8 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -125,6 +125,19 @@ export const allFiles = (projectDir) => { }) } +export const magicImportReplacementPlugin = (projectDir) => { + return new webpack.NormalModuleReplacementPlugin(/\^/, (resource) => { + const resolved = path.resolve(resource.context, resource.request) + console.log('~===== ^^ Magic', resolved) + const relativePath = resolved?.split(`^`)?.[1]?.replace(/^\//, '') + const newPath = path.resolve(projectDir, 'node_modules', relativePath) + console.log('~^ magic newPath', newPath) + // NOTE: overriding either of these alone does not work, both must be set + resource.request = newPath + resource.createData.resource = newPath + }) +} + export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('~templateAppPathRegex', templateAppPathRegex) const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` @@ -197,23 +210,21 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // https://github.com/dependents/node-dependency-tree return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { - if ( - path - .resolve(resource.context, resource.request) - ?.match('template-retail-react-app/app/components/icons') - ) { - console.log( - '~======= file path.resolve()', - path.resolve(resource.context, resource.request) - ) + const resolved = path.resolve(resource.context, resource.request) + if (resolved?.match?.(/retail\-react\-app\/app\/components\/icons/)) { + console.log('~======= file path.resolve()', resolved) console.log('~requestedFile context:', resource.context) console.log('~requestedFile request:', resource.request) - // resource.context = - // '/Users/bfeister/dev/pwa-kit/packages/spike-extended-retail-app/pwa-kit/overrides' - // resource.request = '/app/components/icons' - resource.context = '/Users/bfeister/dev/pwa-kit/packages/spike-extended-retail-app' - resource.request = 'pwa-kit/overrides/app/components/icons' + const depth = pkg?.mobify?.overridesDir?.replace?.(/^\//, '')?.split('/') || [] + const relativePath = resolved?.split?.(/retail\-react\-app/)?.[1] + const newPath = projectDir + pkg?.mobify?.overridesDir + relativePath + console.log('~new resource.request!!!', newPath) + // NOTE: overriding either of these alone does not work, both must be set + resource.request = newPath + // TODO: without the file extension, this fails, so we need to pull this from + // the original detected overridesMap + resource.createData.resource = newPath + '/index.jsx' } }) } diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index dc4e5f6d12..26c6254990 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "f3ad3e05080195fad601", + "hash": "42190a50462fcab38409", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1148422, + "size": 1153152, "emitted": false, "comparedForEmit": false, "cached": true, diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx index aab30a93af..9d1c1704c7 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx @@ -12,61 +12,61 @@ import {Icon, useTheme} from '@chakra-ui/react' // during SSR. // NOTE: Another solution would be to use `require-context.macro` package to accomplish // importing icon svg's. -import 'retail-react-app/app/assets/svg/alert.svg' -import 'retail-react-app/app/assets/svg/account.svg' -import 'retail-react-app/app/assets/svg/basket.svg' -import 'retail-react-app/app/assets/svg/check.svg' -import 'retail-react-app/app/assets/svg/check-circle.svg' -import 'retail-react-app/app/assets/svg/chevron-up.svg' -import 'retail-react-app/app/assets/svg/chevron-down.svg' -import 'retail-react-app/app/assets/svg/chevron-right.svg' -import 'retail-react-app/app/assets/svg/chevron-left.svg' -import 'retail-react-app/app/assets/svg/chevron-right.svg' -import 'retail-react-app/app/assets/svg/chevron-up.svg' -import 'retail-react-app/app/assets/svg/dashboard.svg' -import 'retail-react-app/app/assets/svg/figma-logo.svg' -import 'retail-react-app/app/assets/svg/filter.svg' -import 'retail-react-app/app/assets/svg/file.svg' -import 'retail-react-app/app/assets/svg/flag-ca.svg' -import 'retail-react-app/app/assets/svg/flag-us.svg' -import 'retail-react-app/app/assets/svg/flag-gb.svg' -import 'retail-react-app/app/assets/svg/flag-fr.svg' -import 'retail-react-app/app/assets/svg/flag-it.svg' -import 'retail-react-app/app/assets/svg/flag-cn.svg' -import 'retail-react-app/app/assets/svg/flag-jp.svg' -import 'retail-react-app/app/assets/svg/github-logo.svg' -import 'retail-react-app/app/assets/svg/hamburger.svg' -import 'retail-react-app/app/assets/svg/info.svg' -import 'retail-react-app/app/assets/svg/social-facebook.svg' -import 'retail-react-app/app/assets/svg/social-instagram.svg' -import 'retail-react-app/app/assets/svg/social-twitter.svg' -import 'retail-react-app/app/assets/svg/social-youtube.svg' -import 'retail-react-app/app/assets/svg/like.svg' -import 'retail-react-app/app/assets/svg/lock.svg' -import 'retail-react-app/app/assets/svg/payment.svg' -import 'retail-react-app/app/assets/svg/plug.svg' -import 'retail-react-app/app/assets/svg/plus.svg' -import 'retail-react-app/app/assets/svg/receipt.svg' -import 'retail-react-app/app/assets/svg/search.svg' -import 'retail-react-app/app/assets/svg/signout.svg' -import 'retail-react-app/app/assets/svg/user.svg' -import 'retail-react-app/app/assets/svg/visibility.svg' -import 'retail-react-app/app/assets/svg/visibility-off.svg' -import 'retail-react-app/app/assets/svg/heart.svg' -import 'retail-react-app/app/assets/svg/heart-solid.svg' -import 'retail-react-app/app/assets/svg/close.svg' +import '^retail-react-app/app/assets/svg/alert.svg' +import '^retail-react-app/app/assets/svg/account.svg' +import '^retail-react-app/app/assets/svg/basket.svg' +import '^retail-react-app/app/assets/svg/check.svg' +import '^retail-react-app/app/assets/svg/check-circle.svg' +import '^retail-react-app/app/assets/svg/chevron-up.svg' +import '^retail-react-app/app/assets/svg/chevron-down.svg' +import '^retail-react-app/app/assets/svg/chevron-right.svg' +import '^retail-react-app/app/assets/svg/chevron-left.svg' +import '^retail-react-app/app/assets/svg/chevron-right.svg' +import '^retail-react-app/app/assets/svg/chevron-up.svg' +import '^retail-react-app/app/assets/svg/dashboard.svg' +import '^retail-react-app/app/assets/svg/figma-logo.svg' +import '^retail-react-app/app/assets/svg/filter.svg' +import '^retail-react-app/app/assets/svg/file.svg' +import '^retail-react-app/app/assets/svg/flag-ca.svg' +import '^retail-react-app/app/assets/svg/flag-us.svg' +import '^retail-react-app/app/assets/svg/flag-gb.svg' +import '^retail-react-app/app/assets/svg/flag-fr.svg' +import '^retail-react-app/app/assets/svg/flag-it.svg' +import '^retail-react-app/app/assets/svg/flag-cn.svg' +import '^retail-react-app/app/assets/svg/flag-jp.svg' +import '^retail-react-app/app/assets/svg/github-logo.svg' +import '^retail-react-app/app/assets/svg/hamburger.svg' +import '^retail-react-app/app/assets/svg/info.svg' +import '^retail-react-app/app/assets/svg/social-facebook.svg' +import '^retail-react-app/app/assets/svg/social-instagram.svg' +import '^retail-react-app/app/assets/svg/social-twitter.svg' +import '^retail-react-app/app/assets/svg/social-youtube.svg' +import '^retail-react-app/app/assets/svg/like.svg' +import '^retail-react-app/app/assets/svg/lock.svg' +import '^retail-react-app/app/assets/svg/payment.svg' +import '^retail-react-app/app/assets/svg/plug.svg' +import '^retail-react-app/app/assets/svg/plus.svg' +import '^retail-react-app/app/assets/svg/receipt.svg' +import '^retail-react-app/app/assets/svg/search.svg' +import '^retail-react-app/app/assets/svg/signout.svg' +import '^retail-react-app/app/assets/svg/user.svg' +import '^retail-react-app/app/assets/svg/visibility.svg' +import '^retail-react-app/app/assets/svg/visibility-off.svg' +import '^retail-react-app/app/assets/svg/heart.svg' +import '^retail-react-app/app/assets/svg/heart-solid.svg' +import '^retail-react-app/app/assets/svg/close.svg' // For non-square SVGs, we can use the symbol data from the import to set the // proper viewBox attribute on the Icon wrapper. -import AmexSymbol from 'retail-react-app/app/assets/svg/cc-amex.svg' -import BrandLogoSymbol from 'retail-react-app/app/assets/svg/brand-logo.svg' -import CVVSymbol from 'retail-react-app/app/assets/svg/cc-cvv.svg' -import DiscoverSymbol from 'retail-react-app/app/assets/svg/cc-discover.svg' -import LocationSymbol from 'retail-react-app/app/assets/svg/location.svg' -import MastercardSymbol from 'retail-react-app/app/assets/svg/cc-mastercard.svg' -import PaypalSymbol from 'retail-react-app/app/assets/svg/paypal.svg' -import SocialPinterestSymbol from 'retail-react-app/app/assets/svg/social-pinterest.svg' -import VisaSymbol from 'retail-react-app/app/assets/svg/cc-visa.svg' +import AmexSymbol from '^retail-react-app/app/assets/svg/cc-amex.svg' +import BrandLogoSymbol from '^retail-react-app/app/assets/svg/brand-logo.svg' +import CVVSymbol from '^retail-react-app/app/assets/svg/cc-cvv.svg' +import DiscoverSymbol from '^retail-react-app/app/assets/svg/cc-discover.svg' +import LocationSymbol from '^retail-react-app/app/assets/svg/location.svg' +import MastercardSymbol from '^retail-react-app/app/assets/svg/cc-mastercard.svg' +import PaypalSymbol from '^retail-react-app/app/assets/svg/paypal.svg' +import SocialPinterestSymbol from '^retail-react-app/app/assets/svg/social-pinterest.svg' +import VisaSymbol from '^retail-react-app/app/assets/svg/cc-visa.svg' // TODO: We're hardcoding the `viewBox` for these imported SVGs temporarily as the // SVG loader plugin is not properly providing us the symbol data on the client side. @@ -99,7 +99,7 @@ const icon = (name, passProps) => { // // TODO: for demo, this can show overrides, but highlight // that imports within the project don't respect them - <>x🎉 + <>YES! 🎉 ) }) component.displayName = `${displayName}Icon` From 46c8acef0dddf77292ddefb2ecaede2d5c23b5f8 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 16 Feb 2023 12:56:24 -0700 Subject: [PATCH 022/263] cleanup --- packages/pwa-kit-dev/src/configs/webpack/plugins.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index c25f17f6e8..095ad35661 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -116,16 +116,11 @@ export const allFiles = (projectDir) => { console.log('~ALL FILES ==== resource.context', resource.context) console.log('~ALL FILES ==== resource.request', resource.request) } - if (resolved.match(/\/app\/components\/icons/)) { - // console.log('~========================================') - // console.log('~ALL FILES ==== resolved', resolved) - // console.log('~ALL FILES ==== resource.context', resource.context) - // console.log('~ALL FILES ==== resource.request', resource.request) - } }) } export const magicImportReplacementPlugin = (projectDir) => { + // TODO: does any other library use this weird magic character import schema? return new webpack.NormalModuleReplacementPlugin(/\^/, (resource) => { const resolved = path.resolve(resource.context, resource.request) console.log('~===== ^^ Magic', resolved) From e2dff95cb4cd5bfb84db6382a94e25ed2fd8ff53 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 16 Feb 2023 16:41:00 -0700 Subject: [PATCH 023/263] Icons working with magic local (*) and base template (^) directives --- .../pwa-kit-dev/src/configs/webpack/config.js | 9 +++++-- .../src/configs/webpack/plugins.js | 20 +++++++++++++- .../build/loadable-stats.json | 4 +-- .../overrides/app/components/icons/index.jsx | 27 ++++++++++++++----- .../overrides/app/static/svg/brand-logo.svg | 8 ++++++ 5 files changed, 56 insertions(+), 12 deletions(-) create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 94cf7fe0d9..e476dbb0ac 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -23,7 +23,8 @@ import SpeedMeasurePlugin from 'speed-measure-webpack-plugin' import { sdkReplacementPlugin, extendedTemplateReplacementPlugin, - magicImportReplacementPlugin, + importFromExtendsPlugin, + importFromLocalPlugin, allFiles } from './plugins' import {CLIENT, SERVER, CLIENT_OPTIONAL, SSR, REQUEST_PROCESSOR} from './config-names' @@ -187,7 +188,11 @@ const baseConfig = (target) => { sdkReplacementPlugin(projectDir), pkg?.mobify?.extends && pkg?.mobify?.overridesDir - ? magicImportReplacementPlugin(projectDir) + ? importFromExtendsPlugin(projectDir) + : () => null, + + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? importFromLocalPlugin(projectDir) : () => null, pkg?.mobify?.extends && pkg?.mobify?.overridesDir diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 095ad35661..4abf705167 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -119,7 +119,7 @@ export const allFiles = (projectDir) => { }) } -export const magicImportReplacementPlugin = (projectDir) => { +export const importFromExtendsPlugin = (projectDir) => { // TODO: does any other library use this weird magic character import schema? return new webpack.NormalModuleReplacementPlugin(/\^/, (resource) => { const resolved = path.resolve(resource.context, resource.request) @@ -133,6 +133,24 @@ export const magicImportReplacementPlugin = (projectDir) => { }) } +export const importFromLocalPlugin = (projectDir) => { + // TODO: does any other library use this weird magic character import schema? + return new webpack.NormalModuleReplacementPlugin(/\*/, (resource) => { + const resolved = path.resolve(resource.context, resource.request) + console.log('~===== ** Magic', resolved) + const relativePath = resolved?.split(`*`)?.[1]?.replace(/\*/, '') + const newPath = path.resolve( + projectDir, + pkg?.mobify?.overridesDir?.replace(/^\//, ''), + relativePath + ) + console.log('~* magic newPath', newPath) + // NOTE: overriding either of these alone does not work, both must be set + resource.request = newPath + resource.createData.resource = newPath + }) +} + export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('~templateAppPathRegex', templateAppPathRegex) const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 26c6254990..0b99c5bd8a 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "42190a50462fcab38409", + "hash": "0fb7982b629c4bedfbec", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1153152, + "size": 1156806, "emitted": false, "comparedForEmit": false, "cached": true, diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx index 9d1c1704c7..578f9c90ff 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx @@ -59,7 +59,8 @@ import '^retail-react-app/app/assets/svg/close.svg' // For non-square SVGs, we can use the symbol data from the import to set the // proper viewBox attribute on the Icon wrapper. import AmexSymbol from '^retail-react-app/app/assets/svg/cc-amex.svg' -import BrandLogoSymbol from '^retail-react-app/app/assets/svg/brand-logo.svg' +// import BrandLogoSymbol from '^retail-react-app/app/assets/svg/brand-logo.svg' +import BrandLogoSymbol from '*app/static/svg/brand-logo.svg' import CVVSymbol from '^retail-react-app/app/assets/svg/cc-cvv.svg' import DiscoverSymbol from '^retail-react-app/app/assets/svg/cc-discover.svg' import LocationSymbol from '^retail-react-app/app/assets/svg/location.svg' @@ -71,7 +72,7 @@ import VisaSymbol from '^retail-react-app/app/assets/svg/cc-visa.svg' // TODO: We're hardcoding the `viewBox` for these imported SVGs temporarily as the // SVG loader plugin is not properly providing us the symbol data on the client side. AmexSymbol.viewBox = AmexSymbol.viewBox || '0 0 38 22' -BrandLogoSymbol.viewBox = BrandLogoSymbol.viewBox || '0 0 46 32' +// BrandLogoSymbol.viewBox = BrandLogoSymbol.viewBox || '0 0 46 32' CVVSymbol.viewBox = CVVSymbol.viewBox || '0 0 41 24' DiscoverSymbol.viewBox = DiscoverSymbol.viewBox || '0 0 38 22' LocationSymbol.viewBox = LocationSymbol.viewBox || '0 0 16 21' @@ -80,6 +81,8 @@ PaypalSymbol.viewBox = PaypalSymbol.viewBox || '0 0 80 20' SocialPinterestSymbol.viewBox = SocialPinterestSymbol.viewBox || '0 0 21 20' VisaSymbol.viewBox = VisaSymbol.viewBox || '0 0 38 22' +const overrideIcons = ['brand-logo'] + /** * A helper for creating a Chakra-wrapped icon from our own SVG imports via sprite sheet. * @param {string} name - the filename of the imported svg (does not include extension) @@ -92,14 +95,24 @@ const icon = (name, passProps) => { .replace(/-/g, '') const component = forwardRef((props, ref) => { const theme = useTheme() - const baseStyle = theme?.components?.Icon?.baseStyle + const baseStyle = { + ...theme?.components?.Icon?.baseStyle, + ...(overrideIcons?.includes(name) ? {color: 'red !important', boxSize: 14} : {}), + } + return ( - // - // - // + + + // TODO: for demo, this can show overrides, but highlight // that imports within the project don't respect them - <>YES! 🎉 + // <>{name}! 🎉 ) }) component.displayName = `${displayName}Icon` diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg new file mode 100644 index 0000000000..43f3dc912e --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg @@ -0,0 +1,8 @@ + + + + + + + + From cdfcbe7691d3210c24bd9232c78030f20f8fc757 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 16 Feb 2023 19:40:09 -0700 Subject: [PATCH 024/263] Remove dependency on hardcoded `icons/index.jsx` path --- .../pwa-kit-dev/src/configs/webpack/config.js | 3 +- .../src/configs/webpack/plugins.js | 8 +- .../build/loadable-stats.json | 322 +++++++++--------- .../app/components/_app-config/index.jsx | 14 +- .../overrides/app/components/_app/index.jsx | 36 +- .../app/components/drawer-menu/index.jsx | 27 +- .../overrides/app/components/header/index.jsx | 18 +- .../app/components/list-menu/index.jsx | 8 +- .../overrides/app/components/search/index.jsx | 16 +- .../overrides/app/pages/account/constant.js | 64 ---- .../checkout/partials/checkout-header.tsx | 8 +- .../pwa-kit/overrides/app/pages/home/data.js | 2 +- .../overrides/app/pages/home/index.jsx | 14 +- .../pwa-kit/overrides/app/routes.jsx | 26 +- .../app/theme/components/project/_app.js | 25 -- .../app/theme/components/project/header.js | 85 ----- 16 files changed, 255 insertions(+), 421 deletions(-) delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index e476dbb0ac..65cf5ffe03 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -22,9 +22,9 @@ import SpeedMeasurePlugin from 'speed-measure-webpack-plugin' import { sdkReplacementPlugin, - extendedTemplateReplacementPlugin, importFromExtendsPlugin, importFromLocalPlugin, + extendedTemplateReplacementPlugin, allFiles } from './plugins' import {CLIENT, SERVER, CLIENT_OPTIONAL, SSR, REQUEST_PROCESSOR} from './config-names' @@ -198,7 +198,6 @@ const baseConfig = (target) => { pkg?.mobify?.extends && pkg?.mobify?.overridesDir ? extendedTemplateReplacementPlugin(projectDir) : () => null, - allFiles(), // Don't chunk if it's a node target – faster Lambda startup. target === 'node' && new webpack.optimize.LimitChunkCountPlugin({maxChunks: 1}) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 4abf705167..42b1960f43 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -224,13 +224,17 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { const resolved = path.resolve(resource.context, resource.request) - if (resolved?.match?.(/retail\-react\-app\/app\/components\/icons/)) { + const matchRegex = makeRegExp(pkg?.mobify?.extends) + if ( + resolved?.match?.(matchRegex) && + _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length + ) { console.log('~======= file path.resolve()', resolved) console.log('~requestedFile context:', resource.context) console.log('~requestedFile request:', resource.request) const depth = pkg?.mobify?.overridesDir?.replace?.(/^\//, '')?.split('/') || [] - const relativePath = resolved?.split?.(/retail\-react\-app/)?.[1] + const relativePath = resolved?.split?.(matchRegex)?.[1] const newPath = projectDir + pkg?.mobify?.overridesDir + relativePath console.log('~new resource.request!!!', newPath) // NOTE: overriding either of these alone does not work, both must be set diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 0b99c5bd8a..71c37e5453 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "0fb7982b629c4bedfbec", + "hash": "bb2721da0c152ace1396", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -10,41 +10,41 @@ "pages-home": [ "pages-home.js" ], - "retail-react-app-app-pages-login": [ - "retail-react-app-app-pages-login.js" + "^retail-react-app-app-pages-login": [ + "^retail-react-app-app-pages-login.js" ], - "retail-react-app-app-pages-registration": [ - "retail-react-app-app-pages-registration.js" + "^retail-react-app-app-pages-registration": [ + "^retail-react-app-app-pages-registration.js" ], - "retail-react-app-app-pages-reset-password": [ - "retail-react-app-app-pages-reset-password.js" + "^retail-react-app-app-pages-reset-password": [ + "^retail-react-app-app-pages-reset-password.js" ], - "retail-react-app-app-pages-account": [ - "retail-react-app-app-pages-account.js" + "^retail-react-app-app-pages-account": [ + "^retail-react-app-app-pages-account.js" ], - "retail-react-app-app-pages-cart": [ - "retail-react-app-app-pages-cart.js" + "^retail-react-app-app-pages-cart": [ + "^retail-react-app-app-pages-cart.js" ], - "retail-react-app-app-pages-checkout": [ - "retail-react-app-app-pages-checkout.js" + "^retail-react-app-app-pages-checkout": [ + "^retail-react-app-app-pages-checkout.js" ], - "retail-react-app-app-pages-checkout-confirmation": [ - "retail-react-app-app-pages-checkout-confirmation.js" + "^retail-react-app-app-pages-checkout-confirmation": [ + "^retail-react-app-app-pages-checkout-confirmation.js" ], - "retail-react-app-app-pages-login-redirect": [ - "retail-react-app-app-pages-login-redirect.js" + "^retail-react-app-app-pages-login-redirect": [ + "^retail-react-app-app-pages-login-redirect.js" ], - "retail-react-app-app-pages-product-detail": [ - "retail-react-app-app-pages-product-detail.js" + "^retail-react-app-app-pages-product-detail": [ + "^retail-react-app-app-pages-product-detail.js" ], - "retail-react-app-app-pages-product-list": [ - "retail-react-app-app-pages-product-list.js" + "^retail-react-app-app-pages-product-list": [ + "^retail-react-app-app-pages-product-list.js" ], - "retail-react-app-app-pages-account-wishlist": [ - "retail-react-app-app-pages-account-wishlist.js" + "^retail-react-app-app-pages-account-wishlist": [ + "^retail-react-app-app-pages-account-wishlist.js" ], - "retail-react-app-app-pages-page-not-found": [ - "retail-react-app-app-pages-page-not-found.js" + "^retail-react-app-app-pages-page-not-found": [ + "^retail-react-app-app-pages-page-not-found.js" ], "vendor": [ "vendor.js" @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1156806, + "size": 1157793, "emitted": false, "comparedForEmit": false, "cached": true, @@ -105,76 +105,76 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-account.js", - "size": 169339, + "name": "^retail-react-app-app-pages-account.js", + "size": 169341, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-account.js.map" + "sourceMap": "^retail-react-app-app-pages-account.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-account" + "^retail-react-app-app-pages-account" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-account" + "^retail-react-app-app-pages-account" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-checkout.js", - "size": 155438, + "name": "^retail-react-app-app-pages-checkout.js", + "size": 155440, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-checkout.js.map" + "sourceMap": "^retail-react-app-app-pages-checkout.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-checkout" + "^retail-react-app-app-pages-checkout" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-checkout" + "^retail-react-app-app-pages-checkout" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-product-list.js", - "size": 115785, + "name": "^retail-react-app-app-pages-product-list.js", + "size": 115787, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-product-list.js.map" + "sourceMap": "^retail-react-app-app-pages-product-list.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-product-list" + "^retail-react-app-app-pages-product-list" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-product-list" + "^retail-react-app-app-pages-product-list" ], "auxiliaryChunks": [] }, @@ -245,51 +245,51 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-cart.js", - "size": 60899, + "name": "^retail-react-app-app-pages-cart.js", + "size": 60901, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-cart.js.map" + "sourceMap": "^retail-react-app-app-pages-cart.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-cart" + "^retail-react-app-app-pages-cart" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-cart" + "^retail-react-app-app-pages-cart" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-checkout-confirmation.js", - "size": 53991, + "name": "^retail-react-app-app-pages-checkout-confirmation.js", + "size": 53993, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-checkout-confirmation.js.map" + "sourceMap": "^retail-react-app-app-pages-checkout-confirmation.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-checkout-confirmation" + "^retail-react-app-app-pages-checkout-confirmation" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-checkout-confirmation" + "^retail-react-app-app-pages-checkout-confirmation" ], "auxiliaryChunks": [] }, @@ -551,7 +551,7 @@ { "type": "asset", "name": "pages-home.js", - "size": 39479, + "size": 39516, "emitted": false, "comparedForEmit": false, "cached": true, @@ -575,26 +575,26 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-account-wishlist.js", - "size": 39134, + "name": "^retail-react-app-app-pages-account-wishlist.js", + "size": 39136, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-account-wishlist.js.map" + "sourceMap": "^retail-react-app-app-pages-account-wishlist.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-account-wishlist" + "^retail-react-app-app-pages-account-wishlist" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-account-wishlist" + "^retail-react-app-app-pages-account-wishlist" ], "auxiliaryChunks": [] }, @@ -623,151 +623,151 @@ }, { "type": "asset", - "name": "retail-react-app-app-pages-product-detail.js", - "size": 23690, + "name": "^retail-react-app-app-pages-product-detail.js", + "size": 23692, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-product-detail.js.map" + "sourceMap": "^retail-react-app-app-pages-product-detail.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-product-detail" + "^retail-react-app-app-pages-product-detail" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-product-detail" + "^retail-react-app-app-pages-product-detail" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-reset-password.js", - "size": 10456, + "name": "^retail-react-app-app-pages-reset-password.js", + "size": 10458, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-reset-password.js.map" + "sourceMap": "^retail-react-app-app-pages-reset-password.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-reset-password" + "^retail-react-app-app-pages-reset-password" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-reset-password" + "^retail-react-app-app-pages-reset-password" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-login.js", - "size": 8379, + "name": "^retail-react-app-app-pages-login.js", + "size": 8381, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-login.js.map" + "sourceMap": "^retail-react-app-app-pages-login.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-login" + "^retail-react-app-app-pages-login" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-login" + "^retail-react-app-app-pages-login" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-page-not-found.js", - "size": 7774, + "name": "^retail-react-app-app-pages-page-not-found.js", + "size": 7776, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-page-not-found.js.map" + "sourceMap": "^retail-react-app-app-pages-page-not-found.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-page-not-found" + "^retail-react-app-app-pages-page-not-found" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-page-not-found" + "^retail-react-app-app-pages-page-not-found" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-registration.js", - "size": 7562, + "name": "^retail-react-app-app-pages-registration.js", + "size": 7564, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-registration.js.map" + "sourceMap": "^retail-react-app-app-pages-registration.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-registration" + "^retail-react-app-app-pages-registration" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-registration" + "^retail-react-app-app-pages-registration" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "retail-react-app-app-pages-login-redirect.js", - "size": 3060, + "name": "^retail-react-app-app-pages-login-redirect.js", + "size": 3062, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "retail-react-app-app-pages-login-redirect.js.map" + "sourceMap": "^retail-react-app-app-pages-login-redirect.js.map" } }, "chunkNames": [ - "retail-react-app-app-pages-login-redirect" + "^retail-react-app-app-pages-login-redirect" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "retail-react-app-app-pages-login-redirect" + "^retail-react-app-app-pages-login-redirect" ], "auxiliaryChunks": [] }, @@ -857,14 +857,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-login": { - "name": "retail-react-app-app-pages-login", + "^retail-react-app-app-pages-login": { + "name": "^retail-react-app-app-pages-login", "chunks": [ - "retail-react-app-app-pages-login" + "^retail-react-app-app-pages-login" ], "assets": [ { - "name": "retail-react-app-app-pages-login.js" + "name": "^retail-react-app-app-pages-login.js" } ], "filteredAssets": 0, @@ -874,14 +874,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-registration": { - "name": "retail-react-app-app-pages-registration", + "^retail-react-app-app-pages-registration": { + "name": "^retail-react-app-app-pages-registration", "chunks": [ - "retail-react-app-app-pages-registration" + "^retail-react-app-app-pages-registration" ], "assets": [ { - "name": "retail-react-app-app-pages-registration.js" + "name": "^retail-react-app-app-pages-registration.js" } ], "filteredAssets": 0, @@ -891,14 +891,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-reset-password": { - "name": "retail-react-app-app-pages-reset-password", + "^retail-react-app-app-pages-reset-password": { + "name": "^retail-react-app-app-pages-reset-password", "chunks": [ - "retail-react-app-app-pages-reset-password" + "^retail-react-app-app-pages-reset-password" ], "assets": [ { - "name": "retail-react-app-app-pages-reset-password.js" + "name": "^retail-react-app-app-pages-reset-password.js" } ], "filteredAssets": 0, @@ -908,8 +908,8 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-account": { - "name": "retail-react-app-app-pages-account", + "^retail-react-app-app-pages-account": { + "name": "^retail-react-app-app-pages-account", "chunks": [ "vendor", "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", @@ -917,8 +917,8 @@ "template-retail-react-app_app_components_order-summary_index_jsx", "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", - "retail-react-app-app-pages-account-wishlist", - "retail-react-app-app-pages-account" + "^retail-react-app-app-pages-account-wishlist", + "^retail-react-app-app-pages-account" ], "assets": [ { @@ -940,10 +940,10 @@ "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" }, { - "name": "retail-react-app-app-pages-account-wishlist.js" + "name": "^retail-react-app-app-pages-account-wishlist.js" }, { - "name": "retail-react-app-app-pages-account.js" + "name": "^retail-react-app-app-pages-account.js" } ], "filteredAssets": 0, @@ -953,14 +953,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-cart": { - "name": "retail-react-app-app-pages-cart", + "^retail-react-app-app-pages-cart": { + "name": "^retail-react-app-app-pages-cart", "chunks": [ "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", "template-retail-react-app_app_partials_product-view_index_jsx", "template-retail-react-app_app_components_order-summary_index_jsx", "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "retail-react-app-app-pages-cart" + "^retail-react-app-app-pages-cart" ], "assets": [ { @@ -976,7 +976,7 @@ "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" }, { - "name": "retail-react-app-app-pages-cart.js" + "name": "^retail-react-app-app-pages-cart.js" } ], "filteredAssets": 0, @@ -986,14 +986,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-checkout": { - "name": "retail-react-app-app-pages-checkout", + "^retail-react-app-app-pages-checkout": { + "name": "^retail-react-app-app-pages-checkout", "chunks": [ "vendor", "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", "template-retail-react-app_app_components_order-summary_index_jsx", "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51", - "retail-react-app-app-pages-checkout" + "^retail-react-app-app-pages-checkout" ], "assets": [ { @@ -1009,7 +1009,7 @@ "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js" }, { - "name": "retail-react-app-app-pages-checkout.js" + "name": "^retail-react-app-app-pages-checkout.js" } ], "filteredAssets": 0, @@ -1019,18 +1019,18 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-checkout-confirmation": { - "name": "retail-react-app-app-pages-checkout-confirmation", + "^retail-react-app-app-pages-checkout-confirmation": { + "name": "^retail-react-app-app-pages-checkout-confirmation", "chunks": [ "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", - "retail-react-app-app-pages-checkout-confirmation" + "^retail-react-app-app-pages-checkout-confirmation" ], "assets": [ { "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js" }, { - "name": "retail-react-app-app-pages-checkout-confirmation.js" + "name": "^retail-react-app-app-pages-checkout-confirmation.js" } ], "filteredAssets": 0, @@ -1040,14 +1040,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-login-redirect": { - "name": "retail-react-app-app-pages-login-redirect", + "^retail-react-app-app-pages-login-redirect": { + "name": "^retail-react-app-app-pages-login-redirect", "chunks": [ - "retail-react-app-app-pages-login-redirect" + "^retail-react-app-app-pages-login-redirect" ], "assets": [ { - "name": "retail-react-app-app-pages-login-redirect.js" + "name": "^retail-react-app-app-pages-login-redirect.js" } ], "filteredAssets": 0, @@ -1057,18 +1057,18 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-product-detail": { - "name": "retail-react-app-app-pages-product-detail", + "^retail-react-app-app-pages-product-detail": { + "name": "^retail-react-app-app-pages-product-detail", "chunks": [ "template-retail-react-app_app_partials_product-view_index_jsx", - "retail-react-app-app-pages-product-detail" + "^retail-react-app-app-pages-product-detail" ], "assets": [ { "name": "template-retail-react-app_app_partials_product-view_index_jsx.js" }, { - "name": "retail-react-app-app-pages-product-detail.js" + "name": "^retail-react-app-app-pages-product-detail.js" } ], "filteredAssets": 0, @@ -1078,14 +1078,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-product-list": { - "name": "retail-react-app-app-pages-product-list", + "^retail-react-app-app-pages-product-list": { + "name": "^retail-react-app-app-pages-product-list", "chunks": [ - "retail-react-app-app-pages-product-list" + "^retail-react-app-app-pages-product-list" ], "assets": [ { - "name": "retail-react-app-app-pages-product-list.js" + "name": "^retail-react-app-app-pages-product-list.js" } ], "filteredAssets": 0, @@ -1095,14 +1095,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-account-wishlist": { - "name": "retail-react-app-app-pages-account-wishlist", + "^retail-react-app-app-pages-account-wishlist": { + "name": "^retail-react-app-app-pages-account-wishlist", "chunks": [ "vendor", "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0", "template-retail-react-app_app_partials_product-view_index_jsx", "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1", - "retail-react-app-app-pages-account-wishlist" + "^retail-react-app-app-pages-account-wishlist" ], "assets": [ { @@ -1118,7 +1118,7 @@ "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js" }, { - "name": "retail-react-app-app-pages-account-wishlist.js" + "name": "^retail-react-app-app-pages-account-wishlist.js" } ], "filteredAssets": 0, @@ -1128,14 +1128,14 @@ "children": {}, "childAssets": {} }, - "retail-react-app-app-pages-page-not-found": { - "name": "retail-react-app-app-pages-page-not-found", + "^retail-react-app-app-pages-page-not-found": { + "name": "^retail-react-app-app-pages-page-not-found", "chunks": [ - "retail-react-app-app-pages-page-not-found" + "^retail-react-app-app-pages-page-not-found" ], "assets": [ { - "name": "retail-react-app-app-pages-page-not-found.js" + "name": "^retail-react-app-app-pages-page-not-found.js" } ], "filteredAssets": 0, @@ -1245,75 +1245,75 @@ ] }, { - "id": "retail-react-app-app-pages-login", + "id": "^retail-react-app-app-pages-login", "files": [ - "retail-react-app-app-pages-login.js" + "^retail-react-app-app-pages-login.js" ] }, { - "id": "retail-react-app-app-pages-registration", + "id": "^retail-react-app-app-pages-registration", "files": [ - "retail-react-app-app-pages-registration.js" + "^retail-react-app-app-pages-registration.js" ] }, { - "id": "retail-react-app-app-pages-reset-password", + "id": "^retail-react-app-app-pages-reset-password", "files": [ - "retail-react-app-app-pages-reset-password.js" + "^retail-react-app-app-pages-reset-password.js" ] }, { - "id": "retail-react-app-app-pages-account", + "id": "^retail-react-app-app-pages-account", "files": [ - "retail-react-app-app-pages-account.js" + "^retail-react-app-app-pages-account.js" ] }, { - "id": "retail-react-app-app-pages-cart", + "id": "^retail-react-app-app-pages-cart", "files": [ - "retail-react-app-app-pages-cart.js" + "^retail-react-app-app-pages-cart.js" ] }, { - "id": "retail-react-app-app-pages-checkout", + "id": "^retail-react-app-app-pages-checkout", "files": [ - "retail-react-app-app-pages-checkout.js" + "^retail-react-app-app-pages-checkout.js" ] }, { - "id": "retail-react-app-app-pages-checkout-confirmation", + "id": "^retail-react-app-app-pages-checkout-confirmation", "files": [ - "retail-react-app-app-pages-checkout-confirmation.js" + "^retail-react-app-app-pages-checkout-confirmation.js" ] }, { - "id": "retail-react-app-app-pages-login-redirect", + "id": "^retail-react-app-app-pages-login-redirect", "files": [ - "retail-react-app-app-pages-login-redirect.js" + "^retail-react-app-app-pages-login-redirect.js" ] }, { - "id": "retail-react-app-app-pages-product-detail", + "id": "^retail-react-app-app-pages-product-detail", "files": [ - "retail-react-app-app-pages-product-detail.js" + "^retail-react-app-app-pages-product-detail.js" ] }, { - "id": "retail-react-app-app-pages-product-list", + "id": "^retail-react-app-app-pages-product-list", "files": [ - "retail-react-app-app-pages-product-list.js" + "^retail-react-app-app-pages-product-list.js" ] }, { - "id": "retail-react-app-app-pages-account-wishlist", + "id": "^retail-react-app-app-pages-account-wishlist", "files": [ - "retail-react-app-app-pages-account-wishlist.js" + "^retail-react-app-app-pages-account-wishlist.js" ] }, { - "id": "retail-react-app-app-pages-page-not-found", + "id": "^retail-react-app-app-pages-page-not-found", "files": [ - "retail-react-app-app-pages-page-not-found.js" + "^retail-react-app-app-pages-page-not-found.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx index 2e7210200b..b3378f9800 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx @@ -11,19 +11,19 @@ import {ChakraProvider} from '@chakra-ui/react' // Removes focus for non-keyboard interactions for the whole application import 'focus-visible/dist/focus-visible' -import theme from 'retail-react-app/app/theme' -import CommerceAPI from 'retail-react-app/app/commerce-api' +import theme from '^retail-react-app/app/theme' +import CommerceAPI from '^retail-react-app/app/commerce-api' import { BasketProvider, CommerceAPIProvider, CustomerProductListsProvider, CustomerProvider, -} from 'retail-react-app/app/commerce-api/contexts' -import {MultiSiteProvider} from 'retail-react-app/app/contexts' -import {resolveSiteFromUrl} from 'retail-react-app/app/utils/site-utils' -import {resolveLocaleFromUrl} from 'retail-react-app/app/utils/utils' +} from '^retail-react-app/app/commerce-api/contexts' +import {MultiSiteProvider} from '^retail-react-app/app/contexts' +import {resolveSiteFromUrl} from '^retail-react-app/app/utils/site-utils' +import {resolveLocaleFromUrl} from '^retail-react-app/app/utils/utils' import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' -import {createUrlTemplate} from 'retail-react-app/app/utils/url' +import {createUrlTemplate} from '^retail-react-app/app/utils/url' /** * Use the AppConfig component to inject extra arguments into the getProps diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx index 85430bff44..b3c88e33fd 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx @@ -16,38 +16,38 @@ import {Box, useDisclosure, useStyleConfig} from '@chakra-ui/react' import {SkipNavLink, SkipNavContent} from '@chakra-ui/skip-nav' // Contexts -import {CategoriesProvider, CurrencyProvider} from 'retail-react-app/app/contexts' +import {CategoriesProvider, CurrencyProvider} from '^retail-react-app/app/contexts' // Local Project Components import Header from '../header' -import OfflineBanner from 'retail-react-app/app/components/offline-banner' -import OfflineBoundary from 'retail-react-app/app/components/offline-boundary' -import ScrollToTop from 'retail-react-app/app/components/scroll-to-top' -import Footer from 'retail-react-app/app/components/footer' +import OfflineBanner from '^retail-react-app/app/components/offline-banner' +import OfflineBoundary from '^retail-react-app/app/components/offline-boundary' +import ScrollToTop from '^retail-react-app/app/components/scroll-to-top' +import Footer from '^retail-react-app/app/components/footer' import CheckoutHeader from '../../pages/checkout/partials/checkout-header' -import CheckoutFooter from 'retail-react-app/app/pages/checkout/partials/checkout-footer' +import CheckoutFooter from '^retail-react-app/app/pages/checkout/partials/checkout-footer' import DrawerMenu from '../drawer-menu' import ListMenu from '../list-menu' -import {HideOnDesktop, HideOnMobile} from 'retail-react-app/app/components/responsive' +import {HideOnDesktop, HideOnMobile} from '^retail-react-app/app/components/responsive' // Hooks -import useShopper from 'retail-react-app/app/commerce-api/hooks/useShopper' -import useCustomer from 'retail-react-app/app/commerce-api/hooks/useCustomer' -import {AuthModal, useAuthModal} from 'retail-react-app/app/hooks/use-auth-modal' -import {AddToCartModalProvider} from 'retail-react-app/app/hooks/use-add-to-cart-modal' -import useWishlist from 'retail-react-app/app/hooks/use-wishlist' +import useShopper from '^retail-react-app/app/commerce-api/hooks/useShopper' +import useCustomer from '^retail-react-app/app/commerce-api/hooks/useCustomer' +import {AuthModal, useAuthModal} from '^retail-react-app/app/hooks/use-auth-modal' +import {AddToCartModalProvider} from '^retail-react-app/app/hooks/use-add-to-cart-modal' +import useWishlist from '^retail-react-app/app/hooks/use-wishlist' // Localization import {IntlProvider} from 'react-intl' // Others -import {watchOnlineStatus, flatten} from 'retail-react-app/app/utils/utils' -import {getTargetLocale, fetchTranslations} from 'retail-react-app/app/utils/locale' -import {DEFAULT_SITE_TITLE, HOME_HREF, THEME_COLOR} from 'retail-react-app/app/constants' +import {watchOnlineStatus, flatten} from '^retail-react-app/app/utils/utils' +import {getTargetLocale, fetchTranslations} from '^retail-react-app/app/utils/locale' +import {DEFAULT_SITE_TITLE, HOME_HREF, THEME_COLOR} from '^retail-react-app/app/constants' -import Seo from 'retail-react-app/app/components/seo' -import {resolveSiteFromUrl} from 'retail-react-app/app/utils/site-utils' -import useMultiSite from 'retail-react-app/app/hooks/use-multi-site' +import Seo from '^retail-react-app/app/components/seo' +import {resolveSiteFromUrl} from '^retail-react-app/app/utils/site-utils' +import useMultiSite from '^retail-react-app/app/hooks/use-multi-site' const DEFAULT_NAV_DEPTH = 3 const DEFAULT_ROOT_CATEGORY = 'root' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx index fe3d303f0c..b17b387bdf 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx @@ -10,9 +10,9 @@ import PropTypes from 'prop-types' // import {useIntl} from 'react-intl' // Project Components -import LocaleSelector from 'retail-react-app/app/components/locale-selector' -import NestedAccordion from 'retail-react-app/app/components/nested-accordion' -import SocialIcons from 'retail-react-app/app/components/social-icons' +import LocaleSelector from '^retail-react-app/app/components/locale-selector' +import NestedAccordion from '^retail-react-app/app/components/nested-accordion' +import SocialIcons from '^retail-react-app/app/components/social-icons' // Components import { @@ -41,18 +41,23 @@ import { useBreakpointValue, useMultiStyleConfig, } from '@chakra-ui/react' -import Link from 'retail-react-app/app/components/link' +import Link from '^retail-react-app/app/components/link' // Icons -import {BrandLogo, LocationIcon, SignoutIcon, UserIcon} from 'retail-react-app/app/components/icons' +import { + BrandLogo, + LocationIcon, + SignoutIcon, + UserIcon, +} from '^retail-react-app/app/components/icons' // Others -import {noop} from 'retail-react-app/app/utils/utils' -import {getPathWithLocale, categoryUrlBuilder} from 'retail-react-app/app/utils/url' -import useCustomer from 'retail-react-app/app/commerce-api/hooks/useCustomer' -import LoadingSpinner from 'retail-react-app/app/components/loading-spinner' +import {noop} from '^retail-react-app/app/utils/utils' +import {getPathWithLocale, categoryUrlBuilder} from '^retail-react-app/app/utils/url' +import useCustomer from '^retail-react-app/app/commerce-api/hooks/useCustomer' +import LoadingSpinner from '^retail-react-app/app/components/loading-spinner' -import useNavigation from 'retail-react-app/app/hooks/use-navigation' -import useMultiSite from 'retail-react-app/app/hooks/use-multi-site' +import useNavigation from '^retail-react-app/app/hooks/use-navigation' +import useMultiSite from '^retail-react-app/app/hooks/use-multi-site' // The FONT_SIZES and FONT_WEIGHTS constants are used to control the styling for // the accordion buttons as their current depth. In the below definition we assign diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index 96dcb91f6a..234b87c039 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -28,12 +28,12 @@ import { useMediaQuery, } from '@chakra-ui/react' -import useBasket from 'retail-react-app/app/commerce-api/hooks/useBasket' -import useCustomer from 'retail-react-app/app/commerce-api/hooks/useCustomer' +import useBasket from '^retail-react-app/app/commerce-api/hooks/useBasket' +import useCustomer from '^retail-react-app/app/commerce-api/hooks/useCustomer' -import Link from 'retail-react-app/app/components/link' -import Search from 'retail-react-app/app/components/search' -import withRegistration from 'retail-react-app/app/hoc/with-registration' +import Link from '^retail-react-app/app/components/link' +import Search from '^retail-react-app/app/components/search' +import withRegistration from '^retail-react-app/app/hoc/with-registration' import { AccountIcon, BrandLogo, @@ -44,11 +44,11 @@ import { SignoutIcon, } from '../icons' -import {noop} from 'retail-react-app/app/utils/utils' -import {navLinks, messages} from 'retail-react-app/app/pages/account/constant' +import {noop} from '^retail-react-app/app/utils/utils' +import {navLinks, messages} from '^retail-react-app/app/pages/account/constant' // import {navLinks} from '../../pages/account/constant' -import useNavigation from 'retail-react-app/app/hooks/use-navigation' -import LoadingSpinner from 'retail-react-app/app/components/loading-spinner' +import useNavigation from '^retail-react-app/app/hooks/use-navigation' +import LoadingSpinner from '^retail-react-app/app/components/loading-spinner' const ENTER_KEY = 'Enter' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx index 860ceeb547..e2a217f01a 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx @@ -12,7 +12,7 @@ import {Link as RouteLink} from 'react-router-dom' import omit from 'lodash/omit' // Project Components -import LinksList from 'retail-react-app/app/components/links-list' +import LinksList from '^retail-react-app/app/components/links-list' // Components import { @@ -32,10 +32,10 @@ import { useTheme, useDisclosure, } from '@chakra-ui/react' -import Link from 'retail-react-app/app/components/link' +import Link from '^retail-react-app/app/components/link' // Others -import {categoryUrlBuilder} from 'retail-react-app/app/utils/url' -import {ChevronDownIcon} from 'retail-react-app/app/components/icons' +import {categoryUrlBuilder} from '^retail-react-app/app/utils/url' +import {ChevronDownIcon} from '^retail-react-app/app/components/icons' const MAXIMUM_NUMBER_COLUMNS = 5 diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx index 31f2873bff..c7b5d58b22 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx @@ -18,29 +18,29 @@ import { HStack, Spinner, } from '@chakra-ui/react' -import SearchSuggestions from 'retail-react-app/app/components/search/partials/search-suggestions' -import {SearchIcon} from 'retail-react-app/app/components/icons' -import useSearchSuggestions from 'retail-react-app/app/commerce-api/hooks/useSearchSuggestions' +import SearchSuggestions from '^retail-react-app/app/components/search/partials/search-suggestions' +import {SearchIcon} from '^retail-react-app/app/components/icons' +import useSearchSuggestions from '^retail-react-app/app/commerce-api/hooks/useSearchSuggestions' import { capitalize, boldString, getSessionJSONItem, setSessionJSONItem, -} from 'retail-react-app/app/utils/utils' -import useNavigation from 'retail-react-app/app/hooks/use-navigation' -import {HideOnDesktop, HideOnMobile} from 'retail-react-app/app/components/responsive' +} from '^retail-react-app/app/utils/utils' +import useNavigation from '^retail-react-app/app/hooks/use-navigation' +import {HideOnDesktop, HideOnMobile} from '^retail-react-app/app/components/responsive' // import {FormattedMessage} from 'react-intl' import debounce from 'lodash/debounce' import { RECENT_SEARCH_KEY, RECENT_SEARCH_LIMIT, RECENT_SEARCH_MIN_LENGTH, -} from 'retail-react-app/app/constants' +} from '^retail-react-app/app/constants' import { productUrlBuilder, searchUrlBuilder, categoryUrlBuilder, -} from 'retail-react-app/app/utils/url' +} from '^retail-react-app/app/utils/url' const formatSuggestions = (searchSuggestions, input) => { return { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js deleted file mode 100644 index 0f4b7af345..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/account/constant.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ - -// import {defineMessages} from 'react-intl' -import { - AccountIcon, - LocationIcon, - PaymentIcon, - ReceiptIcon, - HeartIcon, -} from 'retail-react-app/app/components/icons' - -// export const messages = defineMessages({ -// profile: {defaultMessage: 'Account Details', id: 'global.account.link.account_details'}, -// addresses: {defaultMessage: 'Addresses', id: 'global.account.link.addresses'}, -// orders: {defaultMessage: 'Order History', id: 'global.account.link.order_history'}, -// payments: {defaultMessage: 'Payment Methods', id: 'global.account.link.payment_methods'}, -// wishlist: {defaultMessage: 'Wishlist', id: 'global.account.link.wishlist'} -// }) - -export const navLinks = [ - { - name: 'profile', - path: '', - icon: AccountIcon, - }, - { - name: 'wishlist', - path: '/wishlist', - icon: HeartIcon, - }, - { - name: 'orders', - path: '/orders', - icon: ReceiptIcon, - }, - { - name: 'addresses', - path: '/addresses', - icon: LocationIcon, - }, - { - name: 'payments', - path: '/payments', - icon: PaymentIcon, - }, -] - -// export const CONFIRMATION_DIALOG_DEFAULT_CONFIG = defineMessages({ -// dialogTitle: { -// defaultMessage: 'Confirm Action', -// id: 'confirmation_modal.default.title.confirm_action', -// }, -// confirmationMessage: { -// defaultMessage: 'Are you sure you want to continue?', -// id: 'confirmation_modal.default.message.you_want_to_continue', -// }, -// primaryActionLabel: {defaultMessage: 'Yes', id: 'confirmation_modal.default.action.yes'}, -// alternateActionLabel: {defaultMessage: 'No', id: 'confirmation_modal.default.action.no'}, -// }) diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx index 7a2bff3631..ce256cccf1 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx @@ -7,10 +7,10 @@ import React from 'react' // import {FormattedMessage} from 'react-intl' import {Badge, Box, Button, Flex, Center} from '@chakra-ui/react' -import useBasket from 'retail-react-app/app/commerce-api/hooks/useBasket' -import Link from 'retail-react-app/app/components/link' -import {BasketIcon, BrandLogo} from 'retail-react-app/app/components/icons' -import {HOME_HREF} from 'retail-react-app/app/constants' +import useBasket from '^retail-react-app/app/commerce-api/hooks/useBasket' +import Link from '^retail-react-app/app/components/link' +import {BasketIcon, BrandLogo} from '^retail-react-app/app/components/icons' +import {HOME_HREF} from '^retail-react-app/app/constants' const CheckoutHeader = () => { const basket = useBasket() diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js index ae0f888898..ccda362d39 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js @@ -23,7 +23,7 @@ import { HeartIcon, LikeIcon, PlugIcon, -} from 'retail-react-app/app/components/icons' +} from '^retail-react-app/app/components/icons' export const heroFeatures = [ { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx index c2c2615870..426449c903 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -18,10 +18,10 @@ import { } from '@chakra-ui/react' // Project Components -import Hero from 'retail-react-app/app/components/hero' -import Seo from 'retail-react-app/app/components/seo' -import Section from 'retail-react-app/app/components/section' -import ProductScroller from 'retail-react-app/app/components/product-scroller' +import Hero from '^retail-react-app/app/components/hero' +import Seo from '^retail-react-app/app/components/seo' +import Section from '^retail-react-app/app/components/section' +import ProductScroller from '^retail-react-app/app/components/product-scroller' // Others import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' @@ -31,17 +31,17 @@ import {heroFeatures, features} from './data' // TODO: remove me! import {ChakraProvider} from '@chakra-ui/react' -import theme from 'retail-react-app/app/theme' +import theme from '^retail-react-app/app/theme' //Hooks -import useEinstein from 'retail-react-app/app/commerce-api/hooks/useEinstein' +import useEinstein from '^retail-react-app/app/commerce-api/hooks/useEinstein' // Constants import { MAX_CACHE_AGE, HOME_SHOP_PRODUCTS_CATEGORY_ID, HOME_SHOP_PRODUCTS_LIMIT, -} from 'retail-react-app/app/constants' +} from '^retail-react-app/app/constants' const Home = ({productSearchResult, isLoading}) => { const intl = useIntl() diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx index 4b86fead91..b2795c4734 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/routes.jsx @@ -18,33 +18,33 @@ import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' // Components import {Skeleton} from '@chakra-ui/react' -import {configureRoutes} from 'retail-react-app/app/utils/routes-utils' +import {configureRoutes} from '^retail-react-app/app/utils/routes-utils' const fallback = // Pages const Home = loadable(() => import('./pages/home'), {fallback}) -const Login = loadable(() => import('retail-react-app/app/pages/login'), {fallback}) -const Registration = loadable(() => import('retail-react-app/app/pages/registration'), {fallback}) -const ResetPassword = loadable(() => import('retail-react-app/app/pages/reset-password'), { +const Login = loadable(() => import('^retail-react-app/app/pages/login'), {fallback}) +const Registration = loadable(() => import('^retail-react-app/app/pages/registration'), {fallback}) +const ResetPassword = loadable(() => import('^retail-react-app/app/pages/reset-password'), { fallback, }) -const Account = loadable(() => import('retail-react-app/app/pages/account'), {fallback}) -const Cart = loadable(() => import('retail-react-app/app/pages/cart'), {fallback}) -const Checkout = loadable(() => import('retail-react-app/app/pages/checkout'), {fallback}) +const Account = loadable(() => import('^retail-react-app/app/pages/account'), {fallback}) +const Cart = loadable(() => import('^retail-react-app/app/pages/cart'), {fallback}) +const Checkout = loadable(() => import('^retail-react-app/app/pages/checkout'), {fallback}) const CheckoutConfirmation = loadable( - () => import('retail-react-app/app/pages/checkout/confirmation'), + () => import('^retail-react-app/app/pages/checkout/confirmation'), {fallback} ) -const LoginRedirect = loadable(() => import('retail-react-app/app/pages/login-redirect'), { +const LoginRedirect = loadable(() => import('^retail-react-app/app/pages/login-redirect'), { fallback, }) -const ProductDetail = loadable(() => import('retail-react-app/app/pages/product-detail'), { +const ProductDetail = loadable(() => import('^retail-react-app/app/pages/product-detail'), { fallback, }) -const ProductList = loadable(() => import('retail-react-app/app/pages/product-list'), {fallback}) -const Wishlist = loadable(() => import('retail-react-app/app/pages/account/wishlist'), {fallback}) -const PageNotFound = loadable(() => import('retail-react-app/app/pages/page-not-found')) +const ProductList = loadable(() => import('^retail-react-app/app/pages/product-list'), {fallback}) +const Wishlist = loadable(() => import('^retail-react-app/app/pages/account/wishlist'), {fallback}) +const PageNotFound = loadable(() => import('^retail-react-app/app/pages/page-not-found')) const routes = [ { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js deleted file mode 100644 index b3a7f2e2d4..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/_app.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ -import theme from '@chakra-ui/theme' - -export default { - baseStyle: { - container: { - flex: 1, - display: 'flex', - flexDirection: 'column', - backgroundColor: 'white', - minWidth: '375px', - }, - headerWrapper: { - position: 'sticky', - top: 0, - zIndex: theme.zIndices.sticky, - }, - }, - parts: ['container'], -} diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js deleted file mode 100644 index e0f84581a6..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/theme/components/project/header.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ -export default { - baseStyle: { - container: { - height: 'full', - minWidth: 'xs', - width: 'full', - boxShadow: 'base', - backgroundColor: 'white', - }, - content: { - maxWidth: 'container.xxxl', - marginLeft: 'auto', - marginRight: 'auto', - paddingLeft: [4, 4, 6, 8], - paddingRight: [4, 4, 6, 8], - paddingTop: [1, 1, 2, 4], - paddingBottom: [3, 3, 2, 4], - }, - searchContainer: { - order: [2, 2, 2, 'inherit'], - width: ['full', 'full', 'full', 60], - marginRight: [0, 0, 0, 4], - marginBottom: [1, 1, 2, 0], - }, - bodyContainer: { - flex: '1', - }, - logo: { - width: [8, 8, 8, 12], - height: [6, 6, 6, 8], - }, - icons: { - marginBottom: [1, 1, 2, 0], - }, - accountIcon: { - height: 11, - cursor: 'pointer', - alignSelf: ['self-start', 'self-start', 'self-start', 'auto'], - _focus: { - boxShadow: 'outline', - }, - _focusVisible: { - outline: 0, - }, - }, - arrowDown: { - height: 11, - marginRight: 0, - alignSelf: ['self-start', 'self-start', 'self-start', 'auto'], - cursor: 'pointer', - _focus: { - boxShadow: 'outline', - }, - _focusVisible: { - outline: 0, - }, - display: ['none', 'none', 'none', 'block'], - }, - signout: { - width: '100%', - borderRadius: '4px', - height: 11, - padding: 4, - py: 3, - marginTop: 1, - _hover: { - background: 'gray.50', - }, - }, - signoutText: { - fontSize: 'sm', - fontWeight: 'normal', - }, - signoutIcon: { - marginRight: 2, - }, - }, - parts: ['container', 'content', 'searchContainer', 'bodyContainer', 'logo', 'icons', 'signout'], -} From b9fe4e2cbcff0c54f9a700c4d612c86d082b9f96 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Mon, 20 Feb 2023 11:17:29 -0700 Subject: [PATCH 025/263] minor cleanup --- .../scripts/create-mobify-app-dev.js | 3 +- .../build/loadable-stats.json | 59 +++++++++++++++++-- .../overrides/app/static/svg/brand-logo.svg | 8 +-- 3 files changed, 57 insertions(+), 13 deletions(-) diff --git a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js index 2e07c10fa2..d7f47d2821 100755 --- a/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js +++ b/packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js @@ -154,8 +154,7 @@ const runGenerator = () => { const main = () => { return Promise.resolve() - // .then(() => withLocalNPMRepo(runGenerator)) - .then(() => withLocalNPMRepo()) + .then(() => withLocalNPMRepo(runGenerator)) .then(() => process.exit(0)) .catch(() => process.exit(1)) } diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 71c37e5453..0960531358 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,11 +1,12 @@ { "name": "client", - "hash": "bb2721da0c152ace1396", + "hash": "ea6aeb2875c976f42f4d", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ - "main.js" + "main.js", + "main.332d0220af4f84e2bdcf.hot-update.js" ], "pages-home": [ "pages-home.js" @@ -201,6 +202,33 @@ ], "auxiliaryChunks": [] }, + { + "type": "asset", + "name": "main.332d0220af4f84e2bdcf.hot-update.js", + "size": 76921, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "332d0220af4f84e2bdcf", + "related": { + "sourceMap": "main.332d0220af4f84e2bdcf.hot-update.js.map" + } + }, + "chunkNames": [ + "main" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "main" + ], + "auxiliaryChunks": [] + }, { "type": "asset", "name": "template-retail-react-app_app_translations_compiled_en-XB_json.js", @@ -816,6 +844,25 @@ "_cc12" ], "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "main.332d0220af4f84e2bdcf.hot-update.json", + "size": 28, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "332d0220af4f84e2bdcf" + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [], + "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -831,11 +878,14 @@ }, { "name": "main.js" + }, + { + "name": "main.332d0220af4f84e2bdcf.hot-update.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 2, + "filteredAuxiliaryAssets": 3, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1151,7 +1201,8 @@ { "id": "main", "files": [ - "main.js" + "main.js", + "main.332d0220af4f84e2bdcf.hot-update.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg index 43f3dc912e..036fdd97c8 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg @@ -1,8 +1,2 @@ - - - - - - - + From 24767f2d88e16ffeb689df96980797ffd53b06ff Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Wed, 1 Mar 2023 10:13:07 -0700 Subject: [PATCH 026/263] YES! freaking works... fixed imports so that magic characters work properly --- .../pwa-kit-dev/src/configs/webpack/config.js | 7 ++- .../src/configs/webpack/plugins.js | 62 ++++++++++++++----- .../build/loadable-stats.json | 8 +-- .../pwa-kit/overrides/app/pages/home/data.js | 3 +- 4 files changed, 57 insertions(+), 23 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 533f9de1a3..09781441bf 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -201,16 +201,17 @@ const baseConfig = (target) => { sdkReplacementPlugin(projectDir), pkg?.mobify?.extends && pkg?.mobify?.overridesDir - ? importFromExtendsPlugin(projectDir) + ? extendedTemplateReplacementPlugin(projectDir) : () => null, pkg?.mobify?.extends && pkg?.mobify?.overridesDir - ? importFromLocalPlugin(projectDir) + ? importFromExtendsPlugin(projectDir) : () => null, pkg?.mobify?.extends && pkg?.mobify?.overridesDir - ? extendedTemplateReplacementPlugin(projectDir) + ? importFromLocalPlugin(projectDir) : () => null, + allFiles(), // Don't chunk if it's a node target – faster Lambda startup. target === 'node' && new webpack.optimize.LimitChunkCountPlugin({maxChunks: 1}) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 42b1960f43..9f664800b2 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -9,6 +9,7 @@ import path, {resolve} from 'path' import fs from 'fs' import glob from 'glob' import minimatch from 'minimatch' +import {inspect} from 'util' const projectDir = process.cwd() const pkg = require(resolve(projectDir, 'package.json')) @@ -111,22 +112,27 @@ const templateAppPathRegex = makeRegExp( export const allFiles = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - if (resolved.match(/template\-retail\-react\-app\/app\/components\/icons/)) { - console.log('~OOPS!') - console.log('~ALL FILES ==== resource.context', resource.context) - console.log('~ALL FILES ==== resource.request', resource.request) - } + // if (resolved.match(/template\-retail\-react\-app\/app\/components\/icons/)) { + // console.log('~OOPS!') + // console.log('~ALL FILES ==== resource.context', resource.context) + // console.log('~ALL FILES ==== resource.request', resource.request) + // } }) } export const importFromExtendsPlugin = (projectDir) => { // TODO: does any other library use this weird magic character import schema? + return new webpack.NormalModuleReplacementPlugin(/\^/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - console.log('~===== ^^ Magic', resolved) + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~===== ^^ Magic', resolved) + } const relativePath = resolved?.split(`^`)?.[1]?.replace(/^\//, '') const newPath = path.resolve(projectDir, 'node_modules', relativePath) - console.log('~^ magic newPath', newPath) + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~^ magic newPath', newPath) + } // NOTE: overriding either of these alone does not work, both must be set resource.request = newPath resource.createData.resource = newPath @@ -137,14 +143,21 @@ export const importFromLocalPlugin = (projectDir) => { // TODO: does any other library use this weird magic character import schema? return new webpack.NormalModuleReplacementPlugin(/\*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - console.log('~===== ** Magic', resolved) - const relativePath = resolved?.split(`*`)?.[1]?.replace(/\*/, '') + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~===== ** Magic', resolved) + } + const relativePath = resolved + ?.split(`*`)?.[1] + ?.replace(pkg?.mobify?.extends, '') + ?.replace(/^\//, '') const newPath = path.resolve( projectDir, pkg?.mobify?.overridesDir?.replace(/^\//, ''), relativePath ) - console.log('~* magic newPath', newPath) + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~* magic newPath', newPath) + } // NOTE: overriding either of these alone does not work, both must be set resource.request = newPath resource.createData.resource = newPath @@ -224,19 +237,38 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { const resolved = path.resolve(resource.context, resource.request) + // ignore magic paths and don't attempt to overwrite them + if (resource.request.match(/\*/) || resource.request.match(/\^/)) { + console.log('~EARLY RETURN') + return + } const matchRegex = makeRegExp(pkg?.mobify?.extends) if ( resolved?.match?.(matchRegex) && - _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length + _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length && + // TODO: this array appears to always contain object where the `dependency[x].request + // holds reference to the original request, which is what we want to introspect on + // whether magic characters like `^` were used + !resource?.dependencies?.[0]?.request?.match('^') ) { - console.log('~======= file path.resolve()', resolved) - console.log('~requestedFile context:', resource.context) - console.log('~requestedFile request:', resource.request) + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~resource', inspect(resource)) + console.log('**********') + console.log('~resource.createData.context', inspect(resource.createData.context)) + console.log('~======= file path.resolve()', resolved) + console.log('~requestedFile context:', resource.context) + console.log('~requestedFile request:', resource.request) + } const depth = pkg?.mobify?.overridesDir?.replace?.(/^\//, '')?.split('/') || [] const relativePath = resolved?.split?.(matchRegex)?.[1] const newPath = projectDir + pkg?.mobify?.overridesDir + relativePath - console.log('~new resource.request!!!', newPath) + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~new resource.request!!!', newPath) + resource.myKey = '1 whoa! ^' + // resource.createData.resource.myKey = '2 whoa! ^' + } + // NOTE: overriding either of these alone does not work, both must be set resource.request = newPath // TODO: without the file extension, this fails, so we need to pull this from diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index fd1f065167..ed7ad76ee2 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "5753804cf089892ff966", + "hash": "8fad1c2fbe6589e3e72c", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -54,7 +54,7 @@ { "type": "asset", "name": "vendor.js", - "size": 5285779, + "size": 5303777, "emitted": false, "comparedForEmit": false, "cached": true, @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1157913, + "size": 1151141, "emitted": false, "comparedForEmit": false, "cached": true, @@ -551,7 +551,7 @@ { "type": "asset", "name": "pages-home.js", - "size": 39516, + "size": 39733, "emitted": false, "comparedForEmit": false, "cached": true, diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js index ccda362d39..02c1b65ee3 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js @@ -18,13 +18,14 @@ import { BasketIcon, BrandLogo, FigmaLogo, - GithubLogo, DashboardIcon, HeartIcon, LikeIcon, PlugIcon, } from '^retail-react-app/app/components/icons' +import {GithubLogo} from '*retail-react-app/app/components/icons' + export const heroFeatures = [ { // message: defineMessages({ From f6a822f11b493a8cc974b918eadcc569b3f314cb Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 2 Mar 2023 21:15:16 -0700 Subject: [PATCH 027/263] remove most of the unnecessary overrides --- .../src/configs/webpack/plugins.js | 71 ++- .../src/ssr/server/react-rendering.js | 34 +- .../build/loadable-stats.json | 26 +- .../app/components/_app-config/index.jsx | 1 + .../overrides/app/components/_app/index.jsx | 78 ++-- .../app/components/drawer-menu/index.jsx | 421 ------------------ .../overrides/app/components/header/index.jsx | 119 +++-- .../overrides/app/components/icons/index.jsx | 2 +- .../app/components/list-menu/index.jsx | 275 ------------ .../overrides/app/components/search/index.jsx | 269 ----------- .../checkout/partials/checkout-header.tsx | 49 -- .../pwa-kit/overrides/app/pages/home/data.js | 171 ------- .../overrides/app/pages/home/index.jsx | 109 +++-- .../overrides/app/static/svg/brand-logo.svg | 2 +- 14 files changed, 232 insertions(+), 1395 deletions(-) delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 9f664800b2..fa55c2f1de 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -141,13 +141,13 @@ export const importFromExtendsPlugin = (projectDir) => { export const importFromLocalPlugin = (projectDir) => { // TODO: does any other library use this weird magic character import schema? - return new webpack.NormalModuleReplacementPlugin(/\*/, (resource) => { + return new webpack.NormalModuleReplacementPlugin(/\~/, (resource) => { const resolved = path.resolve(resource.context, resource.request) if (resolved?.match(/app\/components\/icons$/)) { - console.log('~===== ** Magic', resolved) + console.log('~===== ~~ Magic', resolved) } const relativePath = resolved - ?.split(`*`)?.[1] + ?.split(`~`)?.[1] ?.replace(pkg?.mobify?.extends, '') ?.replace(/^\//, '') const newPath = path.resolve( @@ -156,7 +156,7 @@ export const importFromLocalPlugin = (projectDir) => { relativePath ) if (resolved?.match(/app\/components\/icons$/)) { - console.log('~* magic newPath', newPath) + console.log('~ ~ magic newPath', newPath) } // NOTE: overriding either of these alone does not work, both must be set resource.request = newPath @@ -184,11 +184,18 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { ] }) const _overrides = [...overrides] + + const getExtendsRelativePath = (noExt) => { + const noExtExtends = + pkg?.mobify?.extends + '/' + noExt.replace(pkg?.mobify?.overridesDir, '') + return + } + const overridesMap = [ ...overrides, ...overrides.flatMap((item) => { const EXTENSIONS = '.+(js|jsx|ts|tsx)$' - const patterns = [item] + const patterns = [minimatch.makeRe('**/*' + item)] const extRe = /\.\w+$/ const hasExt = item?.test?.(extRe) const hasSlash = item?.endsWith('/') @@ -199,9 +206,9 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { if (hasExt || !hasSlash) { const noExt = item.replace(extRe, '') const noExtExtends = - pkg?.mobify?.extends + noExt.replace(pkg?.mobify?.overridesDir, '') + pkg?.mobify?.extends + '/' + noExt.replace(pkg?.mobify?.overridesDir, '') patterns.push(minimatch.makeRe('**/*' + noExt + EXTENSIONS)) - patterns.push(minimatch.makeRe('**/*' + noExtExtends + EXTENSIONS)) + patterns.push(minimatch.makeRe(getExtendsRelativePath(noExt) + EXTENSIONS)) } if (hasSlash) { patterns.push(minimatch.makeRe('**/*' + item + 'index' + EXTENSIONS)) @@ -238,42 +245,64 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { const resolved = path.resolve(resource.context, resource.request) // ignore magic paths and don't attempt to overwrite them - if (resource.request.match(/\*/) || resource.request.match(/\^/)) { - console.log('~EARLY RETURN') + if (resource.request.match(/\~/) || resource.request.match(/\^/)) { return } const matchRegex = makeRegExp(pkg?.mobify?.extends) + // TODO: delete all of this when done debugging + if (resource?.context?.match(/header/) && resource?.request?.match(/icons/)) { + console.log('~~~~~~~~~~~~~~~~~~~~~~~') + console.log('~resource.context', resource.context) + console.log('~resource.request', resource.request) + console.log('~resolved', resolved) + console.log('~matchRegex', matchRegex) + console.log(`resolved?.match?.(matchRegex)`, resolved?.match?.(matchRegex)) + console.log( + `inspect(resource?.dependencies?.[0]?.request)`, + inspect(resource?.dependencies?.[0]?.request) + ) + console.log( + `_overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length`, + _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length + ) + console.log( + `resource?.dependencies?.[0]?.request?.match?.(/\^/)`, + resource?.dependencies?.[0]?.request?.match?.(/\^/) + ) + console.log( + `resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0]`, + resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] + ) + console.log( + `!resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0]`, + !resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] + ) + } if ( resolved?.match?.(matchRegex) && _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length && // TODO: this array appears to always contain object where the `dependency[x].request // holds reference to the original request, which is what we want to introspect on // whether magic characters like `^` were used - !resource?.dependencies?.[0]?.request?.match('^') + !resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] ) { - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~resource', inspect(resource)) - console.log('**********') - console.log('~resource.createData.context', inspect(resource.createData.context)) - console.log('~======= file path.resolve()', resolved) - console.log('~requestedFile context:', resource.context) - console.log('~requestedFile request:', resource.request) - } - const depth = pkg?.mobify?.overridesDir?.replace?.(/^\//, '')?.split('/') || [] const relativePath = resolved?.split?.(matchRegex)?.[1] const newPath = projectDir + pkg?.mobify?.overridesDir + relativePath + // TODO: delete all of this when done debugging if (resolved?.match(/app\/components\/icons$/)) { console.log('~new resource.request!!!', newPath) - resource.myKey = '1 whoa! ^' - // resource.createData.resource.myKey = '2 whoa! ^' } // NOTE: overriding either of these alone does not work, both must be set resource.request = newPath // TODO: without the file extension, this fails, so we need to pull this from // the original detected overridesMap + + // _overrides knows the full file path including extension resource.createData.resource = newPath + '/index.jsx' + } else { + console.log('~NOT REWRITTEN') } }) } diff --git a/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js b/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js index 0041ae0254..a09cb6dcc7 100644 --- a/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js +++ b/packages/pwa-kit-react-sdk/src/ssr/server/react-rendering.js @@ -48,7 +48,7 @@ const VALID_TAG_NAMES = [ 'noscript', 'script', 'style', - 'title', + 'title' ] export const ALLOWLISTED_INLINE_SCRIPTS = [] @@ -96,7 +96,7 @@ export const render = async (req, res, next) => { const [pathname, search] = req.originalUrl.split('?') const location = { pathname, - search: search ? `?${search}` : '', + search: search ? `?${search}` : '' } // Step 1 - Find the match. @@ -126,7 +126,7 @@ export const render = async (req, res, next) => { App: WrappedApp, routes, location, - deviceType, + deviceType } let appJSX = @@ -144,11 +144,11 @@ export const render = async (req, res, next) => { req, res, location, - appJSX, + appJSX }) appState = { ...ret.appState, - __STATE_MANAGEMENT_LIBRARY: AppConfig.freeze(res.locals), + __STATE_MANAGEMENT_LIBRARY: AppConfig.freeze(res.locals) } appStateError = ret.error } @@ -168,7 +168,7 @@ export const render = async (req, res, next) => { location, config, appJSX, - deviceType, + deviceType }) } catch (e) { // This is an unrecoverable error. @@ -201,16 +201,14 @@ const OuterApp = ({ routes, routerContext, location, - deviceType, + deviceType }) => { const AppConfig = getAppConfig() return ( @@ -233,7 +231,7 @@ OuterApp.propTypes = { routes: PropTypes.array, routerContext: PropTypes.object, location: PropTypes.object, - deviceType: PropTypes.string, + deviceType: PropTypes.string } const renderToString = (jsx, extractor) => @@ -276,7 +274,7 @@ const renderApp = (args) => { bundles = extractor.getScriptElements().map((el) => React.cloneElement(el, { ...el.props, - ...scriptProps, + ...scriptProps }) ) } @@ -307,7 +305,7 @@ const renderApp = (args) => { __ERROR__: error, // `window.Progressive` has a long history at Mobify and some // client-side code depends on it. Maintain its name out of tradition. - Progressive: getWindowProgressive(req, res), + Progressive: getWindowProgressive(req, res) } const scripts = [ @@ -316,10 +314,10 @@ const renderApp = (args) => { key="mobify-data" type="application/json" // Not executable dangerouslySetInnerHTML={{ - __html: serialize(windowGlobals, {isJSON: true, space: indent}), + __html: serialize(windowGlobals, {isJSON: true, space: indent}) }} />, - ...bundles, + ...bundles ] const svgs = [
] @@ -362,8 +360,8 @@ const getWindowProgressive = (req, res) => { deployTarget: process.env.DEPLOY_TARGET || 'local', proxyConfigs, // The request class (undefined by default) - requestClass: res.locals.requestClass, - }, + requestClass: res.locals.requestClass + } } } @@ -373,4 +371,4 @@ const serverRenderer = (req, res, next) => render(req, res, next) -export default serverRenderer +export default serverRenderer \ No newline at end of file diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index ed7ad76ee2..fa8935122d 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "8fad1c2fbe6589e3e72c", + "hash": "47416b63933634cf604a", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -54,7 +54,7 @@ { "type": "asset", "name": "vendor.js", - "size": 5303777, + "size": 5162385, "emitted": false, "comparedForEmit": false, "cached": true, @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1151141, + "size": 1162872, "emitted": false, "comparedForEmit": false, "cached": true, @@ -550,51 +550,51 @@ }, { "type": "asset", - "name": "pages-home.js", - "size": 39733, + "name": "^retail-react-app-app-pages-account-wishlist.js", + "size": 39136, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "pages-home.js.map" + "sourceMap": "^retail-react-app-app-pages-account-wishlist.js.map" } }, "chunkNames": [ - "pages-home" + "^retail-react-app-app-pages-account-wishlist" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "pages-home" + "^retail-react-app-app-pages-account-wishlist" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "^retail-react-app-app-pages-account-wishlist.js", - "size": 39136, + "name": "pages-home.js", + "size": 38937, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "^retail-react-app-app-pages-account-wishlist.js.map" + "sourceMap": "pages-home.js.map" } }, "chunkNames": [ - "^retail-react-app-app-pages-account-wishlist" + "pages-home" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "^retail-react-app-app-pages-account-wishlist" + "pages-home" ], "auxiliaryChunks": [] }, diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx index b3378f9800..65e38f98fe 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app-config/index.jsx @@ -37,6 +37,7 @@ const AppConfig = ({children, locals = {}}) => { console.log('~hello from overrides _app-config') const [basket, setBasket] = useState(null) const [customer, setCustomer] = useState(null) + return ( diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx index b3c88e33fd..fdd62a1038 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx @@ -19,15 +19,15 @@ import {SkipNavLink, SkipNavContent} from '@chakra-ui/skip-nav' import {CategoriesProvider, CurrencyProvider} from '^retail-react-app/app/contexts' // Local Project Components -import Header from '../header' +import Header from '~retail-react-app/app/components/header' import OfflineBanner from '^retail-react-app/app/components/offline-banner' import OfflineBoundary from '^retail-react-app/app/components/offline-boundary' import ScrollToTop from '^retail-react-app/app/components/scroll-to-top' import Footer from '^retail-react-app/app/components/footer' -import CheckoutHeader from '../../pages/checkout/partials/checkout-header' import CheckoutFooter from '^retail-react-app/app/pages/checkout/partials/checkout-footer' -import DrawerMenu from '../drawer-menu' -import ListMenu from '../list-menu' +import CheckoutHeader from '^retail-react-app/app/pages/checkout/partials/checkout-header' +import DrawerMenu from '^retail-react-app/app/components/drawer-menu' +import ListMenu from '^retail-react-app/app/components/list-menu' import {HideOnDesktop, HideOnMobile} from '^retail-react-app/app/components/responsive' // Hooks @@ -43,16 +43,19 @@ import {IntlProvider} from 'react-intl' // Others import {watchOnlineStatus, flatten} from '^retail-react-app/app/utils/utils' import {getTargetLocale, fetchTranslations} from '^retail-react-app/app/utils/locale' -import {DEFAULT_SITE_TITLE, HOME_HREF, THEME_COLOR} from '^retail-react-app/app/constants' +import { + DEFAULT_SITE_TITLE, + HOME_HREF, + THEME_COLOR, + CAT_MENU_DEFAULT_NAV_DEPTH, + CAT_MENU_DEFAULT_ROOT_CATEGORY, + DEFAULT_LOCALE, +} from '^retail-react-app/app/constants' import Seo from '^retail-react-app/app/components/seo' import {resolveSiteFromUrl} from '^retail-react-app/app/utils/site-utils' import useMultiSite from '^retail-react-app/app/hooks/use-multi-site' -const DEFAULT_NAV_DEPTH = 3 -const DEFAULT_ROOT_CATEGORY = 'root' -const DEFAULT_LOCALE = 'en-US' - const App = (props) => { const { children, @@ -146,26 +149,26 @@ const App = (props) => { } return ( - { - if (err.code === 'MISSING_TRANSLATION') { - // NOTE: Remove the console error for missing translations during development, - // as we knew translations would be added later. - console.warn('Missing translation', err.message) - return - } - throw err - }} - locale={targetLocale} - messages={messages} - // For react-intl, the _default locale_ refers to the locale that the inline `defaultMessage`s are written for. - // NOTE: if you update this value, please also update the following npm scripts in `template-retail-react-app/package.json`: - // - "extract-default-translations" - // - "compile-translations:pseudo" - defaultLocale={DEFAULT_LOCALE} - > - - + + { + if (err.code === 'MISSING_TRANSLATION') { + // NOTE: Remove the console error for missing translations during development, + // as we knew translations would be added later. + console.warn('Missing translation', err.message) + return + } + throw err + }} + locale={targetLocale} + messages={messages} + // For react-intl, the _default locale_ refers to the locale that the inline `defaultMessage`s are written for. + // NOTE: if you update this value, please also update the following npm scripts in `template-retail-react-app/package.json`: + // - "extract-default-translations" + // - "compile-translations:pseudo" + defaultLocale={DEFAULT_LOCALE} + > + @@ -215,16 +218,12 @@ const App = (props) => { isOpen={isOpen} onClose={onClose} onLogoClick={onLogoClick} - root={allCategories?.[DEFAULT_ROOT_CATEGORY]} locale={locale} /> - + ) : ( @@ -263,8 +262,8 @@ const App = (props) => { - - + + ) } @@ -301,14 +300,15 @@ App.getProps = async ({api, res}) => { l10nConfig, }) const messages = await fetchTranslations(targetLocale) + // Login as `guest` to get session. await api.auth.login() // Get the root category, this will be used for things like the navigation. const rootCategory = await api.shopperProducts.getCategory({ parameters: { - id: DEFAULT_ROOT_CATEGORY, - levels: DEFAULT_NAV_DEPTH, + id: CAT_MENU_DEFAULT_ROOT_CATEGORY, + levels: CAT_MENU_DEFAULT_NAV_DEPTH, }, }) @@ -325,7 +325,7 @@ Learn more with our localization guide. https://sfdc.co/localization-guide // Flatten the root so we can easily access all the categories throughout // the application. - const categories = flatten(rootCategory, 'categories') + const categories = {root: flatten(rootCategory, 'categories').root} return { targetLocale, diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx deleted file mode 100644 index b17b387bdf..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/drawer-menu/index.jsx +++ /dev/null @@ -1,421 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ - -import React, {useState} from 'react' -import PropTypes from 'prop-types' -// import {useIntl} from 'react-intl' - -// Project Components -import LocaleSelector from '^retail-react-app/app/components/locale-selector' -import NestedAccordion from '^retail-react-app/app/components/nested-accordion' -import SocialIcons from '^retail-react-app/app/components/social-icons' - -// Components -import { - Box, - AccordionButton, - AccordionItem, - Button, - Center, - Divider, - Drawer, - DrawerBody, - DrawerFooter, - DrawerHeader, - DrawerOverlay, - DrawerContent, - DrawerCloseButton, - Fade, - HStack, - IconButton, - Flex, - Spinner, - Text, - VStack, - - // Hooks - useBreakpointValue, - useMultiStyleConfig, -} from '@chakra-ui/react' -import Link from '^retail-react-app/app/components/link' -// Icons -import { - BrandLogo, - LocationIcon, - SignoutIcon, - UserIcon, -} from '^retail-react-app/app/components/icons' - -// Others -import {noop} from '^retail-react-app/app/utils/utils' -import {getPathWithLocale, categoryUrlBuilder} from '^retail-react-app/app/utils/url' -import useCustomer from '^retail-react-app/app/commerce-api/hooks/useCustomer' -import LoadingSpinner from '^retail-react-app/app/components/loading-spinner' - -import useNavigation from '^retail-react-app/app/hooks/use-navigation' -import useMultiSite from '^retail-react-app/app/hooks/use-multi-site' - -// The FONT_SIZES and FONT_WEIGHTS constants are used to control the styling for -// the accordion buttons as their current depth. In the below definition we assign -// values for depths 0 - 3, any depth deeper than that will use the default styling. -const FONT_SIZES = ['lg', 'md', 'md'] -const FONT_WEIGHTS = ['semibold', 'semibold', 'regular'] -const PHONE_DRAWER_SIZE = 'xs' -const TABLET_DRAWER_SIZE = 'lg' - -const DrawerSeparator = () => ( - - - -) - -// CUSTOMIZE YOUR NAVIGATION BY ALTERING THESE VALUES -const SIGN_IN_HREF = '/login' -const STORE_LOCATOR_HREF = '/store-locator' - -/** - * This is the navigation component used for mobile devices (phone and tablet). It's - * main usage is to navigate from one category to the next, but also homes links to - * support, log in and out actions, as support links. - */ -const DrawerMenu = ({isOpen, onClose = noop, onLogoClick = noop, root}) => { - // const intl = useIntl() - const customer = useCustomer() - const navigate = useNavigation() - const styles = useMultiStyleConfig('DrawerMenu') - const drawerSize = useBreakpointValue({sm: PHONE_DRAWER_SIZE, md: TABLET_DRAWER_SIZE}) - const socialIconVariant = useBreakpointValue({base: 'flex', md: 'flex-start'}) - const {site, buildUrl} = useMultiSite() - const {l10n} = site - const [showLoading, setShowLoading] = useState(false) - const onSignoutClick = async () => { - setShowLoading(true) - await customer.logout() - navigate('/login') - setShowLoading(false) - } - - const supportedLocaleIds = l10n?.supportedLocales.map((locale) => locale.id) - const showLocaleSelector = supportedLocaleIds?.length > 1 - - return ( - - - - {/* Header Content */} - - } - variant="unstyled" - onClick={onLogoClick} - /> - - - - - {/* Main Content */} - - {showLoading && } - - {/* Category Navigation */} - {root ? ( - - - depth > 0 ? ( - [ - - - {/* {intl.formatMessage({ - id: 'drawer_menu.link.shop_all', - defaultMessage: 'Shop All' - })} */} - Shop All - - , - ] - ) : ( - <> - ) - } - urlBuilder={categoryUrlBuilder} - /> - - ) : ( -
- -
- )} - - - - {/* Application Actions */} - - - {customer.isRegistered ? ( - - `/${locale}/account${item.path}` - } - itemsAfter={({depth}) => - depth === 1 && ( - - ) - } - item={{ - id: 'root', - items: [ - { - id: 'my-account', - name: 'My Account', - // intl.formatMessage({ - // id: 'drawer_menu.button.my_account', - // defaultMessage: 'My Account', - // }) - items: [ - { - id: 'profile', - path: '', - name: 'Account Details', - // intl.formatMessage({ - // id: 'drawer_menu.button.account_details', - // defaultMessage: 'Account Details', - // }) - }, - { - id: 'orders', - path: '/orders', - name: 'Order History', - // intl.formatMessage({ - // id: 'drawer_menu.button.order_history', - // defaultMessage: 'Order History', - // }) - }, - { - id: 'addresses', - path: '/addresses', - name: 'Addresses', - // intl.formatMessage({ - // id: 'drawer_menu.button.addresses', - // defaultMessage: 'Addresses', - // }) - }, - { - id: 'payments', - path: '/payments', - name: 'Payment Methods', - // intl.formatMessage({ - // id: 'drawer_menu.button.payment_methods', - // defaultMessage: 'Payment Methods', - // }) - }, - ], - }, - ], - }} - /> - ) : ( - - - {' '} - - {/* {intl.formatMessage({ - id: 'drawer_menu.link.sign_in', - defaultMessage: 'Sign In', - })} */} - Sign In - - - - )} - - - - - {' '} - - {/* {intl.formatMessage({ - id: 'drawer_menu.link.store_locator', - defaultMessage: 'Store Locator', - })} */} - Store Locator - - - - - {showLocaleSelector && ( - - {/* { - // Update the `locale` in the URL. - const newUrl = getPathWithLocale(newLocale, buildUrl, { - disallowParams: ['refine'], - }) - window.location = newUrl - }} - /> */} - - )} - - - - - {/* Support Links */} - '/'} - item={{ - id: 'links-root', - items: [ - { - id: 'customersupport', - items: [ - { - id: 'contactus', - name: 'Contact Us', - // intl.formatMessage({ - // id: 'drawer_menu.link.customer_support.contact_us', - // defaultMessage: 'Contact Us', - // }) - }, - { - id: 'shippingandreturns', - name: 'Shipping & Returns', - // intl.formatMessage({ - // id: 'drawer_menu.link.customer_support.shipping_and_returns', - // defaultMessage: 'Shipping & Returns', - // }) - }, - ], - name: 'Customer Support', - // intl.formatMessage({ - // id: 'drawer_menu.link.customer_support', - // defaultMessage: 'Customer Support', - // }) - }, - { - id: 'ourcompany', - items: [ - { - id: 'aboutus', - name: 'About Us', - // intl.formatMessage({ - // id: 'drawer_menu.link.about_us', - // defaultMessage: 'About Us', - // }) - }, - ], - name: 'Out Company', - // intl.formatMessage({ - // id: 'drawer_menu.link.our_company', - // defaultMessage: 'Our Company', - // }) - }, - { - id: 'privacyandsecurity', - items: [ - { - id: 'termsandconditions', - name: 'Terms & Conditions', - // intl.formatMessage({ - // id: 'drawer_menu.link.terms_and_conditions', - // defaultMessage: 'Terms & Conditions', - // }) - }, - { - id: 'privacypolicy', - name: 'Privacy Policy', - // intl.formatMessage({ - // id: 'drawer_menu.link.privacy_policy', - // defaultMessage: 'Privacy Policy', - // }) - }, - { - id: 'sitemap', - name: 'Site Map', - // intl.formatMessage({ - // id: 'drawer_menu.link.site_map', - // defaultMessage: 'Site Map', - // }) - }, - ], - name: 'Privacy & Security', - // intl.formatMessage({ - // id: 'drawer_menu.link.privacy_and_security', - // defaultMessage: 'Privacy & Security', - // }) - }, - ], - }} - /> - - -
- - - - -
-
-
- ) -} - -DrawerMenu.displayName = 'DrawerMenu' - -DrawerMenu.propTypes = { - /** - * The root category in your commerce cloud back-end. - */ - root: PropTypes.object, - /** - * The opened state of the drawer. - */ - isOpen: PropTypes.bool, - /** - * Function called when the drawer is dismissed. - */ - onClose: PropTypes.func, - /** - * Function called when the drawer logo is clicked. - */ - onLogoClick: PropTypes.func, -} - -export default DrawerMenu diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index 234b87c039..3ab24d1388 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -34,24 +34,25 @@ import useCustomer from '^retail-react-app/app/commerce-api/hooks/useCustomer' import Link from '^retail-react-app/app/components/link' import Search from '^retail-react-app/app/components/search' import withRegistration from '^retail-react-app/app/hoc/with-registration' + import { AccountIcon, BrandLogo, BasketIcon, HamburgerIcon, - ChevronDownIcon, - HeartIcon, - SignoutIcon, -} from '../icons' +} from '~retail-react-app/app/components/icons' + +import {ChevronDownIcon, HeartIcon, SignoutIcon} from '^retail-react-app/app/components/icons' import {noop} from '^retail-react-app/app/utils/utils' import {navLinks, messages} from '^retail-react-app/app/pages/account/constant' -// import {navLinks} from '../../pages/account/constant' import useNavigation from '^retail-react-app/app/hooks/use-navigation' import LoadingSpinner from '^retail-react-app/app/components/loading-spinner' const ENTER_KEY = 'Enter' +const unused = '' + const IconButtonWithRegistration = withRegistration(IconButton) /** * The header is the main source for accessing @@ -88,61 +89,30 @@ const Header = ({ const [isDesktop] = useMediaQuery('(min-width: 992px)') const [showLoading, setShowLoading] = useState(false) - // // tracking if users enter the popover Content, - // // so we can decide whether to close the menu when users leave account icons - // const hasEnterPopoverContent = useRef() + // tracking if users enter the popover Content, + // so we can decide whether to close the menu when users leave account icons + const hasEnterPopoverContent = useRef() const styles = useMultiStyleConfig('Header') const onSignoutClick = async () => { setShowLoading(true) - // await customer.logout() + await customer.logout() navigate('/login') setShowLoading(false) } - // const keyMap = { - // Escape: () => onClose(), - // Enter: () => onOpen(), - // } - - // const handleIconsMouseLeave = () => { - // // don't close the menu if users enter the popover content - // setTimeout(() => { - // if (!hasEnterPopoverContent.current) onClose() - // }, 100) - // } + const keyMap = { + Escape: () => onClose(), + Enter: () => onOpen(), + } - // return ( - // - // - // {showLoading && } - // - // } - // variant="unstyled" - // display={{lg: 'none'}} - // {...styles.icons} - // onClick={onMenuClick} - // /> - // } - // {...styles.icons} - // variant="unstyled" - // onClick={onLogoClick} - // /> - // {children} - // - // - // - // Hello Header - // - // - // - // ) + const handleIconsMouseLeave = () => { + // don't close the menu if users enter the popover content + setTimeout(() => { + if (!hasEnterPopoverContent.current) onClose() + }, 100) + } return ( @@ -150,8 +120,10 @@ const Header = ({ {showLoading && } } variant="unstyled" display={{lg: 'none'}} @@ -159,7 +131,10 @@ const Header = ({ onClick={onMenuClick} /> } {...styles.icons} variant="unstyled" @@ -167,7 +142,13 @@ const Header = ({ /> {children} - + {customer.isRegistered && ( @@ -214,7 +198,12 @@ const Header = ({ > - My account + + {intl.formatMessage({ + defaultMessage: 'My Account', + id: 'header.popover.title.my_account', + })} + @@ -223,12 +212,13 @@ const Header = ({ return ( ) })} @@ -240,7 +230,10 @@ const Header = ({ - Log out + {intl.formatMessage({ + defaultMessage: 'Log out', + id: 'header.popover.action.log_out', + })} @@ -249,14 +242,20 @@ const Header = ({ )} } variant="unstyled" {...styles.icons} onClick={onWishlistClick} /> diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx index 578f9c90ff..79ce6997c5 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx @@ -60,7 +60,7 @@ import '^retail-react-app/app/assets/svg/close.svg' // proper viewBox attribute on the Icon wrapper. import AmexSymbol from '^retail-react-app/app/assets/svg/cc-amex.svg' // import BrandLogoSymbol from '^retail-react-app/app/assets/svg/brand-logo.svg' -import BrandLogoSymbol from '*app/static/svg/brand-logo.svg' +import BrandLogoSymbol from '~app/static/svg/brand-logo.svg' import CVVSymbol from '^retail-react-app/app/assets/svg/cc-cvv.svg' import DiscoverSymbol from '^retail-react-app/app/assets/svg/cc-discover.svg' import LocationSymbol from '^retail-react-app/app/assets/svg/location.svg' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx deleted file mode 100644 index e2a217f01a..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/list-menu/index.jsx +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ - -import React, {Fragment, useRef, forwardRef} from 'react' -import PropTypes from 'prop-types' -import {useIntl} from 'react-intl' -import {Link as RouteLink} from 'react-router-dom' -import omit from 'lodash/omit' - -// Project Components -import LinksList from '^retail-react-app/app/components/links-list' - -// Components -import { - Box, - Container, - SimpleGrid, - Flex, - Stack, - Popover, - PopoverTrigger, - PopoverContent, - PopoverBody, - Center, - Spinner, - - // Hooks - useTheme, - useDisclosure, -} from '@chakra-ui/react' -import Link from '^retail-react-app/app/components/link' -// Others -import {categoryUrlBuilder} from '^retail-react-app/app/utils/url' -import {ChevronDownIcon} from '^retail-react-app/app/components/icons' - -const MAXIMUM_NUMBER_COLUMNS = 5 - -const ChevronIconTrigger = forwardRef(function ChevronIconTrigger(props, ref) { - return ( - - - - ) -}) - -const ListMenuTrigger = ({item, name, isOpen, onOpen, onClose, hasItems}) => { - const theme = useTheme() - const {baseStyle} = theme.components.ListMenu - - const keyMap = { - Escape: () => onClose(), - Enter: () => onOpen(), - } - - return ( - - - {name} - - - {hasItems && ( - { - keyMap[e.key]?.(e) - }} - {...baseStyle.listMenuTriggerLinkIcon} - > - - - - - )} - - ) -} -ListMenuTrigger.propTypes = { - item: PropTypes.object, - name: PropTypes.string, - isOpen: PropTypes.bool, - onOpen: PropTypes.func, - onClose: PropTypes.func, - hasItems: PropTypes.bool, -} - -const ListMenuContent = ({maxColumns, items, itemsKey, onClose, initialFocusRef}) => { - const theme = useTheme() - const {baseStyle} = theme.components.ListMenu - const {locale} = useIntl() - - return ( - - - - maxColumns ? maxColumns : items.length - }, minmax(0, 21%))`} - marginInlineStart={{lg: '68px', xl: '96px'}} - > - {items.map((item, index) => { - const {id, name} = item - const items = item[itemsKey] - - const heading = { - href: categoryUrlBuilder(item, locale), - text: name, - styles: { - fontSize: 'md', - marginBottom: 2, - }, - } - - const links = items - ? items.map((item) => { - const {name} = item - return { - href: categoryUrlBuilder(item, locale), - text: '🎉' + ' ' + name, - styles: { - fontSize: 'md', - paddingTop: 3, - paddingBottom: 3, - }, - } - }) - : [] - return ( - - ) - })} - - - - - ) -} -ListMenuContent.propTypes = { - items: PropTypes.array, - maxColumns: PropTypes.number, - itemsKey: PropTypes.string, - onClose: PropTypes.func, - initialFocusRef: PropTypes.object, -} - -const ListMenuPopover = ({items, item, name, itemsKey, maxColumns}) => { - const initialFocusRef = useRef() - const {isOpen, onClose, onOpen} = useDisclosure() - return ( - - - - - {items && ( - - )} - - - - ) -} - -ListMenuPopover.propTypes = { - items: PropTypes.array, - item: PropTypes.object, - name: PropTypes.string, - maxColumns: PropTypes.number, - itemsKey: PropTypes.string, -} - -/** - * This is the navigation component used for desktop devices. Holds the site navigation, - * providing users with a way to access all product categories and other important pages. - * The submenus are open when the user moves the mouse over the trigger and for A11y when - * users use the keyboard Tab key to focus over the chevron icon and press Enter. - * - * @param root The root category in your commerce cloud back-end. - * @param maxColumns The maximum number of columns that we want to use per row inside the ListMenu. - */ -const ListMenu = ({root, maxColumns = MAXIMUM_NUMBER_COLUMNS}) => { - const theme = useTheme() - const {baseStyle} = theme.components.ListMenu - - const itemsKey = 'categories' - const items = root ? root[itemsKey] : false - - return ( - - ) -} - -ListMenu.displayName = 'ListMenu' - -ListMenu.propTypes = { - /** - * The root category in your commerce cloud back-end. - */ - root: PropTypes.object, - /** - * The maximum number of columns that we want to use per row in the menu. - */ - maxColumns: PropTypes.number, -} - -export default ListMenu diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx deleted file mode 100644 index c7b5d58b22..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/search/index.jsx +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ -import React, {useRef, useState, useEffect} from 'react' -import { - Input, - InputGroup, - InputLeftElement, - Popover, - PopoverTrigger, - PopoverContent, - Button, - Box, - Flex, - HStack, - Spinner, -} from '@chakra-ui/react' -import SearchSuggestions from '^retail-react-app/app/components/search/partials/search-suggestions' -import {SearchIcon} from '^retail-react-app/app/components/icons' -import useSearchSuggestions from '^retail-react-app/app/commerce-api/hooks/useSearchSuggestions' -import { - capitalize, - boldString, - getSessionJSONItem, - setSessionJSONItem, -} from '^retail-react-app/app/utils/utils' -import useNavigation from '^retail-react-app/app/hooks/use-navigation' -import {HideOnDesktop, HideOnMobile} from '^retail-react-app/app/components/responsive' -// import {FormattedMessage} from 'react-intl' -import debounce from 'lodash/debounce' -import { - RECENT_SEARCH_KEY, - RECENT_SEARCH_LIMIT, - RECENT_SEARCH_MIN_LENGTH, -} from '^retail-react-app/app/constants' -import { - productUrlBuilder, - searchUrlBuilder, - categoryUrlBuilder, -} from '^retail-react-app/app/utils/url' - -const formatSuggestions = (searchSuggestions, input) => { - return { - categorySuggestions: searchSuggestions?.categorySuggestions?.categories?.map( - (suggestion) => { - return { - type: 'category', - id: suggestion.id, - link: categoryUrlBuilder({id: suggestion.id}), - name: boldString(suggestion.name, capitalize(input)), - } - } - ), - productSuggestions: searchSuggestions?.productSuggestions?.products?.map((product) => { - return { - type: 'product', - currency: product.currency, - price: product.price, - productId: product.productId, - name: boldString(product.productName, capitalize(input)), - link: productUrlBuilder({id: product.productId}), - } - }), - phraseSuggestions: searchSuggestions?.categorySuggestions?.suggestedPhrases?.map( - (phrase) => { - return { - type: 'phrase', - name: boldString(phrase.phrase, capitalize(input)), - link: searchUrlBuilder(phrase.phrase), - } - } - ), - } -} - -/** - * The SearchInput component is a stylized - * text input made specifically for use in - * the application header. - * @param {object} props - * @param {object} ref reference to the input element - * @return {React.ReactElement} - SearchInput component - */ -const Search = (props) => { - const navigate = useNavigation() - const searchSuggestion = useSearchSuggestions() - const searchInputRef = useRef() - const [isOpen, setIsOpen] = useState(false) - const recentSearches = getSessionJSONItem(RECENT_SEARCH_KEY) - const searchSuggestions = formatSuggestions( - searchSuggestion.results, - searchInputRef?.current?.value - ) - - // check if popover should open if we have suggestions - useEffect(() => { - shouldOpenPopover() - }, [searchSuggestions]) - - // Want to make sure we clear the suggestions when we are deleting characters - useEffect(() => { - if (searchInputRef?.current?.value <= 2) { - searchSuggestion.clearSuggestedSearch() - } - }, [searchInputRef?.current?.value]) - - const searchSuggestionsAvailable = - searchSuggestions && - (searchSuggestions?.categorySuggestions?.length || - searchSuggestions?.phraseSuggestions?.length) - - const saveRecentSearch = (searchText) => { - // Get recent searches or an empty array if undefined. - let searches = getSessionJSONItem(RECENT_SEARCH_KEY) || [] - - // Check if term is already in the saved searches - searches = searches.filter((savedSearchTerm) => { - searchText.toLowerCase() !== savedSearchTerm.toLowerCase() - }) - - // Create a new array consisting of the search text and up to 4 other resent searches. - // I'm assuming the order is newest to oldest. - searches = [searchText, ...searches].slice(0, RECENT_SEARCH_LIMIT) - - // Replace the save resent search with the updated value. - setSessionJSONItem(RECENT_SEARCH_KEY, searches) - } - - const debouncedSearch = debounce((input) => searchSuggestion.getSearchSuggestions(input), 300) - - const onSearchChange = async (e) => { - const input = e.target.value - if (input.length >= RECENT_SEARCH_MIN_LENGTH) { - debouncedSearch(input) - } - } - - const clearInput = () => { - searchInputRef.current.blur() - searchSuggestion.clearSuggestedSearch() - setIsOpen(false) - } - - const onSubmitSearch = (e) => { - e.preventDefault() - // Avoid blank spaces to be searched - let searchText = searchInputRef.current.value.trim() - // Avoid empty string searches - if (searchText.length < 1) { - return - } - saveRecentSearch(searchText) - clearInput() - navigate(searchUrlBuilder(searchText)) - } - - const closeAndNavigate = (link) => { - if (!link) { - clearInput() - setIsOpen(false) - } else { - clearInput() - setIsOpen(false) - navigate(link) - } - } - - const shouldOpenPopover = () => { - // As per design we only want to show the popover if the input is focused and we have recent searches saved - // or we have search suggestions available and have inputed some text (empty text in this scenario should show recent searches) - if ( - (document.activeElement.id === 'search-input' && recentSearches?.length > 0) || - (searchSuggestionsAvailable && searchInputRef.current.value.length > 0) - ) { - setIsOpen(true) - } else { - setIsOpen(false) - } - } - - const onSearchInputChange = (e) => { - onSearchChange(e) - shouldOpenPopover() - } - - return ( - - - -
- - - - - - onSearchInputChange(e)} - onFocus={() => shouldOpenPopover()} - onBlur={() => setIsOpen(false)} - type="search" - ref={searchInputRef} - {...props} - variant="filled" - /> - - - - - -
-
- - - - - - -
- - 0 ? 'block' : 'none'} - postion="absolute" - background="white" - left={0} - right={0} - height="100vh" - > - {searchSuggestion.isLoading ? ( - - ) : ( - - )} - - -
- ) -} - -Search.displayName = 'SearchInput' - -export default Search diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx deleted file mode 100644 index ce256cccf1..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/checkout/partials/checkout-header.tsx +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ -import React from 'react' -// import {FormattedMessage} from 'react-intl' -import {Badge, Box, Button, Flex, Center} from '@chakra-ui/react' -import useBasket from '^retail-react-app/app/commerce-api/hooks/useBasket' -import Link from '^retail-react-app/app/components/link' -import {BasketIcon, BrandLogo} from '^retail-react-app/app/components/icons' -import {HOME_HREF} from '^retail-react-app/app/constants' - -const CheckoutHeader = () => { - const basket = useBasket() - return ( - - - - - - - - - - - - ) -} - -export default CheckoutHeader diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js deleted file mode 100644 index 02c1b65ee3..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/data.js +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2021, salesforce.com, inc. - * All rights reserved. - * SPDX-License-Identifier: BSD-3-Clause - * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause - */ - -/** - * This is the data used in by the Retail React App home page. - * The example static data is created for demonstration purposes. - * Typically you'd get this information from the API or possibly - * from content slots. - */ -import React from 'react' -import {defineMessages} from 'react-intl' -import { - AccountIcon, - BasketIcon, - BrandLogo, - FigmaLogo, - DashboardIcon, - HeartIcon, - LikeIcon, - PlugIcon, -} from '^retail-react-app/app/components/icons' - -import {GithubLogo} from '*retail-react-app/app/components/icons' - -export const heroFeatures = [ - { - // message: defineMessages({ - // title: {defaultMessage: 'Download on Github', id: 'home.hero_features.link.on_github'} - // }), - message: { - title: 'Download on Github', - text: '', - }, - icon: , - href: 'https://github.com/SalesforceCommerceCloud/pwa-kit', - }, - { - // message: defineMessages({ - // title: { - // defaultMessage: 'Deploy on Managed Runtime', - // id: 'home.hero_features.link.on_managed_runtime', - // }, - // }), - message: { - title: 'Deploy on Managed Runtime', - text: '', - }, - icon: , - href: 'https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/pushing-and-deploying-bundles.html', - }, - { - // message: defineMessages({ - // title: { - // defaultMessage: 'Create with the Figma PWA Design Kit', - // id: 'home.hero_features.link.design_kit', - // }, - // }), - message: { - title: 'Create with the Figma PWA Design Kit', - text: '', - }, - icon: , - href: 'https://sfdc.co/figma-pwa-design-kit', - }, -] - -export const features = [ - { - // message: defineMessages({ - // title: {defaultMessage: 'Cart & Checkout', id: 'home.features.heading.cart_checkout'}, - // text: { - // defaultMessage: - // "Ecommerce best practice for a shopper's cart and checkout experience.", - // id: 'home.features.description.cart_checkout', - // }, - // }), - message: { - title: 'Cart & Checkout', - text: `Ecommerce best practice for a shopper's cart and checkout experience.`, - }, - icon: , - }, - { - // message: defineMessages({ - // title: { - // defaultMessage: 'Einstein Recommendations', - // id: 'home.features.heading.einstein_recommendations', - // }, - // text: { - // defaultMessage: - // 'Deliver the next best product or offer to every shopper through product recommendations.', - // id: 'home.features.description.einstein_recommendations', - // }, - // }), - message: { - title: 'Einstein Recommendations', - text: 'Deliver the next best product or offer to every shopper through product recommendations.', - }, - icon: , - }, - { - // message: defineMessages({ - // title: {defaultMessage: 'My Account', id: 'home.features.heading.my_account'}, - // text: { - // defaultMessage: - // 'Shoppers can manage account information such as their profile, addresses, payments and orders.', - // id: 'home.features.description.my_account', - // }, - // }), - message: { - title: 'My Account', - text: `Shoppers can manage account information such as their profile, addresses, payments and orders.`, - }, - icon: , - }, - { - // message: defineMessages({ - // title: { - // defaultMessage: 'Shopper Login and API Access Service', - // id: 'home.features.heading.shopper_login', - // }, - // text: { - // defaultMessage: - // 'Enable shoppers to easily log in with a more personalized shopping experience.', - // id: 'home.features.description.shopper_login', - // }, - // }), - message: { - title: `Shopper Login and API Access Service`, - text: 'Enable shoppers to easily log in with a more personalized shopping experience.', - }, - icon: , - }, - { - // message: defineMessages({ - // title: { - // defaultMessage: 'Components & Design Kit', - // id: 'home.features.heading.components', - // }, - // text: { - // defaultMessage: - // 'Built using Chakra UI, a simple, modular and accessible React component library.', - // id: 'home.features.description.components', - // }, - // }), - message: { - title: 'Components & Design Kit', - text: 'Built using Chakra UI, a simple, modular and accessible React component library.', - }, - icon: , - }, - { - // message: defineMessages({ - // title: {defaultMessage: 'Wishlist', id: 'home.features.heading.wishlist'}, - // text: { - // defaultMessage: - // 'Registered shoppers can add product items to their wishlist from purchasing later. ', - // id: 'home.features.description.wishlist', - // }, - // }), - message: { - title: 'Wishlist', - text: 'Registered shoppers can add product items to their wishlist from purchasing later. ', - }, - icon: , - }, -] diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx index 426449c903..2134ef5b54 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -27,7 +27,7 @@ import ProductScroller from '^retail-react-app/app/components/product-scroller' import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' console.log('~TODO: override pages/home/data below !!! (uses useIntl())') -import {heroFeatures, features} from './data' +import {heroFeatures, features} from '^retail-react-app/app/pages/home/data' // TODO: remove me! import {ChakraProvider} from '@chakra-ui/react' @@ -147,8 +147,7 @@ const Home = ({productSearchResult, isLoading}) => { {feature.icon}
- {/* {intl.formatMessage(featureMessage.title)} */} - {featureMessage.title} + {intl.formatMessage(featureMessage.title)} @@ -162,47 +161,45 @@ const Home = ({productSearchResult, isLoading}) => {
- // {intl.formatMessage({ - // defaultMessage: 'Read docs', - // id: 'home.link.read_docs', - // })} - // - // ), - // } - // )} + title={intl.formatMessage({ + defaultMessage: 'Shop Products', + id: 'home.heading.shop_products', + })} + subtitle={intl.formatMessage( + { + defaultMessage: + 'This section contains content from the catalog. {docLink} on how to replace it.', + id: 'home.description.shop_products', + description: + '{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs', + }, + { + docLink: ( + + {intl.formatMessage({ + defaultMessage: 'Read docs', + id: 'home.link.read_docs', + })} + + ), + } + )} > { padding={4} paddingTop={32} title="Features" - // title={intl.formatMessage({ - // defaultMessage: 'Features', - // id: 'home.heading.features', - // })} + title={intl.formatMessage({ + defaultMessage: 'Features', + id: 'home.heading.features', + })} subtitle={ 'Out-of-the-box features so that you focus only on adding enhancements.' } - // subtitle={intl.formatMessage({ - // defaultMessage: - // 'Out-of-the-box features so that you focus only on adding enhancements.', - // id: 'home.description.features', - // })} + subtitle={intl.formatMessage({ + defaultMessage: + 'Out-of-the-box features so that you focus only on adding enhancements.', + id: 'home.description.features', + })} > @@ -248,12 +245,10 @@ const Home = ({productSearchResult, isLoading}) => { {feature.icon} - {/* {intl.formatMessage(featureMessage.title)} */} - {featureMessage.title} + {intl.formatMessage(featureMessage.title)} - {/* {intl.formatMessage(featureMessage.text)} */} - {featureMessage.text} + {intl.formatMessage(featureMessage.text)} diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg index 036fdd97c8..e8bb550d36 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg @@ -1,2 +1,2 @@ - + From f406c54d981d3a07e9d69eb9e56ecf5f5d7ec2cc Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Fri, 3 Mar 2023 07:59:37 -0700 Subject: [PATCH 028/263] minor cleanup --- .../build/loadable-stats.json | 61 +++++++++++++++++-- .../overrides/app/components/_app/index.jsx | 2 +- .../overrides/app/components/header/index.jsx | 10 +-- .../overrides/app/components/icons/index.jsx | 2 +- .../overrides/app/static/svg/brand-logo.svg | 2 +- 5 files changed, 62 insertions(+), 15 deletions(-) diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index fa8935122d..10bd77de48 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,11 +1,12 @@ { "name": "client", - "hash": "47416b63933634cf604a", + "hash": "e5eef32b33326266931d", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ - "main.js" + "main.js", + "main.774dccf937ffdcf4eaac.hot-update.js" ], "pages-home": [ "pages-home.js" @@ -81,7 +82,7 @@ { "type": "asset", "name": "main.js", - "size": 1162872, + "size": 1162793, "emitted": false, "comparedForEmit": false, "cached": true, @@ -646,6 +647,33 @@ ], "auxiliaryChunks": [] }, + { + "type": "asset", + "name": "main.774dccf937ffdcf4eaac.hot-update.js", + "size": 21806, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "774dccf937ffdcf4eaac", + "related": { + "sourceMap": "main.774dccf937ffdcf4eaac.hot-update.js.map" + } + }, + "chunkNames": [ + "main" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "main" + ], + "auxiliaryChunks": [] + }, { "type": "asset", "name": "^retail-react-app-app-pages-reset-password.js", @@ -816,6 +844,25 @@ "_cc12" ], "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "main.774dccf937ffdcf4eaac.hot-update.json", + "size": 28, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "774dccf937ffdcf4eaac" + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [], + "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -831,11 +878,14 @@ }, { "name": "main.js" + }, + { + "name": "main.774dccf937ffdcf4eaac.hot-update.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 2, + "filteredAuxiliaryAssets": 3, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1151,7 +1201,8 @@ { "id": "main", "files": [ - "main.js" + "main.js", + "main.774dccf937ffdcf4eaac.hot-update.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx index fdd62a1038..ec9d950a84 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx @@ -19,7 +19,7 @@ import {SkipNavLink, SkipNavContent} from '@chakra-ui/skip-nav' import {CategoriesProvider, CurrencyProvider} from '^retail-react-app/app/contexts' // Local Project Components -import Header from '~retail-react-app/app/components/header' +import Header from '~app/components/header' import OfflineBanner from '^retail-react-app/app/components/offline-banner' import OfflineBoundary from '^retail-react-app/app/components/offline-boundary' import ScrollToTop from '^retail-react-app/app/components/scroll-to-top' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index 3ab24d1388..43cff190ba 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -35,12 +35,7 @@ import Link from '^retail-react-app/app/components/link' import Search from '^retail-react-app/app/components/search' import withRegistration from '^retail-react-app/app/hoc/with-registration' -import { - AccountIcon, - BrandLogo, - BasketIcon, - HamburgerIcon, -} from '~retail-react-app/app/components/icons' +import {AccountIcon, BrandLogo, BasketIcon, HamburgerIcon} from '../icons' import {ChevronDownIcon, HeartIcon, SignoutIcon} from '^retail-react-app/app/components/icons' @@ -130,6 +125,7 @@ const Header = ({ {...styles.icons} onClick={onMenuClick} /> + + YES {children} - {customer.isRegistered && ( - + From 7573d8a3a9ab82e4ab2fe55371d8a0c74c5feddd Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Mon, 6 Mar 2023 14:49:02 -0700 Subject: [PATCH 029/263] progress on debugging double-request processing in webpack --- .../src/configs/webpack/plugins.js | 23 ++++-- .../build/loadable-stats.json | 81 ++++--------------- .../overrides/app/components/header/index.jsx | 12 ++- .../overrides/app/components/icons/index.jsx | 2 + .../overrides/app/pages/home/index.jsx | 50 ++++++------ .../app/components/icons/index.jsx | 3 +- 6 files changed, 69 insertions(+), 102 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index fa55c2f1de..baa2694d45 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -186,8 +186,7 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { const _overrides = [...overrides] const getExtendsRelativePath = (noExt) => { - const noExtExtends = - pkg?.mobify?.extends + '/' + noExt.replace(pkg?.mobify?.overridesDir, '') + const noExtExtends = pkg?.mobify?.extends + noExt.replace(pkg?.mobify?.overridesDir, '') return } @@ -245,7 +244,19 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { const resolved = path.resolve(resource.context, resource.request) // ignore magic paths and don't attempt to overwrite them - if (resource.request.match(/\~/) || resource.request.match(/\^/)) { + console.log('++++++++') + console.log(`resource.context`, resource.context) + console.log(`resource.request`, resource.request) + console.log('++++++++') + if ( + resource.request.match(/\~/) || + resource.request.match(/\^/) || + // TODO: this array appears to always contain object where the `dependency[x].request + // holds reference to the original request, which is what we want to introspect on + // whether magic characters like `^` were used + resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] + ) { + console.log('~EARLY RETURN') return } const matchRegex = makeRegExp(pkg?.mobify?.extends) @@ -280,11 +291,7 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { } if ( resolved?.match?.(matchRegex) && - _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length && - // TODO: this array appears to always contain object where the `dependency[x].request - // holds reference to the original request, which is what we want to introspect on - // whether magic characters like `^` were used - !resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] + _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length ) { const depth = pkg?.mobify?.overridesDir?.replace?.(/^\//, '')?.split('/') || [] const relativePath = resolved?.split?.(matchRegex)?.[1] diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 10bd77de48..558ceddbd2 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,12 +1,11 @@ { "name": "client", - "hash": "e5eef32b33326266931d", + "hash": "d2b43b7f93473250485a", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ - "main.js", - "main.774dccf937ffdcf4eaac.hot-update.js" + "main.js" ], "pages-home": [ "pages-home.js" @@ -82,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1162793, + "size": 1124708, "emitted": false, "comparedForEmit": false, "cached": true, @@ -551,51 +550,51 @@ }, { "type": "asset", - "name": "^retail-react-app-app-pages-account-wishlist.js", - "size": 39136, + "name": "pages-home.js", + "size": 39699, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "^retail-react-app-app-pages-account-wishlist.js.map" + "sourceMap": "pages-home.js.map" } }, "chunkNames": [ - "^retail-react-app-app-pages-account-wishlist" + "pages-home" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "^retail-react-app-app-pages-account-wishlist" + "pages-home" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "pages-home.js", - "size": 38937, + "name": "^retail-react-app-app-pages-account-wishlist.js", + "size": 39136, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "pages-home.js.map" + "sourceMap": "^retail-react-app-app-pages-account-wishlist.js.map" } }, "chunkNames": [ - "pages-home" + "^retail-react-app-app-pages-account-wishlist" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "pages-home" + "^retail-react-app-app-pages-account-wishlist" ], "auxiliaryChunks": [] }, @@ -647,33 +646,6 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "main.774dccf937ffdcf4eaac.hot-update.js", - "size": 21806, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "hotModuleReplacement": true, - "immutable": true, - "fullhash": "774dccf937ffdcf4eaac", - "related": { - "sourceMap": "main.774dccf937ffdcf4eaac.hot-update.js.map" - } - }, - "chunkNames": [ - "main" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "main" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "^retail-react-app-app-pages-reset-password.js", @@ -844,25 +816,6 @@ "_cc12" ], "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "main.774dccf937ffdcf4eaac.hot-update.json", - "size": 28, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "hotModuleReplacement": true, - "immutable": true, - "fullhash": "774dccf937ffdcf4eaac" - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [], - "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -878,14 +831,11 @@ }, { "name": "main.js" - }, - { - "name": "main.774dccf937ffdcf4eaac.hot-update.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 3, + "filteredAuxiliaryAssets": 2, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1201,8 +1151,7 @@ { "id": "main", "files": [ - "main.js", - "main.774dccf937ffdcf4eaac.hot-update.js" + "main.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index 43cff190ba..d2aaf4906f 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -35,9 +35,17 @@ import Link from '^retail-react-app/app/components/link' import Search from '^retail-react-app/app/components/search' import withRegistration from '^retail-react-app/app/hoc/with-registration' -import {AccountIcon, BrandLogo, BasketIcon, HamburgerIcon} from '../icons' +// import {AccountIcon, BrandLogo, BasketIcon, HamburgerIcon} from '~app/components/icons' -import {ChevronDownIcon, HeartIcon, SignoutIcon} from '^retail-react-app/app/components/icons' +import { + ChevronDownIcon, + HeartIcon, + SignoutIcon, + AccountIcon, + BrandLogo, + BasketIcon, + HamburgerIcon, +} from '^retail-react-app/app/components/icons' import {noop} from '^retail-react-app/app/utils/utils' import {navLinks, messages} from '^retail-react-app/app/pages/account/constant' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx index 0736bf9c8c..ad9cc091a2 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx @@ -60,6 +60,7 @@ import '^retail-react-app/app/assets/svg/close.svg' // proper viewBox attribute on the Icon wrapper. import AmexSymbol from '^retail-react-app/app/assets/svg/cc-amex.svg' // import BrandLogoSymbol from '^retail-react-app/app/assets/svg/brand-logo.svg' +// import BrandLogoSymbol from '../../static/svg/brand-logo.svg' import BrandLogoSymbol from '~app/static/svg/brand-logo.svg' import CVVSymbol from '^retail-react-app/app/assets/svg/cc-cvv.svg' import DiscoverSymbol from '^retail-react-app/app/assets/svg/cc-discover.svg' @@ -99,6 +100,7 @@ const icon = (name, passProps) => { ...theme?.components?.Icon?.baseStyle, ...(overrideIcons?.includes(name) ? {color: 'red !important', boxSize: 14} : {}), } + console.log('~hello ~icons') return ( { const intl = useIntl() - if (isLoading) return <>Loding... - // return ( - // - // - //
This is my new home
- // Total products: {productSearchResult?.hits?.length} - //
    - // {productSearchResult?.hits?.map((item) => ( - //
  • - // {item?.productName} - //
    - // {JSON.stringify(item)} - // - //
  • - // ))} - //
- //
- //
- // ) - + if (isLoading) { + return ( + + +
This is my new home
+ Total products: {productSearchResult?.hits?.length} +
    + {productSearchResult?.hits?.map((item) => ( +
  • + {item?.productName} +
    + {JSON.stringify(item)} + +
  • + ))} +
+
+
+ ) + } useEffect(() => { console.log('~74 theme', theme) }) diff --git a/packages/template-retail-react-app/app/components/icons/index.jsx b/packages/template-retail-react-app/app/components/icons/index.jsx index e413439c6e..09643030df 100644 --- a/packages/template-retail-react-app/app/components/icons/index.jsx +++ b/packages/template-retail-react-app/app/components/icons/index.jsx @@ -93,6 +93,7 @@ const icon = (name, passProps) => { const component = forwardRef((props, ref) => { const theme = useTheme() const baseStyle = theme?.components?.Icon?.baseStyle + console.log('~hello ^icons') return ( // // @@ -149,7 +150,7 @@ export const SearchIcon = icon('search') export const SocialFacebookIcon = icon('social-facebook') export const SocialInstagramIcon = icon('social-instagram') export const SocialPinterestIcon = icon('social-pinterest', { - viewBox: SocialPinterestSymbol.viewBox, + viewBox: SocialPinterestSymbol.viewBox }) export const SocialTwitterIcon = icon('social-twitter') export const SocialYoutubeIcon = icon('social-youtube') From f3bc68bbbba79c3f23bb06b5c968ae030df3fed4 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 7 Mar 2023 06:51:52 -0700 Subject: [PATCH 030/263] fix helper function that was returning `undefined` as a value in regex --- packages/pwa-kit-dev/src/configs/webpack/plugins.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index baa2694d45..fd0b2e9569 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -171,23 +171,21 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { const overrides = glob.sync(globPattern)?.flatMap((item) => { return [ item, - item?.replace( - pkg?.mobify?.overridesDir?.replace(/^\//, ''), - `/${pkg?.mobify?.extends}` - ), + item?.replace(pkg?.mobify?.overridesDir?.replace(/^\//, ''), `${pkg?.mobify?.extends}`), // TODO: this needs a better solution, but maybe only a pain for local dev until we publish // the retail react app template? item?.replace( pkg?.mobify?.overridesDir?.replace(/^\//, ''), - `/template-${pkg?.mobify?.extends}` + `template-${pkg?.mobify?.extends}` ) ] }) const _overrides = [...overrides] const getExtendsRelativePath = (noExt) => { - const noExtExtends = pkg?.mobify?.extends + noExt.replace(pkg?.mobify?.overridesDir, '') - return + const noExtExtends = + pkg?.mobify?.extends + '/' + noExt.replace(pkg?.mobify?.overridesDir, '/') + return noExtExtends } const overridesMap = [ From 596c31efb8a6fcef15f00158a28d9779521be41f Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Tue, 7 Mar 2023 06:54:03 -0700 Subject: [PATCH 031/263] Early WIP toward consolidating 3 plugins into one. Regex check returning at line 317, but shouldn't be --- .../pwa-kit-dev/src/configs/webpack/config.js | 17 +- .../src/configs/webpack/plugins.js | 169 +++++++++++++----- .../build/loadable-stats.json | 4 +- 3 files changed, 137 insertions(+), 53 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 09781441bf..3372aecfe9 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -179,9 +179,8 @@ const baseConfig = (target) => { 'react-intl': findInProjectThenExtendsThenSDK('react-intl'), '@chakra-ui/icons': findInProjectThenExtendsThenSDK('@chakra-ui/icons'), '@chakra-ui/react': findInProjectThenExtendsThenSDK('@chakra-ui/react'), - '@chakra-ui/skip-nav': findInProjectThenExtendsThenSDK( - '@chakra-ui/skip-nav' - ), + '@chakra-ui/skip-nav': + findInProjectThenExtendsThenSDK('@chakra-ui/skip-nav'), '@emotion/react': findInProjectThenExtendsThenSDK('@emotion/react'), '@emotion/styled': findInProjectThenExtendsThenSDK('@emotion/styled') }, @@ -204,13 +203,13 @@ const baseConfig = (target) => { ? extendedTemplateReplacementPlugin(projectDir) : () => null, - pkg?.mobify?.extends && pkg?.mobify?.overridesDir - ? importFromExtendsPlugin(projectDir) - : () => null, + // pkg?.mobify?.extends && pkg?.mobify?.overridesDir + // ? importFromExtendsPlugin(projectDir) + // : () => null, - pkg?.mobify?.extends && pkg?.mobify?.overridesDir - ? importFromLocalPlugin(projectDir) - : () => null, + // pkg?.mobify?.extends && pkg?.mobify?.overridesDir + // ? importFromLocalPlugin(projectDir) + // : () => null, allFiles(), // Don't chunk if it's a node target – faster Lambda startup. diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index fd0b2e9569..3c250cd68f 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -120,52 +120,60 @@ export const allFiles = (projectDir) => { }) } -export const importFromExtendsPlugin = (projectDir) => { - // TODO: does any other library use this weird magic character import schema? +// export const importFromExtendsPlugin = (projectDir) => { +// // TODO: does any other library use this weird magic character import schema? - return new webpack.NormalModuleReplacementPlugin(/\^/, (resource) => { - const resolved = path.resolve(resource.context, resource.request) - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~===== ^^ Magic', resolved) - } - const relativePath = resolved?.split(`^`)?.[1]?.replace(/^\//, '') - const newPath = path.resolve(projectDir, 'node_modules', relativePath) - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~^ magic newPath', newPath) - } - // NOTE: overriding either of these alone does not work, both must be set - resource.request = newPath - resource.createData.resource = newPath - }) -} +// return new webpack.NormalModuleReplacementPlugin(/\^/, (resource) => { +// const resolved = path.resolve(resource.context, resource.request) +// if (resolved?.match(/app\/components\/icons$/)) { +// console.log('~===== ^^ Magic') +// console.log('~resource.context', resource.context) +// console.log('~resource.context', resource.context) +// } +// const relativePath = resolved?.split(`^`)?.[1]?.replace(/^\//, '') +// const newPath = path.resolve(projectDir, 'node_modules', relativePath) +// if (resolved?.match(/app\/components\/icons$/)) { +// console.log('~^ magic newPath', newPath) +// } +// // NOTE: overriding either of these alone does not work, both must be set +// resource.request = newPath +// resource.createData.resource = newPath +// }) +// } -export const importFromLocalPlugin = (projectDir) => { - // TODO: does any other library use this weird magic character import schema? - return new webpack.NormalModuleReplacementPlugin(/\~/, (resource) => { - const resolved = path.resolve(resource.context, resource.request) - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~===== ~~ Magic', resolved) - } - const relativePath = resolved - ?.split(`~`)?.[1] - ?.replace(pkg?.mobify?.extends, '') - ?.replace(/^\//, '') - const newPath = path.resolve( - projectDir, - pkg?.mobify?.overridesDir?.replace(/^\//, ''), - relativePath - ) - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~ ~ magic newPath', newPath) - } - // NOTE: overriding either of these alone does not work, both must be set - resource.request = newPath - resource.createData.resource = newPath - }) -} +// export const importFromLocalPlugin = (projectDir) => { +// // TODO: does any other library use this weird magic character import schema? +// return new webpack.NormalModuleReplacementPlugin(/\~/, (resource) => { +// const resolved = path.resolve(resource.context, resource.request) +// if (resolved?.match(/app\/components\/icons$/)) { +// console.log('~===== ~~ Magic', resolved) +// } +// const relativePath = resolved +// ?.split(`~`)?.[1] +// ?.replace(pkg?.mobify?.extends, '') +// ?.replace(/^\//, '') +// const newPath = path.resolve( +// projectDir, +// pkg?.mobify?.overridesDir?.replace(/^\//, ''), +// relativePath +// ) +// if (resolved?.match(/app\/components\/icons$/)) { +// console.log('~ ~ magic newPath', newPath) +// } +// // NOTE: overriding either of these alone does not work, both must be set +// resource.request = newPath +// resource.createData.resource = newPath +// }) +// } export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('~templateAppPathRegex', templateAppPathRegex) + // EXAMPLE: + // file: overrides/app/icons/index.jsx + // now we manipulate this string to be + // --> /app/icons/index.jsx + // PROBLEM: ^ prefixed files would look like `^app/icons/index.jsx` + // which is not a regex match const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` // push a copy of overrides array with the extends path as base const overrides = glob.sync(globPattern)?.flatMap((item) => { @@ -188,11 +196,14 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { return noExtExtends } + const vanillaPatterns = [] + const overridesMap = [ ...overrides, ...overrides.flatMap((item) => { const EXTENSIONS = '.+(js|jsx|ts|tsx)$' const patterns = [minimatch.makeRe('**/*' + item)] + vanillaPatterns.push(item) const extRe = /\.\w+$/ const hasExt = item?.test?.(extRe) const hasSlash = item?.endsWith('/') @@ -205,10 +216,12 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { const noExtExtends = pkg?.mobify?.extends + '/' + noExt.replace(pkg?.mobify?.overridesDir, '') patterns.push(minimatch.makeRe('**/*' + noExt + EXTENSIONS)) + vanillaPatterns.push(minimatch.makeRe(noExt + EXTENSIONS)) patterns.push(minimatch.makeRe(getExtendsRelativePath(noExt) + EXTENSIONS)) } if (hasSlash) { patterns.push(minimatch.makeRe('**/*' + item + 'index' + EXTENSIONS)) + vanillaPatterns.push(minimatch.makeRe(item + 'index' + EXTENSIONS)) patterns.push( minimatch.makeRe( '**/*' + @@ -216,6 +229,11 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { EXTENSIONS ) ) + vanillaPatterns.push( + minimatch.makeRe( + item.replace(pkg?.mobify?.overridesDir?.replace(/\//, ''), '') + EXTENSIONS + ) + ) } return patterns }) @@ -223,6 +241,19 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('~overridesMap', overridesMap) // TODO: manually push a false positive e.g. chakra-ui/whatever/icons to make sure we don't override that + const vanillaOverridesRegex = makeRegExp( + `(${vanillaPatterns + ?.map((override) => + override instanceof RegExp && override?.source + ? override?.source + : override?.replace && override?.startsWith('/') + ? override?.replace?.(/^\//, '') + : override + ) + ?.join('|')})` + ) + console.log('~vanillaOverridesRegex', vanillaOverridesRegex) + // TODO: filter regex already generated above out of this map const overridesRegex = makeRegExp( `(${overridesMap @@ -239,8 +270,62 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // TODO: maybe parse the whole dependency tree and rewrite it with this // https://github.com/dependents/node-dependency-tree - return new webpack.NormalModuleReplacementPlugin(overridesRegex, (resource) => { + return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) + + if (resource.request.match(/\~/)) { + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~===== ~~ Magic', resolved) + } + const relativePath = resolved + ?.split(`~`)?.[1] + ?.replace(pkg?.mobify?.extends, '') + ?.replace(/^\//, '') + const newPath = path.resolve( + projectDir, + pkg?.mobify?.overridesDir?.replace(/^\//, ''), + relativePath + ) + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~ ~ magic newPath', newPath) + } + // NOTE: overriding either of these alone does not work, both must be set + resource.request = newPath + resource.createData.resource = newPath + return + } + + if (resource.request.match(/\^/)) { + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~===== ^^ Magic') + console.log('~resource.context', resource.context) + console.log('~resource.context', resource.context) + } + + const relativePath = resolved?.split(`^`)?.[1]?.replace(/^\//, '') + const newPath = path.resolve(projectDir, 'node_modules', relativePath) + if (resolved?.match(/app\/components\/icons$/)) { + console.log('~^ magic newPath', newPath) + } + // NOTE: overriding either of these alone does not work, both must be set + resource.request = newPath + resource.createData.resource = newPath + return + } + + // for now, let's early return any file that doesn't match what's expected from overrides + if (!resolved?.match(vanillaOverridesRegex)?.length) { + if (resolved?.match(/app\/components\/icons/)) { + console.log(`------`) + console.log('~NO MATCH of resolved icons file in overrides array') + console.log('~resource.context', resource.context) + console.log('~resource.request', resource.request) + console.log('~resolved', resolved) + console.log(`------`) + } + + return + } // ignore magic paths and don't attempt to overwrite them console.log('++++++++') console.log(`resource.context`, resource.context) diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 558ceddbd2..426b6ea59b 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,6 +1,6 @@ { "name": "client", - "hash": "d2b43b7f93473250485a", + "hash": "834fbe1e76696d28f5c7", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1124708, + "size": 1118307, "emitted": false, "comparedForEmit": false, "cached": true, From d63eca0dc8f77e5ba4526011c95359830c13eab0 Mon Sep 17 00:00:00 2001 From: yunakim714 Date: Wed, 8 Mar 2023 15:41:33 -0500 Subject: [PATCH 032/263] add regex of path where filename is NOT included --- .../build/loadable-stats.json | 44 +++++++++---------- .../overrides/app/components/header/index.jsx | 5 +-- .../overrides/app/components/icons/index.jsx | 1 - .../overrides/app/pages/home/index.jsx | 9 ---- 4 files changed, 23 insertions(+), 36 deletions(-) diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 426b6ea59b..7be3483d60 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,8 +1,8 @@ { "name": "client", - "hash": "834fbe1e76696d28f5c7", + "hash": "1882b20401cc98accd9e", "publicPath": "/mobify/bundle/development/", - "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", + "outputPath": "/Users/yunakim/cc-pwa/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ "main.js" @@ -54,7 +54,7 @@ { "type": "asset", "name": "vendor.js", - "size": 5162385, + "size": 5169898, "emitted": false, "comparedForEmit": false, "cached": true, @@ -81,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1118307, + "size": 1158197, "emitted": false, "comparedForEmit": false, "cached": true, @@ -106,7 +106,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-account.js", - "size": 169341, + "size": 169116, "emitted": false, "comparedForEmit": false, "cached": true, @@ -131,7 +131,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-checkout.js", - "size": 155440, + "size": 155264, "emitted": false, "comparedForEmit": false, "cached": true, @@ -156,7 +156,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-product-list.js", - "size": 115787, + "size": 115723, "emitted": false, "comparedForEmit": false, "cached": true, @@ -181,7 +181,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", - "size": 78297, + "size": 78242, "emitted": false, "comparedForEmit": false, "cached": true, @@ -223,7 +223,7 @@ { "type": "asset", "name": "template-retail-react-app_app_partials_product-view_index_jsx.js", - "size": 61687, + "size": 61613, "emitted": false, "comparedForEmit": false, "cached": true, @@ -246,7 +246,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-cart.js", - "size": 60901, + "size": 60886, "emitted": false, "comparedForEmit": false, "cached": true, @@ -271,7 +271,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-checkout-confirmation.js", - "size": 53993, + "size": 53959, "emitted": false, "comparedForEmit": false, "cached": true, @@ -353,7 +353,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", - "size": 45048, + "size": 44973, "emitted": false, "comparedForEmit": false, "cached": true, @@ -471,7 +471,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", - "size": 42794, + "size": 42751, "emitted": false, "comparedForEmit": false, "cached": true, @@ -551,7 +551,7 @@ { "type": "asset", "name": "pages-home.js", - "size": 39699, + "size": 39293, "emitted": false, "comparedForEmit": false, "cached": true, @@ -576,7 +576,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-account-wishlist.js", - "size": 39136, + "size": 39071, "emitted": false, "comparedForEmit": false, "cached": true, @@ -601,7 +601,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", - "size": 36367, + "size": 36342, "emitted": false, "comparedForEmit": false, "cached": true, @@ -624,7 +624,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-product-detail.js", - "size": 23692, + "size": 23684, "emitted": false, "comparedForEmit": false, "cached": true, @@ -649,7 +649,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-reset-password.js", - "size": 10458, + "size": 10437, "emitted": false, "comparedForEmit": false, "cached": true, @@ -674,7 +674,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-login.js", - "size": 8381, + "size": 8370, "emitted": false, "comparedForEmit": false, "cached": true, @@ -699,7 +699,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-page-not-found.js", - "size": 7776, + "size": 7757, "emitted": false, "comparedForEmit": false, "cached": true, @@ -724,7 +724,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-registration.js", - "size": 7564, + "size": 7554, "emitted": false, "comparedForEmit": false, "cached": true, @@ -749,7 +749,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-login-redirect.js", - "size": 3062, + "size": 3058, "emitted": false, "comparedForEmit": false, "cached": true, diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index d2aaf4906f..97e4c37163 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -35,15 +35,12 @@ import Link from '^retail-react-app/app/components/link' import Search from '^retail-react-app/app/components/search' import withRegistration from '^retail-react-app/app/hoc/with-registration' -// import {AccountIcon, BrandLogo, BasketIcon, HamburgerIcon} from '~app/components/icons' +import {AccountIcon, BasketIcon, HeartIcon} from '~app/components/icons' import { ChevronDownIcon, - HeartIcon, SignoutIcon, - AccountIcon, BrandLogo, - BasketIcon, HamburgerIcon, } from '^retail-react-app/app/components/icons' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx index ad9cc091a2..c819f04588 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/icons/index.jsx @@ -100,7 +100,6 @@ const icon = (name, passProps) => { ...theme?.components?.Icon?.baseStyle, ...(overrideIcons?.includes(name) ? {color: 'red !important', boxSize: 14} : {}), } - console.log('~hello ~icons') return ( { padding={4} paddingTop={32} title="Features" - title={intl.formatMessage({ - defaultMessage: 'Features', - id: 'home.heading.features', - })} subtitle={ 'Out-of-the-box features so that you focus only on adding enhancements.' } - subtitle={intl.formatMessage({ - defaultMessage: - 'Out-of-the-box features so that you focus only on adding enhancements.', - id: 'home.description.features', - })} > From a3032b4c80f19873903f805cf7a74a5f486cf6e8 Mon Sep 17 00:00:00 2001 From: yunakim714 Date: Wed, 8 Mar 2023 15:43:22 -0500 Subject: [PATCH 033/263] forgot to commit plugin file --- .../src/configs/webpack/plugins.js | 182 +++++++----------- 1 file changed, 74 insertions(+), 108 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 3c250cd68f..470d431f40 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -6,7 +6,6 @@ */ import webpack from 'webpack' import path, {resolve} from 'path' -import fs from 'fs' import glob from 'glob' import minimatch from 'minimatch' import {inspect} from 'util' @@ -86,7 +85,6 @@ export const sdkReplacementPlugin = (projectDir) => { ] const replacements = overridables?.filter?.((item) => item?.newPath) - console.log('~replacements', replacements) return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) @@ -99,7 +97,6 @@ export const sdkReplacementPlugin = (projectDir) => { const requestedFromSDK = sdkPaths.some((p) => resource.context.includes(p)) if (requestedFromSDK && replacement) { - // console.log('~======= ', replacement.newPath) resource.request = replacement.newPath } }) @@ -120,52 +117,6 @@ export const allFiles = (projectDir) => { }) } -// export const importFromExtendsPlugin = (projectDir) => { -// // TODO: does any other library use this weird magic character import schema? - -// return new webpack.NormalModuleReplacementPlugin(/\^/, (resource) => { -// const resolved = path.resolve(resource.context, resource.request) -// if (resolved?.match(/app\/components\/icons$/)) { -// console.log('~===== ^^ Magic') -// console.log('~resource.context', resource.context) -// console.log('~resource.context', resource.context) -// } -// const relativePath = resolved?.split(`^`)?.[1]?.replace(/^\//, '') -// const newPath = path.resolve(projectDir, 'node_modules', relativePath) -// if (resolved?.match(/app\/components\/icons$/)) { -// console.log('~^ magic newPath', newPath) -// } -// // NOTE: overriding either of these alone does not work, both must be set -// resource.request = newPath -// resource.createData.resource = newPath -// }) -// } - -// export const importFromLocalPlugin = (projectDir) => { -// // TODO: does any other library use this weird magic character import schema? -// return new webpack.NormalModuleReplacementPlugin(/\~/, (resource) => { -// const resolved = path.resolve(resource.context, resource.request) -// if (resolved?.match(/app\/components\/icons$/)) { -// console.log('~===== ~~ Magic', resolved) -// } -// const relativePath = resolved -// ?.split(`~`)?.[1] -// ?.replace(pkg?.mobify?.extends, '') -// ?.replace(/^\//, '') -// const newPath = path.resolve( -// projectDir, -// pkg?.mobify?.overridesDir?.replace(/^\//, ''), -// relativePath -// ) -// if (resolved?.match(/app\/components\/icons$/)) { -// console.log('~ ~ magic newPath', newPath) -// } -// // NOTE: overriding either of these alone does not work, both must be set -// resource.request = newPath -// resource.createData.resource = newPath -// }) -// } - export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('~templateAppPathRegex', templateAppPathRegex) // EXAMPLE: @@ -189,10 +140,20 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { ] }) const _overrides = [...overrides] + console.log('+++++++overrides+++++', _overrides) const getExtendsRelativePath = (noExt) => { - const noExtExtends = - pkg?.mobify?.extends + '/' + noExt.replace(pkg?.mobify?.overridesDir, '/') + let noExtExtends + if (noExt.startsWith('pwa-kit/overrides')) { + noExtExtends = + 'node_modules/' + pkg?.mobify?.extends + noExt.replace(pkg?.mobify?.overridesDir.slice(1), '') + } else if (noExt.startsWith('template-retail-react-app')) { + noExtExtends = + 'node_modules/' + noExt.replace('template-retail-react-app', pkg?.mobify?.extends) + } else if (noExt.startsWith('retail-react-app')) { + noExtExtends = + 'node_modules/' + noExt + } return noExtExtends } @@ -201,46 +162,49 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { const overridesMap = [ ...overrides, ...overrides.flatMap((item) => { - const EXTENSIONS = '.+(js|jsx|ts|tsx)$' + console.log('each item', item) + const EXTENSIONS = '.+(js|jsx|ts|tsx)' const patterns = [minimatch.makeRe('**/*' + item)] vanillaPatterns.push(item) + + // matches '.jsx', '.js', '.tsx', '.ts' const extRe = /\.\w+$/ + + // returns true if there is a match for the above const hasExt = item?.test?.(extRe) + + // returns true if the string ends with a '/' const hasSlash = item?.endsWith('/') + + // returns true if path ends with file name of 'index' const endsWithIndex = item?.split(extRe)?.[0]?.endsWith?.('index') + if (!endsWithIndex) { + console.log('=======doesnt end with index', patterns) return patterns } + if (hasExt || !hasSlash) { const noExt = item.replace(extRe, '') - const noExtExtends = - pkg?.mobify?.extends + '/' + noExt.replace(pkg?.mobify?.overridesDir, '') + const pathNoFile = (item.split(/\.\w+$/)[0].split('/')).slice(0, -1).join('/') + patterns.push(minimatch.makeRe('**/*' + noExt + EXTENSIONS)) + patterns.push(minimatch.makeRe('**/*' + pathNoFile)) + vanillaPatterns.push(minimatch.makeRe(noExt + EXTENSIONS)) + vanillaPatterns.push(minimatch.makeRe('**/*' + pathNoFile)) + patterns.push(minimatch.makeRe(getExtendsRelativePath(noExt) + EXTENSIONS)) } - if (hasSlash) { - patterns.push(minimatch.makeRe('**/*' + item + 'index' + EXTENSIONS)) - vanillaPatterns.push(minimatch.makeRe(item + 'index' + EXTENSIONS)) - patterns.push( - minimatch.makeRe( - '**/*' + - item.replace(pkg?.mobify?.overridesDir?.replace(/\//, ''), '') + - EXTENSIONS - ) - ) - vanillaPatterns.push( - minimatch.makeRe( - item.replace(pkg?.mobify?.overridesDir?.replace(/\//, ''), '') + EXTENSIONS - ) - ) - } + return patterns }) ] + console.log('+++vanillaPatterns', vanillaPatterns) console.log('~overridesMap', overridesMap) // TODO: manually push a false positive e.g. chakra-ui/whatever/icons to make sure we don't override that + // this drops the "**/*" magic path const vanillaOverridesRegex = makeRegExp( `(${vanillaPatterns ?.map((override) => @@ -255,6 +219,7 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('~vanillaOverridesRegex', vanillaOverridesRegex) // TODO: filter regex already generated above out of this map + // this includes the "**/*" magic path so will match "blah-blah/blah/pwa-kit/..." const overridesRegex = makeRegExp( `(${overridesMap ?.map((override) => @@ -296,17 +261,17 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { } if (resource.request.match(/\^/)) { - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~===== ^^ Magic') - console.log('~resource.context', resource.context) - console.log('~resource.context', resource.context) - } + // if (resolved?.match(/app\/components\/icons$/)) { + // console.log('~===== ^^ Magic') + // console.log('~resource.request', resource.request) + // console.log('~resource.context', resource.context) + // } const relativePath = resolved?.split(`^`)?.[1]?.replace(/^\//, '') const newPath = path.resolve(projectDir, 'node_modules', relativePath) - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~^ magic newPath', newPath) - } + // if (resolved?.match(/app\/components\/icons$/)) { + // console.log('~^ magic newPath', newPath) + // } // NOTE: overriding either of these alone does not work, both must be set resource.request = newPath resource.createData.resource = newPath @@ -314,6 +279,8 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { } // for now, let's early return any file that doesn't match what's expected from overrides + // if there IS a match -> this is false and skips + // if there IS NOT a match -> this is true and prints NO MATCH if (!resolved?.match(vanillaOverridesRegex)?.length) { if (resolved?.match(/app\/components\/icons/)) { console.log(`------`) @@ -330,10 +297,9 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { console.log('++++++++') console.log(`resource.context`, resource.context) console.log(`resource.request`, resource.request) + console.log('THERE WAS A MATCH!!!!!', resolved?.match(vanillaOverridesRegex)) console.log('++++++++') if ( - resource.request.match(/\~/) || - resource.request.match(/\^/) || // TODO: this array appears to always contain object where the `dependency[x].request // holds reference to the original request, which is what we want to introspect on // whether magic characters like `^` were used @@ -344,34 +310,34 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { } const matchRegex = makeRegExp(pkg?.mobify?.extends) // TODO: delete all of this when done debugging - if (resource?.context?.match(/header/) && resource?.request?.match(/icons/)) { - console.log('~~~~~~~~~~~~~~~~~~~~~~~') - console.log('~resource.context', resource.context) - console.log('~resource.request', resource.request) - console.log('~resolved', resolved) - console.log('~matchRegex', matchRegex) - console.log(`resolved?.match?.(matchRegex)`, resolved?.match?.(matchRegex)) - console.log( - `inspect(resource?.dependencies?.[0]?.request)`, - inspect(resource?.dependencies?.[0]?.request) - ) - console.log( - `_overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length`, - _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length - ) - console.log( - `resource?.dependencies?.[0]?.request?.match?.(/\^/)`, - resource?.dependencies?.[0]?.request?.match?.(/\^/) - ) - console.log( - `resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0]`, - resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] - ) - console.log( - `!resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0]`, - !resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] - ) - } + // if (resource?.context?.match(/header/) && resource?.request?.match(/icons/)) { + // console.log('~~~~~~~~~~~~~~~~~~~~~~~') + // console.log('~resource.context', resource.context) + // console.log('~resource.request', resource.request) + // console.log('~resolved', resolved) + // console.log('~matchRegex', matchRegex) + // console.log(`resolved?.match?.(matchRegex)`, resolved?.match?.(matchRegex)) + // console.log( + // `inspect(resource?.dependencies?.[0]?.request)`, + // inspect(resource?.dependencies?.[0]?.request) + // ) + // console.log( + // `_overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length`, + // _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length + // ) + // console.log( + // `resource?.dependencies?.[0]?.request?.match?.(/\^/)`, + // resource?.dependencies?.[0]?.request?.match?.(/\^/) + // ) + // console.log( + // `resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0]`, + // resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] + // ) + // console.log( + // `!resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0]`, + // !resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] + // ) + // } if ( resolved?.match?.(matchRegex) && _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length From 4c29cb91fb25293ccf57e3ead65a4f056c51a645 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Mar 2023 07:04:40 -0700 Subject: [PATCH 034/263] comment out `resource.createData.resource` which seems unnecessary --- .../src/configs/webpack/plugins.js | 6 +- .../build/loadable-stats.json | 101 +++++++++++++----- .../overrides/app/pages/home/index.jsx | 12 ++- 3 files changed, 88 insertions(+), 31 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 470d431f40..5c002100df 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -352,11 +352,11 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // NOTE: overriding either of these alone does not work, both must be set resource.request = newPath - // TODO: without the file extension, this fails, so we need to pull this from - // the original detected overridesMap + // TODO: before, omitting file extension this would fail, verify this is + // no longer true before removing // _overrides knows the full file path including extension - resource.createData.resource = newPath + '/index.jsx' + // resource.createData.resource = newPath + '/index.jsx' } else { console.log('~NOT REWRITTEN') } diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index 7be3483d60..a5c7b19b7f 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,11 +1,12 @@ { "name": "client", - "hash": "1882b20401cc98accd9e", + "hash": "87ff8a1e7e2dcc3080b9", "publicPath": "/mobify/bundle/development/", - "outputPath": "/Users/yunakim/cc-pwa/pwa-kit/packages/spike-extendend-retail-app/build", + "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ - "main.js" + "main.js", + "main.77245f0b73afc8ad6fa5.hot-update.js" ], "pages-home": [ "pages-home.js" @@ -54,7 +55,7 @@ { "type": "asset", "name": "vendor.js", - "size": 5169898, + "size": 5162385, "emitted": false, "comparedForEmit": false, "cached": true, @@ -81,7 +82,7 @@ { "type": "asset", "name": "main.js", - "size": 1158197, + "size": 1156758, "emitted": false, "comparedForEmit": false, "cached": true, @@ -106,7 +107,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-account.js", - "size": 169116, + "size": 169278, "emitted": false, "comparedForEmit": false, "cached": true, @@ -131,7 +132,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-checkout.js", - "size": 155264, + "size": 155395, "emitted": false, "comparedForEmit": false, "cached": true, @@ -156,7 +157,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-product-list.js", - "size": 115723, + "size": 115742, "emitted": false, "comparedForEmit": false, "cached": true, @@ -181,7 +182,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", - "size": 78242, + "size": 78279, "emitted": false, "comparedForEmit": false, "cached": true, @@ -223,7 +224,7 @@ { "type": "asset", "name": "template-retail-react-app_app_partials_product-view_index_jsx.js", - "size": 61613, + "size": 61678, "emitted": false, "comparedForEmit": false, "cached": true, @@ -246,7 +247,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-cart.js", - "size": 60886, + "size": 60883, "emitted": false, "comparedForEmit": false, "cached": true, @@ -271,7 +272,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-checkout-confirmation.js", - "size": 53959, + "size": 53984, "emitted": false, "comparedForEmit": false, "cached": true, @@ -353,7 +354,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", - "size": 44973, + "size": 45030, "emitted": false, "comparedForEmit": false, "cached": true, @@ -471,7 +472,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", - "size": 42751, + "size": 42785, "emitted": false, "comparedForEmit": false, "cached": true, @@ -551,7 +552,7 @@ { "type": "asset", "name": "pages-home.js", - "size": 39293, + "size": 39602, "emitted": false, "comparedForEmit": false, "cached": true, @@ -576,7 +577,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-account-wishlist.js", - "size": 39071, + "size": 39118, "emitted": false, "comparedForEmit": false, "cached": true, @@ -601,7 +602,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", - "size": 36342, + "size": 36367, "emitted": false, "comparedForEmit": false, "cached": true, @@ -624,7 +625,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-product-detail.js", - "size": 23684, + "size": 23692, "emitted": false, "comparedForEmit": false, "cached": true, @@ -646,10 +647,37 @@ ], "auxiliaryChunks": [] }, + { + "type": "asset", + "name": "main.77245f0b73afc8ad6fa5.hot-update.js", + "size": 21912, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "77245f0b73afc8ad6fa5", + "related": { + "sourceMap": "main.77245f0b73afc8ad6fa5.hot-update.js.map" + } + }, + "chunkNames": [ + "main" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "main" + ], + "auxiliaryChunks": [] + }, { "type": "asset", "name": "^retail-react-app-app-pages-reset-password.js", - "size": 10437, + "size": 10449, "emitted": false, "comparedForEmit": false, "cached": true, @@ -674,7 +702,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-login.js", - "size": 8370, + "size": 8381, "emitted": false, "comparedForEmit": false, "cached": true, @@ -699,7 +727,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-page-not-found.js", - "size": 7757, + "size": 7767, "emitted": false, "comparedForEmit": false, "cached": true, @@ -724,7 +752,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-registration.js", - "size": 7554, + "size": 7564, "emitted": false, "comparedForEmit": false, "cached": true, @@ -749,7 +777,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-login-redirect.js", - "size": 3058, + "size": 3062, "emitted": false, "comparedForEmit": false, "cached": true, @@ -816,6 +844,25 @@ "_cc12" ], "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "main.77245f0b73afc8ad6fa5.hot-update.json", + "size": 28, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "77245f0b73afc8ad6fa5" + }, + "chunkNames": [], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "chunks": [], + "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -831,11 +878,14 @@ }, { "name": "main.js" + }, + { + "name": "main.77245f0b73afc8ad6fa5.hot-update.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 2, + "filteredAuxiliaryAssets": 3, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1151,7 +1201,8 @@ { "id": "main", "files": [ - "main.js" + "main.js", + "main.77245f0b73afc8ad6fa5.hot-update.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx index 5f045aa223..5cfdfba377 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -214,9 +214,15 @@ const Home = ({productSearchResult, isLoading}) => { padding={4} paddingTop={32} title="Features" - subtitle={ - 'Out-of-the-box features so that you focus only on adding enhancements.' - } + title={intl.formatMessage({ + defaultMessage: 'Features', + id: 'home.heading.features', + })} + subtitle={intl.formatMessage({ + defaultMessage: + 'Out-of-the-box features so that you focus only on adding enhancements.', + id: 'home.description.features', + })} > From 9ddb6054e55ef0fd8c89496ff44fe1bc0536de16 Mon Sep 17 00:00:00 2001 From: yunakim714 Date: Thu, 9 Mar 2023 12:41:22 -0500 Subject: [PATCH 035/263] add social icons to overrides --- .../build/loadable-stats.json | 104 +++++++++--------- .../overrides/app/components/header/index.jsx | 7 +- .../app/components/social-icons/index.jsx | 101 +++++++++++++++++ .../overrides/app/pages/home/index.jsx | 4 - 4 files changed, 157 insertions(+), 59 deletions(-) create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/social-icons/index.jsx diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index a5c7b19b7f..ae2dffc722 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,12 +1,12 @@ { "name": "client", - "hash": "87ff8a1e7e2dcc3080b9", + "hash": "b82fab89f79a16d87d23", "publicPath": "/mobify/bundle/development/", - "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", + "outputPath": "/Users/yunakim/cc-pwa/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ "main.js", - "main.77245f0b73afc8ad6fa5.hot-update.js" + "main.044c6df55a57bf9d2712.hot-update.js" ], "pages-home": [ "pages-home.js" @@ -55,7 +55,7 @@ { "type": "asset", "name": "vendor.js", - "size": 5162385, + "size": 5169898, "emitted": false, "comparedForEmit": false, "cached": true, @@ -82,7 +82,7 @@ { "type": "asset", "name": "main.js", - "size": 1156758, + "size": 1158232, "emitted": false, "comparedForEmit": false, "cached": true, @@ -107,7 +107,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-account.js", - "size": 169278, + "size": 169116, "emitted": false, "comparedForEmit": false, "cached": true, @@ -132,7 +132,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-checkout.js", - "size": 155395, + "size": 155264, "emitted": false, "comparedForEmit": false, "cached": true, @@ -157,7 +157,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-product-list.js", - "size": 115742, + "size": 115723, "emitted": false, "comparedForEmit": false, "cached": true, @@ -182,7 +182,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_action-card_index_jsx-template-retail-react-app_app_-610b51.js", - "size": 78279, + "size": 78242, "emitted": false, "comparedForEmit": false, "cached": true, @@ -224,7 +224,7 @@ { "type": "asset", "name": "template-retail-react-app_app_partials_product-view_index_jsx.js", - "size": 61678, + "size": 61613, "emitted": false, "comparedForEmit": false, "cached": true, @@ -247,7 +247,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-cart.js", - "size": 60883, + "size": 60886, "emitted": false, "comparedForEmit": false, "cached": true, @@ -272,7 +272,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-checkout-confirmation.js", - "size": 53984, + "size": 53959, "emitted": false, "comparedForEmit": false, "cached": true, @@ -354,7 +354,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_order-summary_index_jsx.js", - "size": 45030, + "size": 44973, "emitted": false, "comparedForEmit": false, "cached": true, @@ -472,7 +472,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_item-variant_item-attributes_jsx-template-retail-rea-ca81a0.js", - "size": 42785, + "size": 42751, "emitted": false, "comparedForEmit": false, "cached": true, @@ -552,7 +552,7 @@ { "type": "asset", "name": "pages-home.js", - "size": 39602, + "size": 39430, "emitted": false, "comparedForEmit": false, "cached": true, @@ -577,7 +577,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-account-wishlist.js", - "size": 39118, + "size": 39071, "emitted": false, "comparedForEmit": false, "cached": true, @@ -602,7 +602,7 @@ { "type": "asset", "name": "template-retail-react-app_app_components_confirmation-modal_index_jsx-template-retail-react-a-7530a1.js", - "size": 36367, + "size": 36342, "emitted": false, "comparedForEmit": false, "cached": true, @@ -625,7 +625,7 @@ { "type": "asset", "name": "^retail-react-app-app-pages-product-detail.js", - "size": 23692, + "size": 23684, "emitted": false, "comparedForEmit": false, "cached": true, @@ -649,135 +649,135 @@ }, { "type": "asset", - "name": "main.77245f0b73afc8ad6fa5.hot-update.js", - "size": 21912, + "name": "^retail-react-app-app-pages-reset-password.js", + "size": 10437, "emitted": false, "comparedForEmit": false, "cached": true, "info": { - "hotModuleReplacement": true, - "immutable": true, - "fullhash": "77245f0b73afc8ad6fa5", + "javascriptModule": false, "related": { - "sourceMap": "main.77245f0b73afc8ad6fa5.hot-update.js.map" + "sourceMap": "^retail-react-app-app-pages-reset-password.js.map" } }, "chunkNames": [ - "main" + "^retail-react-app-app-pages-reset-password" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "main" + "^retail-react-app-app-pages-reset-password" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "^retail-react-app-app-pages-reset-password.js", - "size": 10449, + "name": "^retail-react-app-app-pages-login.js", + "size": 8370, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "^retail-react-app-app-pages-reset-password.js.map" + "sourceMap": "^retail-react-app-app-pages-login.js.map" } }, "chunkNames": [ - "^retail-react-app-app-pages-reset-password" + "^retail-react-app-app-pages-login" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "^retail-react-app-app-pages-reset-password" + "^retail-react-app-app-pages-login" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "^retail-react-app-app-pages-login.js", - "size": 8381, + "name": "^retail-react-app-app-pages-page-not-found.js", + "size": 7757, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "^retail-react-app-app-pages-login.js.map" + "sourceMap": "^retail-react-app-app-pages-page-not-found.js.map" } }, "chunkNames": [ - "^retail-react-app-app-pages-login" + "^retail-react-app-app-pages-page-not-found" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "^retail-react-app-app-pages-login" + "^retail-react-app-app-pages-page-not-found" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "^retail-react-app-app-pages-page-not-found.js", - "size": 7767, + "name": "^retail-react-app-app-pages-registration.js", + "size": 7554, "emitted": false, "comparedForEmit": false, "cached": true, "info": { "javascriptModule": false, "related": { - "sourceMap": "^retail-react-app-app-pages-page-not-found.js.map" + "sourceMap": "^retail-react-app-app-pages-registration.js.map" } }, "chunkNames": [ - "^retail-react-app-app-pages-page-not-found" + "^retail-react-app-app-pages-registration" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "^retail-react-app-app-pages-page-not-found" + "^retail-react-app-app-pages-registration" ], "auxiliaryChunks": [] }, { "type": "asset", - "name": "^retail-react-app-app-pages-registration.js", - "size": 7564, + "name": "main.044c6df55a57bf9d2712.hot-update.js", + "size": 7208, "emitted": false, "comparedForEmit": false, "cached": true, "info": { - "javascriptModule": false, + "hotModuleReplacement": true, + "immutable": true, + "fullhash": "044c6df55a57bf9d2712", "related": { - "sourceMap": "^retail-react-app-app-pages-registration.js.map" + "sourceMap": "main.044c6df55a57bf9d2712.hot-update.js.map" } }, "chunkNames": [ - "^retail-react-app-app-pages-registration" + "main" ], "chunkIdHints": [], "auxiliaryChunkNames": [], "auxiliaryChunkIdHints": [], "filteredRelated": 1, "chunks": [ - "^retail-react-app-app-pages-registration" + "main" ], "auxiliaryChunks": [] }, { "type": "asset", "name": "^retail-react-app-app-pages-login-redirect.js", - "size": 3062, + "size": 3058, "emitted": false, "comparedForEmit": false, "cached": true, @@ -847,7 +847,7 @@ }, { "type": "asset", - "name": "main.77245f0b73afc8ad6fa5.hot-update.json", + "name": "main.044c6df55a57bf9d2712.hot-update.json", "size": 28, "emitted": false, "comparedForEmit": false, @@ -855,7 +855,7 @@ "info": { "hotModuleReplacement": true, "immutable": true, - "fullhash": "77245f0b73afc8ad6fa5" + "fullhash": "044c6df55a57bf9d2712" }, "chunkNames": [], "chunkIdHints": [], @@ -880,7 +880,7 @@ "name": "main.js" }, { - "name": "main.77245f0b73afc8ad6fa5.hot-update.js" + "name": "main.044c6df55a57bf9d2712.hot-update.js" } ], "filteredAssets": 0, @@ -1202,7 +1202,7 @@ "id": "main", "files": [ "main.js", - "main.77245f0b73afc8ad6fa5.hot-update.js" + "main.044c6df55a57bf9d2712.hot-update.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index 97e4c37163..dbb7d74f55 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -35,13 +35,14 @@ import Link from '^retail-react-app/app/components/link' import Search from '^retail-react-app/app/components/search' import withRegistration from '^retail-react-app/app/hoc/with-registration' -import {AccountIcon, BasketIcon, HeartIcon} from '~app/components/icons' +import {HeartIcon, BrandLogo} from '../icons' import { + AccountIcon, + BasketIcon, ChevronDownIcon, SignoutIcon, - BrandLogo, - HamburgerIcon, + HamburgerIcon } from '^retail-react-app/app/components/icons' import {noop} from '^retail-react-app/app/utils/utils' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/social-icons/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/social-icons/index.jsx new file mode 100644 index 0000000000..40f36f5d07 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/social-icons/index.jsx @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import React from 'react' +import PropTypes from 'prop-types' + +// Components +import { + Flex, + IconButton, + + // Hooks + useMultiStyleConfig +} from '@chakra-ui/react' + +// Icons +import { + SocialInstagramIcon, + SocialPinterestIcon, + SocialTwitterIcon +} from '../icons' + +import {SocialFacebookIcon, SocialYoutubeIcon} from '^retail-react-app/app/components/icons' + +/** + * + */ +const SocialIcons = ({variant, pinterestInnerColor = 'white', ...otherProps}) => { + const styles = useMultiStyleConfig('SocialIcons', {variant}) + + return ( + + {/* Social Links */} + {[ + { + href: 'https://www.youtube.com/channel/UCSTGHqzR1Q9yAVbiS3dAFHg', + icon: SocialYoutubeIcon, + ariaLabel: 'YouTube' + }, + { + href: 'https://www.instagram.com/commercecloud/?hl=en', + icon: SocialInstagramIcon, + ariaLabel: 'Instagram' + }, + { + href: '/', + icon: SocialPinterestIcon, + ariaLabel: 'Pinterest' + }, + { + href: 'https://twitter.com/CommerceCloud', + icon: SocialTwitterIcon, + ariaLabel: 'Twitter' + }, + { + href: 'https://www.facebook.com/CommerceCloud/', + icon: SocialFacebookIcon, + ariaLabel: 'Facebook' + } + ].map(({href, icon, ariaLabel}) => ( + { + window.open(href) + }} + aria-label={ariaLabel} + /> + ))} + + ) +} + +SocialIcons.displayName = 'SocialIcons' + +SocialIcons.propTypes = { + /** + * This component has 3 variants, 'flex', 'flex-start' and 'flex-end'. + * All will affect how the child icons are displayed. By default, it's + * value is `flex`. + */ + variant: PropTypes.string, + + /** + * The inverse color of Pinterest icon's `currentColor`. For example, if the pinterest icon is white, then its inner 'p' is black. + */ + pinterestInnerColor: PropTypes.string +} + +export default SocialIcons diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx index 5cfdfba377..e48d04a97c 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/pages/home/index.jsx @@ -214,10 +214,6 @@ const Home = ({productSearchResult, isLoading}) => { padding={4} paddingTop={32} title="Features" - title={intl.formatMessage({ - defaultMessage: 'Features', - id: 'home.heading.features', - })} subtitle={intl.formatMessage({ defaultMessage: 'Out-of-the-box features so that you focus only on adding enhancements.', From 9e54afcc2b4c5d83b61d39a675a2a2cd62eda777 Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Mar 2023 14:13:02 -0700 Subject: [PATCH 036/263] fix bad icon pathing (svg spritemaps), removed the unneeded `template-retail-react-app` path pushed to regex map, add WIP hashmap for optimizing lookups from _og_overrides, added `(svg|jpg|jpeg)` extensions to regex --- .../src/configs/webpack/plugins.js | 175 ++++++++---------- .../build/loadable-stats.json | 61 +----- .../overrides/app/assets/svg/brand-logo.svg | 1 + .../overrides/app/assets/svg/heart.svg | 3 + .../overrides/app/components/_app/index.jsx | 2 +- .../overrides/app/components/header/index.jsx | 11 +- .../overrides/app/components/icons/index.jsx | 18 +- .../overrides/app/static/svg/brand-logo.svg | 2 - .../pwa-kit/overrides/app/static/svg/lock.svg | 0 9 files changed, 106 insertions(+), 167 deletions(-) create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/brand-logo.svg create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/heart.svg delete mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg create mode 100644 packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/lock.svg diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index 5c002100df..ac44279699 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -23,20 +23,20 @@ const getOverridePath = (path) => { projectDir, pkg?.mobify?.overridesDir, ...path - )}.+(js|jsx|ts|tsx)` + )}.+(js|jsx|ts|tsx|svg|jpg|jpeg)` ) if (overrideFile?.length) { return overrideFile?.[0] } const extendFile = glob.sync( - `${projectDir}${resolve(projectDir, extendPath, ...path)}.+(js|jsx|ts|tsx)` + `${projectDir}${resolve(projectDir, extendPath, ...path)}.+(js|jsx|ts|tsx|svg|jpg|jpeg)` ) if (extendFile?.length) { return extendFile?.[0] } } const generatedProjectOverride = glob.sync( - `${projectDir}${resolve(projectDir, ...path)}.+(js|jsx|ts|tsx)` + `${projectDir}${resolve(projectDir, ...path)}.+(js|jsx|ts|tsx|svg|jpg|jpeg)` ) return generatedProjectOverride?.length ? generatedProjectOverride?.[0] : null @@ -125,47 +125,45 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // --> /app/icons/index.jsx // PROBLEM: ^ prefixed files would look like `^app/icons/index.jsx` // which is not a regex match - const globPattern = `${pkg?.mobify?.overridesDir?.replace(/\//, '')}/**/*.+(js|jsx|ts|tsx)` + const globPattern = `${pkg?.mobify?.overridesDir?.replace( + /\//, + '' + )}/**/*.+(js|jsx|ts|tsx|svg|jpg|jpeg)` // push a copy of overrides array with the extends path as base - const overrides = glob.sync(globPattern)?.flatMap((item) => { + const _og_overrides = glob.sync(globPattern) + const overrides = _og_overrides?.flatMap((item) => { return [ item, - item?.replace(pkg?.mobify?.overridesDir?.replace(/^\//, ''), `${pkg?.mobify?.extends}`), + item?.replace(pkg?.mobify?.overridesDir?.replace(/^\//, ''), `${pkg?.mobify?.extends}`) // TODO: this needs a better solution, but maybe only a pain for local dev until we publish // the retail react app template? - item?.replace( - pkg?.mobify?.overridesDir?.replace(/^\//, ''), - `template-${pkg?.mobify?.extends}` - ) + // item?.replace( + // pkg?.mobify?.overridesDir?.replace(/^\//, ''), + // `template-${pkg?.mobify?.extends}` + // ) ] }) const _overrides = [...overrides] - console.log('+++++++overrides+++++', _overrides) - - const getExtendsRelativePath = (noExt) => { - let noExtExtends - if (noExt.startsWith('pwa-kit/overrides')) { - noExtExtends = - 'node_modules/' + pkg?.mobify?.extends + noExt.replace(pkg?.mobify?.overridesDir.slice(1), '') - } else if (noExt.startsWith('template-retail-react-app')) { - noExtExtends = - 'node_modules/' + noExt.replace('template-retail-react-app', pkg?.mobify?.extends) - } else if (noExt.startsWith('retail-react-app')) { - noExtExtends = - 'node_modules/' + noExt - } - return noExtExtends - } + const _overridesHashMap = new Map() + _og_overrides.forEach((item) => { + const end = item.substr(item.lastIndexOf('/index')) + const [l, ...rest] = item?.split(/(index|\.)/) + _overridesHashMap.set( + l.replace(/\/$/, '')?.replace(pkg?.mobify?.overridesDir?.replace(/\//, ''), ''), + [end, rest] + ) + }) - const vanillaPatterns = [] + console.log('~_overridesHashMap', _overridesHashMap) + console.log('+++++++overrides+++++', _overrides) const overridesMap = [ ...overrides, ...overrides.flatMap((item) => { + const patterns = [] console.log('each item', item) - const EXTENSIONS = '.+(js|jsx|ts|tsx)' - const patterns = [minimatch.makeRe('**/*' + item)] - vanillaPatterns.push(item) + const EXTENSIONS = '.+(js|jsx|ts|tsx|svg|jpg|jpeg)' + patterns.push(item) // matches '.jsx', '.js', '.tsx', '.ts' const extRe = /\.\w+$/ @@ -179,45 +177,29 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // returns true if path ends with file name of 'index' const endsWithIndex = item?.split(extRe)?.[0]?.endsWith?.('index') - if (!endsWithIndex) { - console.log('=======doesnt end with index', patterns) - return patterns - } + // if (!endsWithIndex) { + // console.log('=======doesnt end with index', patterns) + // return patterns + // } if (hasExt || !hasSlash) { const noExt = item.replace(extRe, '') - const pathNoFile = (item.split(/\.\w+$/)[0].split('/')).slice(0, -1).join('/') + const pathNoFile = item + .split(/\.\w+$/)[0] + .split('/') + .slice(0, -1) + .join('/') patterns.push(minimatch.makeRe('**/*' + noExt + EXTENSIONS)) patterns.push(minimatch.makeRe('**/*' + pathNoFile)) - - vanillaPatterns.push(minimatch.makeRe(noExt + EXTENSIONS)) - vanillaPatterns.push(minimatch.makeRe('**/*' + pathNoFile)) - - patterns.push(minimatch.makeRe(getExtendsRelativePath(noExt) + EXTENSIONS)) } return patterns }) ] - console.log('+++vanillaPatterns', vanillaPatterns) console.log('~overridesMap', overridesMap) // TODO: manually push a false positive e.g. chakra-ui/whatever/icons to make sure we don't override that - // this drops the "**/*" magic path - const vanillaOverridesRegex = makeRegExp( - `(${vanillaPatterns - ?.map((override) => - override instanceof RegExp && override?.source - ? override?.source - : override?.replace && override?.startsWith('/') - ? override?.replace?.(/^\//, '') - : override - ) - ?.join('|')})` - ) - console.log('~vanillaOverridesRegex', vanillaOverridesRegex) - // TODO: filter regex already generated above out of this map // this includes the "**/*" magic path so will match "blah-blah/blah/pwa-kit/..." const overridesRegex = makeRegExp( @@ -237,28 +219,32 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - - if (resource.request.match(/\~/)) { - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~===== ~~ Magic', resolved) - } - const relativePath = resolved - ?.split(`~`)?.[1] - ?.replace(pkg?.mobify?.extends, '') - ?.replace(/^\//, '') - const newPath = path.resolve( - projectDir, - pkg?.mobify?.overridesDir?.replace(/^\//, ''), - relativePath - ) - if (resolved?.match(/app\/components\/icons$/)) { - console.log('~ ~ magic newPath', newPath) - } - // NOTE: overriding either of these alone does not work, both must be set - resource.request = newPath - resource.createData.resource = newPath - return + if (resolved?.match(/brand-logo/)) { + console.log('~BRAND LOGO') + console.log('~resource.request', resource.request) + console.log('~resource.context', resource.context) } + // if (resource.request.match(/\~/)) { + // if (resolved?.match(/app\/components\/icons$/)) { + // console.log('~===== ~~ Magic', resolved) + // } + // const relativePath = resolved + // ?.split(`~`)?.[1] + // ?.replace(pkg?.mobify?.extends, '') + // ?.replace(/^\//, '') + // const newPath = path.resolve( + // projectDir, + // pkg?.mobify?.overridesDir?.replace(/^\//, ''), + // relativePath + // ) + // if (resolved?.match(/app\/components\/icons$/)) { + // console.log('~ ~ magic newPath', newPath) + // } + // // NOTE: overriding either of these alone does not work, both must be set + // resource.request = newPath + // resource.createData.resource = newPath + // return + // } if (resource.request.match(/\^/)) { // if (resolved?.match(/app\/components\/icons$/)) { @@ -281,31 +267,31 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // for now, let's early return any file that doesn't match what's expected from overrides // if there IS a match -> this is false and skips // if there IS NOT a match -> this is true and prints NO MATCH - if (!resolved?.match(vanillaOverridesRegex)?.length) { - if (resolved?.match(/app\/components\/icons/)) { - console.log(`------`) - console.log('~NO MATCH of resolved icons file in overrides array') - console.log('~resource.context', resource.context) - console.log('~resource.request', resource.request) - console.log('~resolved', resolved) - console.log(`------`) - } + if (!resolved?.match(overridesRegex)?.length) { + // if (resolved?.match(/app\/components\/icons/)) { + // console.log(`------`) + // console.log('~NO MATCH of resolved icons file in overrides array') + // console.log('~resource.context', resource.context) + // console.log('~resource.request', resource.request) + // console.log('~resolved', resolved) + // console.log(`------`) + // } return } // ignore magic paths and don't attempt to overwrite them - console.log('++++++++') - console.log(`resource.context`, resource.context) - console.log(`resource.request`, resource.request) - console.log('THERE WAS A MATCH!!!!!', resolved?.match(vanillaOverridesRegex)) - console.log('++++++++') + // console.log('++++++++') + // console.log(`resource.context`, resource.context) + // console.log(`resource.request`, resource.request) + // console.log('THERE WAS A MATCH!!!!!') + // console.log('++++++++') if ( // TODO: this array appears to always contain object where the `dependency[x].request // holds reference to the original request, which is what we want to introspect on // whether magic characters like `^` were used resource?.dependencies?.[0]?.request?.match?.(/\^/)?.[0] ) { - console.log('~EARLY RETURN') + // console.log('~EARLY RETURN') return } const matchRegex = makeRegExp(pkg?.mobify?.extends) @@ -346,8 +332,9 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { const relativePath = resolved?.split?.(matchRegex)?.[1] const newPath = projectDir + pkg?.mobify?.overridesDir + relativePath // TODO: delete all of this when done debugging - if (resolved?.match(/app\/components\/icons$/)) { + if (resolved?.match(/app\/components\/icons$/) || resolved?.match(/brand-logo/)) { console.log('~new resource.request!!!', newPath) + console.log('~relativePath', relativePath) } // NOTE: overriding either of these alone does not work, both must be set @@ -356,9 +343,9 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // no longer true before removing // _overrides knows the full file path including extension - // resource.createData.resource = newPath + '/index.jsx' + // resource.createData.resource = newPath + '/index.jsx' } else { - console.log('~NOT REWRITTEN') + // console.log('~NOT REWRITTEN') } }) } diff --git a/packages/spike-extendend-retail-app/build/loadable-stats.json b/packages/spike-extendend-retail-app/build/loadable-stats.json index a5c7b19b7f..108ea93d56 100644 --- a/packages/spike-extendend-retail-app/build/loadable-stats.json +++ b/packages/spike-extendend-retail-app/build/loadable-stats.json @@ -1,12 +1,11 @@ { "name": "client", - "hash": "87ff8a1e7e2dcc3080b9", + "hash": "8c61920eca84ed8cfcc8", "publicPath": "/mobify/bundle/development/", "outputPath": "/Users/bfeister/dev/pwa-kit/packages/spike-extendend-retail-app/build", "assetsByChunkName": { "main": [ - "main.js", - "main.77245f0b73afc8ad6fa5.hot-update.js" + "main.js" ], "pages-home": [ "pages-home.js" @@ -82,7 +81,7 @@ { "type": "asset", "name": "main.js", - "size": 1156758, + "size": 1123707, "emitted": false, "comparedForEmit": false, "cached": true, @@ -647,33 +646,6 @@ ], "auxiliaryChunks": [] }, - { - "type": "asset", - "name": "main.77245f0b73afc8ad6fa5.hot-update.js", - "size": 21912, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "hotModuleReplacement": true, - "immutable": true, - "fullhash": "77245f0b73afc8ad6fa5", - "related": { - "sourceMap": "main.77245f0b73afc8ad6fa5.hot-update.js.map" - } - }, - "chunkNames": [ - "main" - ], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "filteredRelated": 1, - "chunks": [ - "main" - ], - "auxiliaryChunks": [] - }, { "type": "asset", "name": "^retail-react-app-app-pages-reset-password.js", @@ -844,25 +816,6 @@ "_cc12" ], "auxiliaryChunks": [] - }, - { - "type": "asset", - "name": "main.77245f0b73afc8ad6fa5.hot-update.json", - "size": 28, - "emitted": false, - "comparedForEmit": false, - "cached": true, - "info": { - "hotModuleReplacement": true, - "immutable": true, - "fullhash": "77245f0b73afc8ad6fa5" - }, - "chunkNames": [], - "chunkIdHints": [], - "auxiliaryChunkNames": [], - "auxiliaryChunkIdHints": [], - "chunks": [], - "auxiliaryChunks": [] } ], "namedChunkGroups": { @@ -878,14 +831,11 @@ }, { "name": "main.js" - }, - { - "name": "main.77245f0b73afc8ad6fa5.hot-update.js" } ], "filteredAssets": 0, "assetsSize": null, - "filteredAuxiliaryAssets": 3, + "filteredAuxiliaryAssets": 2, "auxiliaryAssetsSize": null, "children": {}, "childAssets": {} @@ -1201,8 +1151,7 @@ { "id": "main", "files": [ - "main.js", - "main.77245f0b73afc8ad6fa5.hot-update.js" + "main.js" ] }, { diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/brand-logo.svg b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/brand-logo.svg new file mode 100644 index 0000000000..99708f8e28 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/brand-logo.svg @@ -0,0 +1 @@ + diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/heart.svg b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/heart.svg new file mode 100644 index 0000000000..37700aa420 --- /dev/null +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/assets/svg/heart.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx index ec9d950a84..36b747e011 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/_app/index.jsx @@ -19,7 +19,7 @@ import {SkipNavLink, SkipNavContent} from '@chakra-ui/skip-nav' import {CategoriesProvider, CurrencyProvider} from '^retail-react-app/app/contexts' // Local Project Components -import Header from '~app/components/header' +import Header from '../header' import OfflineBanner from '^retail-react-app/app/components/offline-banner' import OfflineBoundary from '^retail-react-app/app/components/offline-boundary' import ScrollToTop from '^retail-react-app/app/components/scroll-to-top' diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx index 97e4c37163..bfb566767a 100644 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx +++ b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/components/header/index.jsx @@ -35,14 +35,15 @@ import Link from '^retail-react-app/app/components/link' import Search from '^retail-react-app/app/components/search' import withRegistration from '^retail-react-app/app/hoc/with-registration' -import {AccountIcon, BasketIcon, HeartIcon} from '~app/components/icons' - import { + AccountIcon, + BrandLogo, + BasketIcon, + HeartIcon, ChevronDownIcon, SignoutIcon, - BrandLogo, HamburgerIcon, -} from '^retail-react-app/app/components/icons' +} from '../icons' import {noop} from '^retail-react-app/app/utils/utils' import {navLinks, messages} from '^retail-react-app/app/pages/account/constant' @@ -130,7 +131,6 @@ const Header = ({ {...styles.icons} onClick={onMenuClick} /> - - YES {children} { const theme = useTheme() const baseStyle = { ...theme?.components?.Icon?.baseStyle, - ...(overrideIcons?.includes(name) ? {color: 'red !important', boxSize: 14} : {}), + ...(overrideIcons?.includes(name) ? {color: 'red !important'} : {}), } return ( @@ -107,7 +109,7 @@ const icon = (name, passProps) => { {...baseStyle} {...passProps} {...props} - {...(overrideIcons?.includes(name) ? {w: 20, h: 20} : {})} + {...(overrideIcons?.includes(name) ? {w: 80, h: 80} : {})} > diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg deleted file mode 100644 index af4254650b..0000000000 --- a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/brand-logo.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/lock.svg b/packages/spike-extendend-retail-app/pwa-kit/overrides/app/static/svg/lock.svg new file mode 100644 index 0000000000..e69de29bb2 From dd563361e3238fc41df3ec872ce7bcdf0ef4964c Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Mar 2023 20:12:21 -0700 Subject: [PATCH 037/263] Fix `pwa-kit-dev` paths that didn't know about `overrides` in build pipeline --- .../pwa-kit-dev/src/configs/webpack/config.js | 26 ++++++++++++++++--- .../src/configs/webpack/plugins.js | 22 +++++++++++++--- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/packages/pwa-kit-dev/src/configs/webpack/config.js b/packages/pwa-kit-dev/src/configs/webpack/config.js index 0dc0d58ded..ad146f98a5 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/config.js +++ b/packages/pwa-kit-dev/src/configs/webpack/config.js @@ -379,8 +379,18 @@ const clientOptional = baseConfig('web') ...config, name: CLIENT_OPTIONAL, entry: { - ...optional('loader', './app/loader.js'), - ...optional('worker', './worker/main.js'), + ...optional( + 'loader', + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? `.${pkg?.mobify?.overridesDir}/app/request-processor.js` + : './app/loader.js' + ), + ...optional( + 'worker', + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? `.${pkg?.mobify?.overridesDir}/app/request-processor.js` + : './app/main.js' + ), ...optional('core-polyfill', resolve(projectDir, 'node_modules', 'core-js')), ...optional('fetch-polyfill', resolve(projectDir, 'node_modules', 'whatwg-fetch')) }, @@ -452,7 +462,11 @@ const ssr = (() => { ...config, // Must *not* be named "server". See - https://www.npmjs.com/package/webpack-hot-server-middleware#usage name: SSR, - entry: './app/ssr.js', + // entry: './app/ssr.js', + entry: + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? `.${pkg?.mobify?.overridesDir}/app/ssr.js` + : './app/ssr.js', output: { path: buildDir, filename: 'ssr.js', @@ -481,7 +495,11 @@ const requestProcessor = return { ...config, name: REQUEST_PROCESSOR, - entry: './app/request-processor.js', + // entry: './app/request-processor.js', + entry: + pkg?.mobify?.extends && pkg?.mobify?.overridesDir + ? `.${pkg?.mobify?.overridesDir}/app/request-processor.js` + : './app/request-processor.js', output: { path: buildDir, filename: 'request-processor.js', diff --git a/packages/pwa-kit-dev/src/configs/webpack/plugins.js b/packages/pwa-kit-dev/src/configs/webpack/plugins.js index ac44279699..c9fee8cca2 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/plugins.js +++ b/packages/pwa-kit-dev/src/configs/webpack/plugins.js @@ -219,11 +219,19 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { return new webpack.NormalModuleReplacementPlugin(/.*/, (resource) => { const resolved = path.resolve(resource.context, resource.request) - if (resolved?.match(/brand-logo/)) { - console.log('~BRAND LOGO') + if (resolved?.match('app/request-processor')) { + console.log('++++++++') + console.log('REQUEST PROCESSOR') console.log('~resource.request', resource.request) console.log('~resource.context', resource.context) + console.log('++++++++') } + + // if (resolved?.match(/brand-logo/)) { + // console.log('~BRAND LOGO') + // console.log('~resource.request', resource.request) + // console.log('~resource.context', resource.context) + // } // if (resource.request.match(/\~/)) { // if (resolved?.match(/app\/components\/icons$/)) { // console.log('~===== ~~ Magic', resolved) @@ -328,11 +336,15 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { resolved?.match?.(matchRegex) && _overrides?.filter((override) => override?.match(/\.(?=[^\/]+$)/))?.length ) { + if (resolved?.match('app/request-processor')) { + console.log('>>>>>') + console.log('HAS OVERRIDES MATCH (Request Processor )') + } const depth = pkg?.mobify?.overridesDir?.replace?.(/^\//, '')?.split('/') || [] const relativePath = resolved?.split?.(matchRegex)?.[1] const newPath = projectDir + pkg?.mobify?.overridesDir + relativePath // TODO: delete all of this when done debugging - if (resolved?.match(/app\/components\/icons$/) || resolved?.match(/brand-logo/)) { + if (resolved?.match('app/request-processor')) { console.log('~new resource.request!!!', newPath) console.log('~relativePath', relativePath) } @@ -343,7 +355,9 @@ export const extendedTemplateReplacementPlugin = (projectDir) => { // no longer true before removing // _overrides knows the full file path including extension - // resource.createData.resource = newPath + '/index.jsx' + if (resolved?.match('app/theme')) { + resource.createData.resource = newPath + '/index.js' + } } else { // console.log('~NOT REWRITTEN') } From 02b7f37de175994d6464d330b9502aa06262cfbd Mon Sep 17 00:00:00 2001 From: Brian Feister Date: Thu, 9 Mar 2023 20:15:52 -0700 Subject: [PATCH 038/263] add the whole `template-retail-react-app` under `app` dir to stress test performance with high number of file overrides --- packages/_stress-test-project/README.md | 3 + packages/_stress-test-project/babel.config.js | 7 + .../build/loadable-stats.json | 293 + .../cache-hash-config.json | 8 + .../_stress-test-project/config/default.js | 66 + packages/_stress-test-project/config/sites.js | 78 + .../_stress-test-project/package-lock.json | 17997 ++++++++++++++++ packages/_stress-test-project/package.json | 97 + .../overrides/app/assets/svg/brand-logo.svg | 1 + .../overrides/app/assets/svg/heart.svg | 3 + .../app/commerce-api/__mocks__/einstein.js | 90 + .../overrides/app/commerce-api/auth.js | 501 + .../overrides/app/commerce-api/contexts.js | 175 + .../overrides/app/commerce-api/einstein.js | 419 + .../app/commerce-api/einstein.test.js | 343 + .../app/commerce-api/hooks/useBasket.js | 420 + .../app/commerce-api/hooks/useCustomer.js | 363 + .../hooks/useCustomerProductList.js | 109 + .../hooks/useCustomerProductLists.js | 354 + .../app/commerce-api/hooks/useEinstein.js | 68 + .../commerce-api/hooks/useRefinementToggle.js | 45 + .../hooks/useSearchSuggestions.js | 41 + .../app/commerce-api/hooks/useShopper.js | 86 + .../overrides/app/commerce-api/index.js | 233 + .../overrides/app/commerce-api/index.test.js | 740 + .../overrides/app/commerce-api/mock-data.js | 5617 +++++ .../commerce-api/mocks/basket-with-suit.js | 146 + .../commerce-api/mocks/einstein-mock-data.js | 942 + .../app/commerce-api/mocks/empty-basket.js | 39 + .../mocks/product-set-winter-lookM.js | 1224 ++ .../app/commerce-api/mocks/searchResults.js | 144 + .../mocks/variant-750518699578M.js | 434 + .../app/commerce-api/ocapi-shopper-baskets.js | 293 + .../ocapi-shopper-baskets.test.js | 278 + .../app/commerce-api/ocapi-shopper-orders.js | 52 + .../commerce-api/ocapi-shopper-orders.test.js | 51 + .../overrides/app/commerce-api/pkce.js | 48 + .../app/commerce-api/shopper-baskets.js | 22 + .../overrides/app/commerce-api/utils.js | 273 + .../overrides/app/commerce-api/utils.test.js | 246 + .../app/components/_app-config/index.jsx | 95 + .../overrides/app/components/_app/index.jsx | 346 + .../overrides/app/components/header/index.jsx | 292 + .../overrides/app/components/icons/index.jsx | 179 + .../app/components/social-icons/index.jsx | 101 + .../pwa-kit/overrides/app/constants.js | 92 + .../pwa-kit/overrides/app/contexts/index.js | 193 + .../app/hoc/with-registration/index.jsx | 58 + .../app/hoc/with-registration/index.test.js | 93 + .../pwa-kit/overrides/app/hooks/index.js | 17 + .../app/hooks/use-add-to-cart-modal.js | 340 + .../app/hooks/use-add-to-cart-modal.test.js | 611 + .../overrides/app/hooks/use-auth-modal.js | 264 + .../app/hooks/use-auth-modal.test.js | 239 + .../overrides/app/hooks/use-categories.js | 20 + .../app/hooks/use-categories.test.js | 41 + .../overrides/app/hooks/use-currency.js | 20 + .../overrides/app/hooks/use-currency.test.js | 41 + .../app/hooks/use-intersection-observer.js | 64 + .../overrides/app/hooks/use-limit-urls.js | 31 + .../app/hooks/use-limit-urls.test.js | 40 + .../overrides/app/hooks/use-multi-site.js | 36 + .../app/hooks/use-multi-site.test.js | 53 + .../overrides/app/hooks/use-navigation.js | 36 + .../app/hooks/use-navigation.test.js | 105 + .../overrides/app/hooks/use-page-urls.js | 35 + .../overrides/app/hooks/use-page-urls.test.js | 39 + .../app/hooks/use-pdp-search-params.js | 16 + .../app/hooks/use-pdp-search-params.test.js | 52 + .../app/hooks/use-product-view-modal.js | 90 + .../app/hooks/use-product-view-modal.test.js | 156 + .../overrides/app/hooks/use-product.js | 77 + .../overrides/app/hooks/use-product.test.js | 69 + .../overrides/app/hooks/use-search-params.js | 91 + .../app/hooks/use-search-params.test.js | 88 + .../overrides/app/hooks/use-sort-urls.js | 33 + .../overrides/app/hooks/use-sort-urls.test.js | 42 + .../pwa-kit/overrides/app/hooks/use-toast.js | 68 + .../overrides/app/hooks/use-toast.test.js | 57 + .../overrides/app/hooks/use-variant.js | 32 + .../overrides/app/hooks/use-variant.test.js | 81 + .../app/hooks/use-variation-attributes.js | 138 + .../hooks/use-variation-attributes.test.js | 119 + .../app/hooks/use-variation-params.js | 31 + .../app/hooks/use-variation-params.test.js | 73 + .../overrides/app/hooks/use-wishlist.js | 15 + .../overrides/app/hooks/use-wishlist.test.js | 332 + .../pwa-kit/overrides/app/main.jsx | 14 + .../overrides/app/page-designer/README.md | 104 + .../page-designer/assets/image-tile/index.jsx | 51 + .../assets/image-tile/index.test.js | 30 + .../assets/image-with-text/index.jsx | 136 + .../assets/image-with-text/index.test.js | 38 + .../app/page-designer/assets/index.js | 9 + .../page-designer/core/component/index.jsx | 40 + .../core/component/index.test.js | 62 + .../overrides/app/page-designer/core/index.js | 11 + .../app/page-designer/core/page/index.jsx | 77 + .../app/page-designer/core/page/index.test.js | 94 + .../app/page-designer/core/region/index.jsx | 41 + .../page-designer/core/region/index.test.js | 61 + .../overrides/app/page-designer/core/types.js | 36 + .../overrides/app/page-designer/index.js | 10 + .../page-designer/layouts/carousel/index.jsx | 222 + .../layouts/carousel/index.test.js | 40 + .../app/page-designer/layouts/index.js | 14 + .../layouts/mobileGrid1r1c/index.jsx | 36 + .../layouts/mobileGrid1r1c/index.test.js | 32 + .../layouts/mobileGrid2r1c/index.jsx | 37 + .../layouts/mobileGrid2r1c/index.test.js | 44 + .../layouts/mobileGrid2r2c/index.jsx | 37 + .../layouts/mobileGrid2r2c/index.test.js | 68 + .../layouts/mobileGrid2r3c/index.jsx | 37 + .../layouts/mobileGrid2r3c/index.test.js | 92 + .../layouts/mobileGrid3r1c/index.jsx | 37 + .../layouts/mobileGrid3r1c/index.test.js | 56 + .../layouts/mobileGrid3r2c/index.jsx | 37 + .../layouts/mobileGrid3r2c/index.test.js | 92 + .../overrides/app/pages/home/index.jsx | 334 + .../app/partials/product-view/index.jsx | 520 + .../app/partials/product-view/index.test.js | 227 + .../overrides/app/request-processor.js | 118 + .../overrides/app/request-processor.test.js | 23 + .../pwa-kit/overrides/app/routes.jsx | 121 + .../pwa-kit/overrides/app/routes.test.js | 13 + .../pwa-kit/overrides/app/ssr.js | 65 + .../overrides/app/static/ico/favicon.ico | Bin 0 -> 5430 bytes .../app/static/img/global/app-icon-192.png | Bin 0 -> 4379 bytes .../app/static/img/global/app-icon-512.png | Bin 0 -> 11338 bytes .../static/img/global/apple-touch-icon.png | Bin 0 -> 2254 bytes .../pwa-kit/overrides/app/static/img/hero.png | Bin 0 -> 54741 bytes .../overrides/app/static/manifest.json | 19 + .../pwa-kit/overrides/app/static/robots.txt | 2 + .../pwa-kit/overrides/app/static/svg/lock.svg | 0 .../app/theme/components/base/accordion.js | 21 + .../app/theme/components/base/alert.js | 17 + .../app/theme/components/base/badge.js | 25 + .../app/theme/components/base/button.js | 77 + .../app/theme/components/base/checkbox.js | 30 + .../app/theme/components/base/container.js | 17 + .../app/theme/components/base/drawer.js | 26 + .../app/theme/components/base/formLabel.js | 13 + .../app/theme/components/base/icon.js | 13 + .../app/theme/components/base/input.js | 44 + .../app/theme/components/base/modal.js | 11 + .../app/theme/components/base/popover.js | 61 + .../app/theme/components/base/radio.js | 33 + .../app/theme/components/base/select.js | 15 + .../app/theme/components/base/skeleton.js | 12 + .../app/theme/components/base/tooltip.js | 19 + .../app/theme/components/project/_app.js | 25 + .../theme/components/project/breadcrumb.js | 24 + .../components/project/checkout-footer.js | 35 + .../theme/components/project/drawer-menu.js | 66 + .../app/theme/components/project/footer.js | 84 + .../app/theme/components/project/header.js | 85 + .../theme/components/project/image-gallery.js | 59 + .../theme/components/project/links-list.js | 43 + .../app/theme/components/project/list-menu.js | 91 + .../components/project/locale-selector.js | 42 + .../components/project/nested-accordion.js | 26 + .../components/project/offline-banner.js | 25 + .../theme/components/project/pagination.js | 22 + .../theme/components/project/product-tile.js | 32 + .../theme/components/project/social-icons.js | 52 + .../theme/components/project/swatch-group.js | 115 + .../overrides/app/theme/foundations/colors.js | 170 + .../app/theme/foundations/gradients.js | 9 + .../app/theme/foundations/layerStyles.js | 41 + .../app/theme/foundations/shadows.js | 9 + .../overrides/app/theme/foundations/sizes.js | 18 + .../overrides/app/theme/foundations/space.js | 9 + .../overrides/app/theme/foundations/styles.js | 21 + .../pwa-kit/overrides/app/theme/index.js | 104 + .../overrides/app/translations/README.md | 127 + .../app/translations/compiled/de-DE.json | 3212 +++ .../app/translations/compiled/en-GB.json | 3302 +++ .../app/translations/compiled/en-US.json | 3254 +++ .../app/translations/compiled/en-XB.json | 3212 +++ .../app/translations/compiled/es-MX.json | 3216 +++ .../app/translations/compiled/fr-FR.json | 3216 +++ .../app/translations/compiled/it-IT.json | 3188 +++ .../app/translations/compiled/ja-JP.json | 3200 +++ .../app/translations/compiled/ko-KR.json | 3180 +++ .../app/translations/compiled/pt-BR.json | 3220 +++ .../app/translations/compiled/zh-CN.json | 3212 +++ .../app/translations/compiled/zh-TW.json | 3208 +++ .../overrides/app/translations/de-DE.json | 1417 ++ .../overrides/app/translations/en-GB.json | 1414 ++ .../overrides/app/translations/en-US.json | 1438 ++ .../overrides/app/translations/es-MX.json | 1417 ++ .../overrides/app/translations/fr-FR.json | 1417 ++ .../overrides/app/translations/it-IT.json | 1417 ++ .../overrides/app/translations/ja-JP.json | 1417 ++ .../overrides/app/translations/ko-KR.json | 1417 ++ .../overrides/app/translations/pt-BR.json | 1417 ++ .../overrides/app/translations/zh-CN.json | 1417 ++ .../overrides/app/translations/zh-TW.json | 1417 ++ .../pwa-kit/overrides/app/utils/cc-utils.js | 106 + .../overrides/app/utils/cc-utils.test.js | 41 + .../overrides/app/utils/image-groups-utils.js | 62 + .../app/utils/image-groups-utils.test.js | 65 + .../pwa-kit/overrides/app/utils/locale.js | 76 + .../overrides/app/utils/locale.test.js | 104 + .../overrides/app/utils/password-utils.js | 21 + .../overrides/app/utils/phone-utils.js | 22 + .../overrides/app/utils/phone-utils.test.js | 15 + .../overrides/app/utils/product-utils.js | 35 + .../overrides/app/utils/product-utils.test.js | 51 + .../pwa-kit/overrides/app/utils/queue.js | 36 + .../pwa-kit/overrides/app/utils/queue.test.js | 39 + .../overrides/app/utils/responsive-image.js | 198 + .../app/utils/responsive-image.test.js | 167 + .../overrides/app/utils/routes-utils.js | 111 + .../overrides/app/utils/routes-utils.test.js | 291 + .../pwa-kit/overrides/app/utils/site-utils.js | 97 + .../overrides/app/utils/site-utils.test.js | 206 + .../pwa-kit/overrides/app/utils/test-utils.js | 265 + .../pwa-kit/overrides/app/utils/url.js | 261 + .../pwa-kit/overrides/app/utils/url.test.js | 391 + .../pwa-kit/overrides/app/utils/utils.js | 294 + .../pwa-kit/overrides/app/utils/utils.test.js | 310 + 222 files changed, 99884 insertions(+) create mode 100644 packages/_stress-test-project/README.md create mode 100644 packages/_stress-test-project/babel.config.js create mode 100644 packages/_stress-test-project/build/loadable-stats.json create mode 100644 packages/_stress-test-project/cache-hash-config.json create mode 100644 packages/_stress-test-project/config/default.js create mode 100644 packages/_stress-test-project/config/sites.js create mode 100644 packages/_stress-test-project/package-lock.json create mode 100644 packages/_stress-test-project/package.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/brand-logo.svg create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/heart.svg create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/__mocks__/einstein.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/auth.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/contexts.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useBasket.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomer.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductList.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductLists.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useEinstein.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useRefinementToggle.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useSearchSuggestions.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useShopper.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mock-data.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/basket-with-suit.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/einstein-mock-data.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/empty-basket.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/product-set-winter-lookM.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/searchResults.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/variant-750518699578M.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/pkce.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/shopper-baskets.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/components/_app-config/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/components/_app/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/components/header/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/components/icons/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/components/social-icons/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/constants.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/contexts/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hoc/with-registration/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hoc/with-registration/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-add-to-cart-modal.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-add-to-cart-modal.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-auth-modal.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-auth-modal.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-categories.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-categories.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-currency.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-currency.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-intersection-observer.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-limit-urls.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-limit-urls.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-multi-site.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-multi-site.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-navigation.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-navigation.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-page-urls.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-page-urls.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-pdp-search-params.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-pdp-search-params.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-product-view-modal.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-product-view-modal.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-product.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-product.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-search-params.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-search-params.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-sort-urls.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-sort-urls.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-toast.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-toast.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-variant.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-variant.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-variation-attributes.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-variation-attributes.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-variation-params.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-variation-params.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-wishlist.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/hooks/use-wishlist.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/main.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/README.md create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/assets/image-tile/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/assets/image-tile/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/assets/image-with-text/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/assets/image-with-text/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/assets/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/component/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/component/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/page/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/page/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/region/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/region/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/core/types.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/carousel/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/carousel/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid1r1c/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid1r1c/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid2r1c/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid2r1c/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid2r2c/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid2r2c/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid2r3c/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid2r3c/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid3r1c/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid3r1c/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid3r2c/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/page-designer/layouts/mobileGrid3r2c/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/pages/home/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/partials/product-view/index.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/partials/product-view/index.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/request-processor.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/request-processor.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/routes.jsx create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/routes.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/ssr.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/ico/favicon.ico create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/img/global/app-icon-192.png create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/img/global/app-icon-512.png create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/img/global/apple-touch-icon.png create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/img/hero.png create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/manifest.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/robots.txt create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/static/svg/lock.svg create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/accordion.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/alert.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/badge.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/button.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/checkbox.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/container.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/drawer.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/formLabel.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/icon.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/input.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/modal.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/popover.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/radio.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/select.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/skeleton.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/base/tooltip.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/_app.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/breadcrumb.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/checkout-footer.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/drawer-menu.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/footer.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/header.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/image-gallery.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/links-list.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/list-menu.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/locale-selector.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/nested-accordion.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/offline-banner.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/pagination.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/product-tile.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/social-icons.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/components/project/swatch-group.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/foundations/colors.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/foundations/gradients.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/foundations/layerStyles.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/foundations/shadows.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/foundations/sizes.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/foundations/space.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/foundations/styles.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/theme/index.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/README.md create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/de-DE.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/en-GB.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/en-US.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/en-XB.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/es-MX.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/fr-FR.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/it-IT.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/ja-JP.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/ko-KR.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/pt-BR.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/zh-CN.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/compiled/zh-TW.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/de-DE.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/en-GB.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/en-US.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/es-MX.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/fr-FR.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/it-IT.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/ja-JP.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/ko-KR.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/pt-BR.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/zh-CN.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/translations/zh-TW.json create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/cc-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/cc-utils.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/image-groups-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/image-groups-utils.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/locale.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/locale.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/password-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/phone-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/phone-utils.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/product-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/product-utils.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/queue.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/queue.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/responsive-image.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/responsive-image.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/routes-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/routes-utils.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/site-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/site-utils.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/test-utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/url.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/url.test.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/utils.js create mode 100644 packages/_stress-test-project/pwa-kit/overrides/app/utils/utils.test.js diff --git a/packages/_stress-test-project/README.md b/packages/_stress-test-project/README.md new file mode 100644 index 0000000000..5468329a6d --- /dev/null +++ b/packages/_stress-test-project/README.md @@ -0,0 +1,3 @@ +# Steps + +1. `npm i full-icu@^1.3.1 pwa-kit-dev cross-env` diff --git a/packages/_stress-test-project/babel.config.js b/packages/_stress-test-project/babel.config.js new file mode 100644 index 0000000000..c865361ef4 --- /dev/null +++ b/packages/_stress-test-project/babel.config.js @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +module.exports = require('pwa-kit-dev/configs/babel/babel-config') diff --git a/packages/_stress-test-project/build/loadable-stats.json b/packages/_stress-test-project/build/loadable-stats.json new file mode 100644 index 0000000000..d5d2c175e9 --- /dev/null +++ b/packages/_stress-test-project/build/loadable-stats.json @@ -0,0 +1,293 @@ +{ + "name": "client", + "hash": "cf8ffd2113d8498b72ae", + "publicPath": "/mobify/bundle/development/", + "outputPath": "/Users/bfeister/dev/pwa-kit/packages/_stress-test-project/build", + "assetsByChunkName": { + "main": [ + "main.js" + ], + "pages-home": [ + "pages-home.js" + ], + "vendor": [ + "vendor.js" + ] + }, + "assets": [ + { + "type": "asset", + "name": "vendor.js", + "size": 3962917, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "vendor.js.map" + } + }, + "chunkNames": [ + "vendor" + ], + "chunkIdHints": [ + "vendor" + ], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "vendor" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "main.js", + "size": 264207, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "main.js.map" + } + }, + "chunkNames": [ + "main" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "main" + ], + "auxiliaryChunks": [] + }, + { + "type": "asset", + "name": "pages-home.js", + "size": 19955, + "emitted": false, + "comparedForEmit": false, + "cached": true, + "info": { + "javascriptModule": false, + "related": { + "sourceMap": "pages-home.js.map" + } + }, + "chunkNames": [ + "pages-home" + ], + "chunkIdHints": [], + "auxiliaryChunkNames": [], + "auxiliaryChunkIdHints": [], + "filteredRelated": 1, + "chunks": [ + "pages-home" + ], + "auxiliaryChunks": [] + } + ], + "namedChunkGroups": { + "main": { + "name": "main", + "chunks": [ + "vendor", + "main" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "main.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 2, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "pages-home": { + "name": "pages-home", + "chunks": [ + "vendor", + "pages-home" + ], + "assets": [ + { + "name": "vendor.js" + }, + { + "name": "pages-home.js" + } + ], + "filteredAssets": 0, + "assetsSize": null, + "filteredAuxiliaryAssets": 2, + "auxiliaryAssetsSize": null, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-login": { + "name": "^retail-react-app-app-pages-login", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-registration": { + "name": "^retail-react-app-app-pages-registration", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-reset-password": { + "name": "^retail-react-app-app-pages-reset-password", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-account": { + "name": "^retail-react-app-app-pages-account", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-cart": { + "name": "^retail-react-app-app-pages-cart", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-checkout": { + "name": "^retail-react-app-app-pages-checkout", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-checkout-confirmation": { + "name": "^retail-react-app-app-pages-checkout-confirmation", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-login-redirect": { + "name": "^retail-react-app-app-pages-login-redirect", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-product-detail": { + "name": "^retail-react-app-app-pages-product-detail", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-product-list": { + "name": "^retail-react-app-app-pages-product-list", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-account-wishlist": { + "name": "^retail-react-app-app-pages-account-wishlist", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + }, + "^retail-react-app-app-pages-page-not-found": { + "name": "^retail-react-app-app-pages-page-not-found", + "chunks": [], + "assets": [], + "filteredAssets": 0, + "assetsSize": 0, + "filteredAuxiliaryAssets": 0, + "auxiliaryAssetsSize": 0, + "children": {}, + "childAssets": {} + } + }, + "generator": "loadable-components", + "chunks": [ + { + "id": "main", + "files": [ + "main.js" + ] + }, + { + "id": "pages-home", + "files": [ + "pages-home.js" + ] + }, + { + "id": "vendor", + "files": [ + "vendor.js" + ] + } + ] +} \ No newline at end of file diff --git a/packages/_stress-test-project/cache-hash-config.json b/packages/_stress-test-project/cache-hash-config.json new file mode 100644 index 0000000000..3b9f6e1ac0 --- /dev/null +++ b/packages/_stress-test-project/cache-hash-config.json @@ -0,0 +1,8 @@ +{ + "files": [ + "app/static/**/*" + ], + "baseDir": "app", + "hashLength": 8, + "destinationFolder": "app" +} diff --git a/packages/_stress-test-project/config/default.js b/packages/_stress-test-project/config/default.js new file mode 100644 index 0000000000..dfaf37f975 --- /dev/null +++ b/packages/_stress-test-project/config/default.js @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +const sites = require('./sites.js') + +module.exports = { + app: { + url: { + site: 'path', + locale: 'path', + showDefaults: true + }, + defaultSite: 'RefArchGlobal', + siteAliases: { + RefArch: 'us', + RefArchGlobal: 'global' + }, + sites, + commerceAPI: { + proxyPath: `/mobify/proxy/api`, + parameters: { + clientId: 'c9c45bfd-0ed3-4aa2-9971-40f88962b836', + organizationId: 'f_ecom_zzrf_001', + shortCode: '8o7m175y', + siteId: 'RefArchGlobal' + } + }, + einsteinAPI: { + proxyPath: `/mobify/proxy/einstein`, + einsteinId: '1ea06c6e-c936-4324-bcf0-fada93f83bb1', + // This differs from the siteId in commerceAPIConfig for testing purposes + siteId: 'aaij-MobileFirst' + } + }, + externals: [], + pageNotFoundURL: '/page-not-found', + ssrEnabled: true, + ssrOnly: ['ssr.js', 'ssr.js.map', 'node_modules/**/*.*'], + ssrShared: [ + 'static/ico/favicon.ico', + 'static/robots.txt', + '**/*.js', + '**/*.js.map', + '**/*.json' + ], + ssrParameters: { + ssrFunctionNodeVersion: '14.x', + proxyConfigs: [ + { + host: 'kv7kzm78.api.commercecloud.salesforce.com', + path: 'api' + }, + { + host: 'zzrf-001.sandbox.us03.dx.commercecloud.salesforce.com', + path: 'ocapi' + }, + { + host: 'api.cquotient.com', + path: 'einstein' + } + ] + } +} diff --git a/packages/_stress-test-project/config/sites.js b/packages/_stress-test-project/config/sites.js new file mode 100644 index 0000000000..9c389a0f6c --- /dev/null +++ b/packages/_stress-test-project/config/sites.js @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +// Provide the sites for your app. Each site includes site id, and its localization configuration. +// You can also provide alias for your locale. They will be used in place of your locale id when generating paths across the app +module.exports = [ + { + id: 'RefArch', + l10n: { + supportedCurrencies: ['USD'], + defaultCurrency: 'USD', + defaultLocale: 'en-US', + supportedLocales: [ + { + id: 'en-US', + preferredCurrency: 'USD' + }, + { + id: 'en-CA', + preferredCurrency: 'USD' + } + ] + } + }, + { + id: 'RefArchGlobal', + l10n: { + supportedCurrencies: ['GBP', 'EUR', 'CNY', 'JPY'], + defaultCurrency: 'GBP', + supportedLocales: [ + { + id: 'de-DE', + preferredCurrency: 'EUR' + }, + { + id: 'en-GB', + preferredCurrency: 'GBP' + }, + { + id: 'es-MX', + preferredCurrency: 'MXN' + }, + { + id: 'fr-FR', + preferredCurrency: 'EUR' + }, + { + id: 'it-IT', + preferredCurrency: 'EUR' + }, + { + id: 'ja-JP', + preferredCurrency: 'JPY' + }, + { + id: 'ko-KR', + preferredCurrency: 'KRW' + }, + { + id: 'pt-BR', + preferredCurrency: 'BRL' + }, + { + id: 'zh-CN', + preferredCurrency: 'CNY' + }, + { + id: 'zh-TW', + preferredCurrency: 'TWD' + } + ], + defaultLocale: 'en-GB' + } + } +] diff --git a/packages/_stress-test-project/package-lock.json b/packages/_stress-test-project/package-lock.json new file mode 100644 index 0000000000..7dd18e6767 --- /dev/null +++ b/packages/_stress-test-project/package-lock.json @@ -0,0 +1,17997 @@ +{ + "name": "stress-test-project", + "version": "2.8.0-dev.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "retail-react-app", + "version": "2.7.0", + "license": "See license in LICENSE", + "devDependencies": { + "@chakra-ui/icons": "^1.0.6", + "@chakra-ui/react": "^1.7.1", + "@chakra-ui/skip-nav": "^1.1.4", + "@chakra-ui/system": "^1.12.1", + "@emotion/react": "^11.1.5", + "@emotion/styled": "^11.1.5", + "@formatjs/cli": "^4.2.27", + "@lhci/cli": "^0.7.0", + "@loadable/component": "^5.15.0", + "@peculiar/webcrypto": "^1.3.3", + "@testing-library/dom": "^9.0.0", + "@testing-library/jest-dom": "^5.16.4", + "@testing-library/react": "^11.2.5", + "@testing-library/react-hooks": "^7.0.2", + "@testing-library/user-event": "^12.8.1", + "base64-arraybuffer": "^0.2.0", + "bundlesize2": "^0.0.30", + "card-validator": "^8.1.0", + "commerce-sdk-isomorphic": "^1.9.0", + "cross-env": "^5.2.0", + "cross-fetch": "^3.1.5", + "focus-visible": "^5.2.0", + "framer-motion": "^3.7.0", + "full-icu": "^1.3.1", + "helmet": "^4.6.0", + "jest-fetch-mock": "^2.1.2", + "js-cookie": "^3.0.1", + "jwt-decode": "^3.1.2", + "lodash": "^4.17.21", + "msw": "^0.28.1", + "nanoid": "^3.1.31", + "njwt": "^1.2.0", + "prop-types": "^15.6.0", + "query-string": "^7.0.1", + "raf": "^3.4.0", + "randomstring": "^1.2.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-helmet": "^6.1.0", + "react-hook-form": "^6.15.5", + "react-intl": "^5.13.1", + "react-router-dom": "^5.1.2" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0", + "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" + }, + "peerDependencies": { + "@chakra-ui/system": "^1.12.1" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", + "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz", + "integrity": "sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@chakra-ui/accordion": { + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-1.4.12.tgz", + "integrity": "sha512-Hq5Ie1SI4mmtgBmeuir+f7QKgopZEyQOojgufo/A20keMSy5Yk9WZjkXNQgvoIRl1AsoziIPUlubQOtkBZjjbA==", + "dev": true, + "dependencies": { + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/alert": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-1.3.7.tgz", + "integrity": "sha512-fFpJYBpHOIK/BX4BVl/xafYiDBUW+Bq/gUYDOo4iAiO4vHgxo74oa+yOwSRNlNjAgIX7pi2ridsYQALKyWyxxQ==", + "dev": true, + "dependencies": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/anatomy": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-1.3.0.tgz", + "integrity": "sha512-vj/lcHkCuq/dtbl69DkNsftZTnrGEegB90ODs1B6rxw8iVMdDSYkthPPFAkqzNs4ppv1y2IBjELuVzpeta1OHA==", + "dev": true, + "dependencies": { + "@chakra-ui/theme-tools": "^1.3.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0" + } + }, + "node_modules/@chakra-ui/avatar": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-1.3.11.tgz", + "integrity": "sha512-/eRRK48Er92/QWAfWhxsJIN0gZBBvk+ew4Hglo+pxt3/NDnfTF2yPE7ZN29Dl6daPNbyTOpoksMwaU2mZIqLgA==", + "dev": true, + "dependencies": { + "@chakra-ui/image": "1.1.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/breadcrumb": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-1.3.6.tgz", + "integrity": "sha512-iXxienBO6RUnJEcDvyDWyRt+mzPyl7/b6N8i0vrjGKGLpgtayJFvIdo33tFcvx6TCy7V9hiE3HTtZnNomWdR6A==", + "dev": true, + "dependencies": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/button": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-1.5.10.tgz", + "integrity": "sha512-IVEOrleI378CckAa3b3CTUHMPZRfpy6LPwn1Mx3sMpHEkDTKu8zJcjgEvCE8HYzNC1KbwBsa1PfTgk40ui6EtA==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/spinner": "1.2.6", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/checkbox": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-1.7.1.tgz", + "integrity": "sha512-9Io97yn8OrdaIynCj+3Z/neJV7lTT1MtcdYh3BKMd7WnoJDkRY/GlBM8zsdgC5Wvm+ZQ1M83t0YvRPKLLzusyA==", + "dev": true, + "dependencies": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/clickable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-1.2.6.tgz", + "integrity": "sha512-89SsrQwwwAadcl/bN8nZqqaaVhVNFdBXqQnxVy1t07DL5ezubmNb5SgFh9LDznkm9YYPQhaGr3W6HFro7iAHMg==", + "dev": true, + "dependencies": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/close-button": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-1.2.7.tgz", + "integrity": "sha512-cYTxfgrIlPU4IZm1sehZXxx/TNQBk9c3LBPvTpywEM8GVRGINh4YLq8WiMaPtO+TDNBnKoWS/jS4IHnR+abADw==", + "dev": true, + "dependencies": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/color-mode": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-1.4.8.tgz", + "integrity": "sha512-iD4126DVQi06c6ARr3uf3R2rtEu8aBVjW8rhZ+lOsV26Z15iCJA7OAut13Xu06fcZvgjSB/ChDy6Sx9sV9UjHA==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/control-box": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-1.1.6.tgz", + "integrity": "sha512-EUcq5f854puG6ZA6wAWl4107OPl8+bj4MMHJCa48BB0qec0U8HCEtxQGnFwJmaYLalIAjMfHuY3OwO2A3Hi9hA==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/counter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-1.2.10.tgz", + "integrity": "sha512-HQd09IuJ4z8M8vWajH+99jBWWSHDesQZmnN95jUg3HKOuNleLaipf2JFdrqbO1uWQyHobn2PM6u+B+JCAh2nig==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/css-reset": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-1.1.3.tgz", + "integrity": "sha512-AgfrE7bRTJvNi/4zIfacI/kBHmHmHEIeQtHwCvk/0qM9V2gK1VM3ctYlnibf7BTh17F/UszweOGRb1lHSPfWjw==", + "dev": true, + "peerDependencies": { + "@emotion/react": ">=10.0.35", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/descendant": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-2.1.4.tgz", + "integrity": "sha512-k1olHM6c0fcI5fQxO9rqg9rxripcfHMEm2LkORgH0CAzFn/U75CxCw5ec0IMedNWCdiv740enVfnfhBAoSg7gw==", + "dev": true, + "dependencies": { + "@chakra-ui/react-utils": "^1.2.3" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/editable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-1.4.2.tgz", + "integrity": "sha512-a5zKghA/IvG7yNkmFl7Z9c2KSsf0FgyijsNPTg/4S5jxyz13QJtoTg40tdpyaxHHCT25y25iUcV4FYCj6Jd01w==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/focus-lock": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-1.2.6.tgz", + "integrity": "sha512-ZJNE1oNdUM1aGWuCJ+bxFa/d3EwxzfMWzTKzSvKDK50GWoUQQ10xFTT9nY/yFpkcwhBvx1KavxKf44mIhIbSog==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4", + "react-focus-lock": "2.5.2" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/form-control": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-1.6.0.tgz", + "integrity": "sha512-MtUE98aocP2QTgvyyJ/ABuG33mhT3Ox56phKreG3HzbUKByMwrbQSm1QcAgyYdqSZ9eKB2tXx+qgGNh+avAfDA==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/hooks": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-1.9.1.tgz", + "integrity": "sha512-SEeh1alDKzrP9gMLWMnXOUDBQDKF/URL6iTmkumTn6vhawWNla6sPrcMyoCzWdMzwUhZp3QNtCKbUm7dxBXvPw==", + "dev": true, + "dependencies": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "compute-scroll-into-view": "1.0.14", + "copy-to-clipboard": "3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/icon": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-2.0.5.tgz", + "integrity": "sha512-ZrqRvCCIxGr4qFd/r1pmtd9tobRmv8KAxV7ygFoc/t4vOSKTcVIjhE12gsI3FzgvXM15ZFVwsxa1zodwgo5neQ==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/icons": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/icons/-/icons-1.1.7.tgz", + "integrity": "sha512-YIHxey/B4M2PyFASlHXtAWFyW+tsAtGAChOJ8dsM2kpu1MbVUqm/6nMI1KIFd7Te5IWuNYA75rAHBdLI0Yu61A==", + "dev": true, + "dependencies": { + "@chakra-ui/icon": "2.0.5", + "@types/react": "^17.0.15" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/image": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-1.1.10.tgz", + "integrity": "sha512-PJZmhQ/R1PgdMyCRjALfoyq1FNh/WzMAw70sliHLtLcb9hBXniwQZuckYfUshCkUoFBj/ow9d4byn9Culdpk7Q==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/input": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-1.4.6.tgz", + "integrity": "sha512-Ljy/NbOhh9cNQxKTWQRsT4aQiXs2vVya+Cj5NpMAz08NFFjPZovsTawhI7m6ejT5Vsh76QYjh2rOLLI3fWqQQw==", + "dev": true, + "dependencies": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/layout": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-1.8.0.tgz", + "integrity": "sha512-GJtEKez5AZu0XQTxI6a6jwA/hMDD36pP0HBxBOGuHP1hWCebDzMjraiMfWiP9w7hKERFE4j19kocHxIXyocfJA==", + "dev": true, + "dependencies": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/live-region": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-1.1.6.tgz", + "integrity": "sha512-9gPQHXf7oW0jXyT5R/JzyDMfJ3hF70TqhN8bRH4fMyfNr2Se+SjztMBqCrv5FS5rPjcCeua+e0eArpoB3ROuWQ==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/media-query": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-2.0.4.tgz", + "integrity": "sha512-kn6g/L0IFFUHz2v4yiCsBnhg9jUeA7525Z+AWl+BPtvryi7i9J+AJ27y/QAge7vUGy4dwDeFyxOZTs2oZ9/BsA==", + "dev": true, + "dependencies": { + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "@chakra-ui/theme": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/menu": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-1.8.12.tgz", + "integrity": "sha512-X/s74VpOReQW4fCRCa21f/VOe++cXhPz2Sh7pDjtaT3zmKjrJwgk1Kw75cXfNX1eke6hf/wZ0FGweu/m7+C3OA==", + "dev": true, + "dependencies": { + "@chakra-ui/clickable": "1.2.6", + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/modal": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-1.11.1.tgz", + "integrity": "sha512-B2BBDonHb04vbPLAWgko1JYBwgW8ZNSLyhTJK+rbrCsRSgazuLTcwq4hdyJqrYNWtaQEfSwpAXqJ7joMZdv59A==", + "dev": true, + "dependencies": { + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/focus-lock": "1.2.6", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.4.1" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6", + "react-dom": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/number-input": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-1.4.7.tgz", + "integrity": "sha512-LorGRZFMipom8vCUEbLi2s7bTHF2Fgiu766W0jTbzMje+8Z1ZoRQunH9OZWQnxnWQTUfUM2KBW8KwToYh1ojfQ==", + "dev": true, + "dependencies": { + "@chakra-ui/counter": "1.2.10", + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/pin-input": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-1.7.11.tgz", + "integrity": "sha512-KEVUHHmf22tI4F7gzT9+pHi4E5cCyte6M8rPEwRyuc0kUBo48D8OW0BJwGdESWOKMkQXazDF6Zg4o32t45tbpg==", + "dev": true, + "dependencies": { + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/popover": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-1.11.9.tgz", + "integrity": "sha512-hJ1/Lwukox3ryTN7W1wnj+nE44utfLwQYvfUSdatt5dznnh8k0P6Wx7Hmjm1cYffRavBhqzwua/QZDWjJN9N0g==", + "dev": true, + "dependencies": { + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/popper": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-2.4.3.tgz", + "integrity": "sha512-TGzFnYt3mtIVkIejtYIAu4Ka9DaYLzMR4NgcqI6EtaTvgK7Xep+6RTiY/Nq+ZT3l/eaNUwqHRFoNrDUg1XYasA==", + "dev": true, + "dependencies": { + "@chakra-ui/react-utils": "1.2.3", + "@popperjs/core": "^2.9.3" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/portal": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-1.3.10.tgz", + "integrity": "sha512-t2KQ6MXbyf1qFYxWw/bs//CnwD+Clq7mbsP1Y7g+THCz2FvlLlMj45BWocLB30NoNyA8WCS2zyMBszW2/qvDiA==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "react": ">=16.8.6", + "react-dom": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/progress": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-1.2.6.tgz", + "integrity": "sha512-thaHRIYTVktgV78vJMNwzfCX+ickhSpn2bun6FtGVUphFx4tjV+ggz+IGohm6AH2hapskoR1mQU2iNZb6BK0hQ==", + "dev": true, + "dependencies": { + "@chakra-ui/theme-tools": "1.3.6", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/provider": { + "version": "1.7.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-1.7.14.tgz", + "integrity": "sha512-FCA33CZy/jFzExglKMioeri8sr9NtDTcNVPnx95ZJiA7WpfFo0xuZ6/fMC4DwIQPkJKbSIZBXYLZ3U10Ntylrw==", + "dev": true, + "dependencies": { + "@chakra-ui/css-reset": "1.1.3", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=16.8.6", + "react-dom": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/radio": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-1.5.1.tgz", + "integrity": "sha512-zO5eShz+j68A7935jJ2q5u3brX/bjPEGh9Pj2+bnKbmC9Vva6jEzBSJsAx9n4WbkAzR3xDMGWsbpivFp8X1tJw==", + "dev": true, + "dependencies": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/react": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-1.8.9.tgz", + "integrity": "sha512-NfR5XKVqEWhchFLiWaTWkWeYZJK1SNF2O6sQxFVrX6M+nAgJ3Q9tfMk6/I3II+xc4hXJUcYmUvmw37vT92yMaQ==", + "dev": true, + "dependencies": { + "@chakra-ui/accordion": "1.4.12", + "@chakra-ui/alert": "1.3.7", + "@chakra-ui/avatar": "1.3.11", + "@chakra-ui/breadcrumb": "1.3.6", + "@chakra-ui/button": "1.5.10", + "@chakra-ui/checkbox": "1.7.1", + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/control-box": "1.1.6", + "@chakra-ui/counter": "1.2.10", + "@chakra-ui/css-reset": "1.1.3", + "@chakra-ui/editable": "1.4.2", + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/image": "1.1.10", + "@chakra-ui/input": "1.4.6", + "@chakra-ui/layout": "1.8.0", + "@chakra-ui/live-region": "1.1.6", + "@chakra-ui/media-query": "2.0.4", + "@chakra-ui/menu": "1.8.12", + "@chakra-ui/modal": "1.11.1", + "@chakra-ui/number-input": "1.4.7", + "@chakra-ui/pin-input": "1.7.11", + "@chakra-ui/popover": "1.11.9", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/progress": "1.2.6", + "@chakra-ui/provider": "1.7.14", + "@chakra-ui/radio": "1.5.1", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/select": "1.2.11", + "@chakra-ui/skeleton": "1.2.14", + "@chakra-ui/slider": "1.5.11", + "@chakra-ui/spinner": "1.2.6", + "@chakra-ui/stat": "1.2.7", + "@chakra-ui/switch": "1.3.10", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/table": "1.3.6", + "@chakra-ui/tabs": "1.6.11", + "@chakra-ui/tag": "1.2.7", + "@chakra-ui/textarea": "1.2.11", + "@chakra-ui/theme": "1.14.1", + "@chakra-ui/toast": "1.5.9", + "@chakra-ui/tooltip": "1.5.1", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6", + "react-dom": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/react-env": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-1.1.6.tgz", + "integrity": "sha512-L90LNvCfe04FTkN9OPok/o2e60zLJNBH8Im/5dUHvqy7dXLXok8ZDad5vEL46XmGbhe7O8fbxhG6FmAYdcCHrQ==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/react-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-1.2.3.tgz", + "integrity": "sha512-r8pUwCVVB7UPhb0AiRa9ZzSp4xkMz64yIeJ4O4aGy4WMw7TRH4j4QkbkE1YC9tQitrXrliOlvx4WWJR4VyiGpw==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "^1.10.4" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/select": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-1.2.11.tgz", + "integrity": "sha512-6Tis1+ZrRjQeWhQfziQn3ZdPphV5ccafpZOhiPdTcM2J1XcXOlII+9rHxvaW+jx7zQ5ly5o8kd7iXzalDgl5wA==", + "dev": true, + "dependencies": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/skeleton": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-1.2.14.tgz", + "integrity": "sha512-R0v4DfQ2yjXCJf9SzhTmDb2PLx5//LxsRbjjgRa8qJCR4MZaGswPrekp4dP8YjY8aEYzuZbvHU12T3vqZBk2GA==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/media-query": "2.0.4", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/theme": ">=1.0.0", + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/skip-nav": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-1.2.6.tgz", + "integrity": "sha512-+ya4q3/iW/z3/B7ibaBwcsqa3LIB9MQqOWy4lzJCa8D6eagdSXhPN0+pxjkz6BxyQfxi2Rxz0A6KrgtuwAg2qw==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/slider": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-1.5.11.tgz", + "integrity": "sha512-THkGU2BsA6XMosXcEVQkWVRftqUIAKCb+y4iEpR3C2ztqL7Fl/CbIGwyr5majhPhKc275rb8dfxwp8R0L0ZIiQ==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/spinner": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-1.2.6.tgz", + "integrity": "sha512-GoUCccN120fGRVgUtfuwcEjeoaxffB+XsgpxX7jhWloXf8b6lkqm68bsxX4Ybb2vGN1fANI98/45JmrnddZO/A==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/stat": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-1.2.7.tgz", + "integrity": "sha512-m76jumFW1N+mCG4ytrUz9Mh09nZtS4OQcADEvOslfdI5StwwuzasTA1tueaelPzdhBioMwFUWL05Fr1fXbPJ/Q==", + "dev": true, + "dependencies": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/styled-system": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-1.19.0.tgz", + "integrity": "sha512-z+bMfWs6jQGkpgarge1kmk78DuDhJIXRUMyRqZ3+CiIkze88bIIsww6mV2i8tEfUfTAvALeMnlYZ1DYsHsTTJw==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4", + "csstype": "3.0.9" + } + }, + "node_modules/@chakra-ui/switch": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-1.3.10.tgz", + "integrity": "sha512-V6qDLY6oECCbPyu7alWWOAhSBI4+SAuT6XW/zEQbelkwuUOiGO1ax67rTXOmZ59A2AaV1gqQFxDh8AcbvwO5XQ==", + "dev": true, + "dependencies": { + "@chakra-ui/checkbox": "1.7.1", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/system": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-1.12.1.tgz", + "integrity": "sha512-Rp09/rMuPA3hF38OJxeQciGO9N0Ie1GxwHRAw1AFA/TY3fVyK9pNI5oN+J/1cAxq7v9yKdIr1YfnruJTI9xfEg==", + "dev": true, + "dependencies": { + "@chakra-ui/color-mode": "1.4.8", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/styled-system": "1.19.0", + "@chakra-ui/utils": "1.10.4", + "react-fast-compare": "3.2.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/table": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-1.3.6.tgz", + "integrity": "sha512-7agZAgAeDFKviqStvixqnLAH54+setzhx67EztioZTr5Xu+6hQ4rotfJbu8L4i587pcbNg98kCEXEkidjw0XRQ==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/tabs": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-1.6.11.tgz", + "integrity": "sha512-hGs2REEVVWyfgs+qEkPiUsNnqwv3QwXfKYyXaMnGS7CCkGgUiEvIO7n9968/KGnGbM4GuEHX+BxG2suIUf24yg==", + "dev": true, + "dependencies": { + "@chakra-ui/clickable": "1.2.6", + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/tag": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-1.2.7.tgz", + "integrity": "sha512-RKrKOol4i/CnpFfo3T9LMm1abaqM+5Bs0soQLbo1iJBbBACY09sWXrQYvveQ2GYzU/OrAUloHqqmKjyVGOlNtg==", + "dev": true, + "dependencies": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/textarea": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-1.2.11.tgz", + "integrity": "sha512-RDWbMyC87/AFRX98EnVum5eig/7hhcvS1BrqW5lvmTgrpr7KVr80Dfa8hUj58Iq37Z7AqZijDPkBn/zg7bPdIg==", + "dev": true, + "dependencies": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/theme": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-1.14.1.tgz", + "integrity": "sha512-VeNZi+zD3yDwzvZm234Cy3vnalCzQ+dhAgpHdIYzGO1CYO8DPa+ROcQ70rUueL7dSvUz15KOiGTw6DAl7LXlGA==", + "dev": true, + "dependencies": { + "@chakra-ui/anatomy": "1.3.0", + "@chakra-ui/theme-tools": "1.3.6", + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0" + } + }, + "node_modules/@chakra-ui/theme-tools": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-1.3.6.tgz", + "integrity": "sha512-Wxz3XSJhPCU6OwCHEyH44EegEDQHwvlsx+KDkUDGevOjUU88YuNqOVkKtgTpgMLNQcsrYZ93oPWZUJqqCVNRew==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4", + "@ctrl/tinycolor": "^3.4.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0" + } + }, + "node_modules/@chakra-ui/toast": { + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-1.5.9.tgz", + "integrity": "sha512-rns04bGdMcG7Ijg45L+PfuEW4rCd0Ycraix4EJQhcl9RXI18G9sphmlp9feidhZAkI6Ukafq1YvyvkBfkKnIzQ==", + "dev": true, + "dependencies": { + "@chakra-ui/alert": "1.3.7", + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/theme": "1.14.1", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "@reach/alert": "0.13.2" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6", + "react-dom": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/tooltip": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-1.5.1.tgz", + "integrity": "sha512-EUAlDdlCBt63VpEVtj/RkFjHQVN/xA9gEAumngQdi1Sp+OXPYCBM9GwSY0NwrM1RfKBnhPSH9wz7FwredJWeaw==", + "dev": true, + "dependencies": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6", + "react-dom": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/transition": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-1.4.8.tgz", + "integrity": "sha512-5uc8LEuCH7+0h++wqAav/EktTHOjbLDSTXQlU9fzPIlNNgyf2eXrHVN2AGMGKiMR9Z4gS7umQjZ54r0w/mZ/Fw==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "framer-motion": "3.x || 4.x || 5.x || 6.x", + "react": ">=16.8.6" + } + }, + "node_modules/@chakra-ui/utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-1.10.4.tgz", + "integrity": "sha512-AM91VQQxw8F4F1WDA28mqKY6NFIOuzc2Ekkna88imy2OiqqmYH0xkq8J16L2qj4cLiLozpYqba3C79pWioy6FA==", + "dev": true, + "dependencies": { + "@types/lodash.mergewith": "4.6.6", + "css-box-model": "1.2.1", + "framesync": "5.3.0", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/visually-hidden": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-1.1.6.tgz", + "integrity": "sha512-Xzy5bA0UA+IyMgwJizQYSEdgz8cC/tHdmFB3CniXzmpKTSK8mJddeEBl+cGbXHBzxEUhH7xF1eaS41O+0ezWEQ==", + "dev": true, + "dependencies": { + "@chakra-ui/utils": "1.10.4" + }, + "peerDependencies": { + "@chakra-ui/system": ">=1.0.0", + "react": ">=16.8.6" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", + "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", + "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + } + }, + "node_modules/@emotion/cache": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "dev": true, + "dependencies": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==", + "dev": true + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "dev": true, + "dependencies": { + "@emotion/memoize": "^0.8.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "dev": true + }, + "node_modules/@emotion/react": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", + "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.6", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "dev": true, + "dependencies": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==", + "dev": true + }, + "node_modules/@emotion/styled": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz", + "integrity": "sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.6", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==", + "dev": true + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "dev": true, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==", + "dev": true + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==", + "dev": true + }, + "node_modules/@formatjs/cli": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-4.8.4.tgz", + "integrity": "sha512-zZI8QYVl5CHaT6j9OHjS+0mMnWzopBVH0un4n5b4IhIJRzIKnxwFTkxBp5Ifqj6FntrwzIGqP+D6v8u7MPYsmw==", + "dev": true, + "dependencies": { + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/ts-transformer": "3.9.4", + "@types/estree": "^0.0.50", + "@types/fs-extra": "^9.0.1", + "@types/json-stable-stringify": "^1.0.32", + "@types/node": "14", + "@vue/compiler-core": "^3.2.23", + "chalk": "^4.0.0", + "commander": "8", + "fast-glob": "^3.2.7", + "fs-extra": "10", + "json-stable-stringify": "^1.0.1", + "loud-rejection": "^2.2.0", + "tslib": "^2.1.0", + "typescript": "^4.5", + "vue": "^3.2.23" + }, + "bin": { + "formatjs": "bin/formatjs" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "dev": true, + "dependencies": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz", + "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "intl-messageformat": "9.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "typescript": "^4.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@formatjs/intl-displaynames": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz", + "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-listformat": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz", + "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl/node_modules/intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/ts-transformer": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.9.4.tgz", + "integrity": "sha512-S5q/zsTodaKtxVxNvbRQ9APenJtm5smXE76usS+5yF2vWQdZHkagmOKWfgvfIbesP4SR2B+i3koqlnlpqSIp5w==", + "dev": true, + "dependencies": { + "@formatjs/icu-messageformat-parser": "2.1.0", + "@types/node": "14 || 16 || 17", + "chalk": "^4.0.0", + "tslib": "^2.1.0", + "typescript": "^4.5" + }, + "peerDependencies": { + "ts-jest": "27" + }, + "peerDependenciesMeta": { + "ts-jest": { + "optional": true + } + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.4.3.tgz", + "integrity": "sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz", + "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@lhci/cli": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@lhci/cli/-/cli-0.7.2.tgz", + "integrity": "sha512-WE/1YPzlUUtGEm3KWr8rP09w6TNOfpa+dUm+EYpIm+xVtJHgcVKuVURrrQ4SXN9jy36V+aAfnKOQdvOdqel5QA==", + "dev": true, + "dependencies": { + "@lhci/utils": "0.7.2", + "chrome-launcher": "^0.13.4", + "compression": "^1.7.4", + "debug": "^4.3.1", + "express": "^4.17.1", + "inquirer": "^6.3.1", + "isomorphic-fetch": "^3.0.0", + "lighthouse": "7.3.0", + "lighthouse-logger": "1.2.0", + "open": "^7.1.0", + "tmp": "^0.1.0", + "update-notifier": "^3.0.1", + "uuid": "^8.3.1", + "yargs": "^15.4.1", + "yargs-parser": "^13.1.2" + }, + "bin": { + "lhci": "src/cli.js" + } + }, + "node_modules/@lhci/utils": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@lhci/utils/-/utils-0.7.2.tgz", + "integrity": "sha512-KqqF8lPkRpFflfBY6MQLBOfqymMAj6GnOkE54kbZnRwmtgceSSzPa80/fNd/z1T8j/oWT6DQAkA+yLbPcTMQrQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.1", + "isomorphic-fetch": "^3.0.0", + "js-yaml": "^3.13.1", + "lighthouse": "7.3.0", + "tree-kill": "^1.2.1" + } + }, + "node_modules/@loadable/component": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.3.tgz", + "integrity": "sha512-VOgYgCABn6+/7aGIpg7m0Ruj34tGetaJzt4bQ345FwEovDQZ+dua+NWLmuJKv8rWZyxOUSfoJkmGnzyDXH2BAQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.7.7", + "hoist-non-react-statics": "^3.3.1", + "react-is": "^16.12.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@mswjs/cookies": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz", + "integrity": "sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q==", + "dev": true, + "dependencies": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" + } + }, + "node_modules/@mswjs/interceptors": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.8.1.tgz", + "integrity": "sha512-OI9FYmtURESZG3QDNz4Yt3osy3HY4T3FjlRw+AG4QS1UDdTSZ0tuPFAkp23nGR9ojmbSSj4gSMjf5+R8Oi/qtQ==", + "dev": true, + "dependencies": { + "@open-draft/until": "^1.0.3", + "debug": "^4.3.0", + "headers-utils": "^3.0.2", + "strict-event-emitter": "^0.2.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-draft/until": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "dev": true + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", + "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "dev": true, + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", + "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.1", + "webcrypto-core": "^1.7.4" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@reach/alert": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/alert/-/alert-0.13.2.tgz", + "integrity": "sha512-LDz83AXCrClyq/MWe+0vaZfHp1Ytqn+kgL5VxG7rirUvmluWaj/snxzfNPWn0Ma4K2YENmXXRC/iHt5X95SqIg==", + "dev": true, + "dependencies": { + "@reach/utils": "0.13.2", + "@reach/visually-hidden": "0.13.2", + "prop-types": "^15.7.2", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "^16.8.0 || 17.x", + "react-dom": "^16.8.0 || 17.x" + } + }, + "node_modules/@reach/utils": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/utils/-/utils-0.13.2.tgz", + "integrity": "sha512-3ir6cN60zvUrwjOJu7C6jec/samqAeyAB12ZADK+qjnmQPdzSYldrFWwDVV5H0WkhbYXR3uh+eImu13hCetNPQ==", + "dev": true, + "dependencies": { + "@types/warning": "^3.0.0", + "tslib": "^2.1.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": "^16.8.0 || 17.x", + "react-dom": "^16.8.0 || 17.x" + } + }, + "node_modules/@reach/visually-hidden": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/visually-hidden/-/visually-hidden-0.13.2.tgz", + "integrity": "sha512-sPZwNS0/duOuG0mYwE5DmgEAzW9VhgU3aIt1+mrfT/xiT9Cdncqke+kRBQgU708q/Ttm9tWsoHni03nn/SuPTQ==", + "dev": true, + "dependencies": { + "prop-types": "^15.7.2", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "^16.8.0 || 17.x", + "react-dom": "^16.8.0 || 17.x" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.0.0.tgz", + "integrity": "sha512-+/TLgKNFsYUshOY/zXsQOk+PlFQK+eyJ9T13IDVNJEi+M+Un7xlJK+FZKkbGSnf0+7E1G6PlDhkSYQ/GFiruBQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz", + "integrity": "sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^7.28.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@testing-library/react-hooks": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz", + "integrity": "sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/react": ">=16.9.0", + "@types/react-dom": ">=16.9.0", + "@types/react-test-renderer": ">=16.9.0", + "react-error-boundary": "^3.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0", + "react-test-renderer": ">=16.9.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-test-renderer": { + "optional": true + } + } + }, + "node_modules/@testing-library/react/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "7.31.2", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz", + "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.6", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@testing-library/react/node_modules/@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "node_modules/@testing-library/react/node_modules/@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@testing-library/react/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@testing-library/react/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==", + "dev": true + }, + "node_modules/@testing-library/user-event": { + "version": "12.8.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz", + "integrity": "sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", + "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", + "dev": true, + "dependencies": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.4.0.tgz", + "integrity": "sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@types/js-levenshtein": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", + "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", + "dev": true + }, + "node_modules/@types/json-stable-stringify": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz", + "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", + "dev": true + }, + "node_modules/@types/lodash.mergewith": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz", + "integrity": "sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==", + "dev": true, + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "17.0.53", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.53.tgz", + "integrity": "sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-test-renderer": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz", + "integrity": "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@types/set-cookie-parser": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", + "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "dev": true, + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", + "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dev": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/runtime-dom/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==", + "dev": true + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==", + "dev": true + }, + "node_modules/accepts": { + "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==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz", + "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true + }, + "node_modules/array-uniq": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "integrity": "sha512-GVYjmpL05al4dNlKJm53mKE4w9OOLiuVHWorsIA3YVz+Hu0hcn6PtE3Ydl0EqU7v+7ABC4mjjWsnLUxbpno+CA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dev": true, + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "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==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "node_modules/axe-core": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", + "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/boxen/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==", + "dev": true + }, + "node_modules/boxen/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/bundlesize2": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/bundlesize2/-/bundlesize2-0.0.30.tgz", + "integrity": "sha512-dVNC4zGdaRMMf+KK4Xf+wsPIuuDYrgDtZaX5gb1jX2vRCSOgrh2ka0Y3BGmcwMC0vViBg38yoap9AUXLBItZFA==", + "dev": true, + "dependencies": { + "bytes": "^3.1.0", + "chalk": "^4.0.0", + "ci-env": "^1.15.0", + "commander": "^5.1.0", + "cosmiconfig": "5.2.1", + "figures": "^3.2.0", + "glob": "^7.1.6", + "gzip-size": "^5.1.1", + "node-fetch": "^2.6.0", + "plur": "^4.0.0", + "right-pad": "^1.0.1" + }, + "bin": { + "bundlesize": "index.js" + } + }, + "node_modules/bundlesize2/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bundlesize2/node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bundlesize2/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bundlesize2/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bundlesize2/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "dev": true + }, + "node_modules/card-validator": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/card-validator/-/card-validator-8.1.1.tgz", + "integrity": "sha512-cN4FsKwoTfTFnqPwVc7TQLSsH/QMDB3n/gWm0XelcApz4sKipnOQ6k33sa3bWsNnnIpgs7eXOF+mUV2UQAX2Sw==", + "dev": true, + "dependencies": { + "credit-card-type": "^9.1.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-launcher": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", + "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^1.0.5", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^0.5.3", + "rimraf": "^3.0.2" + } + }, + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ci-env": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/ci-env/-/ci-env-1.17.0.tgz", + "integrity": "sha512-NtTjhgSEqv4Aj90TUYHQLxHdnCPXnjdtuGG1X8lTfp/JqeXTdw0FTWl/vUAPuvbWZTF8QVpv6ASe/XacE+7R2A==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commerce-sdk-isomorphic": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/commerce-sdk-isomorphic/-/commerce-sdk-isomorphic-1.9.0.tgz", + "integrity": "sha512-fT0s/u4EEnE7R7JXGOTFc0NACpxb9CEJokZF7UI2RNlpZMb3hmvdUoBdXDuxv1Pfg6zG813Gk98J7nH5cwLOnw==", + "dev": true, + "dependencies": { + "cross-fetch": "^3.1.5", + "nanoid": "^3.3.4" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz", + "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dev": true, + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js-pure": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.29.0.tgz", + "integrity": "sha512-v94gUjN5UTe1n0yN/opTihJ8QBWD2O8i19RfTZR7foONPWArnjB96QA/wk5ozu1mm6ja3udQCzOzwQXTxi3xOQ==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/credit-card-type": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/credit-card-type/-/credit-card-type-9.1.0.tgz", + "integrity": "sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA==", + "dev": true + }, + "node_modules/cross-env": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.5" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-random-string": { + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/csp_evaluator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", + "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==", + "dev": true + }, + "node_modules/css-box-model": { + "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==", + "dev": true, + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", + "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", + "dev": true, + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==", + "dev": true + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/details-element-polyfill": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz", + "integrity": "sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "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==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=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==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/execa/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/expect": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.4.3.tgz", + "integrity": "sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.4.3", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.4.3", + "jest-message-util": "^29.4.3", + "jest-util": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/focus-lock": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.9.2.tgz", + "integrity": "sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/focus-visible": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/focus-visible/-/focus-visible-5.2.0.tgz", + "integrity": "sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/framer-motion": { + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-3.10.6.tgz", + "integrity": "sha512-OxOtKgQS4km9a8dm0IMBtNNp4f0DiHfQ/IzxKs818+Kg9V/Ve/pRUJ2dtWBb6+W4lIPNLgRSpbOwOACVj15XcQ==", + "dev": true, + "dependencies": { + "framesync": "5.2.0", + "hey-listen": "^1.0.8", + "popmotion": "9.3.1", + "style-value-types": "4.1.1", + "tslib": "^1.10.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": ">=16.8 || ^17.0.0", + "react-dom": ">=16.8 || ^17.0.0" + } + }, + "node_modules/framer-motion/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==", + "dev": true, + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/framer-motion/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==", + "dev": true, + "optional": true + }, + "node_modules/framer-motion/node_modules/framesync": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==", + "dev": true + }, + "node_modules/framer-motion/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/framesync": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", + "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/full-icu": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.5.0.tgz", + "integrity": "sha512-BxB2otKUSFyvENjbI8EtQscpiPOEnhrf5V4MVpa6PjzsrLmdKKUUhulbydsfKS4ve6cGXNVRLlrOjizby/ZfDA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "yauzl": "^2.10.0" + }, + "bin": { + "full-icu": "node-full-icu.js", + "node-full-icu-path": "node-icu-data.js" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/headers-utils": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz", + "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==", + "dev": true + }, + "node_modules/helmet": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", + "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "dev": true + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "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==", + "dev": true, + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-link-header": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-0.8.0.tgz", + "integrity": "sha512-qsh/wKe1Mk1vtYEFr+LpQBFWTO1gxZQBdii2D0Umj+IUQ23r5sT088Rhpq4XzpSyIpaX7vwjB8Rrtx8u9JTg+Q==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-ssim": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", + "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/inquirer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/inquirer/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==", + "dev": true + }, + "node_modules/intl-messageformat": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", + "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", + "dev": true, + "dependencies": { + "intl-messageformat-parser": "^1.8.1" + } + }, + "node_modules/intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", + "dev": true + }, + "node_modules/intl-pluralrules": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.3.1.tgz", + "integrity": "sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w==", + "dev": true + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "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==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/irregular-plurals": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.4.1.tgz", + "integrity": "sha512-JR7VL+1Kd9z79bE+2uSgifpzrTwLWmTvyeUewhxZCHVtpPImAsLk4adfRxg86uvdsJ8etYYrpzN7vRT30gGnOA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw==", + "dev": true, + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/jest-diff": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.4.3.tgz", + "integrity": "sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-fetch-mock": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-2.1.2.tgz", + "integrity": "sha512-tcSR4Lh2bWLe1+0w/IwvNxeDocMI/6yIA2bijZ0fyWxC4kQ18lckQ1n7Yd40NKuisGmcGBRFPandRXrW/ti/Bw==", + "dev": true, + "dependencies": { + "cross-fetch": "^2.2.2", + "promise-polyfill": "^7.1.1" + } + }, + "node_modules/jest-fetch-mock/node_modules/cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" + } + }, + "node_modules/jest-fetch-mock/node_modules/whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "dev": true + }, + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz", + "integrity": "sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-message-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.3.tgz", + "integrity": "sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.4.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.4.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz", + "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.4.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true + }, + "node_modules/js-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", + "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-library-detector": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.6.0.tgz", + "integrity": "sha512-z8OkDmXALZ22bIzBtIW8cpJ39MV93/Zu1rWrFdhsNw+sity2rOLaGT2kfWWQ6mnRTWs4ddONY5kiroA8e98Gvg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "dev": true, + "dependencies": { + "jsonify": "^0.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jsonld": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", + "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", + "dev": true, + "dependencies": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonld/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/jsonlint-mod": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz", + "integrity": "sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "JSV": "^4.0.2", + "underscore": "^1.9.1" + }, + "bin": { + "jsonlint": "lib/cli.js" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/jsonlint-mod/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsonlint-mod/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsonlint-mod/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jsonlint-mod/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/jsonlint-mod/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jsonlint-mod/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsonlint-mod/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", + "dev": true + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-7.3.0.tgz", + "integrity": "sha512-c3loU7ptP8TAlR+bBhc+5ClALx/YVRSh8m5KPiDZQ7wNYxRnhZjDDz6rLzd5gLDhjVwhjMv1APypZegDOFkKOQ==", + "dev": true, + "dependencies": { + "axe-core": "4.1.3", + "chrome-launcher": "^0.13.4", + "configstore": "^5.0.1", + "csp_evaluator": "^1.0.1", + "cssstyle": "1.2.1", + "details-element-polyfill": "^2.4.0", + "http-link-header": "^0.8.0", + "inquirer": "^7.3.3", + "intl": "^1.2.5", + "intl-messageformat": "^4.4.0", + "intl-pluralrules": "^1.0.3", + "jpeg-js": "^0.4.1", + "js-library-detector": "^6.4.0", + "jsonld": "^4.0.1", + "jsonlint-mod": "^1.7.6", + "lighthouse-logger": "^1.2.0", + "lighthouse-stack-packs": "^1.4.0", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "lodash.set": "^4.3.2", + "lookup-closest-locale": "6.0.4", + "metaviewport-parser": "0.2.0", + "open": "^6.4.0", + "parse-cache-control": "1.0.1", + "ps-list": "^7.2.0", + "raven": "^2.2.1", + "rimraf": "^2.6.1", + "robots-parser": "^2.0.1", + "semver": "^5.3.0", + "speedline-core": "^1.4.3", + "third-party-web": "^0.12.2", + "update-notifier": "^4.1.0", + "ws": "3.3.2", + "yargs": "^16.1.1", + "yargs-parser": "^20.2.4" + }, + "bin": { + "chrome-debug": "lighthouse-core/scripts/manual-chrome-launcher.js", + "lighthouse": "lighthouse-cli/index.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", + "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", + "dev": true, + "dependencies": { + "debug": "^2.6.8", + "marky": "^1.2.0" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/lighthouse-stack-packs": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.9.1.tgz", + "integrity": "sha512-9prq6oMkVHz3GeCkphq4FHXXdj3M/WPiFWUvJAczLYV8j/oTxsgiHSPMqh1KVV11CP0VTxD40hFC0pDfXF+khQ==", + "dev": true + }, + "node_modules/lighthouse/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lighthouse/node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lighthouse/node_modules/boxen/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/boxen/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/lighthouse/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/lighthouse/node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "dependencies": { + "ini": "1.3.7" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lighthouse/node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + }, + "node_modules/lighthouse/node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/lighthouse/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lighthouse/node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lighthouse/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lighthouse/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/lighthouse/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lighthouse/node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/lighthouse/node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/lighthouse/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lighthouse/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lighthouse/node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/lighthouse/node_modules/update-notifier/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lighthouse/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lighthouse/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lighthouse/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lighthouse/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/lookup-closest-locale": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz", + "integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loud-rejection": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", + "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/metaviewport-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz", + "integrity": "sha512-qL5NtY18LGs7lvZCkj3ep2H4Pes9rIiSLZRUyfDdvVw7pWFA0eLwmqaIxApD74RGvUrNEtk9e5Wt1rT+VlCvGw==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/msw": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-0.28.2.tgz", + "integrity": "sha512-WHfRd+Zwfy8yNPAx4PDJ0PnaEqUw5QOjWbCk5MmgpHMl51R3FJ2yIC694RdqR1bInqoaV94wW9Irv9eSyh65lQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@mswjs/cookies": "^0.1.4", + "@mswjs/interceptors": "^0.8.0", + "@open-draft/until": "^1.0.3", + "@types/cookie": "^0.4.0", + "@types/inquirer": "^7.3.1", + "@types/js-levenshtein": "^1.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cookie": "^0.4.1", + "graphql": "^15.4.0", + "headers-utils": "^3.0.2", + "inquirer": "^7.3.3", + "js-levenshtein": "^1.1.6", + "node-fetch": "^2.6.1", + "node-match-path": "^0.6.1", + "statuses": "^2.0.0", + "strict-event-emitter": "^0.2.0", + "yargs": "^16.2.0" + }, + "bin": { + "msw": "cli/index.js" + } + }, + "node_modules/msw/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/msw/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/msw/node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/msw/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/msw/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/msw/node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/msw/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/msw/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/msw/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/msw/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/msw/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/msw/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/msw/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/msw/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/msw/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/msw/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/msw/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/msw/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/njwt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/njwt/-/njwt-1.2.0.tgz", + "integrity": "sha512-i+cdqwxo7EUimJCHPSAEpQEWrz4ilsVefL+FRhWrjMqq8HHiQ8dwi9GUWUfj3Vt6XMY2PXSjMn9JeVB3/Jp6pg==", + "dev": true, + "dependencies": { + "@types/node": "^15.0.1", + "ecdsa-sig-formatter": "^1.0.5", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/njwt/node_modules/@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-match-path": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz", + "integrity": "sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true + }, + "node_modules/path-key": { + "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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/popmotion": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.1.tgz", + "integrity": "sha512-Qozvg8rz2OGeZwWuIjqlSXqqgWto/+QL24ll8sAAc0n71KY/wvN1W4sAASxTuHv8YWdDnk9u9IdadyPo2DGvDA==", + "dev": true, + "dependencies": { + "framesync": "5.2.0", + "hey-listen": "^1.0.8", + "style-value-types": "4.1.1", + "tslib": "^1.10.0" + } + }, + "node_modules/popmotion/node_modules/framesync": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==", + "dev": true + }, + "node_modules/popmotion/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/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==", + "dev": true + }, + "node_modules/promise-polyfill": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz", + "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==", + "dev": true + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-addr": { + "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==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ps-list": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", + "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dev": true, + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dev": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "integrity": "sha512-lDVjxQQFoCG1jcrP06LNo2lbWp4QTShEXnhActFBwYuHprllQV6VUpwreApsYqCgD+N1mHoqJ/BI/4eV4R2GYg==", + "dev": true + }, + "node_modules/randomstring": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.2.3.tgz", + "integrity": "sha512-3dEFySepTzp2CvH6W/ASYGguPPveBuz5MpZ7MuoUkoVehmyNl9+F9c9GFVrz2QPbM9NXTIHGcmJDY/3j4677kQ==", + "dev": true, + "dependencies": { + "array-uniq": "1.0.2", + "randombytes": "2.0.3" + }, + "bin": { + "randomstring": "bin/randomstring" + }, + "engines": { + "node": "*" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raven": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz", + "integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==", + "deprecated": "Please upgrade to @sentry/node. See the migration guide https://bit.ly/3ybOlo7", + "dev": true, + "dependencies": { + "cookie": "0.3.1", + "md5": "^2.2.1", + "stack-trace": "0.0.10", + "timed-out": "4.0.1", + "uuid": "3.3.2" + }, + "bin": { + "raven": "bin/raven" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/raven/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raven/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "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.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "dev": true, + "dependencies": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rdf-canonize/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-clientside-effect": { + "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==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.13" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-error-boundary": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", + "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "dev": true + }, + "node_modules/react-focus-lock": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.5.2.tgz", + "integrity": "sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.9.1", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.5", + "use-callback-ref": "^1.2.5", + "use-sidecar": "^1.0.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.3.0" + } + }, + "node_modules/react-hook-form": { + "version": "6.15.8", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.15.8.tgz", + "integrity": "sha512-prq82ofMbnRyj5wqDe8hsTRcdR25jQ+B8KtCS7BLCzjFHAwNuCjRwzPuP4eYLsEBjEIeYd6try+pdLdw0kPkpg==", + "dev": true, + "peerDependencies": { + "react": "^16.8.0 || ^17" + } + }, + "node_modules/react-intl": { + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz", + "integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl": "2.2.1", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.13.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "^16.3.0 || 17 || 18", + "typescript": "^4.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-intl/node_modules/intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/react-remove-scroll": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.4.1.tgz", + "integrity": "sha512-K7XZySEzOHMTq7dDwcHsZA6Y7/1uX5RsWhRXVYv8rdh+y9Qz2nMwl9RX/Mwnj/j7JstCGmxyfyC0zbVGXYh3mA==", + "dev": true, + "dependencies": { + "react-remove-scroll-bar": "^2.1.0", + "react-style-singleton": "^2.1.0", + "tslib": "^1.0.0", + "use-callback-ref": "^1.2.3", + "use-sidecar": "^1.0.1" + }, + "engines": { + "node": ">=8.5.0" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "dev": true, + "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-remove-scroll/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": 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==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-dom": { + "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==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "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==", + "dev": true + }, + "node_modules/react-router/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/react-side-effect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", + "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", + "dev": true, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.0 || ^18.0.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==", + "dev": true, + "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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "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.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/right-pad": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", + "integrity": "sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/robots-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.4.0.tgz", + "integrity": "sha512-oO8f2SI04dJk3pbj2KOMJ4G6QfPAgqcGmrYGmansIcpRewIPT2ljWEt5I+ip6EgiyaLo+RXkkUWw74M25HDkMA==", + "dev": true + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==", + "dev": true, + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "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", + "dev": true + }, + "node_modules/speedline-core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", + "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", + "dev": true, + "dependencies": { + "@types/node": "*", + "image-ssim": "^0.2.0", + "jpeg-js": "^0.4.1" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strict-event-emitter": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", + "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", + "dev": true, + "dependencies": { + "events": "^3.3.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-value-types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.1.tgz", + "integrity": "sha512-cNLrl6jk+I1T18ZI2KIp/fcqKVuykcNELDrOz7y+TYZR97xmNdN0ewupURvVFnQxVrRJv98TMBq92VMsggq3kw==", + "dev": true, + "dependencies": { + "hey-listen": "^1.0.8", + "tslib": "^1.10.0" + } + }, + "node_modules/style-value-types/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==", + "dev": true, + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/third-party-web": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.7.tgz", + "integrity": "sha512-9d/OfjEOjyeOpnm4F9o0KSK6BI6ytvi9DINSB5h1+jdlCvQlhKpViMSxWpBN9WstdfDQ61BS6NxWqcPCuQCAJg==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "dependencies": { + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tmp/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "dependencies": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/update-notifier/node_modules/configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "dev": true, + "dependencies": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/update-notifier/node_modules/crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/dot-prop": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", + "dev": true, + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/update-notifier/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/update-notifier/node_modules/xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "dev": true, + "dependencies": { + "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/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dev": true, + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/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==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/webcrypto-core": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", + "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", + "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@adobe/css-tools": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", + "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "dev": true + }, + "@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/runtime-corejs3": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz", + "integrity": "sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw==", + "dev": true, + "requires": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@chakra-ui/accordion": { + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-1.4.12.tgz", + "integrity": "sha512-Hq5Ie1SI4mmtgBmeuir+f7QKgopZEyQOojgufo/A20keMSy5Yk9WZjkXNQgvoIRl1AsoziIPUlubQOtkBZjjbA==", + "dev": true, + "requires": { + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/alert": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-1.3.7.tgz", + "integrity": "sha512-fFpJYBpHOIK/BX4BVl/xafYiDBUW+Bq/gUYDOo4iAiO4vHgxo74oa+yOwSRNlNjAgIX7pi2ridsYQALKyWyxxQ==", + "dev": true, + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/anatomy": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-1.3.0.tgz", + "integrity": "sha512-vj/lcHkCuq/dtbl69DkNsftZTnrGEegB90ODs1B6rxw8iVMdDSYkthPPFAkqzNs4ppv1y2IBjELuVzpeta1OHA==", + "dev": true, + "requires": { + "@chakra-ui/theme-tools": "^1.3.6" + } + }, + "@chakra-ui/avatar": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-1.3.11.tgz", + "integrity": "sha512-/eRRK48Er92/QWAfWhxsJIN0gZBBvk+ew4Hglo+pxt3/NDnfTF2yPE7ZN29Dl6daPNbyTOpoksMwaU2mZIqLgA==", + "dev": true, + "requires": { + "@chakra-ui/image": "1.1.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/breadcrumb": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-1.3.6.tgz", + "integrity": "sha512-iXxienBO6RUnJEcDvyDWyRt+mzPyl7/b6N8i0vrjGKGLpgtayJFvIdo33tFcvx6TCy7V9hiE3HTtZnNomWdR6A==", + "dev": true, + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/button": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-1.5.10.tgz", + "integrity": "sha512-IVEOrleI378CckAa3b3CTUHMPZRfpy6LPwn1Mx3sMpHEkDTKu8zJcjgEvCE8HYzNC1KbwBsa1PfTgk40ui6EtA==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/spinner": "1.2.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/checkbox": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-1.7.1.tgz", + "integrity": "sha512-9Io97yn8OrdaIynCj+3Z/neJV7lTT1MtcdYh3BKMd7WnoJDkRY/GlBM8zsdgC5Wvm+ZQ1M83t0YvRPKLLzusyA==", + "dev": true, + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/clickable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-1.2.6.tgz", + "integrity": "sha512-89SsrQwwwAadcl/bN8nZqqaaVhVNFdBXqQnxVy1t07DL5ezubmNb5SgFh9LDznkm9YYPQhaGr3W6HFro7iAHMg==", + "dev": true, + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/close-button": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-1.2.7.tgz", + "integrity": "sha512-cYTxfgrIlPU4IZm1sehZXxx/TNQBk9c3LBPvTpywEM8GVRGINh4YLq8WiMaPtO+TDNBnKoWS/jS4IHnR+abADw==", + "dev": true, + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/color-mode": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-1.4.8.tgz", + "integrity": "sha512-iD4126DVQi06c6ARr3uf3R2rtEu8aBVjW8rhZ+lOsV26Z15iCJA7OAut13Xu06fcZvgjSB/ChDy6Sx9sV9UjHA==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/control-box": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-1.1.6.tgz", + "integrity": "sha512-EUcq5f854puG6ZA6wAWl4107OPl8+bj4MMHJCa48BB0qec0U8HCEtxQGnFwJmaYLalIAjMfHuY3OwO2A3Hi9hA==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/counter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-1.2.10.tgz", + "integrity": "sha512-HQd09IuJ4z8M8vWajH+99jBWWSHDesQZmnN95jUg3HKOuNleLaipf2JFdrqbO1uWQyHobn2PM6u+B+JCAh2nig==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/css-reset": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-1.1.3.tgz", + "integrity": "sha512-AgfrE7bRTJvNi/4zIfacI/kBHmHmHEIeQtHwCvk/0qM9V2gK1VM3ctYlnibf7BTh17F/UszweOGRb1lHSPfWjw==", + "dev": true, + "requires": {} + }, + "@chakra-ui/descendant": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-2.1.4.tgz", + "integrity": "sha512-k1olHM6c0fcI5fQxO9rqg9rxripcfHMEm2LkORgH0CAzFn/U75CxCw5ec0IMedNWCdiv740enVfnfhBAoSg7gw==", + "dev": true, + "requires": { + "@chakra-ui/react-utils": "^1.2.3" + } + }, + "@chakra-ui/editable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-1.4.2.tgz", + "integrity": "sha512-a5zKghA/IvG7yNkmFl7Z9c2KSsf0FgyijsNPTg/4S5jxyz13QJtoTg40tdpyaxHHCT25y25iUcV4FYCj6Jd01w==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/focus-lock": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-1.2.6.tgz", + "integrity": "sha512-ZJNE1oNdUM1aGWuCJ+bxFa/d3EwxzfMWzTKzSvKDK50GWoUQQ10xFTT9nY/yFpkcwhBvx1KavxKf44mIhIbSog==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4", + "react-focus-lock": "2.5.2" + } + }, + "@chakra-ui/form-control": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-1.6.0.tgz", + "integrity": "sha512-MtUE98aocP2QTgvyyJ/ABuG33mhT3Ox56phKreG3HzbUKByMwrbQSm1QcAgyYdqSZ9eKB2tXx+qgGNh+avAfDA==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/hooks": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-1.9.1.tgz", + "integrity": "sha512-SEeh1alDKzrP9gMLWMnXOUDBQDKF/URL6iTmkumTn6vhawWNla6sPrcMyoCzWdMzwUhZp3QNtCKbUm7dxBXvPw==", + "dev": true, + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "compute-scroll-into-view": "1.0.14", + "copy-to-clipboard": "3.3.1" + } + }, + "@chakra-ui/icon": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-2.0.5.tgz", + "integrity": "sha512-ZrqRvCCIxGr4qFd/r1pmtd9tobRmv8KAxV7ygFoc/t4vOSKTcVIjhE12gsI3FzgvXM15ZFVwsxa1zodwgo5neQ==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/icons": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/icons/-/icons-1.1.7.tgz", + "integrity": "sha512-YIHxey/B4M2PyFASlHXtAWFyW+tsAtGAChOJ8dsM2kpu1MbVUqm/6nMI1KIFd7Te5IWuNYA75rAHBdLI0Yu61A==", + "dev": true, + "requires": { + "@chakra-ui/icon": "2.0.5", + "@types/react": "^17.0.15" + } + }, + "@chakra-ui/image": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-1.1.10.tgz", + "integrity": "sha512-PJZmhQ/R1PgdMyCRjALfoyq1FNh/WzMAw70sliHLtLcb9hBXniwQZuckYfUshCkUoFBj/ow9d4byn9Culdpk7Q==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/input": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-1.4.6.tgz", + "integrity": "sha512-Ljy/NbOhh9cNQxKTWQRsT4aQiXs2vVya+Cj5NpMAz08NFFjPZovsTawhI7m6ejT5Vsh76QYjh2rOLLI3fWqQQw==", + "dev": true, + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/layout": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-1.8.0.tgz", + "integrity": "sha512-GJtEKez5AZu0XQTxI6a6jwA/hMDD36pP0HBxBOGuHP1hWCebDzMjraiMfWiP9w7hKERFE4j19kocHxIXyocfJA==", + "dev": true, + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/live-region": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-1.1.6.tgz", + "integrity": "sha512-9gPQHXf7oW0jXyT5R/JzyDMfJ3hF70TqhN8bRH4fMyfNr2Se+SjztMBqCrv5FS5rPjcCeua+e0eArpoB3ROuWQ==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/media-query": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-2.0.4.tgz", + "integrity": "sha512-kn6g/L0IFFUHz2v4yiCsBnhg9jUeA7525Z+AWl+BPtvryi7i9J+AJ27y/QAge7vUGy4dwDeFyxOZTs2oZ9/BsA==", + "dev": true, + "requires": { + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/menu": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-1.8.12.tgz", + "integrity": "sha512-X/s74VpOReQW4fCRCa21f/VOe++cXhPz2Sh7pDjtaT3zmKjrJwgk1Kw75cXfNX1eke6hf/wZ0FGweu/m7+C3OA==", + "dev": true, + "requires": { + "@chakra-ui/clickable": "1.2.6", + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/modal": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-1.11.1.tgz", + "integrity": "sha512-B2BBDonHb04vbPLAWgko1JYBwgW8ZNSLyhTJK+rbrCsRSgazuLTcwq4hdyJqrYNWtaQEfSwpAXqJ7joMZdv59A==", + "dev": true, + "requires": { + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/focus-lock": "1.2.6", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.4.1" + } + }, + "@chakra-ui/number-input": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-1.4.7.tgz", + "integrity": "sha512-LorGRZFMipom8vCUEbLi2s7bTHF2Fgiu766W0jTbzMje+8Z1ZoRQunH9OZWQnxnWQTUfUM2KBW8KwToYh1ojfQ==", + "dev": true, + "requires": { + "@chakra-ui/counter": "1.2.10", + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/pin-input": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-1.7.11.tgz", + "integrity": "sha512-KEVUHHmf22tI4F7gzT9+pHi4E5cCyte6M8rPEwRyuc0kUBo48D8OW0BJwGdESWOKMkQXazDF6Zg4o32t45tbpg==", + "dev": true, + "requires": { + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/popover": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-1.11.9.tgz", + "integrity": "sha512-hJ1/Lwukox3ryTN7W1wnj+nE44utfLwQYvfUSdatt5dznnh8k0P6Wx7Hmjm1cYffRavBhqzwua/QZDWjJN9N0g==", + "dev": true, + "requires": { + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/popper": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-2.4.3.tgz", + "integrity": "sha512-TGzFnYt3mtIVkIejtYIAu4Ka9DaYLzMR4NgcqI6EtaTvgK7Xep+6RTiY/Nq+ZT3l/eaNUwqHRFoNrDUg1XYasA==", + "dev": true, + "requires": { + "@chakra-ui/react-utils": "1.2.3", + "@popperjs/core": "^2.9.3" + } + }, + "@chakra-ui/portal": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-1.3.10.tgz", + "integrity": "sha512-t2KQ6MXbyf1qFYxWw/bs//CnwD+Clq7mbsP1Y7g+THCz2FvlLlMj45BWocLB30NoNyA8WCS2zyMBszW2/qvDiA==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/progress": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-1.2.6.tgz", + "integrity": "sha512-thaHRIYTVktgV78vJMNwzfCX+ickhSpn2bun6FtGVUphFx4tjV+ggz+IGohm6AH2hapskoR1mQU2iNZb6BK0hQ==", + "dev": true, + "requires": { + "@chakra-ui/theme-tools": "1.3.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/provider": { + "version": "1.7.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-1.7.14.tgz", + "integrity": "sha512-FCA33CZy/jFzExglKMioeri8sr9NtDTcNVPnx95ZJiA7WpfFo0xuZ6/fMC4DwIQPkJKbSIZBXYLZ3U10Ntylrw==", + "dev": true, + "requires": { + "@chakra-ui/css-reset": "1.1.3", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/radio": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-1.5.1.tgz", + "integrity": "sha512-zO5eShz+j68A7935jJ2q5u3brX/bjPEGh9Pj2+bnKbmC9Vva6jEzBSJsAx9n4WbkAzR3xDMGWsbpivFp8X1tJw==", + "dev": true, + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/react": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-1.8.9.tgz", + "integrity": "sha512-NfR5XKVqEWhchFLiWaTWkWeYZJK1SNF2O6sQxFVrX6M+nAgJ3Q9tfMk6/I3II+xc4hXJUcYmUvmw37vT92yMaQ==", + "dev": true, + "requires": { + "@chakra-ui/accordion": "1.4.12", + "@chakra-ui/alert": "1.3.7", + "@chakra-ui/avatar": "1.3.11", + "@chakra-ui/breadcrumb": "1.3.6", + "@chakra-ui/button": "1.5.10", + "@chakra-ui/checkbox": "1.7.1", + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/control-box": "1.1.6", + "@chakra-ui/counter": "1.2.10", + "@chakra-ui/css-reset": "1.1.3", + "@chakra-ui/editable": "1.4.2", + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/image": "1.1.10", + "@chakra-ui/input": "1.4.6", + "@chakra-ui/layout": "1.8.0", + "@chakra-ui/live-region": "1.1.6", + "@chakra-ui/media-query": "2.0.4", + "@chakra-ui/menu": "1.8.12", + "@chakra-ui/modal": "1.11.1", + "@chakra-ui/number-input": "1.4.7", + "@chakra-ui/pin-input": "1.7.11", + "@chakra-ui/popover": "1.11.9", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/progress": "1.2.6", + "@chakra-ui/provider": "1.7.14", + "@chakra-ui/radio": "1.5.1", + "@chakra-ui/react-env": "1.1.6", + "@chakra-ui/select": "1.2.11", + "@chakra-ui/skeleton": "1.2.14", + "@chakra-ui/slider": "1.5.11", + "@chakra-ui/spinner": "1.2.6", + "@chakra-ui/stat": "1.2.7", + "@chakra-ui/switch": "1.3.10", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/table": "1.3.6", + "@chakra-ui/tabs": "1.6.11", + "@chakra-ui/tag": "1.2.7", + "@chakra-ui/textarea": "1.2.11", + "@chakra-ui/theme": "1.14.1", + "@chakra-ui/toast": "1.5.9", + "@chakra-ui/tooltip": "1.5.1", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/react-env": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-1.1.6.tgz", + "integrity": "sha512-L90LNvCfe04FTkN9OPok/o2e60zLJNBH8Im/5dUHvqy7dXLXok8ZDad5vEL46XmGbhe7O8fbxhG6FmAYdcCHrQ==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/react-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-1.2.3.tgz", + "integrity": "sha512-r8pUwCVVB7UPhb0AiRa9ZzSp4xkMz64yIeJ4O4aGy4WMw7TRH4j4QkbkE1YC9tQitrXrliOlvx4WWJR4VyiGpw==", + "dev": true, + "requires": { + "@chakra-ui/utils": "^1.10.4" + } + }, + "@chakra-ui/select": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-1.2.11.tgz", + "integrity": "sha512-6Tis1+ZrRjQeWhQfziQn3ZdPphV5ccafpZOhiPdTcM2J1XcXOlII+9rHxvaW+jx7zQ5ly5o8kd7iXzalDgl5wA==", + "dev": true, + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/skeleton": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-1.2.14.tgz", + "integrity": "sha512-R0v4DfQ2yjXCJf9SzhTmDb2PLx5//LxsRbjjgRa8qJCR4MZaGswPrekp4dP8YjY8aEYzuZbvHU12T3vqZBk2GA==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/media-query": "2.0.4", + "@chakra-ui/system": "1.12.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/skip-nav": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-1.2.6.tgz", + "integrity": "sha512-+ya4q3/iW/z3/B7ibaBwcsqa3LIB9MQqOWy4lzJCa8D6eagdSXhPN0+pxjkz6BxyQfxi2Rxz0A6KrgtuwAg2qw==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/slider": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-1.5.11.tgz", + "integrity": "sha512-THkGU2BsA6XMosXcEVQkWVRftqUIAKCb+y4iEpR3C2ztqL7Fl/CbIGwyr5majhPhKc275rb8dfxwp8R0L0ZIiQ==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/spinner": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-1.2.6.tgz", + "integrity": "sha512-GoUCccN120fGRVgUtfuwcEjeoaxffB+XsgpxX7jhWloXf8b6lkqm68bsxX4Ybb2vGN1fANI98/45JmrnddZO/A==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/stat": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-1.2.7.tgz", + "integrity": "sha512-m76jumFW1N+mCG4ytrUz9Mh09nZtS4OQcADEvOslfdI5StwwuzasTA1tueaelPzdhBioMwFUWL05Fr1fXbPJ/Q==", + "dev": true, + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/styled-system": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-1.19.0.tgz", + "integrity": "sha512-z+bMfWs6jQGkpgarge1kmk78DuDhJIXRUMyRqZ3+CiIkze88bIIsww6mV2i8tEfUfTAvALeMnlYZ1DYsHsTTJw==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4", + "csstype": "3.0.9" + } + }, + "@chakra-ui/switch": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-1.3.10.tgz", + "integrity": "sha512-V6qDLY6oECCbPyu7alWWOAhSBI4+SAuT6XW/zEQbelkwuUOiGO1ax67rTXOmZ59A2AaV1gqQFxDh8AcbvwO5XQ==", + "dev": true, + "requires": { + "@chakra-ui/checkbox": "1.7.1", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/system": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-1.12.1.tgz", + "integrity": "sha512-Rp09/rMuPA3hF38OJxeQciGO9N0Ie1GxwHRAw1AFA/TY3fVyK9pNI5oN+J/1cAxq7v9yKdIr1YfnruJTI9xfEg==", + "dev": true, + "requires": { + "@chakra-ui/color-mode": "1.4.8", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/styled-system": "1.19.0", + "@chakra-ui/utils": "1.10.4", + "react-fast-compare": "3.2.0" + } + }, + "@chakra-ui/table": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-1.3.6.tgz", + "integrity": "sha512-7agZAgAeDFKviqStvixqnLAH54+setzhx67EztioZTr5Xu+6hQ4rotfJbu8L4i587pcbNg98kCEXEkidjw0XRQ==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/tabs": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-1.6.11.tgz", + "integrity": "sha512-hGs2REEVVWyfgs+qEkPiUsNnqwv3QwXfKYyXaMnGS7CCkGgUiEvIO7n9968/KGnGbM4GuEHX+BxG2suIUf24yg==", + "dev": true, + "requires": { + "@chakra-ui/clickable": "1.2.6", + "@chakra-ui/descendant": "2.1.4", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/tag": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-1.2.7.tgz", + "integrity": "sha512-RKrKOol4i/CnpFfo3T9LMm1abaqM+5Bs0soQLbo1iJBbBACY09sWXrQYvveQ2GYzU/OrAUloHqqmKjyVGOlNtg==", + "dev": true, + "requires": { + "@chakra-ui/icon": "2.0.5", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/textarea": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-1.2.11.tgz", + "integrity": "sha512-RDWbMyC87/AFRX98EnVum5eig/7hhcvS1BrqW5lvmTgrpr7KVr80Dfa8hUj58Iq37Z7AqZijDPkBn/zg7bPdIg==", + "dev": true, + "requires": { + "@chakra-ui/form-control": "1.6.0", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/theme": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-1.14.1.tgz", + "integrity": "sha512-VeNZi+zD3yDwzvZm234Cy3vnalCzQ+dhAgpHdIYzGO1CYO8DPa+ROcQ70rUueL7dSvUz15KOiGTw6DAl7LXlGA==", + "dev": true, + "requires": { + "@chakra-ui/anatomy": "1.3.0", + "@chakra-ui/theme-tools": "1.3.6", + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/theme-tools": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-1.3.6.tgz", + "integrity": "sha512-Wxz3XSJhPCU6OwCHEyH44EegEDQHwvlsx+KDkUDGevOjUU88YuNqOVkKtgTpgMLNQcsrYZ93oPWZUJqqCVNRew==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4", + "@ctrl/tinycolor": "^3.4.0" + } + }, + "@chakra-ui/toast": { + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-1.5.9.tgz", + "integrity": "sha512-rns04bGdMcG7Ijg45L+PfuEW4rCd0Ycraix4EJQhcl9RXI18G9sphmlp9feidhZAkI6Ukafq1YvyvkBfkKnIzQ==", + "dev": true, + "requires": { + "@chakra-ui/alert": "1.3.7", + "@chakra-ui/close-button": "1.2.7", + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/theme": "1.14.1", + "@chakra-ui/transition": "1.4.8", + "@chakra-ui/utils": "1.10.4", + "@reach/alert": "0.13.2" + } + }, + "@chakra-ui/tooltip": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-1.5.1.tgz", + "integrity": "sha512-EUAlDdlCBt63VpEVtj/RkFjHQVN/xA9gEAumngQdi1Sp+OXPYCBM9GwSY0NwrM1RfKBnhPSH9wz7FwredJWeaw==", + "dev": true, + "requires": { + "@chakra-ui/hooks": "1.9.1", + "@chakra-ui/popper": "2.4.3", + "@chakra-ui/portal": "1.3.10", + "@chakra-ui/react-utils": "1.2.3", + "@chakra-ui/utils": "1.10.4", + "@chakra-ui/visually-hidden": "1.1.6" + } + }, + "@chakra-ui/transition": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-1.4.8.tgz", + "integrity": "sha512-5uc8LEuCH7+0h++wqAav/EktTHOjbLDSTXQlU9fzPIlNNgyf2eXrHVN2AGMGKiMR9Z4gS7umQjZ54r0w/mZ/Fw==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@chakra-ui/utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-1.10.4.tgz", + "integrity": "sha512-AM91VQQxw8F4F1WDA28mqKY6NFIOuzc2Ekkna88imy2OiqqmYH0xkq8J16L2qj4cLiLozpYqba3C79pWioy6FA==", + "dev": true, + "requires": { + "@types/lodash.mergewith": "4.6.6", + "css-box-model": "1.2.1", + "framesync": "5.3.0", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/visually-hidden": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-1.1.6.tgz", + "integrity": "sha512-Xzy5bA0UA+IyMgwJizQYSEdgz8cC/tHdmFB3CniXzmpKTSK8mJddeEBl+cGbXHBzxEUhH7xF1eaS41O+0ezWEQ==", + "dev": true, + "requires": { + "@chakra-ui/utils": "1.10.4" + } + }, + "@ctrl/tinycolor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", + "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==", + "dev": true + }, + "@emotion/babel-plugin": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", + "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + } + }, + "@emotion/cache": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "dev": true, + "requires": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" + } + }, + "@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==", + "dev": true + }, + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "dev": true, + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "dev": true + }, + "@emotion/react": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", + "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.6", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "dev": true, + "requires": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==", + "dev": true + }, + "@emotion/styled": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz", + "integrity": "sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==", + "dev": true, + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.6", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + } + }, + "@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==", + "dev": true + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "dev": true, + "requires": {} + }, + "@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==", + "dev": true + }, + "@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==", + "dev": true + }, + "@formatjs/cli": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-4.8.4.tgz", + "integrity": "sha512-zZI8QYVl5CHaT6j9OHjS+0mMnWzopBVH0un4n5b4IhIJRzIKnxwFTkxBp5Ifqj6FntrwzIGqP+D6v8u7MPYsmw==", + "dev": true, + "requires": { + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/ts-transformer": "3.9.4", + "@types/estree": "^0.0.50", + "@types/fs-extra": "^9.0.1", + "@types/json-stable-stringify": "^1.0.32", + "@types/node": "14", + "@vue/compiler-core": "^3.2.23", + "chalk": "^4.0.0", + "commander": "8", + "fast-glob": "^3.2.7", + "fs-extra": "10", + "json-stable-stringify": "^1.0.1", + "loud-rejection": "^2.2.0", + "tslib": "^2.1.0", + "typescript": "^4.5", + "vue": "^3.2.23" + } + }, + "@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "dev": true, + "requires": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz", + "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "intl-messageformat": "9.13.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + } + } + }, + "@formatjs/intl-displaynames": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz", + "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-listformat": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz", + "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-localematcher": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/ts-transformer": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.9.4.tgz", + "integrity": "sha512-S5q/zsTodaKtxVxNvbRQ9APenJtm5smXE76usS+5yF2vWQdZHkagmOKWfgvfIbesP4SR2B+i3koqlnlpqSIp5w==", + "dev": true, + "requires": { + "@formatjs/icu-messageformat-parser": "2.1.0", + "@types/node": "14 || 16 || 17", + "chalk": "^4.0.0", + "tslib": "^2.1.0", + "typescript": "^4.5" + } + }, + "@jest/expect-utils": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.4.3.tgz", + "integrity": "sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3" + } + }, + "@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.25.16" + } + }, + "@jest/types": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz", + "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@lhci/cli": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@lhci/cli/-/cli-0.7.2.tgz", + "integrity": "sha512-WE/1YPzlUUtGEm3KWr8rP09w6TNOfpa+dUm+EYpIm+xVtJHgcVKuVURrrQ4SXN9jy36V+aAfnKOQdvOdqel5QA==", + "dev": true, + "requires": { + "@lhci/utils": "0.7.2", + "chrome-launcher": "^0.13.4", + "compression": "^1.7.4", + "debug": "^4.3.1", + "express": "^4.17.1", + "inquirer": "^6.3.1", + "isomorphic-fetch": "^3.0.0", + "lighthouse": "7.3.0", + "lighthouse-logger": "1.2.0", + "open": "^7.1.0", + "tmp": "^0.1.0", + "update-notifier": "^3.0.1", + "uuid": "^8.3.1", + "yargs": "^15.4.1", + "yargs-parser": "^13.1.2" + } + }, + "@lhci/utils": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@lhci/utils/-/utils-0.7.2.tgz", + "integrity": "sha512-KqqF8lPkRpFflfBY6MQLBOfqymMAj6GnOkE54kbZnRwmtgceSSzPa80/fNd/z1T8j/oWT6DQAkA+yLbPcTMQrQ==", + "dev": true, + "requires": { + "debug": "^4.3.1", + "isomorphic-fetch": "^3.0.0", + "js-yaml": "^3.13.1", + "lighthouse": "7.3.0", + "tree-kill": "^1.2.1" + } + }, + "@loadable/component": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.15.3.tgz", + "integrity": "sha512-VOgYgCABn6+/7aGIpg7m0Ruj34tGetaJzt4bQ345FwEovDQZ+dua+NWLmuJKv8rWZyxOUSfoJkmGnzyDXH2BAQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.7", + "hoist-non-react-statics": "^3.3.1", + "react-is": "^16.12.0" + } + }, + "@mswjs/cookies": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz", + "integrity": "sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q==", + "dev": true, + "requires": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" + } + }, + "@mswjs/interceptors": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.8.1.tgz", + "integrity": "sha512-OI9FYmtURESZG3QDNz4Yt3osy3HY4T3FjlRw+AG4QS1UDdTSZ0tuPFAkp23nGR9ojmbSSj4gSMjf5+R8Oi/qtQ==", + "dev": true, + "requires": { + "@open-draft/until": "^1.0.3", + "debug": "^4.3.0", + "headers-utils": "^3.0.2", + "strict-event-emitter": "^0.2.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@open-draft/until": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "dev": true + }, + "@peculiar/asn1-schema": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", + "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "dev": true, + "requires": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dev": true, + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", + "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.1", + "webcrypto-core": "^1.7.4" + } + }, + "@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "dev": true + }, + "@reach/alert": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/alert/-/alert-0.13.2.tgz", + "integrity": "sha512-LDz83AXCrClyq/MWe+0vaZfHp1Ytqn+kgL5VxG7rirUvmluWaj/snxzfNPWn0Ma4K2YENmXXRC/iHt5X95SqIg==", + "dev": true, + "requires": { + "@reach/utils": "0.13.2", + "@reach/visually-hidden": "0.13.2", + "prop-types": "^15.7.2", + "tslib": "^2.1.0" + } + }, + "@reach/utils": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/utils/-/utils-0.13.2.tgz", + "integrity": "sha512-3ir6cN60zvUrwjOJu7C6jec/samqAeyAB12ZADK+qjnmQPdzSYldrFWwDVV5H0WkhbYXR3uh+eImu13hCetNPQ==", + "dev": true, + "requires": { + "@types/warning": "^3.0.0", + "tslib": "^2.1.0", + "warning": "^4.0.3" + } + }, + "@reach/visually-hidden": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@reach/visually-hidden/-/visually-hidden-0.13.2.tgz", + "integrity": "sha512-sPZwNS0/duOuG0mYwE5DmgEAzW9VhgU3aIt1+mrfT/xiT9Cdncqke+kRBQgU708q/Ttm9tWsoHni03nn/SuPTQ==", + "dev": true, + "requires": { + "prop-types": "^15.7.2", + "tslib": "^2.1.0" + } + }, + "@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@testing-library/dom": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.0.0.tgz", + "integrity": "sha512-+/TLgKNFsYUshOY/zXsQOk+PlFQK+eyJ9T13IDVNJEi+M+Un7xlJK+FZKkbGSnf0+7E1G6PlDhkSYQ/GFiruBQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + } + }, + "@testing-library/jest-dom": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "dev": true, + "requires": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@testing-library/react": { + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz", + "integrity": "sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^7.28.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@testing-library/dom": { + "version": "7.31.2", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz", + "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.6", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" + } + }, + "@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "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==", + "dev": true + } + } + }, + "@testing-library/react-hooks": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz", + "integrity": "sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@types/react": ">=16.9.0", + "@types/react-dom": ">=16.9.0", + "@types/react-test-renderer": ">=16.9.0", + "react-error-boundary": "^3.1.0" + } + }, + "@testing-library/user-event": { + "version": "12.8.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz", + "integrity": "sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "@types/aria-query": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", + "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", + "dev": true, + "requires": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.4.0.tgz", + "integrity": "sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==", + "dev": true, + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "@types/js-levenshtein": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", + "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", + "dev": true + }, + "@types/json-stable-stringify": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz", + "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==", + "dev": true + }, + "@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", + "dev": true + }, + "@types/lodash.mergewith": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz", + "integrity": "sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==", + "dev": true, + "requires": { + "@types/lodash": "*" + } + }, + "@types/node": { + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "@types/react": { + "version": "17.0.53", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.53.tgz", + "integrity": "sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-test-renderer": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz", + "integrity": "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "@types/set-cookie-parser": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", + "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "dev": true, + "requires": { + "@types/jest": "*" + } + }, + "@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", + "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dev": true, + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dev": true, + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dev": true, + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + }, + "dependencies": { + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "dev": true + } + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dev": true, + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==", + "dev": true + }, + "accepts": { + "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==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-hidden": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz", + "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==", + "dev": true, + "requires": { + "tslib": "^2.0.0" + } + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "array-uniq": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "integrity": "sha512-GVYjmpL05al4dNlKJm53mKE4w9OOLiuVHWorsIA3YVz+Hu0hcn6PtE3Ydl0EqU7v+7ABC4mjjWsnLUxbpno+CA==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dev": true, + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "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==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "axe-core": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", + "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==", + "dev": true + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "bundlesize2": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/bundlesize2/-/bundlesize2-0.0.30.tgz", + "integrity": "sha512-dVNC4zGdaRMMf+KK4Xf+wsPIuuDYrgDtZaX5gb1jX2vRCSOgrh2ka0Y3BGmcwMC0vViBg38yoap9AUXLBItZFA==", + "dev": true, + "requires": { + "bytes": "^3.1.0", + "chalk": "^4.0.0", + "ci-env": "^1.15.0", + "commander": "^5.1.0", + "cosmiconfig": "5.2.1", + "figures": "^3.2.0", + "glob": "^7.1.6", + "gzip-size": "^5.1.1", + "node-fetch": "^2.6.0", + "plur": "^4.0.0", + "right-pad": "^1.0.1" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "dev": true + }, + "card-validator": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/card-validator/-/card-validator-8.1.1.tgz", + "integrity": "sha512-cN4FsKwoTfTFnqPwVc7TQLSsH/QMDB3n/gWm0XelcApz4sKipnOQ6k33sa3bWsNnnIpgs7eXOF+mUV2UQAX2Sw==", + "dev": true, + "requires": { + "credit-card-type": "^9.1.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-launcher": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", + "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", + "dev": true, + "requires": { + "@types/node": "*", + "escape-string-regexp": "^1.0.5", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^0.5.3", + "rimraf": "^3.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "ci-env": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/ci-env/-/ci-env-1.17.0.tgz", + "integrity": "sha512-NtTjhgSEqv4Aj90TUYHQLxHdnCPXnjdtuGG1X8lTfp/JqeXTdw0FTWl/vUAPuvbWZTF8QVpv6ASe/XacE+7R2A==", + "dev": true + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "commerce-sdk-isomorphic": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/commerce-sdk-isomorphic/-/commerce-sdk-isomorphic-1.9.0.tgz", + "integrity": "sha512-fT0s/u4EEnE7R7JXGOTFc0NACpxb9CEJokZF7UI2RNlpZMb3hmvdUoBdXDuxv1Pfg6zG813Gk98J7nH5cwLOnw==", + "dev": true, + "requires": { + "cross-fetch": "^3.1.5", + "nanoid": "^3.3.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "compute-scroll-into-view": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz", + "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dev": true, + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-js-pure": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.29.0.tgz", + "integrity": "sha512-v94gUjN5UTe1n0yN/opTihJ8QBWD2O8i19RfTZR7foONPWArnjB96QA/wk5ozu1mm6ja3udQCzOzwQXTxi3xOQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "credit-card-type": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/credit-card-type/-/credit-card-type-9.1.0.tgz", + "integrity": "sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA==", + "dev": true + }, + "cross-env": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true + }, + "crypto-random-string": { + "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==", + "dev": true + }, + "csp_evaluator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", + "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==", + "dev": true + }, + "css-box-model": { + "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==", + "dev": true, + "requires": { + "tiny-invariant": "^1.0.6" + } + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "cssstyle": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", + "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "details-element-polyfill": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz", + "integrity": "sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g==", + "dev": true + }, + "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==", + "dev": true + }, + "diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true + }, + "dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "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==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "expect": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.4.3.tgz", + "integrity": "sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.4.3", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.4.3", + "jest-message-util": "^29.4.3", + "jest-util": "^29.4.3" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "dev": true + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "focus-lock": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.9.2.tgz", + "integrity": "sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "focus-visible": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/focus-visible/-/focus-visible-5.2.0.tgz", + "integrity": "sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "framer-motion": { + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-3.10.6.tgz", + "integrity": "sha512-OxOtKgQS4km9a8dm0IMBtNNp4f0DiHfQ/IzxKs818+Kg9V/Ve/pRUJ2dtWBb6+W4lIPNLgRSpbOwOACVj15XcQ==", + "dev": true, + "requires": { + "@emotion/is-prop-valid": "^0.8.2", + "framesync": "5.2.0", + "hey-listen": "^1.0.8", + "popmotion": "9.3.1", + "style-value-types": "4.1.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "@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==", + "dev": true, + "optional": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "dev": true, + "optional": true + }, + "framesync": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "framesync": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", + "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "full-icu": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.5.0.tgz", + "integrity": "sha512-BxB2otKUSFyvENjbI8EtQscpiPOEnhrf5V4MVpa6PjzsrLmdKKUUhulbydsfKS4ve6cGXNVRLlrOjizby/ZfDA==", + "dev": true, + "requires": { + "yauzl": "^2.10.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "headers-utils": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz", + "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==", + "dev": true + }, + "helmet": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", + "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", + "dev": true + }, + "hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "dev": true + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dev": true, + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "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==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-link-header": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-0.8.0.tgz", + "integrity": "sha512-qsh/wKe1Mk1vtYEFr+LpQBFWTO1gxZQBdii2D0Umj+IUQ23r5sT088Rhpq4XzpSyIpaX7vwjB8Rrtx8u9JTg+Q==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "image-ssim": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", + "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==", + "dev": true + }, + "intl-messageformat": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", + "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", + "dev": true, + "requires": { + "intl-messageformat-parser": "^1.8.1" + } + }, + "intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "dev": true + }, + "intl-pluralrules": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.3.1.tgz", + "integrity": "sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ipaddr.js": { + "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==", + "dev": true + }, + "irregular-plurals": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.4.1.tgz", + "integrity": "sha512-JR7VL+1Kd9z79bE+2uSgifpzrTwLWmTvyeUewhxZCHVtpPImAsLk4adfRxg86uvdsJ8etYYrpzN7vRT30gGnOA==", + "dev": true + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + } + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "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==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw==", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "jest-diff": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.4.3.tgz", + "integrity": "sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.4.3" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-fetch-mock": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-2.1.2.tgz", + "integrity": "sha512-tcSR4Lh2bWLe1+0w/IwvNxeDocMI/6yIA2bijZ0fyWxC4kQ18lckQ1n7Yd40NKuisGmcGBRFPandRXrW/ti/Bw==", + "dev": true, + "requires": { + "cross-fetch": "^2.2.2", + "promise-polyfill": "^7.1.1" + }, + "dependencies": { + "cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "dev": true, + "requires": { + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" + } + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "dev": true + } + } + }, + "jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true + }, + "jest-matcher-utils": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz", + "integrity": "sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.4.3" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-message-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.3.tgz", + "integrity": "sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.4.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.4.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz", + "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==", + "dev": true, + "requires": { + "@jest/types": "^29.4.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true + }, + "js-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", + "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-library-detector": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.6.0.tgz", + "integrity": "sha512-z8OkDmXALZ22bIzBtIW8cpJ39MV93/Zu1rWrFdhsNw+sity2rOLaGT2kfWWQ6mnRTWs4ddONY5kiroA8e98Gvg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "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==", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "dev": true, + "requires": { + "jsonify": "^0.0.1" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true + }, + "jsonld": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", + "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", + "dev": true, + "requires": { + "canonicalize": "^1.0.1", + "lru-cache": "^5.1.1", + "object.fromentries": "^2.0.2", + "rdf-canonize": "^2.0.1", + "request": "^2.88.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "jsonlint-mod": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz", + "integrity": "sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "JSV": "^4.0.2", + "underscore": "^1.9.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==", + "dev": true + }, + "jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lighthouse": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-7.3.0.tgz", + "integrity": "sha512-c3loU7ptP8TAlR+bBhc+5ClALx/YVRSh8m5KPiDZQ7wNYxRnhZjDDz6rLzd5gLDhjVwhjMv1APypZegDOFkKOQ==", + "dev": true, + "requires": { + "axe-core": "4.1.3", + "chrome-launcher": "^0.13.4", + "configstore": "^5.0.1", + "csp_evaluator": "^1.0.1", + "cssstyle": "1.2.1", + "details-element-polyfill": "^2.4.0", + "http-link-header": "^0.8.0", + "inquirer": "^7.3.3", + "intl": "^1.2.5", + "intl-messageformat": "^4.4.0", + "intl-pluralrules": "^1.0.3", + "jpeg-js": "^0.4.1", + "js-library-detector": "^6.4.0", + "jsonld": "^4.0.1", + "jsonlint-mod": "^1.7.6", + "lighthouse-logger": "^1.2.0", + "lighthouse-stack-packs": "^1.4.0", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "lodash.set": "^4.3.2", + "lookup-closest-locale": "6.0.4", + "metaviewport-parser": "0.2.0", + "open": "^6.4.0", + "parse-cache-control": "1.0.1", + "ps-list": "^7.2.0", + "raven": "^2.2.1", + "rimraf": "^2.6.1", + "robots-parser": "^2.0.1", + "semver": "^5.3.0", + "speedline-core": "^1.4.3", + "third-party-web": "^0.12.2", + "update-notifier": "^4.1.0", + "ws": "3.3.2", + "yargs": "^16.1.1", + "yargs-parser": "^20.2.4" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "requires": { + "ini": "1.3.7" + } + }, + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + } + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "lighthouse-logger": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", + "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", + "dev": true, + "requires": { + "debug": "^2.6.8", + "marky": "^1.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "lighthouse-stack-packs": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.9.1.tgz", + "integrity": "sha512-9prq6oMkVHz3GeCkphq4FHXXdj3M/WPiFWUvJAczLYV8j/oTxsgiHSPMqh1KVV11CP0VTxD40hFC0pDfXF+khQ==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "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==", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "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==", + "dev": true + }, + "lookup-closest-locale": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz", + "integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", + "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "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==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "metaviewport-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz", + "integrity": "sha512-qL5NtY18LGs7lvZCkj3ep2H4Pes9rIiSLZRUyfDdvVw7pWFA0eLwmqaIxApD74RGvUrNEtk9e5Wt1rT+VlCvGw==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "msw": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-0.28.2.tgz", + "integrity": "sha512-WHfRd+Zwfy8yNPAx4PDJ0PnaEqUw5QOjWbCk5MmgpHMl51R3FJ2yIC694RdqR1bInqoaV94wW9Irv9eSyh65lQ==", + "dev": true, + "requires": { + "@mswjs/cookies": "^0.1.4", + "@mswjs/interceptors": "^0.8.0", + "@open-draft/until": "^1.0.3", + "@types/cookie": "^0.4.0", + "@types/inquirer": "^7.3.1", + "@types/js-levenshtein": "^1.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cookie": "^0.4.1", + "graphql": "^15.4.0", + "headers-utils": "^3.0.2", + "inquirer": "^7.3.3", + "js-levenshtein": "^1.1.6", + "node-fetch": "^2.6.1", + "node-match-path": "^0.6.1", + "statuses": "^2.0.0", + "strict-event-emitter": "^0.2.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "njwt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/njwt/-/njwt-1.2.0.tgz", + "integrity": "sha512-i+cdqwxo7EUimJCHPSAEpQEWrz4ilsVefL+FRhWrjMqq8HHiQ8dwi9GUWUfj3Vt6XMY2PXSjMn9JeVB3/Jp6pg==", + "dev": true, + "requires": { + "@types/node": "^15.0.1", + "ecdsa-sig-formatter": "^1.0.5", + "uuid": "^8.3.2" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + } + } + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-match-path": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz", + "integrity": "sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "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==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "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==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "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==", + "dev": true + }, + "path-key": { + "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==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "popmotion": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.1.tgz", + "integrity": "sha512-Qozvg8rz2OGeZwWuIjqlSXqqgWto/+QL24ll8sAAc0n71KY/wvN1W4sAASxTuHv8YWdDnk9u9IdadyPo2DGvDA==", + "dev": true, + "requires": { + "framesync": "5.2.0", + "hey-listen": "^1.0.8", + "style-value-types": "4.1.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "framesync": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.2.0.tgz", + "integrity": "sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "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==", + "dev": true + } + } + }, + "promise-polyfill": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz", + "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "proxy-addr": { + "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==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "ps-list": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", + "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dev": true, + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "integrity": "sha512-lDVjxQQFoCG1jcrP06LNo2lbWp4QTShEXnhActFBwYuHprllQV6VUpwreApsYqCgD+N1mHoqJ/BI/4eV4R2GYg==", + "dev": true + }, + "randomstring": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.2.3.tgz", + "integrity": "sha512-3dEFySepTzp2CvH6W/ASYGguPPveBuz5MpZ7MuoUkoVehmyNl9+F9c9GFVrz2QPbM9NXTIHGcmJDY/3j4677kQ==", + "dev": true, + "requires": { + "array-uniq": "1.0.2", + "randombytes": "2.0.3" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raven": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz", + "integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==", + "dev": true, + "requires": { + "cookie": "0.3.1", + "md5": "^2.2.1", + "stack-trace": "0.0.10", + "timed-out": "4.0.1", + "uuid": "3.3.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "rdf-canonize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", + "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", + "dev": true, + "requires": { + "semver": "^6.3.0", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-clientside-effect": { + "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==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.13" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-error-boundary": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", + "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "dev": true + }, + "react-focus-lock": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.5.2.tgz", + "integrity": "sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.9.1", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.5", + "use-callback-ref": "^1.2.5", + "use-sidecar": "^1.0.5" + } + }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } + }, + "react-hook-form": { + "version": "6.15.8", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.15.8.tgz", + "integrity": "sha512-prq82ofMbnRyj5wqDe8hsTRcdR25jQ+B8KtCS7BLCzjFHAwNuCjRwzPuP4eYLsEBjEIeYd6try+pdLdw0kPkpg==", + "dev": true, + "requires": {} + }, + "react-intl": { + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz", + "integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl": "2.2.1", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.13.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + } + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "react-remove-scroll": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.4.1.tgz", + "integrity": "sha512-K7XZySEzOHMTq7dDwcHsZA6Y7/1uX5RsWhRXVYv8rdh+y9Qz2nMwl9RX/Mwnj/j7JstCGmxyfyC0zbVGXYh3mA==", + "dev": true, + "requires": { + "react-remove-scroll-bar": "^2.1.0", + "react-style-singleton": "^2.1.0", + "tslib": "^1.0.0", + "use-callback-ref": "^1.2.3", + "use-sidecar": "^1.0.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "dev": true, + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, + "react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "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==", + "dev": true + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-dom": { + "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==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-side-effect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", + "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true, + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "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==", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "right-pad": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", + "integrity": "sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "robots-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.4.0.tgz", + "integrity": "sha512-oO8f2SI04dJk3pbj2KOMJ4G6QfPAgqcGmrYGmansIcpRewIPT2ljWEt5I+ip6EgiyaLo+RXkkUWw74M25HDkMA==", + "dev": true + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "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==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "speedline-core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", + "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", + "dev": true, + "requires": { + "@types/node": "*", + "image-ssim": "^0.2.0", + "jpeg-js": "^0.4.1" + } + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "requires": { + "internal-slot": "^1.0.4" + } + }, + "strict-event-emitter": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", + "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", + "dev": true, + "requires": { + "events": "^3.3.0" + } + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, + "style-value-types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.1.tgz", + "integrity": "sha512-cNLrl6jk+I1T18ZI2KIp/fcqKVuykcNELDrOz7y+TYZR97xmNdN0ewupURvVFnQxVrRJv98TMBq92VMsggq3kw==", + "dev": true, + "requires": { + "hey-listen": "^1.0.8", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "third-party-web": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.7.tgz", + "integrity": "sha512-9d/OfjEOjyeOpnm4F9o0KSK6BI6ytvi9DINSB5h1+jdlCvQlhKpViMSxWpBN9WstdfDQ61BS6NxWqcPCuQCAJg==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "dev": true + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "dev": true + }, + "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==", + "dev": true + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "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==", + "dev": true + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "dev": true + }, + "dot-prop": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==", + "dev": true + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "dev": true, + "requires": { + "tslib": "^2.0.0" + } + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dev": true, + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, + "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==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "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==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "webcrypto-core": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", + "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", + "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} \ No newline at end of file diff --git a/packages/_stress-test-project/package.json b/packages/_stress-test-project/package.json new file mode 100644 index 0000000000..d7fdcc5aa6 --- /dev/null +++ b/packages/_stress-test-project/package.json @@ -0,0 +1,97 @@ +{ + "name": "stress-test-project", + "version": "2.8.0-dev.0", + "description": "", + "author": "cc-pwa-kit@salesforce.com", + "license": "See license in LICENSE", + "engines": { + "node": "^14.0.0 || ^16.0.0", + "npm": "^6.14.4 || ^7.0.0 || ^8.0.0" + }, + "mobify": { + "extends": "retail-react-app", + "overridesDir": "/pwa-kit/overrides" + }, + "files": [ + "CHANGELOG.md", + "LICENSE" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/SalesforceCommerceCloud/pwa-kit.git" + }, + "homepage": "https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/ecom-react-hooks#readme", + "bugs": { + "url": "https://github.com/SalesforceCommerceCloud/pwa-kit/issues" + }, + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "cross-env NODE_ICU_DATA=node_modules/full-icu pwa-kit-dev start" + }, + "devDependencies": { + "@chakra-ui/icons": "^1.0.6", + "@chakra-ui/react": "^1.7.1", + "@chakra-ui/skip-nav": "^1.1.4", + "@chakra-ui/system": "^1.12.1", + "@emotion/react": "^11.1.5", + "@emotion/styled": "^11.1.5", + "@formatjs/cli": "^4.2.27", + "@lhci/cli": "^0.7.0", + "@loadable/component": "^5.15.0", + "@peculiar/webcrypto": "^1.3.3", + "@testing-library/dom": "^9.0.0", + "@testing-library/jest-dom": "^5.16.4", + "@testing-library/react": "^11.2.5", + "@testing-library/react-hooks": "^7.0.2", + "@testing-library/user-event": "^12.8.1", + "base64-arraybuffer": "^0.2.0", + "bundlesize2": "^0.0.30", + "card-validator": "^8.1.0", + "commerce-sdk-isomorphic": "^1.9.0", + "cross-env": "^5.2.0", + "cross-fetch": "^3.1.5", + "focus-visible": "^5.2.0", + "framer-motion": "^3.7.0", + "full-icu": "^1.3.1", + "helmet": "^4.6.0", + "jest-fetch-mock": "^2.1.2", + "js-cookie": "^3.0.1", + "jwt-decode": "^3.1.2", + "lodash": "^4.17.21", + "msw": "^0.28.1", + "nanoid": "^3.1.31", + "njwt": "^1.2.0", + "prop-types": "^15.6.0", + "pwa-kit-dev": "^2.8.0-dev.0", + "pwa-kit-react-sdk": "^2.8.0-dev.0", + "pwa-kit-runtime": "^2.8.0-dev.0", + "query-string": "^7.0.1", + "raf": "^3.4.0", + "randomstring": "^1.2.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-helmet": "^6.1.0", + "react-hook-form": "^6.15.5", + "react-intl": "^5.13.1", + "react-router-dom": "^5.1.2" + }, + "peerDependencies": { + "@chakra-ui/system": "^1.12.1" + }, + "bundlesize": [ + { + "path": "build/main.js", + "maxSize": "55 kB" + }, + { + "path": "build/vendor.js", + "maxSize": "275 kB" + } + ], + "browserslist": [ + "iOS >= 9.0", + "Android >= 4.4.4", + "last 4 ChromeAndroid versions" + ] +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/brand-logo.svg b/packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/brand-logo.svg new file mode 100644 index 0000000000..99708f8e28 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/brand-logo.svg @@ -0,0 +1 @@ + diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/heart.svg b/packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/heart.svg new file mode 100644 index 0000000000..37700aa420 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/assets/svg/heart.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/__mocks__/einstein.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/__mocks__/einstein.js new file mode 100644 index 0000000000..a21aa806c1 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/__mocks__/einstein.js @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import { + mockGetZoneRecommendationsResponse, + mockRecommendationsResponse, + mockRecommendersResponse +} from '../mocks/einstein-mock-data' +import {keysToCamel} from '../utils' + +class EinsteinAPI { + constructor(commerceAPI) { + this.commerceAPI = commerceAPI + this.config = commerceAPI._config.einsteinConfig + } + + async sendViewProduct() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendViewSearch() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendClickSearch() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendViewCategory() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendClickCategory() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendViewPage() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendBeginCheckout() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendCheckoutStep() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendViewReco() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendClickReco() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async sendAddToCart() { + return {requestId: 'test-req-id', uuid: 'test-uuid'} + } + + async getRecommenders() { + return keysToCamel(mockRecommendersResponse) + } + + async getRecommendations() { + return this.fetchRecProductDetails(mockRecommendationsResponse) + } + + async getZoneRecommendations() { + return this.fetchRecProductDetails(mockGetZoneRecommendationsResponse) + } + + async fetchRecProductDetails(reco) { + return { + ...reco, + recs: keysToCamel(reco).recs.map((r) => ({ + ...r, + productId: r.id, + image: {disBaseLink: r.imageUrl}, + currency: 'USD', + price: 5.99 + })) + } + } +} + +export default EinsteinAPI diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/auth.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/auth.js new file mode 100644 index 0000000000..b85644ea06 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/auth.js @@ -0,0 +1,501 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +/* eslint-disable no-unused-vars */ +import {getAppOrigin} from 'pwa-kit-react-sdk/utils/url' +import {HTTPError} from 'pwa-kit-react-sdk/ssr/universal/errors' +import {createCodeVerifier, generateCodeChallenge} from './pkce' +import {isTokenValid, createGetTokenBody} from './utils' +import fetch from 'cross-fetch' +import Cookies from 'js-cookie' + +/** + * An object containing the customer's login credentials. + * @typedef {Object} CustomerCredentials + * @property {string} credentials.email + * @property {string} credentials.password + */ + +/** + * Salesforce Customer object. + * {@link https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shoppercustomers.html#customer}} + * @typedef {Object} Customer + */ + +const usidStorageKey = 'usid' +const cidStorageKey = 'cid' +const encUserIdStorageKey = 'enc-user-id' +const tokenStorageKey = 'token' +const refreshTokenRegisteredStorageKey = 'cc-nx' +const refreshTokenGuestStorageKey = 'cc-nx-g' +const oidStorageKey = 'oid' +const dwSessionIdKey = 'dwsid' +const REFRESH_TOKEN_COOKIE_AGE = 90 // 90 days. This value matches SLAS cartridge. + +const EXPIRED_TOKEN = 'EXPIRED_TOKEN' +const INVALID_TOKEN = 'invalid refresh_token' + +/** + * A class that provides auth functionality for the retail react app. + */ +const slasCallbackEndpoint = '/callback' +class Auth { + constructor(api) { + this._api = api + this._config = api._config + this._onClient = typeof window !== 'undefined' + + // To store tokens as cookies + // change the next line to + // this._storage = this._onClient ? new CookieStorage() : new Map() + this._storage = this._onClient ? new LocalStorage() : new Map() + + const configOid = api._config.parameters.organizationId + if (!this.oid) { + this.oid = configOid + } + + if (this.oid !== configOid) { + this._clearAuth() + this.oid = configOid + } + + this.login = this.login.bind(this) + this.logout = this.logout.bind(this) + } + + /** + * Enum for user types + * @enum {string} + */ + static USER_TYPE = { + REGISTERED: 'registered', + GUEST: 'guest' + } + + /** + * Returns the api client configuration + * @returns {boolean} + */ + get pendingLogin() { + return this._pendingLogin + } + + get authToken() { + return this._storage.get(tokenStorageKey) + } + + set authToken(token) { + this._storage.set(tokenStorageKey, token) + } + + get userType() { + return this._storage.get(refreshTokenRegisteredStorageKey) + ? Auth.USER_TYPE.REGISTERED + : Auth.USER_TYPE.GUEST + } + + get refreshToken() { + const storageKey = + this.userType === Auth.USER_TYPE.REGISTERED + ? refreshTokenRegisteredStorageKey + : refreshTokenGuestStorageKey + return this._storage.get(storageKey) + } + + get usid() { + return this._storage.get(usidStorageKey) + } + + set usid(usid) { + this._storage.set(usidStorageKey, usid) + } + + get cid() { + return this._storage.get(cidStorageKey) + } + + set cid(cid) { + this._storage.set(cidStorageKey, cid) + } + + get encUserId() { + return this._storage.get(encUserIdStorageKey) + } + + set encUserId(encUserId) { + this._storage.set(encUserIdStorageKey, encUserId) + } + + get oid() { + return this._storage.get(oidStorageKey) + } + + set oid(oid) { + this._storage.set(oidStorageKey, oid) + } + + /** + * Save refresh token in designated storage. + * + * @param {string} token The refresh token. + * @param {USER_TYPE} type Type of the user. + */ + _saveRefreshToken(token, type) { + if (type === Auth.USER_TYPE.REGISTERED) { + this._storage.set(refreshTokenRegisteredStorageKey, token, { + expires: REFRESH_TOKEN_COOKIE_AGE + }) + this._storage.delete(refreshTokenGuestStorageKey) + return + } + + this._storage.set(refreshTokenGuestStorageKey, token, {expires: REFRESH_TOKEN_COOKIE_AGE}) + this._storage.delete(refreshTokenRegisteredStorageKey) + } + + /** + * Called with the details from the redirect page that _loginWithCredentials returns + * I think it's best we leave it to developers on how and where to call from + * @param {{grantType, code, usid, codeVerifier, redirectUri}} requestDetails - The cutomerId of customer to get. + */ + async getLoggedInToken(requestDetails) { + const data = new URLSearchParams() + const {grantType, code, usid, codeVerifier, redirectUri} = requestDetails + data.append('code', code) + data.append('grant_type', grantType) + data.append('usid', usid) + data.append('code_verifier', codeVerifier) + data.append('client_id', this._config.parameters.clientId) + data.append('redirect_uri', redirectUri) + + const options = { + headers: { + 'Content-Type': `application/x-www-form-urlencoded` + }, + body: data + } + + const response = await this._api.shopperLogin.getAccessToken(options) + // Check for error response before handling the token + if (response.status_code) { + throw new HTTPError(response.status_code, response.message) + } + this._handleShopperLoginTokenResponse(response) + return response + } + + /** + * Authorizes the customer as a registered or guest user. + * @param {CustomerCredentials} [credentials] + * @returns {Promise} + */ + async login(credentials) { + // Calling login while its already pending will return a reference + // to the existing promise. + if (this._pendingLogin) { + return this._pendingLogin + } + let retries = 0 + const startLoginFlow = () => { + let authorizationMethod = '_loginAsGuest' + if (credentials) { + authorizationMethod = '_loginWithCredentials' + } else if (isTokenValid(this.authToken)) { + authorizationMethod = '_reuseCurrentLogin' + } else if (this.refreshToken) { + authorizationMethod = '_refreshAccessToken' + } + return this[authorizationMethod](credentials).catch((error) => { + const retryErrors = [INVALID_TOKEN, EXPIRED_TOKEN] + if (retries === 0 && retryErrors.includes(error.message)) { + retries = 1 // we only retry once + this._clearAuth() + return startLoginFlow() + } + throw error + }) + } + + this._pendingLogin = startLoginFlow().finally(() => { + // When the promise is resolved, we need to remove the reference so + // that subsequent calls to `login` can proceed. + this._pendingLogin = undefined + }) + + return this._pendingLogin + } + + /** + * Clears the stored auth token and optionally logs back in as guest. + * @param {boolean} [shouldLoginAsGuest=true] - Indicates if we should automatically log back in as a guest + * @returns {(Promise|undefined)} + */ + async logout(shouldLoginAsGuest = true) { + const options = { + parameters: { + refresh_token: this.refreshToken, + client_id: this._config.parameters.clientId, + channel_id: this._config.parameters.siteId + } + } + await this._api.shopperLogin.logoutCustomer(options, true) + await this._clearAuth() + if (shouldLoginAsGuest) { + return this.login() + } + } + + /** + * Handles Response from ShopperLogin GetAccessToken, calls the getCustomer method and removes the PCKE code verifier from session storage + * @private + * @param {object} tokenResponse - access_token,id_token,refresh_token, expires_in,token_type, usid, customer_id, enc_user_id, idp_access_token + */ + _handleShopperLoginTokenResponse(tokenResponse) { + const {access_token, refresh_token, customer_id, usid, enc_user_id, id_token} = + tokenResponse + this.authToken = `Bearer ${access_token}` + this.usid = usid + this.cid = customer_id + + // we use id_token to distinguish guest and registered users + if (id_token.length > 0) { + this.encUserId = enc_user_id + this._saveRefreshToken(refresh_token, Auth.USER_TYPE.REGISTERED) + } else { + this._saveRefreshToken(refresh_token, Auth.USER_TYPE.GUEST) + } + + if (this._onClient) { + sessionStorage.removeItem('codeVerifier') + } + } + + async _reuseCurrentLogin() { + // we're reusing the same token so we just need to return the customer object already associated with the token + const customer = { + authType: this.userType, + customerId: this.cid + } + + return customer + } + + /** + * Begins oAuth PCKE Flow + * @param {{email, password}}} credentials - User Credentials. + * @returns {object} - a skeleton registered customer object that can be used to retrieve a complete customer object + */ + async _loginWithCredentials(credentials) { + const codeVerifier = createCodeVerifier() + const codeChallenge = await generateCodeChallenge(codeVerifier) + + sessionStorage.setItem('codeVerifier', codeVerifier) + + const authorization = `Basic ${btoa(`${credentials.email}:${credentials.password}`)}` + const options = { + headers: { + Authorization: authorization, + 'Content-Type': `application/x-www-form-urlencoded` + }, + body: { + redirect_uri: `${getAppOrigin()}${slasCallbackEndpoint}`, + client_id: this._config.parameters.clientId, + code_challenge: codeChallenge, + channel_id: this._config.parameters.siteId, + usid: this.usid // mergeBasket API requires guest usid to be sent in the authToken + } + } + + const response = await this._api.shopperLogin.authenticateCustomer(options, true) + if (response.status >= 400) { + const json = await response.json() + throw new HTTPError(response.status, json.message) + } + + const tokenBody = createGetTokenBody( + response.url, + `${getAppOrigin()}${slasCallbackEndpoint}`, + window.sessionStorage.getItem('codeVerifier') + ) + + const {customer_id} = await this.getLoggedInToken(tokenBody) + const customer = { + customerId: customer_id, + authType: Auth.USER_TYPE.REGISTERED + } + + return customer + } + + /** + * Begins oAuth PCKE Flow for guest + * @returns {object} - a guest customer object + */ + async _loginAsGuest() { + const codeVerifier = createCodeVerifier() + const codeChallenge = await generateCodeChallenge(codeVerifier) + + if (this._onClient) { + sessionStorage.setItem('codeVerifier', codeVerifier) + } + + const options = { + headers: { + Authorization: '', + 'Content-Type': `application/x-www-form-urlencoded` + }, + parameters: { + redirect_uri: `${getAppOrigin()}${slasCallbackEndpoint}`, + client_id: this._config.parameters.clientId, + code_challenge: codeChallenge, + response_type: 'code', + hint: 'guest' + } + } + + const response = await this._api.shopperLogin.authorizeCustomer(options, true) + if (response.status >= 400) { + let text = await response.text() + let errorMessage = text + try { + const data = JSON.parse(text) + if (data.message) { + errorMessage = data.message + } + } catch {} // eslint-disable-line no-empty + throw new HTTPError(response.status, errorMessage) + } + + const tokenBody = createGetTokenBody( + response.url, + `${getAppOrigin()}${slasCallbackEndpoint}`, + this._onClient ? window.sessionStorage.getItem('codeVerifier') : codeVerifier + ) + + const {customer_id} = await this.getLoggedInToken(tokenBody) + + // A guest customerId will never return a customer from the customer endpoint + const customer = { + authType: Auth.USER_TYPE.GUEST, + customerId: customer_id + } + + return customer + } + + /** + * Creates a guest session + * @private + * @returns {*} - The response to be passed back to original caller. + */ + async _createGuestSession() { + const loginType = 'guest' + const options = { + body: { + type: loginType + } + } + + const rawResponse = await this._api.shopperCustomers.authorizeCustomer(options, true) + return rawResponse + } + + /** + * Refreshes Logged In Token + * @private + * @returns {} - Handle Shopper Login Promise + */ + async _refreshAccessToken() { + const data = new URLSearchParams() + data.append('grant_type', 'refresh_token') + data.append('refresh_token', this.refreshToken) + data.append('client_id', this._config.parameters.clientId) + + const options = { + headers: { + 'Content-Type': `application/x-www-form-urlencoded` + }, + body: data + } + const response = await this._api.shopperLogin.getAccessToken(options) + // Check for error response before handling the token + if (response.status_code) { + throw new HTTPError(response.status_code, response.message) + } + this._handleShopperLoginTokenResponse(response) + + const {id_token, enc_user_id, customer_id} = response + let customer = { + authType: Auth.USER_TYPE.GUEST, + customerId: customer_id + } + // Determining if registered customer or guest + if (id_token.length > 0 && enc_user_id.length > 0) { + customer.authType = Auth.USER_TYPE.REGISTERED + } + return customer + } + + /** + * Removes the stored auth token. + * @private + */ + _clearAuth() { + this._storage.delete(tokenStorageKey) + this._storage.delete(refreshTokenRegisteredStorageKey) + this._storage.delete(refreshTokenGuestStorageKey) + this._storage.delete(usidStorageKey) + this._storage.delete(cidStorageKey) + this._storage.delete(encUserIdStorageKey) + this._storage.delete(dwSessionIdKey) + } +} + +export default Auth + +class Storage { + set(key, value, options) {} + get(key) {} + delete(key) {} +} + +class CookieStorage extends Storage { + constructor(...args) { + super(args) + if (typeof document === 'undefined') { + throw new Error('CookieStorage is not avaliable on the current environment.') + } + } + set(key, value, options) { + Cookies.set(key, value, {secure: true, ...options}) + } + get(key) { + return Cookies.get(key) + } + delete(key) { + Cookies.remove(key) + } +} + +class LocalStorage extends Storage { + constructor(...args) { + super(args) + if (typeof window === 'undefined') { + throw new Error('LocalStorage is not avaliable on the current environment.') + } + } + set(key, value) { + window.localStorage.setItem(key, value) + } + get(key) { + return window.localStorage.getItem(key) + } + delete(key) { + window.localStorage.removeItem(key) + } +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/contexts.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/contexts.js new file mode 100644 index 0000000000..1f5b9be41a --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/contexts.js @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import React, {createContext, useContext, useReducer} from 'react' + +/** + * Provider and associated hook for accessing the Commerce API in React components. + */ +export const CommerceAPIContext = createContext() +export const CommerceAPIProvider = CommerceAPIContext.Provider +export const useCommerceAPI = () => useContext(CommerceAPIContext) + +/** + * There are a few sources of global state in the react retail storefront. + * Using React Context we implement a simple shared global state allowing + * you can update and use either state from anywhere in the application. + * + * If your global state needs require a more robust solution, these contexts can be + * replaced by a third party state management library of your choosing, such as MobX + * or Redux. + * + * To use these context's simply import them into the component requiring context + * like the below example: + * + * import React, {useContext} from 'react' + * import {BasketContext} from 'components/_app-config' + * + * export const Avatar = () => { + * const {customer} = useContext(BasketContext) + * return
{customer.name}
+ * } + * + */ + +/************ Basket ************/ +export const BasketContext = createContext() +export const BasketProvider = BasketContext.Provider + +/************ Customer ************/ +export const CustomerContext = createContext() +export const CustomerProvider = CustomerContext.Provider + +/************ Customer Product Lists ************/ +const CPLInitialValue = { + // this is an object of product lists + // keyed by list id, initial state + // being undefined indicates the + // product lists is not initialized + productLists: undefined +} +const CPLActionTypes = { + RECEIVE_LISTS: 'RECEIVE_LISTS', + RECEIVE_LIST: 'RECEIVE_LIST', + CREATE_LIST_ITEM: 'CREATE_LIST_ITEM', + UPDATE_LIST_ITEM: 'UPDATE_LIST_ITEM', + REMOVE_LIST_ITEM: 'REMOVE_LIST_ITEM', + RESET: 'RESET' +} +export const CustomerProductListsContext = createContext(CPLInitialValue) +// eslint-disable-next-line react/prop-types +export const CustomerProductListsProvider = ({children}) => { + const [state, dispatch] = useReducer((state, {type, payload}) => { + switch (type) { + case CPLActionTypes.RECEIVE_LISTS: { + const productLists = payload.reduce((acc, curr) => { + return { + ...acc, + [curr.id]: curr + } + }, {}) + return {...state, productLists} + } + case CPLActionTypes.RECEIVE_LIST: { + const {id} = payload + // Tips: if you are unfamiliar with the concept of + // reducers, keep in mind that reducers must be pure. + // For an action like this, you must update every + // level of nested data to avoid unexpected side effects + return { + ...state, + productLists: { + ...state.productLists, + [id]: payload + } + } + } + case CPLActionTypes.CREATE_LIST_ITEM: { + const {listId, item} = payload + const {productId} = item + const items = state.productLists[listId]?.customerProductListItems || [] + + // if the item is already added to the list + // we update the existing item + const existingItemIndex = items.findIndex((i) => i.productId === productId) + if (existingItemIndex >= 0) { + items[existingItemIndex] = item + } else { + items.push(item) + } + return { + ...state, + productLists: { + ...state.productLists, + [listId]: { + ...state.productLists[listId], + customerProductListItems: items + } + } + } + } + case CPLActionTypes.UPDATE_LIST_ITEM: { + const {listId, item} = payload + const items = state.productLists[listId].customerProductListItems?.map( + (listItem) => { + if (listItem.id === item.id) { + return { + ...listItem, + ...item + } + } + return listItem + } + ) + return { + ...state, + productLists: { + ...state.productLists, + [listId]: { + ...state.productLists[listId], + customerProductListItems: items + } + } + } + } + case CPLActionTypes.REMOVE_LIST_ITEM: { + const {listId, itemId} = payload + const productLists = { + ...state.productLists + } + productLists[listId].customerProductListItems = productLists[ + listId + ].customerProductListItems?.filter((listItem) => { + return listItem.id !== itemId + }) + return {...state, productLists} + } + case CPLActionTypes.RESET: { + return {...CPLInitialValue} + } + default: + throw new Error('Unknown action.') + } + }, CPLInitialValue) + + const actions = { + receiveLists: (lists) => dispatch({type: CPLActionTypes.RECEIVE_LISTS, payload: lists}), + receiveList: (list) => dispatch({type: CPLActionTypes.RECEIVE_LIST, payload: list}), + createListItem: (listId, item) => + dispatch({type: CPLActionTypes.CREATE_LIST_ITEM, payload: {listId, item}}), + updateListItem: (listId, item) => + dispatch({type: CPLActionTypes.UPDATE_LIST_ITEM, payload: {listId, item}}), + removeListItem: (listId, itemId) => + dispatch({type: CPLActionTypes.REMOVE_LIST_ITEM, payload: {listId, itemId}}), + reset: () => dispatch({type: CPLActionTypes.RESET}) + } + + return ( + + {children} + + ) +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.js new file mode 100644 index 0000000000..7563d204a4 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.js @@ -0,0 +1,419 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import fetch from 'cross-fetch' +import {keysToCamel} from './utils' + +class EinsteinAPI { + constructor(commerceAPI) { + this.commerceAPI = commerceAPI + this.config = commerceAPI?._config?.einsteinConfig + } + + /** + * Given a POJO append the correct user and cookie identifier values using the current auth state. + * + * @param {object} params + * @returns {object} The decorated body object. + */ + _buildBody(params) { + const instanceType_prd = 'prd' + const instanceType_sbx = 'sbx' + + const body = {...params} + + // If we have an encrypted user id (authenticaed users only) use it as the `userId` otherwise + // we won't send a `userId` param for guest users. + if (this.commerceAPI.auth.encUserId) { + body.userId = this.commerceAPI.auth.encUserId + } + + // Append the `usid` as the `cookieId` value if present. (It should always be present as long + // as the user is initilized) + if (this.commerceAPI.auth.usid) { + body.cookieId = this.commerceAPI.auth.usid + } else { + console.warn('Missing `cookieId`. For optimal results this value must be defined.') + } + + // The first part of the siteId is the realm + if (this.config.siteId) { + body.realm = this.config.siteId.split('-')[0] + } + + if (this.config.isProduction) { + body.instanceType = instanceType_prd + } else { + body.instanceType = instanceType_sbx + } + + return body + } + + /** + * Given a product or item source, returns the product data that Einstein requires + */ + _constructEinsteinProduct(product) { + if (product.type && (product.type.master || product.type.variant)) { + // handle variants for PDP / viewProduct + // Assumes product is a Product object from SCAPI Shopper-Products: + // https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-products?meta=type%3AProduct + return { + id: product.master.masterId, + sku: product.id, + altId: '', + altIdType: '' + } + } else if ( + product.productType && + (product.productType.master || + product.productType.variant || + product.productType.set || + product.productType.bundle || + product.productType.variationGroup || + product.productType.item) + ) { + // handle variants & sets for PLP / viewCategory & viewSearch + // Assumes product is a ProductSearchHit from SCAPI Shopper-Search: + // https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-search?meta=type%3AProductSearchHit + return { + id: product.productId, + sku: product.productId, //TODO: Should we switch this to product.representedProduct.id once we allow non-master products in search results? + altId: '', + altIdType: '' + } + } else { + // handles non-variants + return { + id: product.id, + sku: '', + altId: '', + altIdType: '' + } + } + } + + /** + * Given a cart item, returns the data that Einstein requires + * + * Assumes item is a ProductItemfrom SCAPI Shopper-Baskets: + * https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets?meta=type%3AProductItem + */ + _constructEinsteinItem(item) { + return { + id: item.productId, + sku: '', + price: item.price, + quantity: item.quantity + } + } + + async einsteinFetch(endpoint, method, body) { + const config = this.config + const {host, einsteinId} = config + + const headers = { + 'Content-Type': 'application/json', + 'x-cq-client-id': einsteinId + } + + // Include `userId` and `cookieId` parameters. + if (body) { + body = this._buildBody(body) + } + + let response + try { + response = await fetch(`${host}/v3${endpoint}`, { + method: method, + headers: headers, + ...(body && { + body: JSON.stringify(body) + }) + }) + } catch { + console.warn('Einstein request failed') + } + + if (!response?.ok) { + return {} + } + + const responseJson = await response.json() + + return keysToCamel(responseJson) + } + + /** + * Tells the Einstein engine when a user views a product. + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async sendViewProduct(product, args) { + const endpoint = `/activities/${this.config.siteId}/viewProduct` + const method = 'POST' + const body = { + product: this._constructEinsteinProduct(product), + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user views search results. + **/ + async sendViewSearch(searchText, searchResults, args) { + const endpoint = `/activities/${this.config.siteId}/viewSearch` + const method = 'POST' + + const products = searchResults?.hits?.map((product) => + this._constructEinsteinProduct(product) + ) + + const body = { + searchText, + products, + showProducts: true, // Needed by Reports and Dashboards to differentiate searches with results vs no results + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user clicks on a search result. + **/ + async sendClickSearch(searchText, product, args) { + const endpoint = `/activities/${this.config.siteId}/clickSearch` + const method = 'POST' + const body = { + searchText, + product: this._constructEinsteinProduct(product), + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user views a category. + **/ + async sendViewCategory(category, searchResults, args) { + const endpoint = `/activities/${this.config.siteId}/viewCategory` + const method = 'POST' + + const products = searchResults?.hits?.map((product) => + this._constructEinsteinProduct(product) + ) + + const body = { + category: { + id: category.id + }, + products, + showProducts: true, // Needed by Reports and Dashboards to differentiate searches with results vs no results + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user clicks a product from the category page. + * Not meant to be used when the user clicks a category from the nav bar. + **/ + async sendClickCategory(category, product, args) { + const endpoint = `/activities/${this.config.siteId}/clickCategory` + const method = 'POST' + const body = { + category: { + id: category.id + }, + product: this._constructEinsteinProduct(product), + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user views a set of recommendations + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async sendViewReco(recommenderDetails, products, args) { + const endpoint = `/activities/${this.config.siteId}/viewReco` + const method = 'POST' + const {__recoUUID, recommenderName} = recommenderDetails + const body = { + recommenderName, + __recoUUID, + products: products, + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user clicks on a recommendation + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async sendClickReco(recommenderDetails, product, args) { + const endpoint = `/activities/${this.config.siteId}/clickReco` + const method = 'POST' + const {__recoUUID, recommenderName} = recommenderDetails + const body = { + recommenderName, + __recoUUID, + product: this._constructEinsteinProduct(product), + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user views a page. + * Use this only for pages where another activity does not fit. (ie. on the PDP, use viewProduct rather than this) + **/ + async sendViewPage(path, args) { + const endpoint = `/activities/${this.config.siteId}/viewPage` + const method = 'POST' + const body = { + currentLocation: path, + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user starts the checkout process. + **/ + async sendBeginCheckout(basket, args) { + const endpoint = `/activities/${this.config.siteId}/beginCheckout` + const method = 'POST' + const products = basket.productItems.map((item) => this._constructEinsteinItem(item)) + const subTotal = basket.productSubTotal + const body = { + products: products, + amount: subTotal, + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user reaches the given step during checkout. + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async sendCheckoutStep(stepName, stepNumber, basket, args) { + const endpoint = `/activities/${this.config.siteId}/checkoutStep` + const method = 'POST' + const body = { + stepName, + stepNumber, + basketId: basket.basketId, + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Tells the Einstein engine when a user adds an item to their cart. + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async sendAddToCart(item, args) { + const endpoint = `/activities/${this.config.siteId}/addToCart` + const method = 'POST' + const body = { + products: [this._constructEinsteinItem(item)], + ...args + } + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Get a list of recommenders that can be used in recommendation requests. + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async getRecommenders() { + const endpoint = `/personalization/recommenders/${this.config.siteId}` + const method = 'GET' + const body = null + + return this.einsteinFetch(endpoint, method, body) + } + + /** + * Get a set of recommendations + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async getRecommendations(recommenderName, products, args) { + const endpoint = `/personalization/recs/${this.config.siteId}/${recommenderName}` + const method = 'POST' + const body = { + products: products?.map((product) => this._constructEinsteinProduct(product)), + ...args + } + + // Fetch the recommendations + const reco = await this.einsteinFetch(endpoint, method, body) + + reco.recommenderName = recommenderName + + return this.fetchRecProductDetails(reco) + } + + /** + * Get a set of recommendations for a zone + * https://developer.salesforce.com/docs/commerce/einstein-api/references#einstein-recommendations:Summary + **/ + async getZoneRecommendations(zoneName, products, args) { + const endpoint = `/personalization/${this.config.siteId}/zones/${zoneName}/recs` + const method = 'POST' + + const body = { + products: products?.map((product) => this._constructEinsteinProduct(product)), + ...args + } + + // Fetch the recommendations + const reco = await this.einsteinFetch(endpoint, method, body) + + return this.fetchRecProductDetails(reco) + } + + async fetchRecProductDetails(reco) { + const ids = reco.recs?.map((rec) => rec.id) + if (ids?.length > 0) { + // Fetch the product details for the recommendations + const products = await this.commerceAPI.shopperProducts.getProducts({ + parameters: {ids: ids.join(',')} + }) + + // Merge the product detail into the recommendations response + return { + ...reco, + recs: reco.recs.map((rec) => { + const product = products?.data?.find((product) => product.id === rec.id) + return { + ...rec, + ...product, + productId: rec.id, + image: {disBaseLink: rec.imageUrl, alt: rec.productName} + } + }) + } + } + return reco + } +} + +export default EinsteinAPI diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.test.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.test.js new file mode 100644 index 0000000000..79a843ea38 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/einstein.test.js @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import fetch from 'cross-fetch' +import EinsteinAPI from './einstein' +import { + mockAddToCartProduct, + mockGetZoneRecommendationsResponse, + mockProduct, + mockCategory, + mockSearchResults, + mockBasket, + mockRecommendationsResponse, + mockRecommenderDetails +} from './mocks/einstein-mock-data' + +jest.mock('cross-fetch', () => { + return { + __esModule: true, + default: jest.fn(() => ({json: jest.fn(), ok: true})) + } +}) + +const getProductsSpy = jest.fn() +const config = { + _config: { + einsteinConfig: { + host: `http://localhost/test-path`, + einsteinId: 'test-id', + siteId: 'test-site-id' + } + }, + auth: {usid: 'test-usid'}, + shopperProducts: { + getProducts: getProductsSpy + } +} + +const einsteinApi = new EinsteinAPI(config) + +beforeEach(() => { + jest.resetModules() + fetch.mockClear() +}) + +describe('EinsteinAPI', () => { + test('viewProduct sends expected api request', async () => { + await einsteinApi.sendViewProduct(mockProduct) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/viewProduct', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"product":{"id":"56736828M","sku":"56736828M","altId":"","altIdType":""},"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('viewSearch sends expected api request', async () => { + const searchTerm = 'tie' + await einsteinApi.sendViewSearch(searchTerm, mockSearchResults) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/viewSearch', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"searchText":"tie","products":[{"id":"25752986M","sku":"25752986M","altId":"","altIdType":""},{"id":"25752235M","sku":"25752235M","altId":"","altIdType":""},{"id":"25752218M","sku":"25752218M","altId":"","altIdType":""},{"id":"25752981M","sku":"25752981M","altId":"","altIdType":""}],"showProducts":true,"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('viewCategory sends expected api request', async () => { + await einsteinApi.sendViewCategory(mockCategory, mockSearchResults) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/viewCategory', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"category":{"id":"mens-accessories-ties"},"products":[{"id":"25752986M","sku":"25752986M","altId":"","altIdType":""},{"id":"25752235M","sku":"25752235M","altId":"","altIdType":""},{"id":"25752218M","sku":"25752218M","altId":"","altIdType":""},{"id":"25752981M","sku":"25752981M","altId":"","altIdType":""}],"showProducts":true,"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('clickSearch sends expected api request', async () => { + const searchTerm = 'tie' + const clickedProduct = mockSearchResults.hits[0] + await einsteinApi.sendClickSearch(searchTerm, clickedProduct) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/clickSearch', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"searchText":"tie","product":{"id":"25752986M","sku":"25752986M","altId":"","altIdType":""},"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('clickCategory sends expected api request', async () => { + const clickedProduct = mockSearchResults.hits[0] + await einsteinApi.sendClickCategory(mockCategory, clickedProduct) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/clickCategory', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"category":{"id":"mens-accessories-ties"},"product":{"id":"25752986M","sku":"25752986M","altId":"","altIdType":""},"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('viewPage sends expected api request', async () => { + const path = '/' + await einsteinApi.sendViewPage(path) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/viewPage', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"currentLocation":"/","cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('beginCheckout sends expected api request', async () => { + await einsteinApi.sendBeginCheckout(mockBasket) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/beginCheckout', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"products":[{"id":"682875719029M","sku":"","price":29.99,"quantity":1}],"amount":29.99,"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('checkouStep sends expected api request', async () => { + const checkoutStepName = 'CheckoutStep' + const checkoutStep = 0 + await einsteinApi.sendCheckoutStep(checkoutStepName, checkoutStep, mockBasket) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/checkoutStep', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"stepName":"CheckoutStep","stepNumber":0,"basketId":"f6bbeee30fb93c2f94213f60f8","cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('addToCart sends expected api request', async () => { + await einsteinApi.sendAddToCart(mockAddToCartProduct) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/addToCart', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"products":[{"id":"883360544021M","sku":"","price":155,"quantity":1}],"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('clickRecommendation sends expected api request', async () => { + await einsteinApi.sendClickReco(mockRecommenderDetails, mockProduct) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/clickReco', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"recommenderName":"testRecommender","__recoUUID":"883360544021M","product":{"id":"56736828M","sku":"56736828M","altId":"","altIdType":""},"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('viewRecommendation sends expected api request', async () => { + await einsteinApi.sendViewReco(mockRecommenderDetails, {id: 'test-reco'}) + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/activities/test-site-id/viewReco', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"recommenderName":"testRecommender","__recoUUID":"883360544021M","products":{"id":"test-reco"},"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + }) + + test('getZoneRecommendations fetches recs and product detail and returns merged results', async () => { + fetch.mockImplementationOnce(() => { + return { + json: async () => { + return mockGetZoneRecommendationsResponse + }, + ok: true + } + }) + + getProductsSpy.mockImplementationOnce(() => ({ + data: [ + { + id: 'prod_123', + price: 5.99 + } + ] + })) + + const res = await einsteinApi.getZoneRecommendations('mockZoneName') + + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/personalization/test-site-id/zones/mockZoneName/recs', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + + expect(res).toEqual({ + displayMessage: 'Recently Viewed', + recommenderName: 'recently-viewed-products', + recoUUID: '05e0bd80-64eb-4149-ad5a-dfe1996f8f57', + recs: [ + { + id: 'prod_123', + productName: 'Product ABC', + productUrl: 'prod_abc.test.com', + imageUrl: 'prod_abc.test.com', + price: 5.99, + productId: 'prod_123', + image: { + disBaseLink: 'prod_abc.test.com', + alt: 'Product ABC' + } + } + ] + }) + }) + + test('getRecommendations fetches recs and product detail and returns merged results', async () => { + fetch.mockImplementationOnce(() => { + return { + json: async () => { + return mockRecommendationsResponse + }, + ok: true + } + }) + + getProductsSpy.mockImplementationOnce(() => ({ + data: [ + { + id: 'prod_123', + price: 5.99 + } + ] + })) + + const res = await einsteinApi.getRecommendations('testRecommenderName') + + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/personalization/recs/test-site-id/testRecommenderName', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + }, + body: '{"cookieId":"test-usid","realm":"test","instanceType":"sbx"}' + } + ) + + expect(res).toEqual({ + recommenderName: 'testRecommenderName', + recoUUID: '05e0bd80-64eb-4149-ad5a-dfe1996f8f57', + recs: [ + { + id: 'prod_123', + productName: 'Product ABC', + productUrl: 'prod_abc.test.com', + imageUrl: 'prod_abc.test.com', + price: 5.99, + productId: 'prod_123', + image: { + disBaseLink: 'prod_abc.test.com', + alt: 'Product ABC' + } + } + ] + }) + }) + + test('getRecommenders send expected api request', async () => { + await einsteinApi.getRecommenders() + + expect(fetch).toHaveBeenCalledWith( + 'http://localhost/test-path/v3/personalization/recommenders/test-site-id', + { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'x-cq-client-id': 'test-id' + } + } + ) + }) +}) diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useBasket.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useBasket.js new file mode 100644 index 0000000000..8e085a21e1 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useBasket.js @@ -0,0 +1,420 @@ +/* + * Copyright (c) 2022, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useContext, useMemo} from 'react' +import useEinstein from './useEinstein' +import {useCommerceAPI, BasketContext} from '../contexts' +import useCustomer from './useCustomer' +import {isError} from '../utils' + +export default function useBasket(opts = {}) { + const {currency} = opts + const api = useCommerceAPI() + const customer = useCustomer() + const einstein = useEinstein() + const {basket, setBasket: _setBasket} = useContext(BasketContext) + + const setBasket = (basketData) => { + const _productItemsDetail = basket?._productItemsDetail + _setBasket({_productItemsDetail, ...basketData}) + } + + const self = useMemo(() => { + return { + ...basket, + + // Check if a this represents a valid basket + get loaded() { + return basket && basket.basketId + }, + + get itemCount() { + return basket?.productItems?.length || 0 + }, + + /** Items taking into account quantity of each */ + get itemAccumulatedCount() { + return basket?.productItems?.reduce((prev, next) => prev + next.quantity, 0) || 0 + }, + + /** Sum of all order-level discounts */ + get totalOrderDiscount() { + return ( + basket?.orderPriceAdjustments?.reduce((sum, item) => { + return sum + item.price + }, 0) || 0 + ) + }, + + /** + * Get an existing basket, if basket doesn't exist, create a new one. + * + * NOTE: This request is the only time we are using the ShopperCustomers API + * to interact with a customer basket. All other calls are done through the + * ShopperBaskets API, which in our case, uses OCAPI rather than commerce sdk. + */ + async getOrCreateBasket() { + const customerBaskets = await api.shopperCustomers.getCustomerBaskets({ + parameters: {customerId: customer?.customerId} + }) + + // Throw if there was a problem getting the customer baskets + if (isError(customerBaskets)) { + throw new Error(customerBaskets) + } + + // We only support single baskets for now. Grab the first one. + let basket = Array.isArray(customerBaskets?.baskets) && customerBaskets.baskets[0] + + if (!basket) { + // Back to using ShopperBaskets for all basket interaction. + basket = await api.shopperBaskets.createBasket({}) + + // Throw if there was a problem creating the basket + if (isError(basket)) { + throw new Error(basket) + } + } + + // Update basket currency if it was created with the wrong one, this will also set the state. + if (currency && basket.currency !== currency) { + await this.updateBasketCurrency(currency, basket.basketId) + } else { + setBasket(basket) + } + + return basket + }, + + /** + * Update the currency of the basket + * @param currency - The currency code. + * @param basketID - The id of the basket. + * @returns {Promise} + */ + async updateBasketCurrency(currency, basketId) { + const updateBasket = await api.shopperBaskets.updateBasket({ + body: {currency}, + parameters: {basketId} + }) + if (isError(updateBasket)) { + throw new Error(updateBasket) + } else { + setBasket(updateBasket) + } + }, + + /** + * Add an item to the basket. + * + * @param {array} item + * @param {string} item.productId - The id of the product. + * @param {number} item.quantity - The quantity of the item. + */ + async addItemToBasket(item) { + const response = await api.shopperBaskets.addItemToBasket({ + body: item, + parameters: {basketId: basket.basketId} + }) + if (response.fault) { + throw new Error(response) + } else { + setBasket(response) + item.map((eachItem) => einstein.sendAddToCart(eachItem)) + } + }, + + /** + * Remove an item from the basket. + * + * @param {string} itemId - The id of the basket item. + */ + async removeItemFromBasket(itemId) { + const response = await api.shopperBaskets.removeItemFromBasket({ + parameters: {basketId: basket.basketId, itemId: itemId} + }) + if (response.fault) { + throw new Error(response) + } else { + setBasket(response) + } + }, + + /** + * Update an item in the basket. + * + * @param {object} item + * @param {string} item.productId - The id of the product. + * @param {number} item.quantity - The quantity of the item. + * @param {string} basketItemId - The id of the item. + */ + async updateItemInBasket(item, basketItemId) { + const response = await api.shopperBaskets.updateItemInBasket({ + body: item, + parameters: {basketId: basket.basketId, itemId: basketItemId} + }) + if (response.fault) { + throw new Error(response) + } else { + setBasket(response) + } + }, + + /** + * Get the product information for all items in the basket. + * + * @param {string} ids - The id(s) of the product, separated by ",". + * @param {boolean} options - options to pass as params to the api request + */ + async getProductsInBasket(ids, options) { + if (!ids) { + return + } + + const response = await api.shopperProducts.getProducts({ + parameters: {ids: ids, ...options} + }) + + const itemDetail = response.data.reduce((result, item) => { + const key = item.id + result[key] = item + return result + }, {}) + + const updatedBasket = { + ...basket, + _productItemsDetail: {...basket._productItemsDetail, ...itemDetail} + } + + setBasket(updatedBasket) + }, + + /** + * Set the shipping address for the current basket. + * @external Address + * @see https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shopperbaskets.html#orderaddress + */ + async setShippingAddress(address) { + const response = await api.shopperBaskets.updateShippingAddressForShipment({ + body: address, + parameters: { + basketId: basket.basketId, + shipmentId: 'me', + useAsBilling: !basket.billingAddress + } + }) + + setBasket(response) + }, + + /** + * Set the shipping method for the current basket. + * + * @param {string} id - The id of the shipping method. + */ + async setShippingMethod(id) { + const response = await api.shopperBaskets.updateShippingMethodForShipment({ + body: {id}, + parameters: {basketId: basket.basketId, shipmentId: 'me'} + }) + + setBasket(response) + }, + + /** + * Set the billing address for the current basket. + * @external Address + * @see https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shopperbaskets.html#orderaddress + */ + async setBillingAddress(address) { + const response = await api.shopperBaskets.updateBillingAddressForBasket({ + body: address, + parameters: {basketId: basket.basketId, shipmentId: 'me'} + }) + + setBasket(response) + }, + + /** + * Set the payment instrument for the current basket + * + * NOTE: API does allow adding multiple payment instruments to split payment. However, + * we are currently only handling a single payment instrument. + * Commerce API does not have an endpoint to edit a payment instrument, but OCAPI does. + * We want to emulate Commerce API behavior (when using OCAPI) so we'll just remove the + * existing payment and add the new one to simulate editing. We're making an assumption + * that our basket will never have more than one payment instrument applied at any time. + * + * @external PaymentInstrument + * @see https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shopperbaskets.html#basketpaymentinstrumentrequest + */ + async setPaymentInstrument(paymentInstrument) { + // Keep reference to existing payment instrument id + let existingPaymentInstrumentId = + basket.paymentInstruments && basket.paymentInstruments[0]?.paymentInstrumentId + + // Add the new payment instrument to basket + let response = await api.shopperBaskets.addPaymentInstrumentToBasket({ + body: paymentInstrument, + parameters: {basketId: basket.basketId} + }) + + // TOOO: Handle possible error when adding payment instrument. + // We won't attempt to remove the previous payment instrument in this case. + + // Remove the previous payment instrument if it existed + if (existingPaymentInstrumentId) { + response = await api.shopperBaskets.removePaymentInstrumentFromBasket({ + parameters: { + basketId: basket.basketId, + paymentInstrumentId: existingPaymentInstrumentId + } + }) + } + + setBasket(response) + }, + + /** + * Remove the payment instrument for the current basket + */ + async removePaymentInstrument() { + let paymentInstrumentId = + basket.paymentInstruments && basket.paymentInstruments[0]?.paymentInstrumentId + + if (!paymentInstrumentId) { + return + } + + const response = await api.shopperBaskets.removePaymentInstrumentFromBasket({ + parameters: { + basketId: basket.basketId, + paymentInstrumentId: paymentInstrumentId + } + }) + + setBasket(response) + }, + + /** + * Update the customer information for the current basket. + * + * @param {object} info + * @param {string} info.email - The email of the customer. + */ + async updateCustomerInfo(info) { + const response = await api.shopperBaskets.updateCustomerForBasket({ + body: info, + parameters: {basketId: basket.basketId} + }) + + setBasket(response) + }, + + /** + * Apply a coupon/promo code to the current basket + * @param {string} code - The promo code to be applied + */ + async applyPromoCode(code) { + const response = await api.shopperBaskets.addCouponToBasket({ + body: {code}, + parameters: {basketId: basket.basketId} + }) + + if (response.fault) { + throw new Error(response) + } + + setBasket(response) + }, + + /** + * Remove a coupon/promo code from the current basket + * @param {string} couponIemId - The item id of the appied code + */ + async removePromoCode(couponItemId) { + const response = await api.shopperBaskets.removeCouponFromBasket({ + parameters: {basketId: basket.basketId, couponItemId} + }) + + if (response.fault) { + throw new Error(response) + } + + setBasket(response) + }, + + /** + * Fetches and returns promo details for the given IDs + * @param {Array} ids - The promo ids to fetch + * @returns {Object} - API response containing data + */ + async getPromotions(ids) { + const response = await api.shopperPromotions.getPromotions({ + parameters: {ids: ids.join(',')} + }) + + return response + }, + + /** + * Creates an order using the current basket. + */ + async createOrder() { + const response = await api.shopperOrders.createOrder({ + // We send the SLAS usid via this header. This is required by ECOM to map + // Einstein events sent via the API with the finishOrder event fired by ECOM + // when an Order transitions from Created to New status. + // Without this, various order conversion metrics will not appear on reports and dashboards + headers: {_sfdc_customer_id: api.auth.usid}, + body: {basketId: basket.basketId} + }) + + if (response.fault || (response.title && response.type && response.detail)) { + throw new Error(response.title) + } + + // We replace the basket with the order result data so we can display + // it on the confirmation page. The basket is automatically deleted + // in SF so we need to make sure a new one is created when leaving the confirmation. + setBasket(response) + }, + + /** + * Fetches the applicable shipping methods for the current basket + * @returns {Object} - API response containing data + */ + getShippingMethods() { + return api.shopperBaskets.getShippingMethodsForShipment({ + parameters: {basketId: basket.basketId, shipmentId: 'me'} + }) + }, + + /** + * Merge data from the previous shopper's basket into the current shopper's active basket + * and delete the previous shopper's basket. + */ + async mergeBasket() { + const response = api.shopperBaskets.mergeBasket({ + headers: { + 'Content-Type': 'application/json' // This is not required since the request has no body but CommerceAPI throws a '419 - Unsupported Media Type' error if this header is removed. + }, + parameters: { + createDestinationBasket: true // If the current shopper has an active basket, this parameter is ignored. + } + }) + + if (response.fault) { + throw new Error(response) + } + + setBasket(response) + } + } + }, [customer, basket, setBasket]) + + return self +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomer.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomer.js new file mode 100644 index 0000000000..4404d86260 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomer.js @@ -0,0 +1,363 @@ +/* + * Copyright (c) 2022, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useContext, useMemo} from 'react' +import {nanoid} from 'nanoid' +import {useCommerceAPI, CustomerContext} from '../contexts' + +const AuthTypes = Object.freeze({GUEST: 'guest', REGISTERED: 'registered'}) + +export default function useCustomer() { + const api = useCommerceAPI() + const {customer, setCustomer} = useContext(CustomerContext) + + const self = useMemo(() => { + return { + ...customer, + + /** + * Returns boolean value whether the user data is initialized + */ + get isInitialized() { + return !!customer?.customerId + }, + + /** + * Returns boolean value whether the customer is of type `registered` or not. + */ + get isRegistered() { + return customer?.authType === AuthTypes.REGISTERED + }, + + /** + * Returns boolean value whether the customer is of type `guest` or not. + */ + get isGuest() { + return customer?.authType === AuthTypes.GUEST + }, + + /** Returns the customer's saved addresses with the 'preferred' address in the first index */ + get addresses() { + if (!customer?.addresses) { + return undefined + } + const preferredAddressIndex = customer.addresses.find((addr) => addr.preferred) + if (preferredAddressIndex > -1) { + return [ + customer.addresses[preferredAddressIndex], + customer.addresses.slice(preferredAddressIndex, preferredAddressIndex + 1) + ] + } + return customer.addresses + }, + + /** + * Log in customer account. + * + * @param {object} credentials + * @param {string} credentials.email + * @param {string} credentials.password + */ + async login(credentials) { + const skeletonCustomer = await api.auth.login(credentials) + if (skeletonCustomer.authType === 'guest') { + setCustomer(skeletonCustomer) + } else { + const customer = await api.shopperCustomers.getCustomer({ + parameters: {customerId: skeletonCustomer.customerId} + }) + setCustomer(customer) + } + }, + + /** + * Log out current customer. + * and retrive a guest access token + */ + async logout() { + const customer = await api.auth.logout() + setCustomer(customer) + }, + + /** + * Fetch current customer information. + */ + async getCustomer() { + setCustomer( + await api.shopperCustomers.getCustomer({ + parameters: {customerId: customer.customerId} + }) + ) + }, + + /** + * Register a new customer account. + * + * @param {object} data + * @param {boolean} data.acceptsMarketing - A boolean indicates whether customer accept marketing emails. + * @param {string} data.email + * @param {string} data.firstName + * @param {string} data.lastName + * @param {string} data.password + */ + async registerCustomer(data) { + // TODO: investigate how to submit/include the checkbox input + // for receiving email communication. + + const body = { + customer: { + firstName: data.firstName, + lastName: data.lastName, + email: data.email, + login: data.email + }, + password: data.password + } + + const response = await api.shopperCustomers.registerCustomer({body}) + // Check for error json response + if (response.detail && response.title && response.type) { + throw new Error(response.detail) + } + + // Send a new login request with the given credentials to ensure tokens are updated. + await self.login({email: data.email, password: data.password}) + }, + + /** + * Update customer information. + * + * @param {object} data + * @param {string} data.email + * @param {string} data.firstName + * @param {string} data.lastName + * @param {string} data.phone + */ + async updateCustomer(data) { + const body = { + firstName: data.firstName, + lastName: data.lastName, + phoneHome: data.phone, + + // NOTE/ISSUE + // The sdk is allowing you to change your email to an already-existing email. + // I would expect an error. We also want to keep the email and login the same + // for the customer, but the sdk isn't changing the login when we submit an + // updated email. This will lead to issues where you change your email but end + // up not being able to login since 'login' will no longer match the email. + email: data.email, + login: data.email + } + + const response = await api.shopperCustomers.updateCustomer({ + body, + parameters: {customerId: customer.customerId} + }) + + // Check for error json response + if (response.detail && response.title && response.type) { + throw new Error(response.detail) + } + + // This previous request does return the updated customer profile, however it does + // not include the 'entire' customer. It is missing address and payment methods. + // We need to refetch the customer to make sure everything is up to date. + await self.getCustomer() + }, + + /** + * Update customer password. + * + * @param {object} data + * @param {string} data.currentPassword - The old password. + * @param {string} data.password - The new password. + * @param {string} email - Customer's email + */ + async updatePassword(data, email) { + const body = { + password: data.password, + currentPassword: data.currentPassword + } + + // Note that we're using the raw response here. This request does not return + // data when successful, but the sdk tries to parse the json (potential sdk bug). + const rawResponse = await api.shopperCustomers.updateCustomerPassword( + { + body, + parameters: {customerId: customer.customerId} + }, + true + ) + + // Success has no json response to parse, but errors do, so handle that here. + if (rawResponse.status >= 400) { + const json = await rawResponse.json() + // Check for error json response + if (json.detail && json.title && json.type) { + throw new Error(json.detail) + } + } + + // Fetch a new SLAS JWT to update the invalid one in client app state + const credentials = { + email: email, + password: data.password + } + + await self.login(credentials) + }, + + /** + * @todo - Backend set up required + * @param {string} login - customer email address + */ + async getResetPasswordToken(login) { + const response = await api.shopperCustomers.getResetPasswordToken({body: {login}}) + + // Check for error json response + if (response.detail && response.title && response.type) { + throw new Error(response.detail) + } + }, + + /** + * Add a new saved address. + * + * @external Address + * @see https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shoppercustomers.html#customeraddress + */ + async addSavedAddress(address) { + // The `addressId` field is required to save the customer's address to their account. + // Rather than make the customer provide a name/id, we can generate a unique id behind + // the scenes instead. This is only useful if you are not displaying the addr name/id + // in the UI, which we aren't. + const body = { + addressId: nanoid(), + ...address + } + + await api.shopperCustomers.createCustomerAddress({ + body, + parameters: {customerId: customer.customerId} + }) + + // This endpoint does not return the updated customer object, so we manually fetch it + await self.getCustomer() + }, + + /** + * Update a saved address. + * + * @external Address + * @see https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shoppercustomers.html#customeraddress + */ + async updateSavedAddress(address) { + const body = address + + await api.shopperCustomers.updateCustomerAddress({ + body, + parameters: {customerId: customer.customerId, addressName: address.addressId} + }) + + // This endpoint does not return the updated customer object, so we manually fetch it + await self.getCustomer() + }, + + /** + * Add a new saved payment instrument. + * + * @external PaymentInstrument + * @see https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shoppercustomers.html#customerpaymentinstrumentrequest + */ + async addSavedPaymentInstrument(paymentInstrument) { + const body = { + bankRoutingNumber: '', + giftCertificateCode: '', + ...paymentInstrument, + paymentCard: { + ...paymentInstrument.paymentCard, + securityCode: undefined + } + } + await api.shopperCustomers.createCustomerPaymentInstrument({ + body, + parameters: {customerId: customer.customerId} + }) + + // This endpoint does not return the updated customer object, so we manually fetch it + await self.getCustomer() + }, + + /** + * Remove a saved payment instrument. + * + * @param {string} paymentInstrumentId - The id of the payment payment instrument. + */ + async removeSavedPaymentInstrument(paymentInstrumentId) { + // This SDK method must be called with `true` as second argument to avoid an error in + // the sdk where it tries parsing json from an empty http response. + await api.shopperCustomers.deleteCustomerPaymentInstrument( + { + parameters: {customerId: customer.customerId, paymentInstrumentId} + }, + true + ) + + // This endpoint does not return the updated customer object, so we manually fetch it + await self.getCustomer() + }, + + /** + * Remove a saved address. + * + * @param {string} addressId - The id of the saved address. + */ + async removeSavedAddress(addressId) { + // This SDK method must be called with `true` as second argument to avoid an error in + // the sdk where it tries parsing json from an empty http response. + await api.shopperCustomers.removeCustomerAddress( + { + parameters: {customerId: customer.customerId, addressName: addressId} + }, + true + ) + + // This endpoint does not return the updated customer object, so we manually fetch it + await self.getCustomer() + }, + + async getCustomerOrders(params) { + const response = await api.shopperCustomers.getCustomerOrders({ + parameters: {customerId: customer.customerId, offset: 0, limit: 10, ...params} + }) + return response + }, + + async getOrder(orderNo) { + const response = await api.shopperOrders.getOrder({ + parameters: {orderNo} + }) + return response + }, + + async getCustomerOrderProductsDetail(ids) { + const response = await api.shopperProducts.getProducts({ + parameters: {ids: ids.join(',')} + }) + + const productMap = response.data.reduce((result, item) => { + const key = item.id + result[key] = item + return result + }, {}) + + return productMap + } + } + }, [customer, setCustomer]) + + return self +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductList.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductList.js new file mode 100644 index 0000000000..35b2f44fd9 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductList.js @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useMemo} from 'react' +import useCustomerProductLists from './useCustomerProductLists' + +/** + * This hook is built on top of the useCustomerProductLists hook, + * to provide functionalities to manage a single list. + * A typical use case is wish list. + */ +const useCustomerProductList = (name, type) => { + // cpl is the shorthand for "Cutomer Product Lists" + const cpl = useCustomerProductLists() + const self = useMemo(() => { + return { + ...cpl, + + get data() { + return cpl.findListByName(name) + }, + + get items() { + return self.data?.customerProductListItems || [] + }, + + get isEmpty() { + return !self.items?.length + }, + + get isInitialized() { + return !!self.data?.id + }, + + // boolean value indicate the list + // is populated with product details + get hasDetail() { + return !!self.data?.hasDetail + }, + + /** + * Initialize the list. + */ + init(options) { + return cpl.getOrCreateList(name, type, options) + }, + + /** + * Adds an item to the customer's list. + * @param {Object} item item to be added to the list. + * @param {string} item.id + * @param {number} item.quantity + */ + createListItem: async (item) => { + if (!self.isInitialized) { + const list = await self.init() + return cpl.createListItem(list.id, item) + } + return cpl.createListItem(self.data.id, item) + }, + + /** + * Update an item to the customer's list. + * @param {Object} item item to be updated + * @param {string} item.id + * @param {number} item.quantity + */ + updateListItem: (item) => { + return cpl.updateListItem(self.data.id, item) + }, + + /** + * Remove an item from a customer product list + * + * @param {string} itemId the id of the item in the product list + */ + removeListItem: (itemId) => { + return cpl.removeListItem(self.data.id, itemId) + }, + + /** + * Remove an item from the customer's list. + * + * @param {string} productId the id of the product + */ + removeListItemByProductId: (productId) => { + return cpl.removeListItemByProductId(self.data.id, productId) + }, + + /** + * Find the item from list. + * @param {string} productId + * @returns {object} product list item + */ + findItemByProductId(productId) { + if (!self.isInitialized) { + return undefined + } + return cpl.findItemByProductId(self.data.id, productId) + } + } + }, [cpl]) + return self +} + +export default useCustomerProductList diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductLists.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductLists.js new file mode 100644 index 0000000000..fcce5c1df9 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useCustomerProductLists.js @@ -0,0 +1,354 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useContext, useMemo} from 'react' +import {useCommerceAPI, CustomerProductListsContext} from '../contexts' +import {handleAsyncError} from '../utils' +import useCustomer from './useCustomer' + +/** + * This hook is designed to add customer product list capabilities + * to your app, it leverages the Commerce API - Shopper Customer endpoints. + * It uses a React context to store customer product list globally. + * + * By default, the Shopper Customer Product List API allows a shopper to + * save multiple product lists. However, the PWA only use a single + * product list, which is the wishlist. There is another hook useWishlist, + * which is built on top of this hook to add wishlist specific logic. + * + * This Hook only works when your components are wrapped in CustomerProductListProvider. + */ +export default function useCustomerProductLists() { + const api = useCommerceAPI() + const customer = useCustomer() + const {state, actions} = useContext(CustomerProductListsContext) + + const getLists = handleAsyncError(() => { + return api.shopperCustomers.getCustomerProductLists({ + parameters: { + customerId: customer.customerId + } + }) + }) + + const createList = handleAsyncError((name, type) => { + return api.shopperCustomers.createCustomerProductList({ + body: { + type, + name + }, + parameters: { + customerId: customer.customerId + } + }) + }) + + const getList = handleAsyncError((listId) => { + return api.shopperCustomers.getCustomerProductList({ + parameters: { + customerId: customer.customerId, + listId + } + }) + }) + + const createListItem = handleAsyncError((listId, item) => { + const {id, quantity} = item + return api.shopperCustomers.createCustomerProductListItem({ + body: { + productId: id, + quantity, + public: false, + priority: 1, + type: 'product' + }, + parameters: { + customerId: customer.customerId, + listId + } + }) + }) + + const updateListItem = handleAsyncError((listId, item) => { + const {id, quantity} = item + return api.shopperCustomers.updateCustomerProductListItem({ + body: { + id, + quantity, + public: false, + priority: 1 + }, + parameters: { + customerId: customer.customerId, + listId: listId, + itemId: item.id + } + }) + }) + + const removeListItem = handleAsyncError((listId, itemId) => { + return api.shopperCustomers.deleteCustomerProductListItem( + { + parameters: { + itemId, + listId, + customerId: customer.customerId + } + }, + true + ) + }) + + const self = useMemo(() => { + return { + data: state.productLists, + + get isInitialized() { + return state.productLists !== undefined + }, + + reset() { + actions.reset() + }, + + /** + * Get customer's product lists. + */ + getLists: async () => { + const lists = await getLists() + actions.receiveLists(lists) + return lists + }, + + /** + * Create a new product list. + * @param {string} name + * @param {string} type + */ + createList: async (name, type) => { + const list = await createList(name, type) + actions.receiveList(list) + return list + }, + + /** + * Get a specific product list by id. + * @param {string} listId + * @param {object} options + */ + getList: async (listId, options) => { + const {detail} = options || {} + let list = await getList(listId) + + if (detail) { + // automatically fetch details of the items in the list + list = await self.getProductDetails(list) + } + + actions.receiveList(list) + return list + }, + + /** + * Get a product list for the registered user or + * creates a new list if none exists, due to the api + * limitation, we can not filter the lists based on + * name/type, therefore it fetches all lists. + * @param {string} name + * @param {string} type + * @param {object} options + * @param {boolean} options.detail boolean flag to enable/disable fetching product details + */ + getOrCreateList: async (name, type, options) => { + const {detail} = options || {} + let response = await getLists() + + // Note: if list is empty, the API response + // does NOT contain the "data" key. + let list = response.data?.find((list) => list.name === name) + + if (!list) { + list = await createList(name, type) + } + + if (list && detail) { + list = await self.getProductDetails(list) + } + + actions.receiveList(list) + return list + }, + + /** + * Adds an item to the customer's product list. + * @param {string} listId + * @param {Object} item item to be added to the list. + */ + createListItem: async (listId, item) => { + const createdItem = await createListItem(listId, item) + actions.createListItem(listId, createdItem) + return createdItem + }, + + /** + * Update an item in a customer product list + * + * @param {string} listId id of the list to update the item in + * @param {object} item + * @param {string} item.id the id of the item in the product list + * @param {number} item.quantity the quantity of the item + */ + updateListItem: async (listId, item) => { + const {id, quantity} = item + if (quantity === 0) { + await removeListItem(listId, id) + actions.removeListItem(listId, id) + return + } + const updatedItem = await updateListItem(listId, item) + actions.updateListItem(listId, updatedItem) + return updatedItem + }, + + /** + * Remove an item from a customer product list + * + * @param {string} listId id of the list to update the item in + * @param {string} itemId the id of the item in the product list + */ + removeListItem: async (listId, itemId) => { + await removeListItem(listId, itemId) + actions.removeListItem(listId, itemId) + }, + + /** + * Remove an item from a customer product list + * + * @param {string} listId id of the list to update the item in + * @param {string} productId the id of the product + */ + removeListItemByProductId(listId, productId) { + const item = self.findItemByProductId(listId, productId) + if (!item) { + console.warn( + `Cannot remove item because product ${productId} is not in the list.` + ) + return + } + return self.removeListItem(listId, item.id) + }, + + /** + * Get all item details for a product list. + * @param {object} list product list + * @param {array} list.customerProductListItems items array + * @returns {Object} customer product list + */ + getProductDetails: handleAsyncError(async (list) => { + // Warning, there is a weird API behavior + // where if the product list is newly created + // the "customerProductListItems" key will be missing + // from the response, so we need to guard it. + if (!list.customerProductListItems) { + return {...list, hasDetail: true} + } + + const ids = list.customerProductListItems.map((item) => item.productId) + const productDetails = await api.shopperProducts.getProducts({ + parameters: { + ids: ids.join(','), + allImages: true + } + }) + + // `getProducts` endpoint does not include `setProducts` data + // so for each product set, we'll fetch it and append it to existing data + const productSetFetches = productDetails.data + .filter((product) => product.type.set) + .map((product) => { + return api.shopperProducts + .getProduct({ + parameters: { + id: product.id + } + }) + .then((data) => { + product.setProducts = data.setProducts + }) + }) + await Promise.all(productSetFetches) + + const result = self.mergeProductDetailsIntoList(list, productDetails) + + // hasDetail is a flag to indicate + // the list items are populated + // with product detail data + result.hasDetail = true + return {...result, hasDetail: true} + }), + + /** + * The customer product list API does NOT return the + * product item details, this utility function is used + * when you fetch the item details manually and insert + * into the lists. + * This function is often used with getProductDetails. + */ + mergeProductDetailsIntoList(list, productDetails) { + const items = list.customerProductListItems?.map((item) => { + const product = { + ...productDetails.data.find((product) => product.id === item.productId) + } + return { + ...item, + product + } + }) + return { + ...list, + customerProductListItems: items + } + }, + + /** + * Find the product list by its name. + * @param {string} name + * @returns {object} customer product list + */ + findListByName(name) { + if (!self.data) { + return undefined + } + return Object.values(self.data).find((list) => list.name === name) + }, + + /** + * Find the product list by its id. + * @param {string} id + * @returns {object} customer product list + */ + findListById(id) { + if (!self.data) { + return undefined + } + return Object.values(self.data).find((list) => list.id === id) + }, + + /** + * Find the item from list. + * @param {string} listId + * @param {string} productId + * @returns {object} product list item + */ + findItemByProductId(listId, productId) { + return self + .findListById(listId) + ?.customerProductListItems?.find((item) => item.productId === productId) + } + } + }, [customer.customerId, state]) + return self +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useEinstein.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useEinstein.js new file mode 100644 index 0000000000..1d3cce976b --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useEinstein.js @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useState} from 'react' +import {useCommerceAPI} from '../contexts' + +const useEinstein = () => { + const api = useCommerceAPI() + const [state, setState] = useState({loading: false, recommendations: []}) + + return { + ...state, + + api: api.einstein, + + async sendViewProduct(...args) { + return api.einstein.sendViewProduct(...args) + }, + async sendViewSearch(...args) { + return api.einstein.sendViewSearch(...args) + }, + async sendClickSearch(...args) { + return api.einstein.sendClickSearch(...args) + }, + async sendViewCategory(...args) { + return api.einstein.sendViewCategory(...args) + }, + async sendClickCategory(...args) { + return api.einstein.sendClickCategory(...args) + }, + async sendViewPage(...args) { + return api.einstein.sendViewPage(...args) + }, + async sendBeginCheckout(...args) { + return api.einstein.sendBeginCheckout(...args) + }, + async sendCheckoutStep(...args) { + return api.einstein.sendCheckoutStep(...args) + }, + async sendViewReco(...args) { + return api.einstein.sendViewReco(...args) + }, + async sendClickReco(...args) { + return api.einstein.sendClickReco(...args) + }, + async sendAddToCart(...args) { + return api.einstein.sendAddToCart(...args) + }, + async getRecommenders(...args) { + return api.einstein.getRecommenders(...args) + }, + async getRecommendations(...args) { + setState((s) => ({...s, loading: true})) + const recommendations = await api.einstein.getRecommendations(...args) + setState({loading: false, recommendations}) + }, + async getZoneRecommendations(...args) { + setState((s) => ({...s, loading: true})) + const recommendations = await api.einstein.getZoneRecommendations(...args) + setState({loading: false, recommendations}) + } + } +} + +export default useEinstein diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useRefinementToggle.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useRefinementToggle.js new file mode 100644 index 0000000000..0746cba434 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useRefinementToggle.js @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useState} from 'react' + +/** + * Hook for handling the UI state of refinements + */ +const useRefinementToggle = () => { + const [state, setState] = useState({selectedRefinements: undefined}) + return { + ...state, + /** + * Manages an array of selected refinements for the UI to use for instant feedback + * + * @param {string} value + * @param {boolean} selected + */ + applyUIFeedback(value, selected) { + if (!selected) { + const updatedSelectedRefinements = state.selectedRefinements || [] + updatedSelectedRefinements.push(value.value) + setState({selectedRefinements: updatedSelectedRefinements}) + } else { + const updatedSelectedRefinements = state.selectedRefinements.filter( + (item) => item !== value.value + ) + setState({selectedRefinements: updatedSelectedRefinements}) + } + }, + /** + * Updates the state when the selected refinements are updated + * + * @param {array} refinements + */ + setSelectedRefinements(refinements) { + setState({selectedRefinements: refinements}) + } + } +} + +export default useRefinementToggle diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useSearchSuggestions.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useSearchSuggestions.js new file mode 100644 index 0000000000..369daaee4c --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useSearchSuggestions.js @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useState} from 'react' +import {useCommerceAPI} from '../contexts' + +/** + * Hook for retrieving and managing state of Search Suggestions + */ +const useSearchSuggestions = () => { + const api = useCommerceAPI() + const [state, setState] = useState({results: {}}) + return { + ...state, + /** + * Retrieves search suggestions from api based on input + * + * @param {input} string + */ + async getSearchSuggestions(input) { + setState({loading: true}) + const searchSuggestions = await api.shopperSearch.getSearchSuggestions({ + parameters: { + q: input + } + }) + setState({results: searchSuggestions}) + }, + /** + * Clears results + */ + async clearSuggestedSearch() { + setState({results: {}}) + } + } +} + +export default useSearchSuggestions diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useShopper.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useShopper.js new file mode 100644 index 0000000000..2bee91a771 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/hooks/useShopper.js @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2022, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {useEffect} from 'react' +import useBasket from './useBasket' +import useCustomer from './useCustomer' + +/** + * Joins basket and customer hooks into a single hook for initializing their states + * when the app loads on the client-side. Should only be use at top-level of app. + * @returns {Object} - customer and basket objects + */ +const useShopper = (opts = {}) => { + const {currency} = opts + const customer = useCustomer() + const basket = useBasket({currency}) + + // Create or restore the user session upon mounting + useEffect(() => { + customer.login() + }, []) + + // Handle basket init/updates in response to customer/basket changes. + useEffect(() => { + const hasBasket = basket?.loaded + + // We have a customer but no basket, so we fetch a new or existing basket + if (customer.isInitialized && !hasBasket) { + basket.getOrCreateBasket() + return + } + + // We have a customer and a basket, but the basket does not belong to this customer + // so we get their existing basket or create a new one for them + if ( + hasBasket && + customer.isInitialized && + customer.customerId !== basket.customerInfo.customerId + ) { + basket.getOrCreateBasket() + return + } + + // We have a registered customer (customer with email), and we have their basket, + // but the email applied to the basket is missing or doesn't match the customer + // email. In this case, we update the basket with their email. + if ( + hasBasket && + customer.isRegistered && + customer.customerId === basket.customerInfo.customerId && + customer.email !== basket.customerInfo.email + ) { + basket.updateCustomerInfo({email: customer.email}) + return + } + }, [customer.authType, basket.loaded]) + + // Call merge basket whenever user type changes from guest to registered + useEffect(() => { + if (customer.authType === 'registered') { + basket.mergeBasket() + } + }, [customer.authType]) + + useEffect(() => { + // Fetch product details for all items in cart + if (customer.customerId && basket?.basketId) { + if (basket.itemCount > 0) { + const allImages = true + let ids = basket.productItems?.map((item) => item.productId) + if (basket?._productItemsDetail) { + ids = ids.filter((id) => !basket?._productItemsDetail[id]) + } + + basket.getProductsInBasket(ids.toString(), {allImages}) + } + } + }, [customer, basket]) + + return {customer, basket} +} + +export default useShopper diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.js new file mode 100644 index 0000000000..a585c457fc --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.js @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2022, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +/* eslint-disable no-unused-vars */ +import * as sdk from 'commerce-sdk-isomorphic' +import {getAppOrigin} from 'pwa-kit-react-sdk/utils/url' +import ShopperBaskets from './shopper-baskets' +import OcapiShopperOrders from './ocapi-shopper-orders' +import {getTenantId, isError, isTokenValid} from './utils' +import Auth from './auth' +import EinsteinAPI from './einstein' + +/** + * The configuration details for the connecting to the API. + * @typedef {Object} ClientConfig + * @property {string} [proxy] - URL to proxy fetch calls through. + * @property {string} [headers] - Request headers to be added to requests. + * @property {Object} [parameters] - API connection parameters for SDK. + * @property {string} [parameters.clientId] + * @property {string} [parameters.organizationId] + * @property {string} [parameters.shortCode] + * @property {string} [parameters.siteId] + * @property {string} [parameters.version] + */ + +/** + * An object containing the customer's login credentials. + * @typedef {Object} CustomerCredentials + * @property {string} credentials.email + * @property {string} credentials.password + */ + +/** + * Salesforce Customer object. + * {@link https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/shoppercustomers.html#customer}} + * @typedef {Object} Customer + */ + +/** + * A wrapper class that proxies calls to the underlying commerce-sdk-isomorphic. + * The sdk class instances are created automatically with the given config. + */ +class CommerceAPI { + /** + * Create an instance of the API with the given config. + * @param {ClientConfig} config - The config used to instantiate SDK apis. + */ + constructor(config = {}) { + const {proxyPath, ...restConfig} = config + + // Client-side requests should be proxied via the configured path. + const proxy = `${getAppOrigin()}${proxyPath}` + + this._config = {proxy, ...restConfig} + + this.auth = new Auth(this) + + if (this._config.einsteinConfig?.einsteinId) { + this.einstein = new EinsteinAPI(this) + } + + // A mapping of property names to the SDK class constructors we'll be + // providing instances for. + // + // NOTE: `sendLocale` and `sendCurrency` for sending locale and currency info to the API: + // - boolean, if you want to affect _all_ methods for a given API + // - OR an array (listing the API's methods), if you want to affect only certain methods of an API + const apiConfigs = { + shopperCustomers: { + api: sdk.ShopperCustomers, + sendLocale: false + }, + shopperBaskets: { + api: ShopperBaskets, + sendLocale: false, + sendCurrency: ['createBasket'] + }, + shopperExperience: { + api: sdk.ShopperExperience + }, + shopperGiftCertificates: { + api: sdk.ShopperGiftCertificates + }, + shopperLogin: {api: sdk.ShopperLogin, sendLocale: false}, + shopperOrders: {api: OcapiShopperOrders}, + shopperProducts: { + api: sdk.ShopperProducts, + sendCurrency: ['getProduct', 'getProducts'] + }, + shopperPromotions: { + api: sdk.ShopperPromotions + }, + shopperSearch: { + api: sdk.ShopperSearch, + sendCurrency: ['productSearch', 'getSearchSuggestions'] + } + } + + // Instantiate the SDK class proxies and create getters from our api mapping. + // The proxy handlers are called when accessing any of the mapped SDK class + // proxies, executing various pre-defined hooks for tapping into or modifying + // the outgoing method parameters and/or incoming SDK responses + const self = this + Object.keys(apiConfigs).forEach((key) => { + const SdkClass = apiConfigs[key].api + self._sdkInstances = { + ...self._sdkInstances, + [key]: new Proxy(new SdkClass(this._config), { + get: function (obj, prop) { + if (typeof obj[prop] === 'function') { + return (...args) => { + const fetchOptions = args[0] + const {locale, currency} = self._config + + if (fetchOptions.ignoreHooks) { + return obj[prop](...args) + } + + // Inject the locale and currency to the API call via its parameters. + // + // NOTE: The commerce sdk isomorphic will complain if you pass parameters to + // it that it doesn't expect, this is why we only add the locale and currency + // to some of the API calls. + + // By default we send the locale param and don't send the currency param. + const {sendLocale = true, sendCurrency = false} = apiConfigs[key] + + const includeGlobalLocale = Array.isArray(sendLocale) + ? sendLocale.includes(prop) + : !!sendLocale + + const includeGlobalCurrency = Array.isArray(sendCurrency) + ? sendCurrency.includes(prop) + : !!sendCurrency + + fetchOptions.parameters = { + ...(includeGlobalLocale ? {locale} : {}), + ...(includeGlobalCurrency ? {currency} : {}), + // Allowing individual API calls to override the global locale/currency + ...fetchOptions.parameters + } + + return self.willSendRequest(prop, ...args).then((newArgs) => { + return obj[prop](...newArgs).then((res) => + self.didReceiveResponse(res, newArgs) + ) + }) + } + } + return obj[prop] + } + }) + } + Object.defineProperty(self, key, { + get() { + return self._sdkInstances[key] + } + }) + }) + this.getConfig = this.getConfig.bind(this) + } + + /** + * Returns the api client configuration + * @returns {ClientConfig} + */ + getConfig() { + return this._config + } + + /** + * Executed before every proxied method call to the SDK. Provides the method + * name and arguments. This can be overidden in a subclass to perform any + * logging or modifications to arguments before the request is sent. + * @param {string} methodName - The name of the sdk method that will be called. + * @param {...*} args - Original arguments for the SDK method. + * @returns {Promise} - Updated arguments that will be passed to the SDK method + */ + async willSendRequest(methodName, ...params) { + // We never need to modify auth request headers for these methods + if ( + methodName === 'authenticateCustomer' || + methodName === 'authorizeCustomer' || + methodName === 'getAccessToken' + ) { + return params + } + + // If a login promise exists, we don't proceed unless it is resolved. + const pendingLogin = this.auth.pendingLogin + if (pendingLogin) { + await pendingLogin + } + + // If the token is invalid (missing, past/nearing expiration), we issue + // a login call, which will attempt to refresh the token or get a new + // guest token. Once login is complete, we can proceed. + if (!isTokenValid(this.auth.authToken)) { + // NOTE: Login will update `this.auth.authToken` with a fresh token + await this.auth.login() + } + + // Apply the appropriate auth headers and return new options + const [fetchOptions, ...restParams] = params + const newFetchOptions = { + ...fetchOptions, + headers: {...fetchOptions.headers, Authorization: this.auth.authToken} + } + return [newFetchOptions, ...restParams] + } + + /** + * Executed when receiving a response from an SDK request. The response data + * can be mutated or inspected before being passed back to the caller. Should + * be overidden in a subclass. + * @param {*} response - The response from the SDK method call. + * @param {Array} args - Original arguments for the SDK method. + * @returns {*} - The response to be passed back to original caller. + */ + didReceiveResponse(response, args) { + if (isError(response)) { + return {...response, isError: true, message: response.detail} + } + + return response + } +} + +export default CommerceAPI diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.test.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.test.js new file mode 100644 index 0000000000..a37bec8b81 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/index.test.js @@ -0,0 +1,740 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import CommerceAPI from '.' +import fetch from 'jest-fetch-mock' + +// NOTE: this will need to be a fixed or known config for testing against +// It will probably end up living in pwa-kit later on so we may want to +// deal with it there. +import {app as appConfig} from '../../config/default' +import {createGetTokenBody} from './utils' +import {generateCodeChallenge, createCodeVerifier} from './pkce' +import { + exampleRedirectUrl as mockExampleRedirectUrl, + exampleTokenReponse as mockExampleTokenResponse, + exampleTokenReponseForRefresh as mockExampleTokenReponseForRefresh, + examplePKCEVerifier, + email, + password, + expiredAuthToken, + ocapiBasketResponse, + ocapiFaultResponse +} from './mock-data' + +jest.mock('cross-fetch', () => jest.requireActual('jest-fetch-mock')) + +jest.mock('./utils', () => { + const originalModule = jest.requireActual('./utils') + return { + ...originalModule + } +}) + +const apiConfig = { + ...appConfig.commerceAPI, + einsteinConfig: appConfig.einsteinAPI, + proxy: undefined, + locale: 'en-GB', + currency: 'GBP' +} +const getAPI = () => new CommerceAPI(apiConfig) + +jest.mock('commerce-sdk-isomorphic', () => { + const sdk = jest.requireActual('commerce-sdk-isomorphic') + return { + ...sdk, + ShopperProducts: class ShopperProductsMock extends sdk.ShopperProducts { + async getProduct(args) { + return args + } + async getProducts(options) { + return options.parameters.ids.map((id) => ({id})) + } + }, + ShopperLogin: class ShopperLoginMock { + async getAccessToken() { + return mockExampleTokenResponse + } + async authorizeCustomer() { + return { + status: 303, + headers: { + get: () => null + }, + url: mockExampleRedirectUrl + } + } + async authenticateCustomer() { + return { + status: 303, + headers: { + get: () => null + }, + url: mockExampleRedirectUrl + } + } + async logoutCustomer() { + return { + status: 200, + headers: { + get: () => null + }, + url: mockExampleTokenResponse + } + } + }, + ShopperCustomers: class ShopperCustomersMock extends sdk.ShopperCustomers { + async getAccessToken() { + return mockExampleTokenResponse + } + async authorizeCustomer() { + return { + headers: { + get: () => `Bearer ${mockExampleTokenResponse.access_token}` + }, + status: 200, + json: async () => { + return { + customerId: 'testId' + } + } + } + } + } + } +}) + +beforeEach(() => { + jest.resetModules() + // Clearing out mocked local storage before each test so tokens don't get mixed + const api = getAPI() + api.auth._clearAuth() + fetch.resetMocks() +}) + +describe('CommerceAPI', () => { + test('provides instantiated sdk classes as instance properties using given config', () => { + const api = getAPI() + const apiNames = [ + 'shopperCustomers', + 'shopperBaskets', + 'shopperGiftCertificates', + 'shopperLogin', + 'shopperOrders', + 'shopperProducts', + 'shopperPromotions', + 'shopperSearch' + ] + expect(api.shopperCustomers.clientConfig.parameters).toEqual(apiConfig.parameters) + apiNames.forEach((name) => expect(api[name]).toBeDefined()) + expect(typeof api.shopperCustomers.getCustomer).toBe('function') + }) + test('returns api config', () => { + const config = getAPI().getConfig() + expect(config.parameters).toEqual(apiConfig.parameters) + }) + test('calls willSendResponse with request name and options (including auto-injected locale and currency)', () => { + const api = getAPI() + const spy = jest.spyOn(api, 'willSendRequest') + api.shopperProducts.getProduct({parameters: {id: '123'}}) + expect(spy).toHaveBeenCalledWith('getProduct', { + parameters: {id: '123', locale: 'en-GB', currency: 'GBP'} + }) + }) + test('can optionally ignore req/res hooks', () => { + const api = getAPI() + const spy = jest.spyOn(api, 'willSendRequest') + api.shopperProducts.getProduct({ + parameters: {id: '123'}, + ignoreHooks: true + }) + expect(spy).not.toHaveBeenCalled() + }) + test('passing in locale/currency in the API method would override the global values', () => { + const api = getAPI() + const spy = jest.spyOn(api, 'willSendRequest') + + api.shopperProducts.getProduct({ + parameters: {id: '123', locale: 'en-US'} + }) + expect(spy).toHaveBeenCalledWith('getProduct', { + parameters: {id: '123', locale: 'en-US', currency: 'GBP'} + }) + + api.shopperProducts.getProduct({ + parameters: {id: '123', currency: 'EUR'} + }) + expect(spy).toHaveBeenCalledWith('getProduct', { + parameters: {id: '123', locale: 'en-GB', currency: 'EUR'} + }) + }) + test('applies updated options when calling sdk methods', async () => { + class MyAPI extends CommerceAPI { + async willSendRequest() { + return [{parameters: {id: '567'}}] + } + } + const myAPI = new MyAPI(apiConfig) + const result = await myAPI.shopperProducts.getProduct({ + parameters: {id: '123'} + }) + expect(result).toEqual({parameters: {id: '567'}}) + }) + test('can modify response before returning to caller', async () => { + const spy = jest.fn() + class MyAPI extends CommerceAPI { + async willSendRequest(method, ...args) { + return args + } + async didReceiveResponse(response, args) { + spy(response, args) + return `${response.length} product` + } + } + const myAPI = new MyAPI(apiConfig) + const result = await myAPI.shopperProducts.getProducts({ + parameters: {ids: ['123']} + }) + expect(spy).toHaveBeenCalledWith( + [{id: '123'}], + [{parameters: {ids: ['123'], locale: 'en-GB', currency: 'GBP'}}] + ) + expect(result).toBe('1 product') + }) + test('authorizes guest user', async () => { + const _CommerceAPI = require('./index').default + const api = new _CommerceAPI(apiConfig) + const customer = await api.auth.login() + expect(customer).toBeDefined() + expect(customer.authType).toEqual('guest') + }) + test('customer is returned when you call login with credentials', async () => { + const _CommerceAPI = require('./index').default + const api = new _CommerceAPI(apiConfig) + const customer = await api.auth.login({email, password}) + expect(customer).toBeDefined() + expect(customer.authType).toEqual('registered') + expect(api.auth.encUserId.length).toBeGreaterThan(0) + }) + test('refreshes existing logged in token', async () => { + const _CommerceAPI = require('./index').default + const api = new _CommerceAPI(apiConfig) + api.auth.authToken = mockExampleTokenResponse.access_token + api.auth._saveRefreshToken(mockExampleTokenResponse.refresh_token, 'registered') + const customer = await api.auth.login() + expect(customer).toBeDefined() + expect(customer.authType).toEqual('registered') + expect(api.auth.encUserId.length).toBeGreaterThan(0) + }) + test('Use same customer if token is valid', async () => { + const Utils = require('./utils') + jest.spyOn(Utils, 'isTokenValid').mockReturnValue(true) + const _CommerceAPI = require('./index').default + const api = new _CommerceAPI(apiConfig) + + api.auth.authToken = mockExampleTokenReponseForRefresh.access_token + + await api.auth.login() + expect(api.auth.authToken).toBeDefined() + expect(api.auth.authToken).toEqual(mockExampleTokenReponseForRefresh.access_token) + }) + test('refreshes existing token', async () => { + const _CommerceAPI = require('./index').default + const api = new _CommerceAPI(apiConfig) + await api.auth.login() + const existingToken = api.auth.authToken + expect(`Bearer ${mockExampleTokenResponse.access_token}`).toEqual(existingToken) + api.auth.authToken = mockExampleTokenReponseForRefresh.access_token + await api.auth.login() + expect(api.auth.authToken).toBeDefined() + expect(api.auth.authToken).not.toEqual(mockExampleTokenReponseForRefresh) + }) + test('re-authorizes as guest when existing token is expired', async () => { + const api = getAPI() + await api.auth.login() + api.auth.authToken = expiredAuthToken + api.auth._saveRefreshToken(mockExampleTokenResponse.refresh_token, 'registered') + await api.auth.login() + expect(api.auth.authToken).toBeDefined() + expect(api.auth.authToken).not.toEqual(expiredAuthToken) + }) + + test('logs back in as new guest after log out', async () => { + const api = getAPI() + await api.auth.login() + const existingToken = api.auth.authToken + expect(existingToken).toBeDefined() + await api.auth.logout() + expect(api.auth.authToken).toBeDefined() + expect(api.auth.authToken).not.toEqual(mockExampleTokenReponseForRefresh) + }) + + test('automatically authorizes customer when calling sdk methods', async () => { + const api = getAPI() + api.auth.authToken = '' + await Promise.all([ + api.shopperProducts.getProduct({parameters: {id: '10048'}}), + api.shopperProducts.getProduct({parameters: {id: '10048'}}) + ]) + expect(api.auth.authToken).toBeDefined() + }) + test('calling login while its already pending returns existing promise', () => { + const api = getAPI() + const pendingLogin = api.auth.login() + const secondPendingLogin = api.auth.login() + expect(pendingLogin).toEqual(secondPendingLogin) + }) + test('createGetTokenBody returns an object that contain the correct parameters', async () => { + const slasCallbackEndpoint = apiConfig.parameters.slasCallbackEndpoint || '/callback' + const tokenBody = createGetTokenBody( + mockExampleRedirectUrl, + slasCallbackEndpoint, + examplePKCEVerifier + ) + const {grantType, code, usid, codeVerifier, redirectUri} = tokenBody + expect(grantType).toBeDefined() + expect(code).toBeDefined() + expect(usid).toBeDefined() + expect(codeVerifier).toBeDefined() + expect(redirectUri).toBeDefined() + }) + test('should return a code verifier of 128 chracters', () => { + const codeVerifier = createCodeVerifier() + expect(codeVerifier.length).toEqual(128) + }) + test('should return a code challenge of 43 chracters', async () => { + const codeVerifier = createCodeVerifier() + const codeChallenge = await generateCodeChallenge(codeVerifier) + expect(codeChallenge.length).toEqual(43) + }) + test('calling getLoggedInToken should set JWT Token and Refresh Token ', async () => { + const _CommerceAPI = require('./index').default + const api = new _CommerceAPI(apiConfig) + const tokenBody = createGetTokenBody( + mockExampleRedirectUrl, + apiConfig.parameters.slasCallbackEndpoint, + examplePKCEVerifier + ) + await api.auth.getLoggedInToken(tokenBody) + expect(api.auth.authToken).toEqual(`Bearer ${mockExampleTokenResponse.access_token}`) + expect(api.auth.refreshToken).toEqual(mockExampleTokenResponse.refresh_token) + }) + test('saves access token in local storage if window exists', async () => { + const api = getAPI() + api.auth.authToken = mockExampleTokenResponse.access_token + expect(api.auth.authToken).toEqual(mockExampleTokenResponse.access_token) + }) + test('saves refresh token in local storage if window exists', async () => { + const api = getAPI() + api.auth._saveRefreshToken(mockExampleTokenResponse.refresh_token) + expect(api.auth.refreshToken).toEqual(mockExampleTokenResponse.refresh_token) + }) + test('saves encUserId in local storage if window exists', async () => { + const api = getAPI() + api.auth.encUserId = mockExampleTokenResponse.enc_user_id + expect(api.auth.encUserId).toEqual(mockExampleTokenResponse.enc_user_id) + }) + test('saves usid in local storage if window exists', async () => { + const api = getAPI() + api.auth.usid = mockExampleTokenResponse.usid + expect(api.auth.usid).toEqual(mockExampleTokenResponse.usid) + }) + test('test onClient is true if window exists', async () => { + const api = getAPI() + expect(api.auth._onClient).toEqual(true) + }) + test('calling createBasket returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basket = await api.shopperBaskets.createBasket({}) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling getBasket with basketId returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.getBasket({ + parameters: {basketId: basketId} + }) + expect(response).toBeDefined() + expect(response.customerInfo.customerId).toBeDefined() + }) + test('calling getBasket without basketId returns descriptive error', async () => { + const api = getAPI() + const response = await api.shopperBaskets.getBasket({}) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: basketId' + ) + expect(response.type).toEqual('MissingParameters') + }) + test('calling addItemToBasket with basketId & body returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.addItemToBasket({ + parameters: { + basketId: basketId + }, + body: { + productId: 'fake-product-id', + quantity: 1 + } + }) + expect(response).toBeDefined() + expect(response.customerInfo.customerId).toBeDefined() + }) + test('calling addItemToBasket without body returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.addItemToBasket({ + parameters: { + basketId: basketId + } + }) + expect(response.title).toEqual('Body is required for this request') + expect(response.type).toEqual('MissingBody') + }) + test('calling updateItemInBasket with basketId & body returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.updateItemInBasket({ + parameters: { + basketId: basketId + }, + body: { + productId: 'fake-product-id', + quantity: 1 + } + }) + expect(response).toBeDefined() + expect(response.customerInfo.customerId).toBeDefined() + }) + test('calling updateItemInBasket without body returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.updateItemInBasket({ + parameters: { + basketId: basketId + } + }) + expect(response.title).toEqual('Body is required for this request') + expect(response.type).toEqual('MissingBody') + }) + test('calling removeItemFromBasket returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.removeItemFromBasket({ + parameters: { + basketId: basketId, + itemId: 'fake-product-id' + } + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling removeItemFromBasket without basket returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperBaskets.removeItemFromBasket({ + parameters: { + itemId: 'fake-product-id' + } + }) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: basketId' + ) + expect(response.type).toEqual('MissingParameters') + }) + test('calling addPaymentInstrumentToBasket returns basketId object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.addPaymentInstrumentToBasket({ + parameters: { + basketId: basketId + }, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling addPaymentInstrumentToBasket without basketId & body returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperBaskets.addPaymentInstrumentToBasket({ + parameters: {} + }) + expect(response.title).toEqual('Body is required for this request') + expect(response.type).toEqual('MissingBody') + }) + test('calling removePaymentInstrumentFromBasket returns basketId object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.removePaymentInstrumentFromBasket({ + parameters: { + basketId: basketId, + paymentInstrumentId: 'fake-id' + }, + body: { + payment_instrument_id: 'ce6QR9aaabmakaaadf1KdLcXoH', + payment_method_id: 'CREDIT_CARD', + payment_card: { + card_type: 'Visa', + expiration_month: 12, + expiration_year: 21.2, + holder: 'Jeff Lebowski', + masked_number: '************1111' + }, + amount: 0.0 + } + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling removePaymentInstrumentFromBasket without basketId & paymentInstrumentId returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperBaskets.removePaymentInstrumentFromBasket({ + parameters: {body: {}} + }) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: basketId,paymentInstrumentId' + ) + expect(response.type).toEqual('MissingParameters') + }) + test('calling getShippingMethodsForShipment returns basketId object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.getShippingMethodsForShipment({ + parameters: { + basketId: basketId, + shipmentId: 'fake-id' + } + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling getShippingMethodsForShipment without shipmentId returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.getShippingMethodsForShipment({ + parameters: { + basketId: basketId + } + }) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: shipmentId' + ) + expect(response.type).toEqual('MissingParameters') + }) + test('calling updateBillingAddressForBasket returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.updateBillingAddressForBasket({ + parameters: { + basketId: basketId + }, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling updateBillingAddressForBasket without body returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.updateBillingAddressForBasket({ + parameters: { + basketId: basketId + } + }) + expect(response.title).toEqual('Body is required for this request') + expect(response.type).toEqual('MissingBody') + }) + test('calling updateShippingAddressForShipment returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.updateShippingAddressForShipment({ + parameters: { + basketId: basketId, + shipmentId: 'fake-id' + }, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling updateShippingAddressForShipment without shipmentId returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.updateShippingAddressForShipment({ + parameters: { + basketId: basketId + }, + body: {} + }) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: shipmentId' + ) + expect(response.type).toEqual('MissingParameters') + }) + test('calling updateShippingMethodForShipment returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.updateShippingMethodForShipment({ + parameters: { + basketId: basketId, + shipmentId: 'fake-id' + }, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling updateShippingMethodForShipment without shipmentId returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.updateShippingMethodForShipment({ + parameters: { + basketId: basketId + }, + body: {} + }) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: shipmentId' + ) + expect(response.type).toEqual('MissingParameters') + }) + test('calling updateCustomerForBasket returns basket object in camelCase', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const basket = await api.shopperBaskets.updateCustomerForBasket({ + parameters: { + basketId: basketId + }, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + }) + test('calling updateCustomerForBasket without body returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const response = await api.shopperBaskets.updateCustomerForBasket({ + parameters: { + basketId: basketId + } + }) + expect(response.title).toEqual('Body is required for this request') + expect(response.type).toEqual('MissingBody') + }) + test('calling deleteBasket returns status of 204', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify({status: 204})) + + const basketId = 'bczFTaOjgEqUkaaadkvHwbgrP5' + const respsonse = await api.shopperBaskets.deleteBasket({ + parameters: { + basketId: basketId + }, + body: {} + }) + expect(respsonse).toBeDefined() + expect(respsonse.status).toEqual(204) + }) + test('calling deleteBasket without basketId returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperBaskets.deleteBasket({ + parameters: {} + }) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: basketId' + ) + expect(response.type).toEqual('MissingParameters') + }) + + test('ocapiFetch ShopperBaskets throws an error when it receives error from OCAPI', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiFaultResponse)) + + await expect(api.shopperBaskets.createBasket({})).rejects.toThrow( + ocapiFaultResponse.fault.message + ) + }) + test('calling createOrder returns basket object', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperOrders.createOrder({ + headers: {_sfdc_customer_id: 'usid'}, + parameters: {}, + body: {basketId: ''} + }) + expect(response).toBeDefined() + expect(response.customerInfo.customerId).toBeDefined() + }) + test('calling createOrder without body returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperOrders.createOrder({ + headers: {_sfdc_customer_id: 'usid'}, + parameters: {} + }) + expect(response.title).toEqual('Body is required for this request') + expect(response.type).toEqual('MissingBody') + }) + test('calling getOrder returns basket object', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperOrders.getOrder({ + headers: {_sfdc_customer_id: 'usid'}, + parameters: {orderNo: ''} + }) + expect(response).toBeDefined() + expect(response.customerInfo.customerId).toBeDefined() + }) + test('calling createOrder without orderNo returns descriptive error', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await api.shopperOrders.getOrder({ + headers: {_sfdc_customer_id: 'usid'}, + parameters: {} + }) + expect(response.title).toEqual( + 'The following parameters were missing from your resquest: orderNo' + ) + expect(response.type).toEqual('MissingParameters') + }) + + test('ocapiFetch ShopperOrders throws an error when it receives error from OCAPI', async () => { + const api = getAPI() + fetch.mockResponseOnce(JSON.stringify(ocapiFaultResponse)) + + await expect( + api.shopperOrders.createOrder({ + parameters: {}, + headers: {_sfdc_customer_id: 'usid'}, + body: {basketId: ''} + }) + ).rejects.toThrow(ocapiFaultResponse.fault.message) + }) +}) diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mock-data.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mock-data.js new file mode 100644 index 0000000000..213ed5ecf5 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mock-data.js @@ -0,0 +1,5617 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +export const examplePKCEVerifier = + 'sWSk9W.BiH7Ssv-_mwe6EsYk3OeH9OZ3qE9210l9L9mYDtZL9zETSHzOJPj4Oymp5VGkCn_1r7IOW7-IpGDVzPfTzUdY25TQuBkM1BKTG_41iOB3AI9JOd3f.~Q.DvvY' +export const exampleTokenReponse = { + access_token: + 'eyJ2ZXIiOiIxLjAiLCJraWQiOiI4ZWM1YWZjOC03MjczLTQxYmYtOWU2MS00MWRkMTAyODU2ZmMiLCJ0eXAiOiJqd3QiLCJjbHYiOiJKMi4xLjAiLCJhbGciOiJFUzI1NiJ9.eyJhdXQiOiJHVUlEIiwic2NwIjoic2ZjYy5zaG9wcGVyLWNhdGVnb3JpZXMgc2ZjYy5zaG9wcGVyLWN1c3RvbWVycy5yZWdpc3RlciBzZmNjLnNob3BwZXItY3VzdG9tZXJzLmxvZ2luIHNmY2Muc2hvcHBlci1teWFjY291bnQgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5ydyBzZmNjLnNob3BwZXItbXlhY2NvdW50LmFkZHJlc3Nlcy5ydyBzZmNjLnNob3BwZXItbXlhY2NvdW50LmFkZHJlc3NlcyBzZmNjLnNob3BwZXItbXlhY2NvdW50LmJhc2tldHMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5vcmRlcnMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wYXltZW50aW5zdHJ1bWVudHMucncgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wYXltZW50aW5zdHJ1bWVudHMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wcm9kdWN0bGlzdHMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wcm9kdWN0bGlzdHMucncgc2ZjYy5zaG9wcGVyLXByb2R1Y3RsaXN0cyBzZmNjLnNob3BwZXItcHJvbW90aW9ucyBzZmNjLnNob3BwZXItZ2lmdC1jZXJ0aWZpY2F0ZXMgc2ZjYy5zaG9wcGVyLXByb2R1Y3Qtc2VhcmNoIHNmY2Muc2hvcHBlci1iYXNrZXRzLW9yZGVycy5ydyBzZmNjLnNob3BwZXItYmFza2V0cy1vcmRlcnMgc2ZjYy5zaG9wcGVyLXByb2R1Y3RzIiwic3ViIjoiY2Mtc2xhczo6enpyZl8wMDE6OnNjaWQ6YzljNDViZmQtMGVkMy00YWEyLTk5NzEtNDBmODg5NjJiODM2Ojp1c2lkOmY1MWZkNDkxLWViYTEtNDU4Mi04MWY5LTRhMDE0YTQ3MmEyMCIsImN0eCI6InNsYXMiLCJpc3MiOiJzbGFzL3Byb2QvenpyZl8wMDEiLCJpc3QiOjEsImF1ZCI6ImNvbW1lcmNlY2xvdWQvcHJvZC96enJmXzAwMSIsIm5iZiI6MTYxNTU2NTY2NCwic3R5IjoiVXNlciIsImlzYiI6InVpZG86ZWNvbTo6dXBuOnJlZnRlc3RANjRsYWJzLmNvbTo6dWlkbjpEYXJlayBSb3NzbWFuIiwiZXhwIjoxNjE1NTY3NDk0LCJpYXQiOjE2MTU1NjU2OTQsImp0aSI6IkMyQzQ4NTYyMDE4NjAtMTg5MDY3ODkwMzY1MzAyMTAyODM3OTUyOCJ9.a6hXCRArmoqZOnoiUW9Ed9id2hY_Q2ZsKL2MMpJuiv65aIlFmi1S5gAXHLNFnL-OSd8oRyOIb-W9YnsCb2ISzQ', + id_token: + 'eyJraWQiOiI3MTUxNmI0My1lNzBkLTQ5NDktYjhmNy00NTdkM2JmMjY2ZjMiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjYy1zbGFzOjp6enJmXzAwMTo6c2NpZDpjOWM0NWJmZC0wZWQzLTRhYTItOTk3MS00MGY4ODk2MmI4MzY6OnVzaWQ6ZjUxZmQ0OTEtZWJhMS00NTgyLTgxZjktNGEwMTRhNDcyYTIwIiwiYXVkIjoiYzljNDViZmQtMGVkMy00YWEyLTk5NzEtNDBmODg5NjJiODM2IiwiaXNzIjoicHJkLnVzLnNob3BwZXIuY2Muc2FsZXNmb3JjZS5jb20iLCJuYW1lIjoiZWNvbSIsImV4cCI6MTYxNTU2NzQ5NCwiaWF0IjoxNjE1NTY1Njk0LCJlbWFpbCI6ImVjb20ifQ.KgaXzEH1pisXLigTvBB_U9Xw0aQeowJiawQzCewZlQDrh7P0iOthfVnTHBMwvntJow0uSh3_78HFBlhNWsqy2szCHjR7dLtjN0oqb9izDhOjyslR2bAvfM24cR-Uor40oNx1h2d7oELOmFsn0Dr8sgl6gQIQolGfdnCHSBLTDeD12vzgBAzjYO8nBZ8r8HOO6yqOCHpyD6aqzmzYpBLluyXU1Ul04qlCNKm9_Dn7HFlKWkZyujlyPQdLz_ql7QnuKGpW_dZzqBfeO5LJBvbybw2AW07bVBFTnn5LisMnMxNVoCiLnUAzxtZMthQY1OZLzhZwITmuSBstaHZF8mACBQ', + refresh_token: 'bvMQkZbDnYYaheqDq3x6JhOlhUhHSUzh1f9geEadTQw', + expires_in: 1800, + token_type: 'BEARER', + usid: 'f51fd491-eba1-4582-81f9-4a014a472a20', + customer_id: 'customerid', + enc_user_id: 'ce5f0dd2fc1fdb7f06e8e97011200943', +} + +export const exampleTokenReponseForRefresh = { + access_token: + 'eyJ2ZXIiOiIxLjAiLCJraWQiOiI4ZWM1YWZjOC03MjczLTQxYmYtOWU2MS00MWRkMTAyODU2ZmMiLCJ0eXAiOiJqd3QiLCJjbHYiOiJKMi4xLjAiLCJhbGciOiJFUzI1NiJ9.eyJhdXQiOiJHVUlEIiwic2NwIjoic2ZjYy5zaG9wcGVyLWNhdGVnb3JpZXMgc2ZjYy5zaG9wcGVyLWN1c3RvbWVycy5yZWdpc3RlciBzZmNjLnNob3BwZXItY3VzdG9tZXJzLmxvZ2luIHNmY2Muc2hvcHBlci1teWFjY291bnQgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5ydyBzZmNjLnNob3BwZXItbXlhY2NvdW50LmFkZHJlc3Nlcy5ydyBzZmNjLnNob3BwZXItbXlhY2NvdW50LmFkZHJlc3NlcyBzZmNjLnNob3BwZXItbXlhY2NvdW50LmJhc2tldHMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5vcmRlcnMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wYXltZW50aW5zdHJ1bWVudHMucncgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wYXltZW50aW5zdHJ1bWVudHMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wcm9kdWN0bGlzdHMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wcm9kdWN0bGlzdHMucncgc2ZjYy5zaG9wcGVyLXByb2R1Y3RsaXN0cyBzZmNjLnNob3BwZXItcHJvbW90aW9ucyBzZmNjLnNob3BwZXItZ2lmdC1jZXJ0aWZpY2F0ZXMgc2ZjYy5zaG9wcGVyLXByb2R1Y3Qtc2VhcmNoIHNmY2Muc2hvcHBlci1iYXNrZXRzLW9yZGVycy5ydyBzZmNjLnNob3BwZXItYmFza2V0cy1vcmRlcnMgc2ZjYy5zaG9wcGVyLXByb2R1Y3RzIiwic3ViIjoiY2Mtc2xhczo6enpyZl8wMDE6OnNjaWQ6YzljNDViZmQtMGVkMy00YWEyLTk5NzEtNDBmODg5NjJiODM2Ojp1c2lkOmY1MWZkNDkxLWViYTEtNDU4Mi04MWY5LTRhMDE0YTQ3MmEyMCIsImN0eCI6InNsYXMiLCJpc3MiOiJzbGFzL3Byb2QvenpyZl8wMDEiLCJpc3QiOjEsImF1ZCI6ImNvbW1lcmNlY2xvdWQvcHJvZC96enJmXzAwMSIsIm5iZiI6MTYxNTU2NTY2NCwic3R5IjoiVXNlciIsImlzYiI6InVpZG86ZWNvbTo6dXBuOnJlZnRlc3RANjRsYWJzLmNvbTo6dWlkbjpEYXJlayBSb3NzbWFuIiwiZXhwIjoxNjE1NTY3NDk0LCJpYXQiOjE2MTU1NjU2OTQsImp0aSI6IkMyQzQ4NTYyMDE4NjAtMTg5MDY3ODkwMzY1MzAyMTAyODM3OTUyOCJ9.a6hXCRArmoqZOnoiUW9Ed9id2hY_Q2ZsKL2MMpJuiv65aIlFmi1S5gAXHLNFnL-OSd8oRyOIb-W9YnsCb2IJGK', + id_token: + 'eyJraWQiOiI3MTUxNmI0My1lNzBkLTQ5NDktYjhmNy00NTdkM2JmMjY2ZjMiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjYy1zbGFzOjp6enJmXzAwMTo6c2NpZDpjOWM0NWJmZC0wZWQzLTRhYTItOTk3MS00MGY4ODk2MmI4MzY6OnVzaWQ6ZjUxZmQ0OTEtZWJhMS00NTgyLTgxZjktNGEwMTRhNDcyYTIwIiwiYXVkIjoiYzljNDViZmQtMGVkMy00YWEyLTk5NzEtNDBmODg5NjJiODM2IiwiaXNzIjoicHJkLnVzLnNob3BwZXIuY2Muc2FsZXNmb3JjZS5jb20iLCJuYW1lIjoiZWNvbSIsImV4cCI6MTYxNTU2NzQ5NCwiaWF0IjoxNjE1NTY1Njk0LCJlbWFpbCI6ImVjb20ifQ.KgaXzEH1pisXLigTvBB_U9Xw0aQeowJiawQzCewZlQDrh7P0iOthfVnTHBMwvntJow0uSh3_78HFBlhNWsqy2szCHjR7dLtjN0oqb9izDhOjyslR2bAvfM24cR-Uor40oNx1h2d7oELOmFsn0Dr8sgl6gQIQolGfdnCHSBLTDeD12vzgBAzjYO8nBZ8r8HOO6yqOCHpyD6aqzmzYpBLluyXU1Ul04qlCNKm9_Dn7HFlKWkZyujlyPQdLz_ql7QnuKGpW_dZzqBfeO5LJBvbybw2AW07bVBFTnn5LisMnMxNVoCiLnUAzxtZMthQY1OZLzhZwITmuSBstaHZF8mACBQ', + refresh_token: 'bvMQkZbDnYYaheqDq3x6JhOlhUhHSUzh1f9geEadTQw', + expires_in: 1800, + token_type: 'BEARER', + usid: 'f51fd491-eba1-4582-81f9-4a014a472a20', + customer_id: 'customerid', + enc_user_id: 'ce5f0dd2fc1fdb7f06e8e97011200943', +} +export const exampleRedirectUrl = + 'http://localhost:3000/callback?usid=395ac523-27dc-439e-b3a5-4a7ff6376392&state=1615564861486&scope=openid%20offline_access&code=Th32jvj25gC87fo48RYn3zRbxVhsDCyDT4kIaBh7QFM ' +export const email = 'reftest@64labs.com' +export const password = '64Labs2020!' +export const expiredAuthToken = + 'Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IjE2MDc1MzkwMDUwNTciLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJjOWM0NWJmZC0wZWQzLTRhYTItOTk3MS00MGY4ODk2MmI4MzYiLCJleHAiOjE2MTIzNjY4NTcsImlhdCI6MTYxMjM2NTA1NywiaXNzIjoiY29tbWVyY2VjbG91ZC9wcm9kdWN0aW9uL3p6cmYtMDAxLTY0NDlhYTgzLTUwYzItNGE1Yy1iNGE2LWIyM2VjOWNkMGExOS0zIiwic2NvcGUiOlsiU0FMRVNGT1JDRV9DT01NRVJDRV9BUEk6enpyZl8wMDEiLCJzZmNjLnByb2R1Y3RzLnJ3Iiwic2ZjYy5zaG9wcGVyLWJhc2tldHMtb3JkZXJzLnJ3Iiwic2ZjYy5zaG9wcGVyLWNhdGVnb3JpZXMiLCJzZmNjLnNob3BwZXItY3VzdG9tZXJzLmxvZ2luIiwic2ZjYy5zaG9wcGVyLWN1c3RvbWVycy5yZWdpc3RlciIsInNmY2Muc2hvcHBlci1naWZ0LWNlcnRpZmljYXRlcyIsInNmY2Muc2hvcHBlci1teWFjY291bnQuYWRkcmVzc2VzLnJ3Iiwic2ZjYy5zaG9wcGVyLW15YWNjb3VudC5iYXNrZXRzIiwic2ZjYy5zaG9wcGVyLW15YWNjb3VudC5vcmRlcnMiLCJzZmNjLnNob3BwZXItbXlhY2NvdW50LnBheW1lbnRpbnN0cnVtZW50cy5ydyIsInNmY2Muc2hvcHBlci1teWFjY291bnQucHJvZHVjdGxpc3RzLnJ3Iiwic2ZjYy5zaG9wcGVyLW15YWNjb3VudC5ydyIsInNmY2Muc2hvcHBlci1wcm9kdWN0LXNlYXJjaCIsInNmY2Muc2hvcHBlci1wcm9tb3Rpb25zIiwic2ZjYy5zaG9wcGVyLnN0b3JlcyIsInNmY2Muc2hvcHBlci1wcm9kdWN0cyJdLCJzdWIiOiJ7XCJDdXN0b21lckluZm9cIjp7XCJjdXN0b21lcklkXCI6XCJhYlpYYk9IQ1NUUTJDUmNoVnpQUDNyUlVNaFwiLFwiZ3Vlc3RcIjp0cnVlLFwidmlzaXRJZFwiOlwiOTRmYjVhNGZhMWM5MzAzN2E4ZTg1YjJhMmJcIn19In0.JVbGySy4qk2DD1ZXTdTjNY_iWzlejX0L-rukF0qPIwyswYpRGr4MiTgh29c4AUSuhUdsqQtJoW1VcGvdYGU9Og' + +// OCAPI MOCK DATA + +export const ocapiBasketResponse = { + _v: '21.3', + _resource_state: '860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5', + _type: 'basket', + _flash: [], + + basket_id: 'bczFTaOjgEqUkaaadkvHwbgrP5', + currency: 'USD', + customer_info: { + _type: 'customer_info', + customer_id: 'adNJrbxJovaT5DPxUSfOywk6Et', + email: '', + }, + order_total: 0.0, + product_sub_total: 0.0, + product_total: 0.0, + shipments: [ + { + _type: 'shipment', + id: 'me', + shipment_id: 'bc5OTaOjgEqUoaaadkvHwbgrP5', + }, + ], + shipping_items: [ + { + shipment_id: 'me', + item_id: 'bcwsbaOjgEqUsaaadkvHwbgrP5', + }, + ], + shipping_total: 0.0, + shipping_total_tax: 0.0, + taxation: 'net', + tax_total: 0.0, +} + +export const ocapiBasketWithItem = { + _v: '21.3', + _type: 'basket', + _resource_state: 'd4ad608574e06ab2d6bfa5ffc861402d653740dd437b625eced2bc2f5adf801e', + _flash: [ + { + _type: 'flash', + type: 'PaymentMethodRequired', + message: + 'No payment method ID was specified. Please provide a valid payment method ID.', + path: '$.payment_instruments[0].payment_method_id', + }, + { + _type: 'flash', + type: 'BillingAddressRequired', + message: 'No billing address was specified. Please provide a valid billing address.', + path: '$.billing_address', + }, + { + _type: 'flash', + type: 'OrderTotalNotSet', + message: 'Order total missing, calculation failed.', + path: '$.order_total', + }, + { + _type: 'flash', + type: 'ShippingAddressRequired', + message: 'No shipping address was specified. Please provide a valid shipping address.', + path: '$.shipments[0].shipping_address', + details: {shipmentId: 'me'}, + }, + { + _type: 'flash', + type: 'ShippingMethodRequired', + message: + 'No shipping method ID was specified. Please provide a valid shipping method ID.', + path: '$.shipments[0].shipping_method', + details: {shipmentId: 'me'}, + }, + { + _type: 'flash', + type: 'ShippingItemAdjustedPriceNotSet', + message: "Price missing for shipping item ''b2a1772eb5c47263499cb6d86b''.", + path: '$.shipping_items[0].adjusted_price', + }, + ], + adjusted_merchandize_total_tax: 0.75, + adjusted_shipping_total_tax: null, + agent_basket: false, + basket_id: '6d0ef818e2b431645b844e6ac2', + channel_type: 'storefront', + creation_date: '2021-04-08T19:54:00.772Z', + currency: 'USD', + customer_info: {_type: 'customer_info', customer_id: 'customerid', email: ''}, + last_modified: '2021-04-08T19:54:02.996Z', + merchandize_total_tax: 0.75, + notes: { + _type: 'simple_link', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/baskets/6d0ef818e2b431645b844e6ac2/notes' + }, + order_total: null, + product_items: [ + { + _type: 'product_item', + adjusted_tax: 0.75, + base_price: 14.99, + bonus_product_line_item: false, + gift: false, + item_id: '98183bf3bbf73fee56cf89d570', + item_text: 'Long Sleeve Crew Neck', + price: 14.99, + price_after_item_discount: 14.99, + price_after_order_discount: 14.99, + product_id: '701642811398M', + product_name: 'Long Sleeve Crew Neck', + quantity: 2, + shipment_id: 'me', + tax: 0.75, + tax_basis: 14.99, + tax_class_id: 'standard', + tax_rate: 0.05, + }, + ], + product_sub_total: 14.99, + product_total: 14.99, + shipments: [ + { + _type: 'shipment', + adjusted_merchandize_total_tax: 0.75, + adjusted_shipping_total_tax: null, + gift: false, + merchandize_total_tax: 0.75, + product_sub_total: 14.99, + product_total: 14.99, + shipment_id: 'me', + shipment_total: null, + shipping_status: 'not_shipped', + shipping_total: null, + shipping_total_tax: null, + tax_total: null, + }, + ], + shipping_items: [ + { + _type: 'shipping_item', + adjusted_tax: null, + base_price: null, + item_id: 'b2a1772eb5c47263499cb6d86b', + item_text: 'Shipping', + price: null, + price_after_item_discount: null, + shipment_id: 'me', + tax: null, + tax_basis: null, + tax_class_id: null, + tax_rate: 0.05, + }, + ], + shipping_total: null, + shipping_total_tax: null, + taxation: 'net', + tax_total: null, +} + +export const ocapiBasketWithPaymentInstrumentAndBillingAddress = { + _v: '21.3', + _type: 'basket', + _resource_state: 'd4ad608574e06ab2d6bfa5ffc861402d653740dd437b625eced2bc2f5adf801e', + _flash: [ + { + _type: 'flash', + type: 'PaymentMethodRequired', + message: + 'No payment method ID was specified. Please provide a valid payment method ID.', + path: '$.payment_instruments[0].payment_method_id', + }, + { + _type: 'flash', + type: 'BillingAddressRequired', + message: 'No billing address was specified. Please provide a valid billing address.', + path: '$.billing_address', + }, + { + _type: 'flash', + type: 'OrderTotalNotSet', + message: 'Order total missing, calculation failed.', + path: '$.order_total', + }, + { + _type: 'flash', + type: 'ShippingAddressRequired', + message: 'No shipping address was specified. Please provide a valid shipping address.', + path: '$.shipments[0].shipping_address', + details: {shipmentId: 'me'}, + }, + { + _type: 'flash', + type: 'ShippingMethodRequired', + message: + 'No shipping method ID was specified. Please provide a valid shipping method ID.', + path: '$.shipments[0].shipping_method', + details: {shipmentId: 'me'}, + }, + { + _type: 'flash', + type: 'ShippingItemAdjustedPriceNotSet', + message: "Price missing for shipping item ''b2a1772eb5c47263499cb6d86b''.", + path: '$.shipping_items[0].adjusted_price', + }, + ], + adjusted_merchandize_total_tax: 0.75, + adjusted_shipping_total_tax: null, + agent_basket: false, + basket_id: '6d0ef818e2b431645b844e6ac2', + billing_address: { + _type: 'order_address', + city: 'Boston', + country_code: 'US', + first_name: 'John', + full_name: 'John Smith', + last_name: 'Smith', + c_strValue: 'cTest', + }, + channel_type: 'storefront', + creation_date: '2021-04-08T19:54:00.772Z', + currency: 'USD', + customer_info: {_type: 'customer_info', customer_id: 'customerid', email: ''}, + last_modified: '2021-04-08T19:54:02.996Z', + merchandize_total_tax: 0.75, + notes: { + _type: 'simple_link', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/baskets/6d0ef818e2b431645b844e6ac2/notes' + }, + order_total: null, + payment_instruments: [ + { + _type: 'order_payment_instrument', + amount: 1.0, + payment_card: { + _type: 'payment_card', + card_type: 'Visa', + credit_card_expired: false, + expiration_month: 1, + expiration_year: 2021, + holder: 'John Doe', + masked_number: '***********1111', + number_last_digits: '1111', + }, + payment_method_id: 'CREDIT_CARD', + payment_instrument_id: 'ceDUYiWbN1IkkaaadkYHRkclwC', + c_strValue: 'any custom value', + }, + { + amount: 1.0, + payment_bank_account: { + drivers_license_last_digits: 'ense', + drivers_license_masked: '**************ense', + number_last_digits: 'mber', + number_masked: '*************mber', + }, + id: 'cdKCIiWbNVndQaaadhlSa35gtp', + payment_card: { + card_type: 'testVisa', + credit_card_expired: false, + expiration_month: 4, + expiration_year: 21.2, + holder: 'TestPerson', + number_last_digits: 'mber', + number_masked: '**********mber', + }, + payment_method_id: 'OCAPI_Payment_Simple', + }, + ], + product_items: [ + { + _type: 'product_item', + adjusted_tax: 0.75, + base_price: 14.99, + bonus_product_line_item: false, + gift: false, + item_id: '98183bf3bbf73fee56cf89d570', + item_text: 'Long Sleeve Crew Neck', + price: 14.99, + price_after_item_discount: 14.99, + price_after_order_discount: 14.99, + product_id: '701642811398M', + product_name: 'Long Sleeve Crew Neck', + quantity: 1, + shipment_id: 'me', + tax: 0.75, + tax_basis: 14.99, + tax_class_id: 'standard', + tax_rate: 0.05, + }, + ], + product_sub_total: 14.99, + product_total: 14.99, + shipments: [ + { + _type: 'shipment', + id: 'me', + shipping_method: { + _type: 'shipping_method', + description: 'The default shipping method.', + id: 'DefaultShippingMethod', + name: 'Default Shipping Method', + price: 5.55, + c_somestring: 'ShippingMethod String Value', + }, + shipment_id: 'cdKeciWbNL21saaadjZkbNt6xg', + }, + { + _type: 'shipment', + id: 'shipmentId123', + shipping_address: { + _type: 'order_address', + city: 'Boston', + country_code: 'US', + first_name: 'John', + full_name: 'John Smith', + last_name: 'Smith', + c_strValue: 'cTest', + }, + shipment_id: 'cdOlsiWbNLWhkaaadjbQdNt6xg', + }, + ], + shipping_items: [ + { + _type: 'shipping_item', + adjusted_tax: null, + base_price: null, + item_id: 'b2a1772eb5c47263499cb6d86b', + item_text: 'Shipping', + price: null, + price_after_item_discount: null, + shipment_id: 'me', + tax: null, + tax_basis: null, + tax_class_id: null, + tax_rate: 0.05, + }, + ], + shipping_total: null, + shipping_total_tax: null, + taxation: 'net', + tax_total: null, +} + +export const mockShippingMethods = { + _v: '21.3', + _type: 'shipping_method_result', + applicable_shipping_methods: [ + { + _type: 'shipping_method', + _resource_state: '860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5', + description: 'The default shipping method.', + id: 'DefaultShippingMethod', + name: 'Default Shipping Method', + price: 5.55, + shipping_promotions: [ + { + callout_msg: 'Free Shipping Amount Above 150', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/promotions/3184d71eea54c9d27e88dc41ca', + promotion_id: 'FreeShippingAmountAbove150', + promotion_name: 'Free Shipping Amount Above 150', + }, + ], + }, + { + _type: 'shipping_method', + _resource_state: '847f9c3c5867f641470b3046aeec31f07757991b792d722e10079926f7a289fb', + description: 'The base shipping method.', + id: 'BaseShippingMethod', + name: 'Base Shipping Method', + price: 0.99, + }, + { + _type: 'shipping_method', + _resource_state: 'c3c5867f641470b3046aeec31f07757991b792d722e10079926f7a289fb', + description: 'A shipping method that contains product level shipping costs.', + id: 'ProductLevelShippingCostsShippingMethod', + name: 'Product Level Shipping Costs Shipping Method', + price: 0.1, + }, + ], + default_shipping_method_id: 'DefaultShippingMethod', +} + +export const ocapiOrderResponse = { + _v: '21.3', + _type: 'order', + _resource_state: '860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5', + adjusted_merchandize_total_tax: 0.05, + adjusted_shipping_total_tax: 0.0, + billing_address: { + city: 'Boston', + country_code: 'US', + first_name: 'Jeff', + full_name: 'Jeff Lebowski', + last_name: 'Lebowski', + c_strValue: 'cTest', + }, + creation_date: '2014-11-06T13:36Z', + currency: 'USD', + customer_info: { + customer_id: 'customerid', + customer_no: 'jlebowski', + email: 'jeff@lebowski.com', + }, + merchandize_total_tax: 5.0, + order_no: '00000101', + order_token: 'XizrH5hY1vB-Mxno-zfoCqTkegl3y7_OrRPGNZFlYG8', + order_total: 1.06, + payment_instruments: [ + { + amount: 1.0, + payment_bank_account: { + drivers_license_last_digits: 'ense', + drivers_license_masked: '**************ense', + number_last_digits: 'mber', + number_masked: '*************mber', + }, + id: 'cdKCIiWbNVndQaaadhlSa35gtp', + payment_card: { + card_type: 'testVisa', + credit_card_expired: false, + expiration_month: 4, + expiration_year: 21.2, + holder: 'TestPerson', + number_last_digits: 'mber', + number_masked: '**********mber', + }, + payment_method_id: 'OCAPI_Payment_Simple', + }, + ], + product_items: [ + { + adjusted_tax: 5.0, + base_price: 16.49, + bonus_product_line_item: false, + item_text: 'Simple Product', + price: 16.49, + price_after_item_discount: 16.49, + price_after_order_discount: 1.0, + product_id: 'SimpleProduct', + product_name: 'Simple Product', + quantity: 1.0, + tax: 5.0, + tax_basis: 16.49, + tax_class_id: null, + tax_rate: 0.05, + item_id: 'cdHBEiWbNV9ZcaaadhrCk35gtp', + c_strValue: 'Test', + }, + ], + product_sub_total: 16.49, + product_total: 1.0, + shipments: [ + { + id: 'me', + shipping_address: { + city: 'Boston', + country_code: 'US', + first_name: 'Jeff', + full_name: 'Jeff Lebowski', + last_name: 'Lebowski', + c_strValue: 'cTest', + }, + shipping_method: { + description: 'The base shipping method.', + id: 'BaseShippingMethod', + name: 'Base Shipping Method', + price: 0.01, + c_somestring: 'ShippingMethod String Value', + }, + }, + ], + shipping_items: [ + { + adjusted_tax: 0.0, + base_price: 0.01, + item_text: 'Shipping', + price: 0.01, + price_after_item_discount: 0.01, + shipment_id: 'me', + tax: 0.0, + tax_basis: 0.01, + tax_class_id: 'DefaultTaxClass', + tax_rate: 0.05, + item_id: 'devgoiWbNVc92aaadhrSk35gtp', + }, + ], + shipping_total: 0.01, + shipping_total_tax: 0.0, + status: 'created', + tax_total: 0.05, + c_strValue: 'before submit basket', + c_textValue: 'after submit basket', +} + +export const ocapiFaultResponse = { + _v: '21.3', + fault: { + arguments: {basketIds: '2fa6195f3722bea373afc9953f'}, + type: 'CustomerBasketsQuotaExceededException', + message: + 'The maximum number of baskets per customer was exceeded. Please reuse or delete one of the existing baskets (2fa6195f3722bea373afc9953f).', + }, +} + +export const mockPaymentMethods = { + _v: '21.3', + _type: 'payment_method_result', + applicable_payment_methods: [ + { + _type: 'payment_method', + cards: [ + { + _type: 'payment_card_spec', + card_type: 'Visa', + checksum_verification_enabled: true, + name: 'Visa', + number_lengths: ['13', '16'], + number_prefixes: ['4'], + security_code_length: 3, + }, + { + _type: 'payment_card_spec', + card_type: 'Amex', + checksum_verification_enabled: true, + name: 'American Express', + number_lengths: ['15'], + number_prefixes: ['34', '37'], + security_code_length: 4, + }, + { + _type: 'payment_card_spec', + card_type: 'Master Card', + checksum_verification_enabled: true, + name: 'MasterCard', + number_lengths: ['16'], + number_prefixes: ['51-55'], + security_code_length: 3, + }, + { + _type: 'payment_card_spec', + card_type: 'Discover', + checksum_verification_enabled: true, + name: 'Discover', + number_lengths: ['16'], + number_prefixes: ['6011', '622126-622925', '644-649', '65'], + security_code_length: 3, + }, + ], + id: 'CREDIT_CARD', + name: 'Credit Card', + payment_processor_id: 'BASIC_CREDIT', + }, + ], +} + +export const mockedRegisteredCustomerWithTwoAddresses = { + addresses: [ + { + address1: '123 Main St', + addressId: 'savedaddress1', + city: 'Tampa', + countryCode: 'US', + creationDate: '2021-04-07T12:08:03.000Z', + firstName: 'Test', + fullName: 'Test McTester', + lastModified: '2021-04-07T12:08:03.000Z', + lastName: 'McTester', + phone: '(727) 555-1234', + postalCode: '33712', + preferred: true, + stateCode: 'FL', + }, + { + address1: '123 Main St', + addressId: 'savedaddress2', + city: 'Tampa', + countryCode: 'US', + creationDate: '2021-04-07T12:08:03.000Z', + firstName: 'Test2', + fullName: 'Test2 McTester', + lastModified: '2021-04-07T12:08:03.000Z', + lastName: 'McTester', + phone: '(727) 555-1234', + postalCode: '33712', + preferred: true, + stateCode: 'FL', + }, + ], + authType: 'registered', + creationDate: '2021-03-31T13:32:42.000Z', + customerId: 'customerid', + customerNo: '00149004', + email: 'customer@test.com', + enabled: true, + lastLoginTime: '2021-04-14T13:38:29.778Z', + lastModified: '2021-04-14T13:38:29.778Z', + firstName: 'Testing', + lastName: 'Tester', + phoneHome: '(727) 555-1234', + lastVisitTime: '2021-04-14T13:38:29.778Z', + login: 'customer@test.com', + paymentInstruments: [ + { + creationDate: '2021-04-01T14:34:56.000Z', + lastModified: '2021-04-01T14:34:56.000Z', + paymentBankAccount: {}, + paymentCard: { + cardType: 'Master Card', + creditCardExpired: false, + expirationMonth: 1, + expirationYear: 2030, + holder: 'Test McTester', + maskedNumber: '************5454', + numberLastDigits: '5454', + validFromMonth: 1, + validFromYear: 2020, + }, + paymentInstrumentId: 'testcard1', + paymentMethodId: 'CREDIT_CARD', + }, + ], + previousLoginTime: '2021-04-14T13:38:29.778Z', + previousVisitTime: '2021-04-14T13:38:29.778Z', +} + +export const mockedRegisteredCustomer = { + addresses: [ + { + address1: '123 Main St', + addressId: 'savedaddress1', + city: 'Tampa', + countryCode: 'US', + creationDate: '2021-04-07T12:08:03.000Z', + firstName: 'Test', + fullName: 'Test McTester', + lastModified: '2021-04-07T12:08:03.000Z', + lastName: 'McTester', + phone: '(727) 555-1234', + postalCode: '33712', + preferred: true, + stateCode: 'FL', + }, + ], + authType: 'registered', + creationDate: '2021-03-31T13:32:42.000Z', + customerId: 'customerid', + customerNo: '00149004', + email: 'customer@test.com', + enabled: true, + lastLoginTime: '2021-04-14T13:38:29.778Z', + lastModified: '2021-04-14T13:38:29.778Z', + firstName: 'Testing', + lastName: 'Tester', + phoneHome: '(727) 555-1234', + lastVisitTime: '2021-04-14T13:38:29.778Z', + login: 'customer@test.com', + paymentInstruments: [ + { + creationDate: '2021-04-01T14:34:56.000Z', + lastModified: '2021-04-01T14:34:56.000Z', + paymentBankAccount: {}, + paymentCard: { + cardType: 'Master Card', + creditCardExpired: false, + expirationMonth: 1, + expirationYear: 2030, + holder: 'Test McTester', + maskedNumber: '************5454', + numberLastDigits: '5454', + validFromMonth: 1, + validFromYear: 2020, + }, + paymentInstrumentId: 'testcard1', + paymentMethodId: 'CREDIT_CARD', + }, + ], + previousLoginTime: '2021-04-14T13:38:29.778Z', + previousVisitTime: '2021-04-14T13:38:29.778Z', +} + +export const mockedGuestCustomer = { + authType: 'guest', + customerId: 'customerid', + email: '', +} + +export const productsResponse = { + limit: 1, + data: [ + { + currency: 'USD', + id: '701642811398M', + imageGroups: [ + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + }, + { + alt: 'Long Sleeve Crew Neck, Fire Red, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'large', + }, + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + }, + { + alt: 'Long Sleeve Crew Neck, Fire Red, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'medium', + }, + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + }, + { + alt: 'Long Sleeve Crew Neck, Fire Red, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'small', + }, + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'swatch', + }, + ], + inventory: { + ats: 89, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 89, + }, + longDescription: + 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', + master: { + masterId: '25517823M', + orderable: true, + price: 14.99, + }, + minOrderQuantity: 1, + name: 'Long Sleeve Crew Neck', + pageDescription: + 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', + pageTitle: 'Long Sleeve Crew Neck', + price: 14.99, + productPromotions: [ + { + calloutMsg: 'Buy one Long Center Seam Skirt and get 2 tops', + promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased', + }, + ], + shortDescription: + 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', + stepQuantity: 1, + type: { + variant: true, + }, + upc: '701642811398', + validFrom: { + default: '2010-11-18T05:00:00.000Z', + }, + variants: [ + { + orderable: true, + price: 14.99, + productId: '701642811398M', + variationValues: { + color: 'JJ825XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841227M', + variationValues: { + color: 'JJ3HDXX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841265M', + variationValues: { + color: 'JJ5QZXX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811473M', + variationValues: { + color: 'JJI15XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811435M', + variationValues: { + color: 'JJG80XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811312M', + variationValues: { + color: 'JJ2XNXX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811237M', + variationValues: { + color: 'JJ169XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643342570M', + variationValues: { + color: 'JJ3HDXX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811343M', + variationValues: { + color: 'JJ2XNXX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811404M', + variationValues: { + color: 'JJ825XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811336M', + variationValues: { + color: 'JJ2XNXX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811268M', + variationValues: { + color: 'JJ169XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070756M', + variationValues: { + color: 'JJ2XNXX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811497M', + variationValues: { + color: 'JJI15XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811480M', + variationValues: { + color: 'JJI15XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811466M', + variationValues: { + color: 'JJG80XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811428M', + variationValues: { + color: 'JJ825XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070732M', + variationValues: { + color: 'JJ825XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811244M', + variationValues: { + color: 'JJ169XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070763M', + variationValues: { + color: 'JJG80XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643342587M', + variationValues: { + color: 'JJ5QZXX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811503M', + variationValues: { + color: 'JJI15XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811459M', + variationValues: { + color: 'JJG80XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070725M', + variationValues: { + color: 'JJ169XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841289M', + variationValues: { + color: 'JJ5QZXX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841272M', + variationValues: { + color: 'JJ5QZXX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841241M', + variationValues: { + color: 'JJ3HDXX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811329M', + variationValues: { + color: 'JJ2XNXX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811251M', + variationValues: { + color: 'JJ169XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070770M', + variationValues: { + color: 'JJI15XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841296M', + variationValues: { + color: 'JJ5QZXX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841258M', + variationValues: { + color: 'JJ3HDXX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811442M', + variationValues: { + color: 'JJG80XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811411M', + variationValues: { + color: 'JJ825XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841234M', + variationValues: { + color: 'JJ3HDXX', + size: '9MD', + }, + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + { + name: 'Grey Heather', + orderable: true, + value: 'JJ2XNXX', + }, + { + name: 'Meadow Violet', + orderable: true, + value: 'JJ3HDXX', + }, + { + name: 'Begonia Pink', + orderable: true, + value: 'JJ5QZXX', + }, + { + name: 'Fire Red', + orderable: true, + value: 'JJ825XX', + }, + { + name: 'Sugar', + orderable: true, + value: 'JJG80XX', + }, + { + name: 'White', + orderable: true, + value: 'JJI15XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'XS', + orderable: true, + value: '9XS', + }, + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'L', + orderable: true, + value: '9LG', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + variationValues: { + color: 'JJ825XX', + size: '9LG', + }, + c_color: 'JJ825XX', + c_refinementColor: 'red', + c_size: '9LG', + c_width: 'Z', + }, + ], + total: 1, +} + +export const mockOrderHistory = { + limit: 10, + data: [ + { + adjustedMerchandizeTotalTax: 3.15, + adjustedShippingTotalTax: 0.3, + billingAddress: { + address1: '2700 Desoto Way S', + city: 'Saint Petersburg', + countryCode: 'US', + firstName: 'tester', + fullName: 'tester testing', + id: '06bca352dc44586ae82cd085c1', + lastName: 'testing', + phone: '7275551234', + postalCode: '33712', + stateCode: 'FL', + }, + channelType: 'storefront', + confirmationStatus: 'not_confirmed', + createdBy: 'Customer', + creationDate: '2021-04-06T20:15:40.000Z', + currency: 'USD', + customerInfo: { + customerId: 'customerid', + customerName: ' testing', + customerNo: '00149004', + email: 'tester@test.com', + }, + customerName: ' testing', + exportStatus: 'not_exported', + lastModified: '2021-04-06T20:15:40.000Z', + merchandizeTotalTax: 3.15, + notes: {}, + orderNo: '00028011', + orderToken: 'oiC2ta2H_SZTKspfu0Sc0e41Rp4kaO0oTCSswf7tALw', + orderTotal: 72.42, + paymentInstruments: [ + { + amount: 0, + paymentCard: { + cardType: 'Visa', + creditCardExpired: false, + expirationMonth: 1, + expirationYear: 2030, + holder: 'tester testing', + maskedNumber: '************1111', + numberLastDigits: '1111', + validFromMonth: 1, + validFromYear: 2020, + }, + paymentInstrumentId: 'fd4ddecfc5c95b60c7898bbd2a', + paymentMethodId: 'CREDIT_CARD', + }, + ], + paymentStatus: 'not_paid', + productItems: [ + { + adjustedTax: 2.4, + basePrice: 47.99, + bonusProductLineItem: false, + gift: false, + itemId: '1ae8e9a67e2f6aa2408d87ae37', + itemText: 'Pleated Bib Long Sleeve Shirt', + price: 47.99, + priceAfterItemDiscount: 47.99, + priceAfterOrderDiscount: 47.99, + productId: '701642852179M', + productName: 'Pleated Bib Long Sleeve Shirt', + quantity: 1, + shipmentId: 'me', + tax: 2.4, + taxBasis: 47.99, + taxClassId: 'standard', + taxRate: 0.05, + }, + { + adjustedTax: 0.75, + basePrice: 14.99, + bonusProductLineItem: false, + gift: false, + itemId: 'e60d5d71f128440894f4b023dd', + itemText: 'Long Sleeve Crew Neck', + price: 14.99, + priceAfterItemDiscount: 14.99, + priceAfterOrderDiscount: 14.99, + productId: '701642811398M', + productName: 'Long Sleeve Crew Neck', + quantity: 1, + shipmentId: 'me', + tax: 0.75, + taxBasis: 14.99, + taxClassId: 'standard', + taxRate: 0.05, + }, + ], + productSubTotal: 62.98, + productTotal: 62.98, + shipments: [ + { + adjustedMerchandizeTotalTax: 3.15, + adjustedShippingTotalTax: 0.3, + gift: false, + merchandizeTotalTax: 3.15, + productSubTotal: 62.98, + productTotal: 62.98, + shipmentId: 'me', + shipmentTotal: 72.42, + shippingAddress: { + address1: '2700 Desoto Way S', + city: 'Saint Petersburg', + countryCode: 'US', + firstName: 'tester', + fullName: 'tester testing', + id: 'bcb56169768a0ccce114a664e5', + lastName: 'testing', + phone: '7275551234', + postalCode: '33712', + stateCode: 'FL', + }, + shippingMethod: { + description: 'Order received within 7-10 business days', + id: '001', + name: 'Ground', + c_estimatedArrivalTime: '7-10 Business Days', + }, + shippingStatus: 'not_shipped', + shippingTotal: 5.99, + shippingTotalTax: 0.3, + taxTotal: 3.45, + }, + ], + shippingItems: [ + { + adjustedTax: 0.3, + basePrice: 5.99, + itemId: '7d47f50998e2ff9590df8d7daa', + itemText: 'Shipping', + price: 5.99, + priceAfterItemDiscount: 5.99, + shipmentId: 'me', + tax: 0.3, + taxBasis: 5.99, + taxClassId: 'standard', + taxRate: 0.05, + }, + ], + shippingStatus: 'not_shipped', + shippingTotal: 5.99, + shippingTotalTax: 0.3, + siteId: 'RefArch', + status: 'created', + taxation: 'net', + taxTotal: 3.45, + }, + { + adjustedMerchandizeTotalTax: 3.15, + adjustedShippingTotalTax: 0.3, + billingAddress: { + address1: '2700 Desoto Way S', + city: 'Saint Petersburg', + countryCode: 'US', + firstName: 'tester', + fullName: 'tester testing', + id: '48692a8d1adb48bdb01e61a7f6', + lastName: 'testing', + phone: '7275551234', + postalCode: '33712', + stateCode: 'FL', + }, + channelType: 'storefront', + confirmationStatus: 'not_confirmed', + createdBy: 'Customer', + creationDate: '2021-04-06T19:16:15.000Z', + currency: 'USD', + customerInfo: { + customerId: 'customerid', + customerName: ' testing', + customerNo: '00149004', + email: 'tester@test.com', + }, + customerName: ' testing', + exportStatus: 'not_exported', + lastModified: '2021-04-06T19:16:15.000Z', + merchandizeTotalTax: 3.15, + notes: {}, + orderNo: '00028010', + orderToken: 'ncyXKSHbB0TWkEbESOZpYtJnCpoWyV4EwTH7fp3PV0w', + orderTotal: 72.42, + paymentInstruments: [ + { + amount: 0, + paymentCard: { + cardType: 'Master Card', + creditCardExpired: false, + expirationMonth: 1, + expirationYear: 2030, + holder: 'tester testing', + maskedNumber: '************5454', + numberLastDigits: '5454', + validFromMonth: 1, + validFromYear: 2020, + }, + paymentInstrumentId: '2aadecebb15f35913e8ce76a54', + paymentMethodId: 'CREDIT_CARD', + }, + ], + paymentStatus: 'not_paid', + productItems: [ + { + adjustedTax: 2.4, + basePrice: 47.99, + bonusProductLineItem: false, + gift: false, + itemId: 'b119f1d13193712023c6457ec0', + itemText: 'Pleated Bib Long Sleeve Shirt', + price: 47.99, + priceAfterItemDiscount: 47.99, + priceAfterOrderDiscount: 47.99, + productId: '701642852179M', + productName: 'Pleated Bib Long Sleeve Shirt', + quantity: 1, + shipmentId: 'me', + tax: 2.4, + taxBasis: 47.99, + taxClassId: 'standard', + taxRate: 0.05, + }, + { + adjustedTax: 0.75, + basePrice: 14.99, + bonusProductLineItem: false, + gift: false, + itemId: '97b033c49c69f2bb72c11b8db7', + itemText: 'Long Sleeve Crew Neck', + price: 14.99, + priceAfterItemDiscount: 14.99, + priceAfterOrderDiscount: 14.99, + productId: '701642811398M', + productName: 'Long Sleeve Crew Neck', + quantity: 1, + shipmentId: 'me', + tax: 0.75, + taxBasis: 14.99, + taxClassId: 'standard', + taxRate: 0.05, + }, + ], + productSubTotal: 62.98, + productTotal: 62.98, + shipments: [ + { + adjustedMerchandizeTotalTax: 3.15, + adjustedShippingTotalTax: 0.3, + gift: false, + merchandizeTotalTax: 3.15, + productSubTotal: 62.98, + productTotal: 62.98, + shipmentId: 'me', + shipmentTotal: 72.42, + shippingAddress: { + address1: '2700 Desoto Way S', + city: 'Saint Petersburg', + countryCode: 'US', + firstName: 'tester', + fullName: 'tester testing', + id: 'de9186fdf4b0f2c3c0334542d7', + lastName: 'testing', + phone: '7275551234', + postalCode: '33712', + stateCode: 'FL', + }, + shippingMethod: { + description: 'Order received within 7-10 business days', + id: '001', + name: 'Ground', + c_estimatedArrivalTime: '7-10 Business Days', + }, + shippingStatus: 'not_shipped', + shippingTotal: 5.99, + shippingTotalTax: 0.3, + taxTotal: 3.45, + }, + ], + shippingItems: [ + { + adjustedTax: 0.3, + basePrice: 5.99, + itemId: 'fb330a2f980bd715bf5db8607a', + itemText: 'Shipping', + price: 5.99, + priceAfterItemDiscount: 5.99, + shipmentId: 'me', + tax: 0.3, + taxBasis: 5.99, + taxClassId: 'standard', + taxRate: 0.05, + }, + ], + shippingStatus: 'not_shipped', + shippingTotal: 5.99, + shippingTotalTax: 0.3, + siteId: 'RefArch', + status: 'created', + taxation: 'net', + taxTotal: 3.45, + }, + { + adjustedMerchandizeTotalTax: 6.3, + adjustedShippingTotalTax: 0.4, + billingAddress: { + address1: '2700 Desoto Way S', + city: 'Saint Petersburg', + countryCode: 'US', + firstName: 'tester', + fullName: 'tester testing', + id: '3f37d99f137e68e118ce0dcd30', + lastName: 'testing', + phone: '7275551234', + postalCode: '33712', + stateCode: 'FL', + }, + channelType: 'storefront', + confirmationStatus: 'not_confirmed', + createdBy: 'Customer', + creationDate: '2021-04-06T19:14:32.000Z', + currency: 'USD', + customerInfo: { + customerId: 'customerid', + customerName: ' testing', + customerNo: '00149004', + email: 'tester@test.com', + }, + customerName: ' testing', + exportStatus: 'not_exported', + lastModified: '2021-04-06T19:14:32.000Z', + merchandizeTotalTax: 6.3, + notes: {}, + orderNo: '00028009', + orderToken: '56PXEg-7z6a0OdJslrJI6YLTTlFWzuYP9mL8vU1As3o', + orderTotal: 140.65, + paymentInstruments: [ + { + amount: 0, + paymentCard: { + cardType: 'Master Card', + creditCardExpired: false, + expirationMonth: 1, + expirationYear: 2030, + holder: 'tester testing', + maskedNumber: '************5454', + numberLastDigits: '5454', + validFromMonth: 1, + validFromYear: 2020, + }, + paymentInstrumentId: '99e32045955705b49b343b852a', + paymentMethodId: 'CREDIT_CARD', + }, + ], + paymentStatus: 'not_paid', + productItems: [ + { + adjustedTax: 4.8, + basePrice: 47.99, + bonusProductLineItem: false, + gift: false, + itemId: '1efcc8e1646ff4d36da43a9784', + itemText: 'Pleated Bib Long Sleeve Shirt', + price: 95.98, + priceAfterItemDiscount: 95.98, + priceAfterOrderDiscount: 95.98, + productId: '701642852179M', + productName: 'Pleated Bib Long Sleeve Shirt', + quantity: 2, + shipmentId: 'me', + tax: 4.8, + taxBasis: 95.98, + taxClassId: 'standard', + taxRate: 0.05, + }, + { + adjustedTax: 1.5, + basePrice: 14.99, + bonusProductLineItem: false, + gift: false, + itemId: 'e0553dd676331dc8de59c0784a', + itemText: 'Long Sleeve Crew Neck', + price: 29.98, + priceAfterItemDiscount: 29.98, + priceAfterOrderDiscount: 29.98, + productId: '701642811398M', + productName: 'Long Sleeve Crew Neck', + quantity: 2, + shipmentId: 'me', + tax: 1.5, + taxBasis: 29.98, + taxClassId: 'standard', + taxRate: 0.05, + }, + ], + productSubTotal: 125.96, + productTotal: 125.96, + shipments: [ + { + adjustedMerchandizeTotalTax: 6.3, + adjustedShippingTotalTax: 0.4, + gift: false, + merchandizeTotalTax: 6.3, + productSubTotal: 125.96, + productTotal: 125.96, + shipmentId: 'me', + shipmentTotal: 140.65, + shippingAddress: { + address1: '2700 Desoto Way S', + city: 'Saint Petersburg', + countryCode: 'US', + firstName: 'tester', + fullName: 'tester testing', + id: '7cc3b6ea84774193fde332c61a', + lastName: 'testing', + phone: '7275551234', + postalCode: '33712', + stateCode: 'FL', + }, + shippingMethod: { + description: 'Order received within 7-10 business days', + id: '001', + name: 'Ground', + c_estimatedArrivalTime: '7-10 Business Days', + }, + shippingStatus: 'not_shipped', + shippingTotal: 7.99, + shippingTotalTax: 0.4, + taxTotal: 6.7, + }, + ], + shippingItems: [ + { + adjustedTax: 0.4, + basePrice: 7.99, + itemId: '1a72125aef737dbb2e6ec96dd9', + itemText: 'Shipping', + price: 7.99, + priceAfterItemDiscount: 7.99, + shipmentId: 'me', + tax: 0.4, + taxBasis: 7.99, + taxClassId: 'standard', + taxRate: 0.05, + }, + ], + shippingStatus: 'not_shipped', + shippingTotal: 7.99, + shippingTotalTax: 0.4, + siteId: 'RefArch', + status: 'created', + taxation: 'net', + taxTotal: 6.7, + }, + ], + offset: 0, + total: 20, +} + +export const mockOrderProducts = { + limit: 2, + data: [ + { + currency: 'USD', + id: '701642852179M', + imageGroups: [ + { + images: [ + { + alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6dc64ae1/images/large/PG.10201818.JJ1ANXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6dc64ae1/images/large/PG.10201818.JJ1ANXX.PZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + }, + { + alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6c256020/images/large/PG.10201818.JJ1ANXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6c256020/images/large/PG.10201818.JJ1ANXX.BZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ1ANXX', + }, + ], + }, + ], + viewType: 'large', + }, + { + images: [ + { + alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwad2ef842/images/medium/PG.10201818.JJ1ANXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwad2ef842/images/medium/PG.10201818.JJ1ANXX.PZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + }, + { + alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwca64fee1/images/medium/PG.10201818.JJ1ANXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwca64fee1/images/medium/PG.10201818.JJ1ANXX.BZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ1ANXX', + }, + ], + }, + ], + viewType: 'medium', + }, + { + images: [ + { + alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ecc9f4b/images/small/PG.10201818.JJ1ANXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ecc9f4b/images/small/PG.10201818.JJ1ANXX.PZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + }, + { + alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc4b732e9/images/small/PG.10201818.JJ1ANXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc4b732e9/images/small/PG.10201818.JJ1ANXX.BZ.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ1ANXX', + }, + ], + }, + ], + viewType: 'small', + }, + { + images: [ + { + alt: 'Pleated Bib Long Sleeve Shirt, Silver Grey, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc39b144c/images/swatch/PG.10201818.JJ1ANXX.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc39b144c/images/swatch/PG.10201818.JJ1ANXX.CP.jpg', + title: 'Pleated Bib Long Sleeve Shirt, Silver Grey' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ1ANXX', + }, + ], + }, + ], + viewType: 'swatch', + }, + ], + inventory: { + ats: 99, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 99, + }, + longDescription: + 'This is a feminine take on a tuxedo classic. Pair it with a pair of Commerce Cloud Store slacks.', + master: { + masterId: '25518344M', + orderable: true, + price: 47.99, + }, + minOrderQuantity: 1, + name: 'Pleated Bib Long Sleeve Shirt', + pageDescription: + 'This is a feminine take on a tuxedo classic. Pair it with a pair of Commerce Cloud Store slacks.', + pageTitle: 'Pleated Bib Long Sleeve Shirt', + price: 47.99, + productPromotions: [ + { + calloutMsg: 'Buy one Long Center Seam Skirt and get 2 tops', + promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased', + }, + ], + shortDescription: + 'This is a feminine take on a tuxedo classic. Pair it with a pair of Commerce Cloud Store slacks.', + stepQuantity: 1, + type: { + variant: true, + }, + upc: '701642852179', + validFrom: { + default: '2010-10-21T04:00:00.000Z', + }, + variants: [ + { + orderable: true, + price: 47.99, + productId: '701642852179M', + variationValues: { + color: 'JJ1ANXX', + size: '9LG', + }, + }, + { + orderable: true, + price: 47.99, + productId: '701642852209M', + variationValues: { + color: 'JJ1ANXX', + size: '9XL', + }, + }, + { + orderable: true, + price: 47.99, + productId: '701642852193M', + variationValues: { + color: 'JJ1ANXX', + size: '9SM', + }, + }, + { + orderable: true, + price: 47.99, + productId: '701642852186M', + variationValues: { + color: 'JJ1ANXX', + size: '9MD', + }, + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Silver Grey', + orderable: true, + value: 'JJ1ANXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'L', + orderable: true, + value: '9LG', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + variationValues: { + color: 'JJ1ANXX', + size: '9LG', + }, + c_color: 'JJ1ANXX', + c_isNewtest: true, + c_isSale: true, + c_refinementColor: 'grey', + c_size: '9LG', + c_width: 'Z', + }, + { + currency: 'USD', + id: '701642811398M', + imageGroups: [ + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3ce02e8b/images/large/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + }, + { + alt: 'Long Sleeve Crew Neck, Fire Red, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdc28ed23/images/large/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'large', + }, + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8434410d/images/medium/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + }, + { + alt: 'Long Sleeve Crew Neck, Fire Red, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwc50f7b16/images/medium/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'medium', + }, + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8173d41b/images/small/PG.10219685.JJ825XX.PZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + }, + { + alt: 'Long Sleeve Crew Neck, Fire Red, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw426088e2/images/small/PG.10219685.JJ825XX.BZ.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'small', + }, + { + images: [ + { + alt: 'Long Sleeve Crew Neck, Fire Red, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcbc8a4ed/images/swatch/PG.10219685.JJ825XX.CP.jpg', + title: 'Long Sleeve Crew Neck, Fire Red' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ825XX', + }, + ], + }, + ], + viewType: 'swatch', + }, + ], + inventory: { + ats: 34, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 34, + }, + longDescription: + 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', + master: { + masterId: '25517823M', + orderable: true, + price: 14.99, + }, + minOrderQuantity: 1, + name: 'Long Sleeve Crew Neck', + pageDescription: + 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', + pageTitle: 'Long Sleeve Crew Neck', + price: 14.99, + productPromotions: [ + { + calloutMsg: 'Buy one Long Center Seam Skirt and get 2 tops', + promotionId: 'ChoiceOfBonusProdect-ProductLevel-ruleBased', + }, + ], + shortDescription: + 'Wear this long sleeve crew neck top alone, or pair it with a jacket for a classic look.', + stepQuantity: 1, + type: { + variant: true, + }, + upc: '701642811398', + validFrom: { + default: '2010-11-18T05:00:00.000Z', + }, + variants: [ + { + orderable: true, + price: 14.99, + productId: '701642811398M', + variationValues: { + color: 'JJ825XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841227M', + variationValues: { + color: 'JJ3HDXX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841265M', + variationValues: { + color: 'JJ5QZXX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811473M', + variationValues: { + color: 'JJI15XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811435M', + variationValues: { + color: 'JJG80XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811312M', + variationValues: { + color: 'JJ2XNXX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811237M', + variationValues: { + color: 'JJ169XX', + size: '9LG', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643342570M', + variationValues: { + color: 'JJ3HDXX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811343M', + variationValues: { + color: 'JJ2XNXX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811404M', + variationValues: { + color: 'JJ825XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811336M', + variationValues: { + color: 'JJ2XNXX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811268M', + variationValues: { + color: 'JJ169XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070756M', + variationValues: { + color: 'JJ2XNXX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811497M', + variationValues: { + color: 'JJI15XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811480M', + variationValues: { + color: 'JJI15XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811466M', + variationValues: { + color: 'JJG80XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811428M', + variationValues: { + color: 'JJ825XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070732M', + variationValues: { + color: 'JJ825XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811244M', + variationValues: { + color: 'JJ169XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070763M', + variationValues: { + color: 'JJG80XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643342587M', + variationValues: { + color: 'JJ5QZXX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811503M', + variationValues: { + color: 'JJI15XX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811459M', + variationValues: { + color: 'JJG80XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070725M', + variationValues: { + color: 'JJ169XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841289M', + variationValues: { + color: 'JJ5QZXX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841272M', + variationValues: { + color: 'JJ5QZXX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841241M', + variationValues: { + color: 'JJ3HDXX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811329M', + variationValues: { + color: 'JJ2XNXX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811251M', + variationValues: { + color: 'JJ169XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701643070770M', + variationValues: { + color: 'JJI15XX', + size: '9XS', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841296M', + variationValues: { + color: 'JJ5QZXX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841258M', + variationValues: { + color: 'JJ3HDXX', + size: '9XL', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811442M', + variationValues: { + color: 'JJG80XX', + size: '9MD', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642811411M', + variationValues: { + color: 'JJ825XX', + size: '9SM', + }, + }, + { + orderable: true, + price: 14.99, + productId: '701642841234M', + variationValues: { + color: 'JJ3HDXX', + size: '9MD', + }, + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + { + name: 'Grey Heather', + orderable: true, + value: 'JJ2XNXX', + }, + { + name: 'Meadow Violet', + orderable: true, + value: 'JJ3HDXX', + }, + { + name: 'Begonia Pink', + orderable: true, + value: 'JJ5QZXX', + }, + { + name: 'Fire Red', + orderable: true, + value: 'JJ825XX', + }, + { + name: 'Sugar', + orderable: true, + value: 'JJG80XX', + }, + { + name: 'White', + orderable: true, + value: 'JJI15XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'XS', + orderable: true, + value: '9XS', + }, + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'L', + orderable: true, + value: '9LG', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + variationValues: { + color: 'JJ825XX', + size: '9LG', + }, + c_color: 'JJ825XX', + c_refinementColor: 'red', + c_size: '9LG', + c_width: 'Z', + }, + ], + total: 2, +} + +export const mockedCustomerProductLists = { + limit: 1, + data: [ + { + creationDate: '2021-06-12T00:09:00.000Z', + customerProductListItems: [ + { + id: 'b41ad6634e83fc9673625bf087', + priority: 1, + productId: 'apple-ipod-nano-green-16gM', + public: false, + purchasedQuantity: 0, + quantity: 1, + type: 'product', + }, + ], + event: {}, + id: 'c1b0edb2ad6fcfb153044ef3b0', + lastModified: '2021-06-30T04:11:12.602Z', + public: false, + name: 'PWA wishlist', + type: 'wish_list', + }, + ], + total: 1, +} + +export const mockedEmptyCustomerProductList = { + limit: 1, + data: [ + { + creationDate: '2021-06-12T00:09:00.000Z', + customerProductListItems: [], + event: {}, + id: 'c1b0edb2ad6fcfb153044ef3b0', + lastModified: '2021-06-30T04:11:12.602Z', + public: false, + type: 'wish_list', + }, + ], + total: 1, +} + +export const mockedCustomerProductListsDetails = { + limit: 1, + data: [ + { + brand: 'Apple', + currency: 'USD', + id: 'apple-ipod-nano-green-16gM', + imageGroups: [ + { + images: [ + { + alt: 'Apple iPod Nano, Green, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw26470cbd/images/large/ipod-nano-green.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw26470cbd/images/large/ipod-nano-green.jpg', + title: 'Apple iPod Nano, Green' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'Green', + }, + ], + }, + ], + viewType: 'large', + }, + { + images: [ + { + alt: 'Apple iPod Nano, Green, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw610652b7/images/medium/ipod-nano-green.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw610652b7/images/medium/ipod-nano-green.jpg', + title: 'Apple iPod Nano, Green' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'Green', + }, + ], + }, + ], + viewType: 'medium', + }, + { + images: [ + { + alt: 'Apple iPod Nano, Green, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw09f0fd49/images/small/ipod-nano-green.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw09f0fd49/images/small/ipod-nano-green.jpg', + title: 'Apple iPod Nano, Green' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'Green', + }, + ], + }, + ], + viewType: 'small', + }, + { + images: [ + { + alt: 'Apple iPod Nano, Green, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-electronics-m-catalog/default/dw849cd37f/images/swatch/green.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-electronics-m-catalog/default/dw849cd37f/images/swatch/green.jpg', + title: 'Apple iPod Nano, Green' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'Green', + }, + ], + }, + ], + viewType: 'swatch', + }, + ], + inventory: { + ats: 10, + backorderable: true, + id: 'inventory_m', + inStockDate: '2009-03-31T00:00:00.000Z', + orderable: true, + preorderable: false, + stockLevel: 0, + }, + longDescription: + 'Supports MP3 (up to 320 Kbps), MP3 VBR, AAC (up to 320 Kbps), Protected AAC (iTunes Music Store), Audible (formats 2, 3, 4), AIFF, Apple Lossless and WAV audio formats, plus BMP, JPEG, GIF, TIFF, PNG and PSD (Mac only) image formats; podcasting support', + master: { + masterId: 'apple-ipod-nanoM', + orderable: true, + price: 119.0, + }, + minOrderQuantity: 1, + name: 'Apple iPod Nano', + pageDescription: + 'The all new iPod nano has a curved aluminum and glass design and stunning new features. The Genius music feature helps you find music to fit your mood. With the built-in accelerometer, you can rotate the nano to flip through album art with Cover Flow. Plus, view photos and videos in either portrait or landscape.', + pageKeywords: 'Apple, iPod, Nano, MP3, Music Player', + pageTitle: 'Apple iPod Nano', + price: 199.0, + pricePerUnit: 199.0, + productPromotions: [ + { + calloutMsg: '$50offOrderCountAbove5', + promotionId: '$50offOrderCountAbove5', + }, + ], + shortDescription: + 'The all new iPod nano has a curved aluminum and glass design and stunning new features. The Genius music \r\nfeature helps you find music to fit your mood. With the built-in accelerometer, you can rotate the nano to flip through album art with \r\nCover Flow. Plus, view photos and videos in either portrait or landscape.', + stepQuantity: 1, + type: { + variant: true, + }, + unitMeasure: '', + unitQuantity: 0, + variants: [ + { + orderable: true, + price: 149.0, + productId: 'apple-ipod-nano-silver-8gM', + variationValues: { + color: 'Silver', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 149.0, + productId: 'apple-ipod-nano-black-8gM', + variationValues: { + color: 'Black', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 149.0, + productId: 'apple-ipod-nano-purple-8gM', + variationValues: { + color: 'Purple', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 149.0, + productId: 'apple-ipod-nano-blue-8gM', + variationValues: { + color: 'Blue', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 149.0, + productId: 'apple-ipod-nano-green-8gM', + variationValues: { + color: 'Green', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 119.0, + productId: 'apple-ipod-nano-yellow-8gM', + variationValues: { + color: 'Yellow', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 149.0, + productId: 'apple-ipod-nano-orange-8gM', + variationValues: { + color: 'Orange', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 119.0, + productId: 'apple-ipod-nano-red-8gM', + variationValues: { + color: 'Red', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 149.0, + productId: 'apple-ipod-nano-fuscia-8gM', + variationValues: { + color: 'Fuscia', + memorySize: '8 GB', + }, + }, + { + orderable: true, + price: 199.0, + productId: 'apple-ipod-nano-silver-16gM', + variationValues: { + color: 'Silver', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 199.0, + productId: 'apple-ipod-nano-black-16gM', + variationValues: { + color: 'Black', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 199.0, + productId: 'apple-ipod-nano-purple-16gM', + variationValues: { + color: 'Purple', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 159.0, + productId: 'apple-ipod-nano-blue-16gM', + variationValues: { + color: 'Blue', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 199.0, + productId: 'apple-ipod-nano-green-16gM', + variationValues: { + color: 'Green', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 199.0, + productId: 'apple-ipod-nano-yellow-16gM', + variationValues: { + color: 'Yellow', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 159.0, + productId: 'apple-ipod-nano-orange-16gM', + variationValues: { + color: 'Orange', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 199.0, + productId: 'apple-ipod-nano-red-16gM', + variationValues: { + color: 'Red', + memorySize: '16 GB', + }, + }, + { + orderable: true, + price: 199.0, + productId: 'apple-ipod-nano-fuscia-16gM', + variationValues: { + color: 'Fuscia', + memorySize: '16 GB', + }, + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Silver', + orderable: true, + value: 'Silver', + }, + { + name: 'Black', + orderable: true, + value: 'Black', + }, + { + name: 'Purple', + orderable: true, + value: 'Purple', + }, + { + name: 'Blue', + orderable: true, + value: 'Blue', + }, + { + name: 'Green', + orderable: true, + value: 'Green', + }, + { + name: 'Yellow', + orderable: true, + value: 'Yellow', + }, + { + name: 'Orange', + orderable: true, + value: 'Orange', + }, + { + name: 'Red', + orderable: true, + value: 'Red', + }, + { + name: 'Fuscia', + orderable: true, + value: 'Fuscia', + }, + ], + }, + { + id: 'memorySize', + name: 'Memory Size', + values: [ + { + name: '8 GB', + orderable: true, + value: '8 GB', + }, + { + name: '16 GB', + orderable: true, + value: '16 GB', + }, + ], + }, + ], + variationValues: { + color: 'Green', + memorySize: '16 GB', + }, + c_batteryLife: '24 hours', + c_batteryType: 'Lithium Ion', + c_color: 'Green', + c_dimDepth: '0.24 inches', + c_dimHeight: '3.6 inches', + c_dimWeight: '1.3 ounces', + c_dimWidth: '1.5 inches', + c_displaySize: '2 inches', + c_mediaFormat: ['0010', '0020', '0030'], + c_memorySize: '16 GB', + c_musicStorage: '4,000 songs', + c_portableAudioType: ['0010', '0020'], + c_refinementColor: 'green', + c_resolution: '320 x 240', + c_tabDescription: + 'The all new iPod nano has a curved aluminum and glass design and stunning new features. The Genius music feature helps you find music to fit your mood. With the built-in accelerometer, you can rotate the nano to flip through album art with Cover Flow. Plus, view photos and videos in either portrait or landscape.', + c_tabDetails: + 'Supports MP3 (up to 320 Kbps), MP3 VBR, AAC (up to 320 Kbps), Protected AAC (iTunes Music Store), Audible (formats 2, 3, 4), AIFF, Apple Lossless and WAV audio formats, plus BMP, JPEG, GIF, TIFF, PNG and PSD (Mac only) image formats; podcasting support', + c_videoStorage: '16 hours', + }, + ], + total: 1, +} + +export const mockCategory = { + id: 'mens', + name: 'Mens', + pageDescription: + "Men's range. Hard-wearing boots, jackets and clothing for unbeatable comfort day in, day out. Practical, easy-to-wear styles wherever you're headed.", + pageKeywords: 'mens boots, mens shoes, mens clothing, mens apparel, mens jackets', + pageTitle: "Men's Footwear, Outerwear, Clothing & Accessories", + parentCategoryId: 'root', + c_showInMenu: true, + loaded: true, + image: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw56b28e03/images/slot/sub_banners/cat-banner-mens-suits.jpg' +} + +export const mockCategories = { + root: { + categories: [ + { + id: 'mens', + name: 'Mens', + pageDescription: + "Men's range. Hard-wearing boots, jackets and clothing for unbeatable comfort day in, day out. Practical, easy-to-wear styles wherever you're headed.", + pageKeywords: 'mens boots, mens shoes, mens clothing, mens apparel, mens jackets', + pageTitle: "Men's Footwear, Outerwear, Clothing & Accessories", + parentCategoryId: 'root', + c_showInMenu: true, + image: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw56b28e03/images/slot/sub_banners/cat-banner-mens-suits.jpg' + } + ], + id: 'root', + name: 'Storefront Catalog - Non-EN' + } +} + +export const mockProductSearch = { + limit: 25, + hits: [ + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Slim Skirt With Back Kick Pleats, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1c5f9222/images/large/PG.10221626.JJ3WCXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1c5f9222/images/large/PG.10221626.JJ3WCXX.PZ.jpg', + title: 'Slim Skirt With Back Kick Pleats, ' + }, + orderable: true, + price: 73.99, + productId: '25588993M', + productName: 'Slim Skirt With Back Kick Pleats', + productType: { + master: true, + }, + representedProduct: { + id: '701644042639M', + }, + representedProducts: [ + { + id: '701644042639M', + }, + { + id: '701644042622M', + }, + { + id: '701644042653M', + }, + { + id: '701644042646M', + }, + { + id: '701644042592M', + }, + { + id: '701644042608M', + }, + { + id: '701644042615M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Pull On Neutral Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw22e88fa3/images/large/PG.10224484.JJ0CZXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw22e88fa3/images/large/PG.10224484.JJ0CZXX.PZ.jpg', + title: 'Pull On Neutral Pant, ' + }, + orderable: true, + price: 69.0, + productId: '25565094M', + productName: 'Pull On Neutral Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701643458462M', + }, + representedProducts: [ + { + id: '701643458462M', + }, + { + id: '701643458509M', + }, + { + id: '701643458479M', + }, + { + id: '701643458493M', + }, + { + id: '701643458486M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black & Sugar', + orderable: true, + value: 'JJ0CZXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'XS', + orderable: true, + value: '9XS', + }, + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'L', + orderable: true, + value: '9LG', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Washable Linen Slim Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab413b1b/images/large/PG.10243116.JJ2DGXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab413b1b/images/large/PG.10243116.JJ2DGXX.PZ.jpg', + title: 'Washable Linen Slim Pant, ' + }, + orderable: true, + price: 89.0, + productId: '25593301M', + productName: 'Washable Linen Slim Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701644068349M', + }, + representedProducts: [ + { + id: '701644068349M', + }, + { + id: '701644068301M', + }, + { + id: '701644068318M', + }, + { + id: '701644068356M', + }, + { + id: '701644068325M', + }, + { + id: '701644068332M', + }, + { + id: '701644068363M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Classic Crop Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbce5c490/images/large/PG.10232332.JJ169XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbce5c490/images/large/PG.10232332.JJ169XX.PZ.jpg', + title: 'Classic Crop Pant, ' + }, + orderable: true, + price: 69.0, + productId: '25564454M', + productName: 'Classic Crop Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701643370818M', + }, + representedProducts: [ + { + id: '701643370818M', + }, + { + id: '701643370801M', + }, + { + id: '701643370825M', + }, + { + id: '701643370849M', + }, + { + id: '701643370832M', + }, + { + id: '701643370856M', + }, + { + id: '701643370795M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Slim Floral Skirt, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwea207073/images/large/PG.10225656.JJ3WDXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwea207073/images/large/PG.10225656.JJ3WDXX.PZ.jpg', + title: 'Slim Floral Skirt, ' + }, + orderable: true, + price: 73.99, + productId: '25589419M', + productName: 'Slim Floral Skirt', + productType: { + master: true, + }, + representedProduct: { + id: '701643415397M', + }, + representedProducts: [ + { + id: '701643415397M', + }, + { + id: '701643415434M', + }, + { + id: '701643415403M', + }, + { + id: '701643415410M', + }, + { + id: '701643415380M', + }, + { + id: '701643415427M', + }, + { + id: '701643415441M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black Multi', + orderable: true, + value: 'JJ3WDXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Trouser Leg Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw56926d5f/images/large/PG.10207088.JJ169XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw56926d5f/images/large/PG.10207088.JJ169XX.PZ.jpg', + }, + productName: 'Trouser Leg Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701642867753M', + }, + representedProducts: [ + { + id: '701642867753M', + }, + { + id: '701642867777M', + }, + { + id: '701642867715M', + }, + { + id: '701642867722M', + }, + { + id: '701642867746M', + }, + { + id: '701642867760M', + }, + { + id: '701642867739M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Tribal Inspired Slim Skirt, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ecd95d1/images/large/PG.10244521.JJ3WDXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ecd95d1/images/large/PG.10244521.JJ3WDXX.PZ.jpg', + title: 'Tribal Inspired Slim Skirt, ' + }, + orderable: true, + price: 73.99, + productId: '25762759M', + productName: 'Tribal Inspired Slim Skirt', + productType: { + master: true, + }, + representedProduct: { + id: '701643636334M', + }, + representedProducts: [ + { + id: '701643636334M', + }, + { + id: '701643636365M', + }, + { + id: '701643636372M', + }, + { + id: '701643636310M', + }, + { + id: '701643636341M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black Multi', + orderable: true, + value: 'JJ3WDXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Relaxed Fit Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4eee8da9/images/large/PG.10228765.JJ169XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4eee8da9/images/large/PG.10228765.JJ169XX.PZ.jpg', + title: 'Relaxed Fit Pant, ' + }, + orderable: true, + price: 69.0, + productId: '25565572M', + productName: 'Relaxed Fit Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701644025151M', + }, + representedProducts: [ + { + id: '701644025151M', + }, + { + id: '701644025182M', + }, + { + id: '701644025175M', + }, + { + id: '701644025168M', + }, + { + id: '701644025199M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'XS', + orderable: true, + value: '9XS', + }, + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'L', + orderable: true, + value: '9LG', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: '5 Pocket Cuffed Capri, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb4de158c/images/large/PG.60113984.JJ169XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb4de158c/images/large/PG.60113984.JJ169XX.PZ.jpg', + title: '5 Pocket Cuffed Capri, ' + }, + orderable: true, + price: 49.0, + productId: '25688156M', + productName: '5 Pocket Cuffed Capri', + productType: { + master: true, + }, + representedProduct: { + id: '609717696089M', + }, + representedProducts: [ + { + id: '609717696089M', + }, + { + id: '609717696041M', + }, + { + id: '609717696096M', + }, + { + id: '609717696027M', + }, + { + id: '609717696102M', + }, + { + id: '609717696034M', + }, + { + id: '609717696058M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Pleated Skirt., , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf573a20b/images/large/PG.10255878.JJ3WCXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf573a20b/images/large/PG.10255878.JJ3WCXX.PZ.jpg', + title: 'Pleated Skirt., ' + }, + orderable: true, + price: 109.0, + productId: '25697392M', + productName: 'Pleated Skirt.', + productType: { + master: true, + }, + representedProduct: { + id: '701644443054M', + }, + representedProducts: [ + { + id: '701644443054M', + }, + { + id: '701644443061M', + }, + { + id: '701644443085M', + }, + { + id: '701644443078M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'L', + orderable: true, + value: '9LG', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Classic Glen Plaid Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6d0a44b0/images/large/PG.10233641.JJ3WRXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6d0a44b0/images/large/PG.10233641.JJ3WRXX.PZ.jpg', + title: 'Classic Glen Plaid Pant, ' + }, + orderable: true, + price: 80.99, + productId: '25589157M', + productName: 'Classic Glen Plaid Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701643409747M', + }, + representedProducts: [ + { + id: '701643409747M', + }, + { + id: '701643409716M', + }, + { + id: '701643409761M', + }, + { + id: '701643409723M', + }, + { + id: '701643409730M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black & Ivory', + orderable: true, + value: 'JJ3WRXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Long Pleated Skirt, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw26c8763f/images/large/PG.10239110.JJ3WCXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw26c8763f/images/large/PG.10239110.JJ3WCXX.PZ.jpg', + title: 'Long Pleated Skirt, ' + }, + orderable: true, + price: 109.0, + productId: '25589795M', + productName: 'Long Pleated Skirt', + productType: { + master: true, + }, + representedProduct: { + id: '701644066987M', + }, + representedProducts: [ + { + id: '701644066987M', + }, + { + id: '701644066994M', + }, + { + id: '701644067007M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Pleated Skirt With Embroidery., , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07b70fb1/images/large/PG.10245262.JJ3WCXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07b70fb1/images/large/PG.10245262.JJ3WCXX.PZ.jpg', + }, + productName: 'Pleated Skirt With Embroidery.', + productType: { + master: true, + }, + representedProduct: { + id: '701644335342M', + }, + representedProducts: [ + { + id: '701644335342M', + }, + { + id: '701644335397M', + }, + { + id: '701644335373M', + }, + { + id: '701644335380M', + }, + { + id: '701644335366M', + }, + { + id: '701644335359M', + }, + { + id: '701644335403M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Straight Ankle Pant., , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdaccb91d/images/large/PG.10246102.JJ0DDXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdaccb91d/images/large/PG.10246102.JJ0DDXX.PZ.jpg', + title: 'Straight Ankle Pant., ' + }, + orderable: true, + price: 79.0, + productId: '25697630M', + productName: 'Straight Ankle Pant.', + productType: { + master: true, + }, + representedProduct: { + id: '701644389383M', + }, + representedProducts: [ + { + id: '701644389383M', + }, + { + id: '701644389369M', + }, + { + id: '701644389413M', + }, + { + id: '701644389420M', + }, + { + id: '701644389376M', + }, + { + id: '701644389437M', + }, + { + id: '701644389390M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black & White', + orderable: true, + value: 'JJ0DDXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Classic Tweed Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8ae5dac1/images/large/PG.10208897.JJ0QRXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8ae5dac1/images/large/PG.10208897.JJ0QRXX.PZ.jpg', + title: 'Classic Tweed Pant, ' + }, + orderable: true, + price: 80.99, + productId: '25502027M', + productName: 'Classic Tweed Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701642884323M', + }, + representedProducts: [ + { + id: '701642884323M', + }, + { + id: '701642884347M', + }, + { + id: '701642884309M', + }, + { + id: '701642884354M', + }, + { + id: '701642884361M', + }, + { + id: '701642884330M', + }, + { + id: '701642884316M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Laurel Multi', + orderable: true, + value: 'JJ0QRXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Ribbed Pleated Skirt, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa7953e0e/images/large/PG.10218193.JJ0NLE5.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa7953e0e/images/large/PG.10218193.JJ0NLE5.PZ.jpg', + title: 'Ribbed Pleated Skirt, ' + }, + orderable: true, + price: 68.99, + productId: '25503070M', + productName: 'Ribbed Pleated Skirt', + productType: { + master: true, + }, + representedProduct: { + id: '701643037582M', + }, + representedProducts: [ + { + id: '701643037582M', + }, + { + id: '701643037612M', + }, + { + id: '701643037599M', + }, + { + id: '701643037605M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Laurel', + orderable: true, + value: 'JJ0NLE5', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'S', + orderable: true, + value: '9SM', + }, + { + name: 'M', + orderable: true, + value: '9MD', + }, + { + name: 'L', + orderable: true, + value: '9LG', + }, + { + name: 'XL', + orderable: true, + value: '9XL', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Bootleg Trouser, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8641f0b8/images/large/PG.10204133.JJ0CZXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8641f0b8/images/large/PG.10204133.JJ0CZXX.PZ.jpg', + title: 'Bootleg Trouser, ' + }, + orderable: true, + price: 68.99, + productId: '25518397M', + productName: 'Bootleg Trouser', + productType: { + master: true, + }, + representedProduct: { + id: '701642853077M', + }, + representedProducts: [ + { + id: '701642853077M', + }, + { + id: '701642853084M', + }, + { + id: '701642853107M', + }, + { + id: '701642853145M', + }, + { + id: '701642853121M', + }, + { + id: '701642853091M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black & Sugar', + orderable: true, + value: 'JJ0CZXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Wide Leg Pant., , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2c21e32c/images/large/PG.10245233.JJ3WDXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2c21e32c/images/large/PG.10245233.JJ3WDXX.PZ.jpg', + title: 'Wide Leg Pant., ' + }, + orderable: true, + price: 119.0, + productId: '25696685M', + productName: 'Wide Leg Pant.', + productType: { + master: true, + }, + representedProduct: { + id: '701644334871M', + }, + representedProducts: [ + { + id: '701644334871M', + }, + { + id: '701644334895M', + }, + { + id: '701644334864M', + }, + { + id: '701644334901M', + }, + { + id: '701644334840M', + }, + { + id: '701644334857M', + }, + { + id: '701644334888M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black Multi', + orderable: true, + value: 'JJ3WDXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Eyelet Skirt., , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9efe5554/images/large/PG.10253481.JJ169XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9efe5554/images/large/PG.10253481.JJ169XX.PZ.jpg', + title: 'Eyelet Skirt., ' + }, + orderable: true, + price: 89.0, + productId: '25697659M', + productName: 'Eyelet Skirt.', + productType: { + master: true, + }, + representedProduct: { + id: '701644390952M', + }, + representedProducts: [ + { + id: '701644390952M', + }, + { + id: '701644390891M', + }, + { + id: '701644390907M', + }, + { + id: '701644390921M', + }, + { + id: '701644390945M', + }, + { + id: '701644390914M', + }, + { + id: '701644390969M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Washable Wool Classic Straight Skirt , , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf6272a34/images/large/PG.10176157.JJ5AJXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwf6272a34/images/large/PG.10176157.JJ5AJXX.PZ.jpg', + title: 'Washable Wool Classic Straight Skirt , ' + }, + orderable: true, + price: 89.0, + productId: '25328702M', + productName: 'Washable Wool Classic Straight Skirt ', + productType: { + master: true, + }, + representedProduct: { + id: '701641312858M', + }, + representedProducts: [ + { + id: '701641312858M', + }, + { + id: '701641312865M', + }, + { + id: '701641312834M', + }, + { + id: '701641312841M', + }, + { + id: '701641312810M', + }, + { + id: '701641312827M', + }, + { + id: '701641312872M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Roll Up Cargo Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9f11c8e4/images/large/PG.10224067.JJ169XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9f11c8e4/images/large/PG.10224067.JJ169XX.PZ.jpg', + title: 'Roll Up Cargo Pant, ' + }, + orderable: true, + price: 47.99, + productId: '25564782M', + productName: 'Roll Up Cargo Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701643422074M', + }, + representedProducts: [ + { + id: '701643422074M', + }, + { + id: '701643422128M', + }, + { + id: '701643422111M', + }, + { + id: '701643422098M', + }, + { + id: '701643422104M', + }, + { + id: '701643422081M', + }, + { + id: '701643422135M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Side Button Pleated Skirt, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw05ea84dc/images/large/PG.10227169.JJ3WCXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw05ea84dc/images/large/PG.10227169.JJ3WCXX.PZ.jpg', + title: 'Side Button Pleated Skirt, ' + }, + orderable: true, + price: 95.99, + productId: '25629003M', + productName: 'Side Button Pleated Skirt', + productType: { + master: true, + }, + representedProduct: { + id: '701643408139M', + }, + representedProducts: [ + { + id: '701643408139M', + }, + { + id: '701643408177M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '10', + orderable: true, + value: '010', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Flat Front Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw7e830b49/images/large/PG.10240166.JJ3WCXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw7e830b49/images/large/PG.10240166.JJ3WCXX.PZ.jpg', + title: 'Flat Front Pant, ' + }, + orderable: true, + price: 99.0, + productId: '25589652M', + productName: 'Flat Front Pant', + productType: { + master: true, + }, + representedProduct: { + id: '701643632909M', + }, + representedProducts: [ + { + id: '701643632909M', + }, + { + id: '701643632930M', + }, + { + id: '701643632916M', + }, + { + id: '701643632893M', + }, + { + id: '701643632886M', + }, + { + id: '701643632879M', + }, + { + id: '701643632923M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Pencil Skirt, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw900cf60d/images/large/PG.10235198.JJ3WCXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw900cf60d/images/large/PG.10235198.JJ3WCXX.PZ.jpg', + title: 'Pencil Skirt, ' + }, + orderable: true, + price: 79.0, + productId: '25688325M', + productName: 'Pencil Skirt', + productType: { + master: true, + }, + representedProduct: { + id: '701643317820M', + }, + representedProducts: [ + { + id: '701643317820M', + }, + { + id: '701643317806M', + }, + { + id: '701643317813M', + }, + { + id: '701643317844M', + }, + { + id: '701643317790M', + }, + { + id: '701643317837M', + }, + { + id: '701643317851M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ3WCXX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + { + currency: 'USD', + hitType: 'master', + image: { + alt: 'Light Weight Cargo Capri (Master), , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe7549446/images/large/PG.60114143.JJ169XX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe7549446/images/large/PG.60114143.JJ169XX.PZ.jpg', + title: 'Light Weight Cargo Capri (Master), ' + }, + orderable: true, + price: 29.0, + priceMax: 49.0, + productId: '25688228M', + productName: 'Light Weight Cargo Capri (Master)', + productType: { + master: true, + }, + representedProduct: { + id: '609717701479M', + }, + representedProducts: [ + { + id: '609717701479M', + }, + { + id: '609717701547M', + }, + { + id: '609717701493M', + }, + { + id: '609717701554M', + }, + { + id: '609717701530M', + }, + { + id: '609717701509M', + }, + { + id: '609717701486M', + }, + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'JJ169XX', + }, + ], + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '4', + orderable: true, + value: '004', + }, + { + name: '6', + orderable: true, + value: '006', + }, + { + name: '8', + orderable: true, + value: '008', + }, + { + name: '10', + orderable: true, + value: '010', + }, + { + name: '12', + orderable: true, + value: '012', + }, + { + name: '14', + orderable: true, + value: '014', + }, + { + name: '16', + orderable: true, + value: '016', + }, + ], + }, + ], + }, + ], + query: '', + refinements: [ + { + attributeId: 'cgid', + label: 'Category', + values: [ + { + hitCount: 43, + label: 'New Arrivals', + value: 'newarrivals', + }, + { + hitCount: 43, + label: 'Womens', + value: 'womens', + values: [ + { + hitCount: 43, + label: 'Clothing', + value: 'womens-clothing', + values: [ + { + hitCount: 43, + label: 'Bottoms', + value: 'womens-clothing-bottoms', + }, + ], + }, + ], + }, + ], + }, + { + attributeId: 'c_refinementColor', + label: 'Color', + values: [ + { + hitCount: 6, + label: 'Beige', + presentationId: 'beige', + value: 'Beige', + }, + { + hitCount: 43, + label: 'Black', + presentationId: 'black', + value: 'Black', + }, + { + hitCount: 27, + label: 'Blue', + presentationId: 'blue', + value: 'Blue', + }, + { + hitCount: 0, + label: 'Navy', + presentationId: 'navy', + value: 'Navy', + }, + { + hitCount: 15, + label: 'Brown', + presentationId: 'brown', + value: 'Brown', + }, + { + hitCount: 4, + label: 'Green', + presentationId: 'green', + value: 'Green', + }, + { + hitCount: 13, + label: 'Grey', + presentationId: 'grey', + value: 'Grey', + }, + { + hitCount: 0, + label: 'Orange', + presentationId: 'orange', + value: 'Orange', + }, + { + hitCount: 3, + label: 'Pink', + presentationId: 'pink', + value: 'Pink', + }, + { + hitCount: 0, + label: 'Purple', + presentationId: 'purple', + value: 'Purple', + }, + { + hitCount: 1, + label: 'Red', + presentationId: 'red', + value: 'Red', + }, + { + hitCount: 30, + label: 'White', + presentationId: 'white', + value: 'White', + }, + { + hitCount: 0, + label: 'Yellow', + presentationId: 'yellow', + value: 'Yellow', + }, + { + hitCount: 2, + label: 'Miscellaneous', + presentationId: 'miscellaneous', + value: 'Miscellaneous', + }, + ], + }, + { + attributeId: 'c_isNew', + label: 'New Arrival', + values: [ + { + hitCount: 4, + label: 'true', + value: 'true', + }, + ], + }, + { + attributeId: 'c_bottomType', + label: 'Type | Use', + }, + { + attributeId: 'c_size', + label: 'Size', + values: [ + { + hitCount: 31, + label: '4', + value: '4', + }, + { + hitCount: 32, + label: '6', + value: '6', + }, + { + hitCount: 32, + label: '8', + value: '8', + }, + { + hitCount: 34, + label: '10', + value: '10', + }, + { + hitCount: 31, + label: '12', + value: '12', + }, + { + hitCount: 33, + label: '14', + value: '14', + }, + { + hitCount: 32, + label: '16', + value: '16', + }, + { + hitCount: 5, + label: 'XS', + value: 'XS', + }, + { + hitCount: 8, + label: 'S', + value: 'S', + }, + { + hitCount: 8, + label: 'M', + value: 'M', + }, + { + hitCount: 6, + label: 'L', + value: 'L', + }, + { + hitCount: 7, + label: 'XL', + value: 'XL', + }, + { + hitCount: 0, + label: '10P', + value: '10P', + }, + { + hitCount: 0, + label: '12P', + value: '12P', + }, + { + hitCount: 0, + label: '14P', + value: '14P', + }, + { + hitCount: 0, + label: '14W', + value: '14W', + }, + { + hitCount: 0, + label: '16W', + value: '16W', + }, + { + hitCount: 0, + label: '18W', + value: '18W', + }, + { + hitCount: 0, + label: '20W', + value: '20W', + }, + { + hitCount: 0, + label: '22W', + value: '22W', + }, + { + hitCount: 0, + label: '24W', + value: '24W', + }, + { + hitCount: 0, + label: '2P', + value: '2P', + }, + { + hitCount: 0, + label: '4P', + value: '4P', + }, + { + hitCount: 0, + label: '6P', + value: '6P', + }, + { + hitCount: 0, + label: '8P', + value: '8P', + }, + ], + }, + { + attributeId: 'c_waist', + label: 'Waist', + }, + { + attributeId: 'c_length', + label: 'Length', + }, + { + attributeId: 'price', + label: 'Price', + values: [ + { + hitCount: 5, + label: '$20 - $49.99', + value: '(20..50)', + }, + { + hitCount: 32, + label: '$50 - $99.99', + value: '(50..100)', + }, + { + hitCount: 6, + label: '$100 - $499.99', + value: '(100..500)', + }, + ], + }, + ], + searchPhraseSuggestions: {}, + selectedRefinements: { + cgid: 'womens-clothing-bottoms', + c_refinementColor: 'Black', + htype: 'master', + }, + selectedSortingOption: 'best-matches', + sortingOptions: [ + { + id: 'best-matches', + label: 'Best Matches', + }, + { + id: 'price-low-to-high', + label: 'Price Low To High', + }, + { + id: 'price-high-to-low', + label: 'Price High to Low', + }, + { + id: 'product-name-ascending', + label: 'Product Name A - Z', + }, + { + id: 'product-name-descending', + label: 'Product Name Z - A', + }, + { + id: 'brand', + label: 'Brand', + }, + { + id: 'most-popular', + label: 'Most Popular', + }, + { + id: 'top-sellers', + label: 'Top Sellers', + }, + ], + offset: 0, + total: 43, +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/basket-with-suit.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/basket-with-suit.js new file mode 100644 index 0000000000..14180fb6da --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/basket-with-suit.js @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +export default { + _v: '21.3', + _type: 'basket', + _resource_state: '1d75bb3f6c79c4f367326378db1223fa865bd8a05301829e6478239889d7ea7c', + _flash: [ + { + _type: 'flash', + type: 'PaymentMethodRequired', + message: + 'No payment method ID was specified. Please provide a valid payment method ID.', + path: '$.payment_instruments[0].payment_method_id' + }, + { + _type: 'flash', + type: 'BillingAddressRequired', + message: 'No billing address was specified. Please provide a valid billing address.', + path: '$.billing_address' + }, + { + _type: 'flash', + type: 'ShippingAddressRequired', + message: 'No shipping address was specified. Please provide a valid shipping address.', + path: '$.shipments[0].shipping_address', + details: {shipmentId: 'me'} + } + ], + adjusted_merchandize_total_tax: 30.0, + adjusted_shipping_total_tax: 0.0, + agent_basket: false, + basket_id: '9303c9065ccc5fa2c7fca1d4b4', + channel_type: 'storefront', + creation_date: '2021-06-23T13:14:17.615Z', + currency: 'USD', + customer_info: { + _type: 'customer_info', + customer_id: 'customerid', + email: '' + }, + last_modified: '2021-06-23T17:46:51.237Z', + merchandize_total_tax: 30.0, + notes: { + _type: 'simple_link', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/baskets/9303c9065ccc5fa2c7fca1d4b4/notes' + }, + order_total: 629.98, + product_items: [ + { + _type: 'product_item', + adjusted_tax: 30.0, + base_price: 299.99, + bonus_product_line_item: false, + gift: false, + item_id: '6c7041afcb69544a0554d53f0d', + item_text: 'Black Single Pleat Athletic Fit Wool Suit - Edit', + price: 599.98, + price_after_item_discount: 599.98, + price_after_order_discount: 599.98, + product_id: '750518699578M', + product_name: 'Black Single Pleat Athletic Fit Wool Suit - Edit', + quantity: 2, + shipment_id: 'me', + tax: 30.0, + tax_basis: 599.98, + tax_class_id: 'standard', + tax_rate: 0.05 + } + ], + product_sub_total: 599.98, + product_total: 599.98, + shipments: [ + { + _type: 'shipment', + adjusted_merchandize_total_tax: 30.0, + adjusted_shipping_total_tax: 0.0, + gift: false, + merchandize_total_tax: 30.0, + product_sub_total: 599.98, + product_total: 599.98, + shipment_id: 'me', + shipment_total: 629.98, + shipping_method: { + _type: 'shipping_method', + description: 'The default shipping method.', + id: 'DefaultShippingMethod', + name: 'Default Shipping Method', + price: 15.99, + shipping_promotions: [ + { + _type: 'shipping_promotion', + callout_msg: 'Free Shipping Amount Above 150', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/promotions/3184d71eea54c9d27e88dc41ca', + promotion_id: 'FreeShippingAmountAbove150', + promotion_name: 'Free Shipping Amount Above 150' + } + ], + c_estimatedArrivalTime: '7-10 Business Days' + }, + shipping_status: 'not_shipped', + shipping_total: 0.0, + shipping_total_tax: 0.8, + tax_total: 30.0 + } + ], + shipping_items: [ + { + _type: 'shipping_item', + adjusted_tax: 0.0, + base_price: 15.99, + item_id: '1b84703bc2040ed99836b03ca1', + item_text: 'Shipping', + price: 15.99, + price_adjustments: [ + { + _type: 'price_adjustment', + applied_discount: {_type: 'discount', amount: 1, type: 'free'}, + creation_date: '2021-06-23T17:25:05.495Z', + custom: false, + item_text: 'Free Shipping Amount Above 150', + last_modified: '2021-06-23T17:46:51.237Z', + manual: false, + price: -15.99, + price_adjustment_id: '2a520873159147eb9759d2cc6f', + promotion_id: 'FreeShippingAmountAbove150', + promotion_link: + 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v21_3/promotions/FreeShippingAmountAbove150' + } + ], + price_after_item_discount: 0.0, + shipment_id: 'me', + tax: 0.8, + tax_basis: 15.99, + tax_class_id: 'standard', + tax_rate: 0.05 + } + ], + shipping_total: 0.0, + shipping_total_tax: 0.8, + taxation: 'net', + tax_total: 30.0 +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/einstein-mock-data.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/einstein-mock-data.js new file mode 100644 index 0000000000..159e755d86 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/einstein-mock-data.js @@ -0,0 +1,942 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +export const mockRecommendationsResponse = { + recommenderName: 'test-recommender', + recoUUID: '05e0bd80-64eb-4149-ad5a-dfe1996f8f57', + recs: [ + { + id: 'prod_123', + product_name: 'Product ABC', + product_url: 'prod_abc.test.com', + image_url: 'prod_abc.test.com' + } + ] +} + +export const mockRecommendersResponse = { + recommenders: [ + { + name: 'recently-viewed-products', + description: 'Recently viewed products.', + recommenderType: 'recently-viewed' + } + ] +} + +export const mockAddToCartProduct = {productId: '883360544021M', sku: '', price: 155, quantity: 1} + +export const mockRecommenderDetails = { + __recoUUID: '883360544021M', + recommenderName: 'testRecommender' +} + +export const mockGetZoneRecommendationsResponse = { + displayMessage: 'Recently Viewed', + recoUUID: '05e0bd80-64eb-4149-ad5a-dfe1996f8f57', + recs: [ + { + id: 'prod_123', + product_name: 'Product ABC', + product_url: 'prod_abc.test.com', + image_url: 'prod_abc.test.com' + } + ], + recommenderName: 'recently-viewed-products' +} + +export const mockCategory = { + id: 'mens-accessories-ties', + image: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-storefront-catalog-m-non-en/default/dwd2ff3ec8/images/slot/sub_banners/cat-banner-mens-ties.jpg', + name: 'Ties', + pageDescription: + "Shop Mens's Ties for all occasions including business or casual at Commerce Cloud", + pageTitle: "Men's Casual and Business Ties", + parentCategoryId: 'mens-accessories', + parentCategoryTree: [ + { + id: 'mens', + name: 'Mens' + }, + { + id: 'mens-accessories', + name: 'Accessories' + }, + { + id: 'mens-accessories-ties', + name: 'Ties' + } + ], + c_enableCompare: false, + c_showInMenu: true +} + +export const mockSearchResults = { + limit: 4, + hits: [ + { + currency: 'GBP', + hitType: 'master', + image: { + alt: 'Striped Silk Tie, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6e365a5e/images/large/PG.949114314S.REDSI.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6e365a5e/images/large/PG.949114314S.REDSI.PZ.jpg', + title: 'Striped Silk Tie, ' + }, + orderable: true, + price: 19.19, + productId: '25752986M', + productName: 'Striped Silk Tie', + productType: { + master: true + }, + representedProduct: { + id: '793775370033M' + }, + representedProducts: [ + { + id: '793775370033M' + }, + { + id: '793775362380M' + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Colour', + values: [ + { + name: 'Red', + orderable: true, + value: 'REDSI' + }, + { + name: 'Turquoise', + orderable: true, + value: 'TURQUSI' + } + ] + } + ] + }, + { + currency: 'GBP', + hitType: 'master', + image: { + alt: 'Checked Silk Tie, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe64d25bd/images/large/PG.949612424S.COBATSI.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe64d25bd/images/large/PG.949612424S.COBATSI.PZ.jpg', + title: 'Checked Silk Tie, ' + }, + orderable: true, + price: 19.19, + productId: '25752235M', + productName: 'Checked Silk Tie', + productType: { + master: true + }, + representedProduct: { + id: '682875090845M' + }, + representedProducts: [ + { + id: '682875090845M' + }, + { + id: '682875719029M' + }, + { + id: '682875540326M' + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Colour', + values: [ + { + name: 'Cobalt', + orderable: true, + value: 'COBATSI' + }, + { + name: 'Navy', + orderable: true, + value: 'NAVYSI' + }, + { + name: 'Yellow', + orderable: true, + value: 'YELLOSI' + } + ] + } + ] + }, + { + currency: 'GBP', + hitType: 'master', + image: { + alt: 'Solid Silk Tie, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1c618527/images/large/PG.949432114S.NAVYSI.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1c618527/images/large/PG.949432114S.NAVYSI.PZ.jpg', + title: 'Solid Silk Tie, ' + }, + orderable: true, + price: 19.19, + productId: '25752218M', + productName: 'Solid Silk Tie', + productType: { + master: true + }, + representedProduct: { + id: '029407331289M' + }, + representedProducts: [ + { + id: '029407331289M' + }, + { + id: '029407331227M' + }, + { + id: '029407331258M' + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Colour', + values: [ + { + name: 'Navy', + orderable: true, + value: 'NAVYSI' + }, + { + name: 'Red', + orderable: true, + value: 'REDSI' + }, + { + name: 'Yellow', + orderable: true, + value: 'YELLOSI' + } + ] + } + ] + }, + { + currency: 'GBP', + hitType: 'master', + image: { + alt: 'Striped Silk Tie, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4982cf11/images/large/PG.949034314S.TAUPESI.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4982cf11/images/large/PG.949034314S.TAUPESI.PZ.jpg', + title: 'Striped Silk Tie, ' + }, + orderable: true, + price: 19.19, + productId: '25752981M', + productName: 'Striped Silk Tie', + productType: { + master: true + }, + representedProduct: { + id: '793775064963M' + }, + representedProducts: [ + { + id: '793775064963M' + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Colour', + values: [ + { + name: 'Taupe', + orderable: true, + value: 'TAUPESI' + } + ] + } + ] + } + ], + query: '', + refinements: [ + { + attributeId: 'cgid', + label: 'Category', + values: [ + { + hitCount: 4, + label: 'New Arrivals', + value: 'newarrivals' + }, + { + hitCount: 4, + label: 'Mens', + value: 'mens', + values: [ + { + hitCount: 4, + label: 'Accessories', + value: 'mens-accessories', + values: [ + { + hitCount: 4, + label: 'Ties', + value: 'mens-accessories-ties' + } + ] + } + ] + } + ] + }, + { + attributeId: 'c_refinementColor', + label: 'Colour', + values: [ + { + hitCount: 0, + label: 'Beige', + presentationId: 'beige', + value: 'Beige' + }, + { + hitCount: 0, + label: 'Black', + presentationId: 'black', + value: 'Black' + }, + { + hitCount: 1, + label: 'Blue', + presentationId: 'blue', + value: 'Blue' + }, + { + hitCount: 2, + label: 'Navy', + presentationId: 'navy', + value: 'Navy' + }, + { + hitCount: 1, + label: 'Brown', + presentationId: 'brown', + value: 'Brown' + }, + { + hitCount: 1, + label: 'Green', + presentationId: 'green', + value: 'Green' + }, + { + hitCount: 0, + label: 'Grey', + presentationId: 'grey', + value: 'Grey' + }, + { + hitCount: 0, + label: 'Orange', + presentationId: 'orange', + value: 'Orange' + }, + { + hitCount: 0, + label: 'Pink', + presentationId: 'pink', + value: 'Pink' + }, + { + hitCount: 0, + label: 'Purple', + presentationId: 'purple', + value: 'Purple' + }, + { + hitCount: 2, + label: 'Red', + presentationId: 'red', + value: 'Red' + }, + { + hitCount: 0, + label: 'White', + presentationId: 'white', + value: 'White' + }, + { + hitCount: 2, + label: 'Yellow', + presentationId: 'yellow', + value: 'Yellow' + }, + { + hitCount: 0, + label: 'Miscellaneous', + presentationId: 'miscellaneous', + value: 'Miscellaneous' + } + ] + }, + { + attributeId: 'price', + label: 'Price', + values: [ + { + hitCount: 4, + label: '£0 - £19.99', + value: '(0..20)' + } + ] + }, + { + attributeId: 'c_isNew', + label: 'New Arrival' + } + ], + searchPhraseSuggestions: {}, + selectedRefinements: { + cgid: 'mens-accessories-ties', + htype: 'master' + }, + sortingOptions: [ + { + id: 'best-matches', + label: 'Best Matches' + }, + { + id: 'price-low-to-high', + label: 'Price Low To High' + }, + { + id: 'price-high-to-low', + label: 'Price High to Low' + }, + { + id: 'product-name-ascending', + label: 'Product Name A - Z' + }, + { + id: 'product-name-descending', + label: 'Product Name Z - A' + }, + { + id: 'brand', + label: 'Brand' + }, + { + id: 'most-popular', + label: 'Most Popular' + }, + { + id: 'top-sellers', + label: 'Top Sellers' + } + ], + offset: 0, + total: 4 +} + +export const mockBasket = { + adjustedMerchandizeTotalTax: 1.5, + adjustedShippingTotalTax: 0.3, + agentBasket: false, + basketId: 'f6bbeee30fb93c2f94213f60f8', + channelType: 'storefront', + creationDate: '2022-09-15T19:29:10.361Z', + currency: 'USD', + customerInfo: { + customerId: 'bdlrFJmudIlHaRk0oYkbYYlKw3' + }, + lastModified: '2022-09-15T19:31:04.677Z', + merchandizeTotalTax: 1.5, + notes: {}, + orderTotal: 37.78, + productItems: [ + { + adjustedTax: 1.5, + basePrice: 29.99, + bonusProductLineItem: false, + gift: false, + itemId: 'de63c61b3edeca38b2d9a67a67', + itemText: 'Checked Silk Tie', + price: 29.99, + priceAfterItemDiscount: 29.99, + priceAfterOrderDiscount: 29.99, + productId: '682875719029M', + productName: 'Checked Silk Tie', + quantity: 1, + shipmentId: 'me', + tax: 1.5, + taxBasis: 29.99, + taxClassId: 'standard', + taxRate: 0.05 + } + ], + productSubTotal: 29.99, + productTotal: 29.99, + shipments: [ + { + adjustedMerchandizeTotalTax: 1.5, + adjustedShippingTotalTax: 0.3, + gift: false, + merchandizeTotalTax: 1.5, + productSubTotal: 29.99, + productTotal: 29.99, + shipmentId: 'me', + shipmentTotal: 37.78, + shippingMethod: { + description: 'Order received within 7-10 business days', + id: '001', + name: 'Ground', + price: 5.99, + c_estimatedArrivalTime: '7-10 Business Days' + }, + shippingStatus: 'not_shipped', + shippingTotal: 5.99, + shippingTotalTax: 0.3, + taxTotal: 1.8 + } + ], + shippingItems: [ + { + adjustedTax: 0.3, + basePrice: 5.99, + itemId: 'b931764832e5bd90a3c226552f', + itemText: 'Shipping', + price: 5.99, + priceAfterItemDiscount: 5.99, + shipmentId: 'me', + tax: 0.3, + taxBasis: 5.99, + taxClassId: 'standard', + taxRate: 0.05 + } + ], + shippingTotal: 5.99, + shippingTotalTax: 0.3, + taxation: 'net', + taxTotal: 1.8 +} + +export const mockProduct = { + currency: 'USD', + id: '56736828M', + imageGroups: [ + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfb7ce066/images/large/B0574220_CP1_0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfb7ce066/images/large/B0574220_CP1_0.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwee33fb7b/images/large/B0574220_CP1_B0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwee33fb7b/images/large/B0574220_CP1_B0.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4a2fbc7b/images/large/B0574220_CP1_L1.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4a2fbc7b/images/large/B0574220_CP1_L1.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw308eba53/images/large/B0574220_CP1_L2.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw308eba53/images/large/B0574220_CP1_L2.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwecea3cdd/images/large/B0574220_CP1_L3.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwecea3cdd/images/large/B0574220_CP1_L3.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, Gray, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfb7ce066/images/large/B0574220_CP1_0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfb7ce066/images/large/B0574220_CP1_0.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwee33fb7b/images/large/B0574220_CP1_B0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwee33fb7b/images/large/B0574220_CP1_B0.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4a2fbc7b/images/large/B0574220_CP1_L1.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw4a2fbc7b/images/large/B0574220_CP1_L1.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw308eba53/images/large/B0574220_CP1_L2.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw308eba53/images/large/B0574220_CP1_L2.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwecea3cdd/images/large/B0574220_CP1_L3.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwecea3cdd/images/large/B0574220_CP1_L3.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + } + ], + variationAttributes: [{id: 'color', values: [{value: 'CP1'}]}], + viewType: 'large' + }, + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9bbe03cd/images/medium/B0574220_CP1_0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9bbe03cd/images/medium/B0574220_CP1_0.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwd3a75400/images/medium/B0574220_CP1_B0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwd3a75400/images/medium/B0574220_CP1_B0.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed372d31/images/medium/B0574220_CP1_L1.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed372d31/images/medium/B0574220_CP1_L1.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw32d43910/images/medium/B0574220_CP1_L2.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw32d43910/images/medium/B0574220_CP1_L2.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6aa00910/images/medium/B0574220_CP1_L3.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6aa00910/images/medium/B0574220_CP1_L3.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, Gray, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9bbe03cd/images/medium/B0574220_CP1_0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9bbe03cd/images/medium/B0574220_CP1_0.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwd3a75400/images/medium/B0574220_CP1_B0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwd3a75400/images/medium/B0574220_CP1_B0.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed372d31/images/medium/B0574220_CP1_L1.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed372d31/images/medium/B0574220_CP1_L1.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw32d43910/images/medium/B0574220_CP1_L2.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw32d43910/images/medium/B0574220_CP1_L2.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6aa00910/images/medium/B0574220_CP1_L3.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw6aa00910/images/medium/B0574220_CP1_L3.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + } + ], + variationAttributes: [{id: 'color', values: [{value: 'CP1'}]}], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed10427e/images/small/B0574220_CP1_0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed10427e/images/small/B0574220_CP1_0.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw999b0356/images/small/B0574220_CP1_B0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw999b0356/images/small/B0574220_CP1_B0.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3805c600/images/small/B0574220_CP1_L1.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3805c600/images/small/B0574220_CP1_L1.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1a024d50/images/small/B0574220_CP1_L2.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1a024d50/images/small/B0574220_CP1_L2.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + }, + { + alt: 'Straight Fit Shorts With Button Closure, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcafa0be3/images/small/B0574220_CP1_L3.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcafa0be3/images/small/B0574220_CP1_L3.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, Gray, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed10427e/images/small/B0574220_CP1_0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwed10427e/images/small/B0574220_CP1_0.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw999b0356/images/small/B0574220_CP1_B0.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw999b0356/images/small/B0574220_CP1_B0.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3805c600/images/small/B0574220_CP1_L1.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw3805c600/images/small/B0574220_CP1_L1.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1a024d50/images/small/B0574220_CP1_L2.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw1a024d50/images/small/B0574220_CP1_L2.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + }, + { + alt: 'Straight Fit Shorts With Button Closure, Gray, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcafa0be3/images/small/B0574220_CP1_L3.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcafa0be3/images/small/B0574220_CP1_L3.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + } + ], + variationAttributes: [{id: 'color', values: [{value: 'CP1'}]}], + viewType: 'small' + }, + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, , swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa2168062/images/swatch/B0574220_CP1_sw.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa2168062/images/swatch/B0574220_CP1_sw.jpg', + title: 'Straight Fit Shorts With Button Closure, ' + } + ], + viewType: 'swatch' + }, + { + images: [ + { + alt: 'Straight Fit Shorts With Button Closure, Gray, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa2168062/images/swatch/B0574220_CP1_sw.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwa2168062/images/swatch/B0574220_CP1_sw.jpg', + title: 'Straight Fit Shorts With Button Closure, Gray' + } + ], + variationAttributes: [{id: 'color', values: [{value: 'CP1'}]}], + viewType: 'swatch' + } + ], + inventory: { + ats: 997, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 997 + }, + longDescription: + '
    \n
  • 66% cotton, 30% polyester, 4% elastane
  • \n
  • straight-fit
  • \n
  • on seam front pockets
  • \n
  • button closure
  • \n
  • flap back pockets with button closure
  • \n
  • dry clean only
  • \n
', + master: {masterId: '56736828M', orderable: true, price: 155}, + minOrderQuantity: 1, + name: 'Straight Fit Shorts With Button Closure', + pageDescription: + 'These straight-fit shorts are eager to impress, wear it with the Kris HL sportcoat for a warmed up suit. Made in our cotton stretch with pinstripe pattern fabric.', + pageTitle: "Men's Straight Fit Shorts With Button Closure", + price: 155, + primaryCategoryId: 'mens-clothing-shorts', + recommendations: [ + { + recommendationType: {displayValue: 'Product Detail Page - Cross Sell', value: 1}, + recommendedItemId: '72516759M', + recommendedItemLink: + 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v20_2/products/72516759M?all_images=true¤cy=&locale=default&inventory_ids=' + }, + { + recommendationType: {displayValue: 'Product Detail Page - Cross Sell', value: 1}, + recommendedItemId: '86736845M', + recommendedItemLink: + 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v20_2/products/86736845M?all_images=true¤cy=&locale=default&inventory_ids=' + }, + { + recommendationType: {displayValue: 'Product Detail Page - Cross Sell', value: 1}, + recommendedItemId: '54736828M', + recommendedItemLink: + 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v20_2/products/54736828M?all_images=true¤cy=&locale=default&inventory_ids=' + }, + { + recommendationType: {displayValue: 'Product Detail Page - Cross Sell', value: 1}, + recommendedItemId: '83536828M', + recommendedItemLink: + 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArch/dw/shop/v20_2/products/83536828M?all_images=true¤cy=&locale=default&inventory_ids=' + } + ], + shortDescription: + 'These straight-fit shorts are eager to impress, wear it with the Kris HL sportcoat for a warmed up suit. Made in our cotton stretch with pinstripe pattern fabric.', + stepQuantity: 1, + type: {master: true}, + variants: [ + { + orderable: true, + price: 155, + productId: '883360544038M', + variationValues: {color: 'CP1', size: '31'} + }, + { + orderable: true, + price: 155, + productId: '883360544052M', + variationValues: {color: 'CP1', size: '33'} + }, + { + orderable: true, + price: 155, + productId: '883360544083M', + variationValues: {color: 'CP1', size: '38'} + }, + { + orderable: true, + price: 155, + productId: '883360544069M', + variationValues: {color: 'CP1', size: '34'} + }, + { + orderable: true, + price: 155, + productId: '883360544014M', + variationValues: {color: 'CP1', size: '29'} + }, + { + orderable: true, + price: 155, + productId: '883360544045M', + variationValues: {color: 'CP1', size: '32'} + }, + { + orderable: true, + price: 155, + productId: '883360544021M', + variationValues: {color: 'CP1', size: '30'} + }, + { + orderable: true, + price: 155, + productId: '883360544007M', + variationValues: {color: 'CP1', size: '28'} + }, + { + orderable: true, + price: 155, + productId: '883360544090M', + variationValues: {color: 'CP1', size: '40'} + }, + { + orderable: true, + price: 155, + productId: '883360544076M', + variationValues: {color: 'CP1', size: '36'} + } + ], + variationAttributes: [ + {id: 'color', name: 'Color', values: [{name: 'Gray', orderable: true, value: 'CP1'}]}, + { + id: 'size', + name: 'Size', + values: [ + {name: '28', orderable: true, value: '28'}, + {name: '29', orderable: true, value: '29'}, + {name: '30', orderable: true, value: '30'}, + {name: '31', orderable: true, value: '31'}, + {name: '32', orderable: true, value: '32'}, + {name: '33', orderable: true, value: '33'}, + {name: '34', orderable: true, value: '34'}, + {name: '36', orderable: true, value: '36'}, + {name: '38', orderable: true, value: '38'}, + {name: '40', orderable: true, value: '40'} + ] + } + ] +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/empty-basket.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/empty-basket.js new file mode 100644 index 0000000000..514b28d014 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/empty-basket.js @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +export default { + _v: '21.3', + _resource_state: '860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5', + _type: 'basket', + _flash: [], + basket_id: 'bczFTaOjgEqUkaaadkvHwbgrP5', + currency: 'USD', + customer_info: { + _type: 'customer_info', + customer_id: 'customerid', + email: '' + }, + order_total: 0.0, + product_sub_total: 0.0, + product_total: 0.0, + shipments: [ + { + _type: 'shipment', + id: 'me', + shipment_id: 'bc5OTaOjgEqUoaaadkvHwbgrP5' + } + ], + shipping_items: [ + { + shipment_id: 'me', + item_id: 'bcwsbaOjgEqUsaaadkvHwbgrP5' + } + ], + shipping_total: 0.0, + shipping_total_tax: 0.0, + taxation: 'net', + tax_total: 0.0 +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/product-set-winter-lookM.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/product-set-winter-lookM.js new file mode 100644 index 0000000000..89d313fcb2 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/product-set-winter-lookM.js @@ -0,0 +1,1224 @@ +/* + * Copyright (c) 2023, Salesforce, Inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +export default { + currency: 'GBP', + id: 'winter-lookM', + imageGroups: [ + { + images: [ + { + alt: 'Winter Look, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Winter Look, ' + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Winter Look, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Winter Look, ' + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Winter Look, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Winter Look, ' + } + ], + viewType: 'small' + } + ], + longDescription: '

Jacket

\r\n

Pant

\r\n

Shoes

', + minOrderQuantity: 1, + name: 'Winter Look', + price: 44.16, + priceMax: 71.03, + pricePerUnit: 44.16, + pricePerUnitMax: 71.03, + primaryCategoryId: 'womens-outfits', + setProducts: [ + { + currency: 'GBP', + id: '25518447M', + imageGroups: [ + { + images: [ + { + alt: 'Quilted Jacket, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Quilted Jacket, ' + }, + { + alt: 'Quilted Jacket, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg', + title: 'Quilted Jacket, ' + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Quilted Jacket, royal, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Quilted Jacket, royal' + }, + { + alt: 'Quilted Jacket, royal, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg', + title: 'Quilted Jacket, royal' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ5FUXX' + } + ] + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Quilted Jacket, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Quilted Jacket, ' + }, + { + alt: 'Quilted Jacket, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg', + title: 'Quilted Jacket, ' + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Quilted Jacket, royal, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Quilted Jacket, royal' + }, + { + alt: 'Quilted Jacket, royal, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg', + title: 'Quilted Jacket, royal' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ5FUXX' + } + ] + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Quilted Jacket, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Quilted Jacket, ' + }, + { + alt: 'Quilted Jacket, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg', + title: 'Quilted Jacket, ' + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Quilted Jacket, royal, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg', + title: 'Quilted Jacket, royal' + }, + { + alt: 'Quilted Jacket, royal, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg', + title: 'Quilted Jacket, royal' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ5FUXX' + } + ] + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Quilted Jacket, royal, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5dea9b57/images/swatch/PG.10205921.JJ5FUXX.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5dea9b57/images/swatch/PG.10205921.JJ5FUXX.CP.jpg', + title: 'Quilted Jacket, royal' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ5FUXX' + } + ] + } + ], + viewType: 'swatch' + } + ], + inventory: { + ats: 400, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 400 + }, + longDescription: + 'A classic quilted car coat looks new again. Add a great Commerce Cloud Store top for a perfect look.', + master: { + masterId: '25518447M', + orderable: true, + price: 71.03 + }, + minOrderQuantity: 1, + name: 'Quilted Jacket', + pageDescription: + 'A classic quilted car coat looks new again. Add a great Commerce Cloud Store top for a perfect look.', + pageTitle: 'Quilted Jacket', + price: 71.03, + pricePerUnit: 71.03, + primaryCategoryId: 'womens-clothing-jackets', + recommendations: [ + { + recommendationType: { + displayValue: 'Product Detail Page - Cross Sell', + value: 1 + }, + recommendedItemId: '22951021M' + }, + { + recommendationType: { + displayValue: 'Product Detail Page - Cross Sell', + value: 1 + }, + recommendedItemId: '25518397M' + } + ], + shortDescription: + 'A classic quilted car coat looks new again. Add a great Commerce Cloud Store top for a perfect look.', + stepQuantity: 1, + type: { + master: true + }, + validFrom: { + default: '2010-10-21T04:00:00.000Z' + }, + variants: [ + { + orderable: true, + price: 71.03, + productId: '701642853695M', + variationValues: { + color: 'JJ5FUXX', + size: '9LG' + } + }, + { + orderable: true, + price: 71.03, + productId: '701642853718M', + variationValues: { + color: 'JJ5FUXX', + size: '9SM' + } + }, + { + orderable: true, + price: 71.03, + productId: '701642853725M', + variationValues: { + color: 'JJ5FUXX', + size: '9XL' + } + }, + { + orderable: true, + price: 71.03, + productId: '701642853701M', + variationValues: { + color: 'JJ5FUXX', + size: '9MD' + } + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Colour', + values: [ + { + name: 'royal', + orderable: true, + value: 'JJ5FUXX' + } + ] + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'S', + orderable: true, + value: '9SM' + }, + { + name: 'M', + orderable: true, + value: '9MD' + }, + { + name: 'L', + orderable: true, + value: '9LG' + }, + { + name: 'XL', + orderable: true, + value: '9XL' + } + ] + } + ], + c_isNewtest: true, + c_isSale: true + }, + { + currency: 'GBP', + id: '25518704M', + imageGroups: [ + { + images: [ + { + alt: 'Pull On Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg', + title: 'Pull On Pant, ' + }, + { + alt: 'Pull On Pant, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg', + title: 'Pull On Pant, ' + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Pull On Pant, Grey Heather, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg', + title: 'Pull On Pant, Grey Heather' + }, + { + alt: 'Pull On Pant, Grey Heather, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg', + title: 'Pull On Pant, Grey Heather' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ2XNXX' + } + ] + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Pull On Pant, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg', + title: 'Pull On Pant, ' + }, + { + alt: 'Pull On Pant, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg', + title: 'Pull On Pant, ' + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Pull On Pant, Grey Heather, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg', + title: 'Pull On Pant, Grey Heather' + }, + { + alt: 'Pull On Pant, Grey Heather, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg', + title: 'Pull On Pant, Grey Heather' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ2XNXX' + } + ] + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Pull On Pant, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg', + title: 'Pull On Pant, ' + }, + { + alt: 'Pull On Pant, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg', + title: 'Pull On Pant, ' + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Pull On Pant, Grey Heather, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg', + title: 'Pull On Pant, Grey Heather' + }, + { + alt: 'Pull On Pant, Grey Heather, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg', + title: 'Pull On Pant, Grey Heather' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ2XNXX' + } + ] + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Pull On Pant, Grey Heather, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dedffb4/images/swatch/PG.10218785.JJ2XNXX.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dedffb4/images/swatch/PG.10218785.JJ2XNXX.CP.jpg', + title: 'Pull On Pant, Grey Heather' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'JJ2XNXX' + } + ] + } + ], + viewType: 'swatch' + } + ], + inventory: { + ats: 500, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 500 + }, + longDescription: + 'Meet a Commerce Cloud Store new wardrobe favorite - a knit pant that works perfectly 12 months a year!', + master: { + masterId: '25518704M', + orderable: true, + price: 44.16 + }, + minOrderQuantity: 1, + name: 'Pull On Pant', + pageDescription: + 'Meet a Commerce Cloud Store new wardrobe favorite - a knit pant that works perfectly 12 months a year!', + pageTitle: 'Pull On Pant', + price: 44.16, + pricePerUnit: 44.16, + primaryCategoryId: 'womens-clothing-bottoms', + shortDescription: + 'Meet a Commerce Cloud Store new wardrobe favorite - a knit pant that works perfectly 12 months a year!', + stepQuantity: 1, + type: { + master: true + }, + validFrom: { + default: '2010-10-21T04:00:00.000Z' + }, + variants: [ + { + orderable: true, + price: 44.16, + productId: '701642867098M', + variationValues: { + color: 'JJ2XNXX', + size: '9LG' + } + }, + { + orderable: true, + price: 44.16, + productId: '701642867111M', + variationValues: { + color: 'JJ2XNXX', + size: '9SM' + } + }, + { + orderable: true, + price: 44.16, + productId: '701642867104M', + variationValues: { + color: 'JJ2XNXX', + size: '9MD' + } + }, + { + orderable: true, + price: 44.16, + productId: '701642867128M', + variationValues: { + color: 'JJ2XNXX', + size: '9XL' + } + }, + { + orderable: true, + price: 44.16, + productId: '701642867135M', + variationValues: { + color: 'JJ2XNXX', + size: '9XS' + } + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Colour', + values: [ + { + name: 'Grey Heather', + orderable: true, + value: 'JJ2XNXX' + } + ] + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: 'XS', + orderable: true, + value: '9XS' + }, + { + name: 'S', + orderable: true, + value: '9SM' + }, + { + name: 'M', + orderable: true, + value: '9MD' + }, + { + name: 'L', + orderable: true, + value: '9LG' + }, + { + name: 'XL', + orderable: true, + value: '9XL' + } + ] + } + ], + c_isNewtest: true + }, + { + currency: 'GBP', + id: '25772717M', + imageGroups: [ + { + images: [ + { + alt: 'Zerrick, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg', + title: 'Zerrick, ' + }, + { + alt: 'Zerrick, , large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg', + title: 'Zerrick, ' + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Zerrick, Black, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg', + title: 'Zerrick, Black' + }, + { + alt: 'Zerrick, Black, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg', + title: 'Zerrick, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKLE' + } + ] + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Zerrick, Taupe, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw08fba265/images/large/PG.CJZERRICK.TAUPETX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw08fba265/images/large/PG.CJZERRICK.TAUPETX.PZ.jpg', + title: 'Zerrick, Taupe' + }, + { + alt: 'Zerrick, Taupe, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw20ceacbb/images/large/PG.CJZERRICK.TAUPETX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw20ceacbb/images/large/PG.CJZERRICK.TAUPETX.BZ.jpg', + title: 'Zerrick, Taupe' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'TAUPETX' + } + ] + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Zerrick, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg', + title: 'Zerrick, ' + }, + { + alt: 'Zerrick, , medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg', + title: 'Zerrick, ' + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Zerrick, Black, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg', + title: 'Zerrick, Black' + }, + { + alt: 'Zerrick, Black, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg', + title: 'Zerrick, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKLE' + } + ] + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Zerrick, Taupe, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0019f83a/images/medium/PG.CJZERRICK.TAUPETX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0019f83a/images/medium/PG.CJZERRICK.TAUPETX.PZ.jpg', + title: 'Zerrick, Taupe' + }, + { + alt: 'Zerrick, Taupe, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ac76531/images/medium/PG.CJZERRICK.TAUPETX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ac76531/images/medium/PG.CJZERRICK.TAUPETX.BZ.jpg', + title: 'Zerrick, Taupe' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'TAUPETX' + } + ] + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Zerrick, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg', + title: 'Zerrick, ' + }, + { + alt: 'Zerrick, , small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg', + title: 'Zerrick, ' + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Zerrick, Black, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg', + title: 'Zerrick, Black' + }, + { + alt: 'Zerrick, Black, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg', + title: 'Zerrick, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKLE' + } + ] + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Zerrick, Taupe, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwabc944c5/images/small/PG.CJZERRICK.TAUPETX.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwabc944c5/images/small/PG.CJZERRICK.TAUPETX.PZ.jpg', + title: 'Zerrick, Taupe' + }, + { + alt: 'Zerrick, Taupe, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5b4e54ad/images/small/PG.CJZERRICK.TAUPETX.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5b4e54ad/images/small/PG.CJZERRICK.TAUPETX.BZ.jpg', + title: 'Zerrick, Taupe' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'TAUPETX' + } + ] + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Zerrick, Black, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcc030b86/images/swatch/PG.CJZERRICK.BLACKLE.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcc030b86/images/swatch/PG.CJZERRICK.BLACKLE.CP.jpg', + title: 'Zerrick, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKLE' + } + ] + } + ], + viewType: 'swatch' + }, + { + images: [ + { + alt: 'Zerrick, Taupe, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dc4320e/images/swatch/PG.CJZERRICK.TAUPETX.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dc4320e/images/swatch/PG.CJZERRICK.TAUPETX.CP.jpg', + title: 'Zerrick, Taupe' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'TAUPETX' + } + ] + } + ], + viewType: 'swatch' + } + ], + inventory: { + ats: 1498, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 1498 + }, + longDescription: 'The perfect pump for any outfit!', + master: { + masterId: '25772717M', + orderable: true, + price: 63.36 + }, + minOrderQuantity: 1, + name: 'Zerrick', + pageDescription: 'The perfect pump for any outfit!', + pageTitle: 'Zerrick', + price: 63.36, + pricePerUnit: 63.36, + primaryCategoryId: 'womens-accessories-shoes', + recommendations: [ + { + recommendationType: { + displayValue: 'Product Detail Page - Cross Sell', + value: 1 + }, + recommendedItemId: '25593254M' + }, + { + recommendationType: { + displayValue: 'Product Detail Page - Cross Sell', + value: 1 + }, + recommendedItemId: '25720050M' + } + ], + shortDescription: 'The perfect pump for any outfit!', + stepQuantity: 1, + type: { + master: true + }, + validFrom: { + default: '2011-03-01T05:00:00.000Z' + }, + variants: [ + { + orderable: true, + price: 63.36, + productId: '740357357531M', + variationValues: { + color: 'BLACKLE', + size: '065', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357358095M', + variationValues: { + color: 'TAUPETX', + size: '065', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357357623M', + variationValues: { + color: 'BLACKLE', + size: '110', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357357609M', + variationValues: { + color: 'BLACKLE', + size: '100', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357358156M', + variationValues: { + color: 'TAUPETX', + size: '095', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357358132M', + variationValues: { + color: 'TAUPETX', + size: '085', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357358101M', + variationValues: { + color: 'TAUPETX', + size: '070', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357357562M', + variationValues: { + color: 'BLACKLE', + size: '080', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357357548M', + variationValues: { + color: 'BLACKLE', + size: '070', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357358187M', + variationValues: { + color: 'TAUPETX', + size: '110', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357357593M', + variationValues: { + color: 'BLACKLE', + size: '095', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357357555M', + variationValues: { + color: 'BLACKLE', + size: '075', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357357524M', + variationValues: { + color: 'BLACKLE', + size: '060', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357358149M', + variationValues: { + color: 'TAUPETX', + size: '090', + width: 'M' + } + }, + { + orderable: true, + price: 63.36, + productId: '740357358088M', + variationValues: { + color: 'TAUPETX', + size: '060', + width: 'M' + } + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Colour', + values: [ + { + name: 'Black', + orderable: true, + value: 'BLACKLE' + }, + { + name: 'Taupe', + orderable: true, + value: 'TAUPETX' + } + ] + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '6', + orderable: true, + value: '060' + }, + { + name: '6.5', + orderable: true, + value: '065' + }, + { + name: '7', + orderable: true, + value: '070' + }, + { + name: '7.5', + orderable: true, + value: '075' + }, + { + name: '8', + orderable: true, + value: '080' + }, + { + name: '8.5', + orderable: true, + value: '085' + }, + { + name: '9', + orderable: true, + value: '090' + }, + { + name: '9.5', + orderable: true, + value: '095' + }, + { + name: '10', + orderable: true, + value: '100' + }, + { + name: '11', + orderable: true, + value: '110' + } + ] + }, + { + id: 'width', + name: 'Width', + values: [ + { + name: 'M', + orderable: true, + value: 'M' + } + ] + } + ] + } + ], + shortDescription: 'Look for Winter', + slugUrl: + 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArchGlobal/womens/clothing/outfits/winter-lookM.html?lang=en_GB', + stepQuantity: 1, + type: { + set: true + } +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/searchResults.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/searchResults.js new file mode 100644 index 0000000000..1f16cab98b --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/searchResults.js @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +export default { + brandSuggestions: { + suggestedTerms: [ + { + originalTerm: 'dresss' + } + ] + }, + categorySuggestions: { + categories: [ + { + id: 'womens-clothing-dresses', + name: 'Dresses', + parentCategoryName: 'Clothing' + } + ], + suggestedPhrases: [ + { + exactMatch: false, + phrase: 'Dresses' + } + ], + suggestedTerms: [ + { + originalTerm: 'dresss', + terms: [ + { + completed: false, + corrected: true, + exactMatch: false, + value: 'dresses' + }, + { + completed: false, + corrected: true, + exactMatch: false, + value: 'dress' + } + ] + } + ] + }, + contentSuggestions: { + suggestedTerms: [ + { + originalTerm: 'dresss' + } + ] + }, + customSuggestions: { + customSuggestions: ['Dresses'], + suggestedPhrases: [ + { + exactMatch: false, + phrase: 'Dresses' + } + ], + suggestedTerms: [ + { + originalTerm: 'dresss', + terms: [ + { + completed: false, + corrected: true, + exactMatch: false, + value: 'dresses' + }, + { + completed: false, + corrected: true, + exactMatch: false, + value: 'dress' + } + ] + } + ] + }, + productSuggestions: { + products: [ + { + currency: 'USD', + price: 195.0, + productId: '42416786M', + productName: 'Casual To Dressy Trousers' + }, + { + currency: 'USD', + price: 195.0, + productId: '42416786-3M', + productName: 'Casual To Dressy Trousers' + }, + { + currency: 'USD', + price: 195.0, + productId: '42416786-1M', + productName: 'Casual To Dressy Trousers' + }, + { + currency: 'USD', + price: 195.0, + productId: '42416786-2M', + productName: 'Casual To Dressy Trousers' + }, + { + currency: 'USD', + price: 129.0, + productId: '25592581M', + productName: 'Floral Dress' + } + ], + suggestedPhrases: [ + { + exactMatch: false, + phrase: 'dresses' + } + ], + suggestedTerms: [ + { + originalTerm: 'dresss', + terms: [ + { + completed: false, + corrected: true, + exactMatch: false, + value: 'dresses' + }, + { + completed: false, + corrected: true, + exactMatch: false, + value: 'dressy' + } + ] + } + ] + }, + searchPhrase: 'dresss' +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/variant-750518699578M.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/variant-750518699578M.js new file mode 100644 index 0000000000..0168a3639c --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/mocks/variant-750518699578M.js @@ -0,0 +1,434 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +export default { + currency: 'USD', + id: '750518699578M', + imageGroups: [ + { + images: [ + { + alt: 'Black Single Pleat Athletic Fit Wool Suit, Black, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw68c99706/images/large/PG.52001RUBN4Q.BLACKFB.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw68c99706/images/large/PG.52001RUBN4Q.BLACKFB.PZ.jpg', + title: 'Black Single Pleat Athletic Fit Wool Suit, Black' + }, + { + alt: 'Black Single Pleat Athletic Fit Wool Suit, Black, large', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw45d30402/images/large/PG.52001RUBN4Q.BLACKFB.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw45d30402/images/large/PG.52001RUBN4Q.BLACKFB.BZ.jpg', + title: 'Black Single Pleat Athletic Fit Wool Suit, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKFB' + } + ] + } + ], + viewType: 'large' + }, + { + images: [ + { + alt: 'Black Single Pleat Athletic Fit Wool Suit, Black, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw35242324/images/medium/PG.52001RUBN4Q.BLACKFB.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw35242324/images/medium/PG.52001RUBN4Q.BLACKFB.PZ.jpg', + title: 'Black Single Pleat Athletic Fit Wool Suit, Black' + }, + { + alt: 'Black Single Pleat Athletic Fit Wool Suit, Black, medium', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw116e8397/images/medium/PG.52001RUBN4Q.BLACKFB.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw116e8397/images/medium/PG.52001RUBN4Q.BLACKFB.BZ.jpg', + title: 'Black Single Pleat Athletic Fit Wool Suit, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKFB' + } + ] + } + ], + viewType: 'medium' + }, + { + images: [ + { + alt: 'Black Single Pleat Athletic Fit Wool Suit, Black, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw43b167a3/images/small/PG.52001RUBN4Q.BLACKFB.PZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw43b167a3/images/small/PG.52001RUBN4Q.BLACKFB.PZ.jpg', + title: 'Black Single Pleat Athletic Fit Wool Suit, Black' + }, + { + alt: 'Black Single Pleat Athletic Fit Wool Suit, Black, small', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdcb6bc41/images/small/PG.52001RUBN4Q.BLACKFB.BZ.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwdcb6bc41/images/small/PG.52001RUBN4Q.BLACKFB.BZ.jpg', + title: 'Black Single Pleat Athletic Fit Wool Suit, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKFB' + } + ] + } + ], + viewType: 'small' + }, + { + images: [ + { + alt: 'Black Single Pleat Athletic Fit Wool Suit, Black, swatch', + disBaseLink: + 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5c9bc6f6/images/swatch/PG.52001RUBN4Q.BLACKFB.CP.jpg', + link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5c9bc6f6/images/swatch/PG.52001RUBN4Q.BLACKFB.CP.jpg', + title: 'Black Single Pleat Athletic Fit Wool Suit, Black' + } + ], + variationAttributes: [ + { + id: 'color', + values: [ + { + value: 'BLACKFB' + } + ] + } + ], + viewType: 'swatch' + } + ], + inventory: { + ats: 5, + backorderable: false, + id: 'inventory_m', + orderable: true, + preorderable: false, + stockLevel: 5 + }, + longDescription: + 'This suit is great for any occasion. Add a shirt and a tie and you are ready for any event. ', + master: { + masterId: '25604524M', + orderable: true, + price: 299.99 + }, + minOrderQuantity: 1, + name: 'Black Single Pleat Athletic Fit Wool Suit', + pageDescription: + 'This suit is great for any occasion. Add a shirt and a tie and you are ready for any event. ', + pageTitle: 'Black Single Pleat Athletic Fit Wool Suit', + price: 299.99, + shortDescription: + 'This suit is great for any occasion. Add a shirt and a tie and you are ready for any event. ', + stepQuantity: 1, + type: { + variant: true + }, + upc: '750518699578', + validFrom: { + default: '2011-02-07T05:00:00.000Z' + }, + variants: [ + { + orderable: true, + price: 299.99, + productId: '750518699660M', + variationValues: { + color: 'BLACKFB', + size: '050', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699585M', + variationValues: { + color: 'BLACKFB', + size: '039', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699653M', + variationValues: { + color: 'BLACKFB', + size: '048', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699615M', + variationValues: { + color: 'BLACKFB', + size: '042', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699608M', + variationValues: { + color: 'BLACKFB', + size: '041', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699646M', + variationValues: { + color: 'BLACKFB', + size: '046', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699592M', + variationValues: { + color: 'BLACKFB', + size: '040', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699622M', + variationValues: { + color: 'BLACKFB', + size: '043', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699578M', + variationValues: { + color: 'BLACKFB', + size: '038', + width: 'V' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699875M', + variationValues: { + color: 'BLACKFB', + size: '046', + width: 'L' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699868M', + variationValues: { + color: 'BLACKFB', + size: '044', + width: 'L' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699820M', + variationValues: { + color: 'BLACKFB', + size: '040', + width: 'L' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699882M', + variationValues: { + color: 'BLACKFB', + size: '048', + width: 'L' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699851M', + variationValues: { + color: 'BLACKFB', + size: '043', + width: 'L' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699844M', + variationValues: { + color: 'BLACKFB', + size: '042', + width: 'L' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699769M', + variationValues: { + color: 'BLACKFB', + size: '044', + width: 'S' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699721M', + variationValues: { + color: 'BLACKFB', + size: '040', + width: 'S' + } + }, + { + orderable: true, + price: 299.99, + productId: '750518699745M', + variationValues: { + color: 'BLACKFB', + size: '042', + width: 'S' + } + } + ], + variationAttributes: [ + { + id: 'color', + name: 'Color', + values: [ + { + name: 'Black', + orderable: true, + value: 'BLACKFB' + } + ] + }, + { + id: 'size', + name: 'Size', + values: [ + { + name: '38', + orderable: true, + value: '038' + }, + { + name: '39', + orderable: true, + value: '039' + }, + { + name: '40', + orderable: true, + value: '040' + }, + { + name: '41', + orderable: true, + value: '041' + }, + { + name: '42', + orderable: true, + value: '042' + }, + { + name: '43', + orderable: true, + value: '043' + }, + { + name: '44', + orderable: false, + value: '044' + }, + { + name: '46', + orderable: true, + value: '046' + }, + { + name: '48', + orderable: true, + value: '048' + }, + { + name: '50', + orderable: true, + value: '050' + } + ] + }, + { + id: 'width', + name: 'Width', + values: [ + { + name: 'Short', + orderable: false, + value: 'S' + }, + { + name: 'Regular', + orderable: true, + value: 'V' + }, + { + name: 'Long', + orderable: false, + value: 'L' + } + ] + } + ], + variationValues: { + color: 'BLACKFB', + size: '038', + width: 'V' + }, + c_color: 'BLACKFB', + c_isNew: true, + c_refinementColor: 'black', + c_size: '038', + c_width: 'V' +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.js new file mode 100644 index 0000000000..350a29e54e --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.js @@ -0,0 +1,293 @@ +/* + * Copyright (c) 2022, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +// This class allows integration with OCAPI Baskets Resource +// https://documentation.b2c.commercecloud.salesforce.com/DOC2/topic/com.demandware.dochelp/OCAPI/current/shop/Resources/Baskets.html +// This implementations coverts CAPI requests to OCAPI requests as there are fundamental differences between the APIS +// One major difference is OCAPI uses snake_case and CAPI uses camelCase for this reaso you will see a utility function in here that convert +// from camelCase to snake_case - camelCaseKeysToUnderscore +// createOcapiFetch is another utility function that returns the response from OCAPI in the fromat returned from CAPI +// Another utility function - checkRequiredParameters is used to check if the parameters or body objects necessary for a call are +// present in the request before making it + +import {camelCaseKeysToUnderscore, checkRequiredParameters, createOcapiFetch} from './utils' + +class OcapiShopperBaskets { + constructor(config) { + this.fetch = createOcapiFetch(config) + } + + async createBasket(...args) { + return await this.fetch('baskets', 'POST', args, 'createBasket') + } + + async updateBasket(...args) { + const required = ['basketId', 'body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId}, + body + } = args[0] + return this.fetch(`baskets/${basketId}`, 'PATCH', args, 'updateBasket', body) + } + + async getBasket(...args) { + const required = ['basketId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + const {basketId} = args[0].parameters + return await this.fetch(`baskets/${basketId}`, 'GET', args, 'getBasket') + } + + async addItemToBasket(...args) { + const required = ['basketId', 'body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/items`, + 'POST', + args, + 'addToBasket', + camelCaseKeysToUnderscore(body) + ) + } + + async updateItemInBasket(...args) { + const required = ['basketId', 'body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId, itemId}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/items/${itemId}`, + 'PATCH', + args, + 'updateItemInBasket', + camelCaseKeysToUnderscore(body) + ) + } + + async removeItemFromBasket(...args) { + const required = ['basketId', 'itemId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + const {basketId, itemId} = args[0].parameters + return this.fetch( + `baskets/${basketId}/items/${itemId}`, + 'DELETE', + args, + 'removeItemFromBasket' + ) + } + + async addPaymentInstrumentToBasket(...args) { + const required = ['basketId', 'body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/payment_instruments`, + 'POST', + args, + 'addPaymentInstrumentToBasket', + camelCaseKeysToUnderscore(body) + ) + } + + async removePaymentInstrumentFromBasket(...args) { + const required = ['basketId', 'paymentInstrumentId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId, paymentInstrumentId} + } = args[0] + return this.fetch( + `baskets/${basketId}/payment_instruments/${paymentInstrumentId}`, + 'DELETE', + args, + 'removePaymentInstrumentFromBasket' + ) + } + + async getPaymentMethodsForBasket(...args) { + const required = ['basketId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + const {basketId} = args[0].parameters + return this.fetch( + `baskets/${basketId}/payment_methods`, + 'GET', + args, + 'getPaymentMethodsForShipment' + ) + } + + async getShippingMethodsForShipment(...args) { + const required = ['basketId', 'shipmentId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + const {basketId, shipmentId} = args[0].parameters + return this.fetch( + `baskets/${basketId}/shipments/${shipmentId}/shipping_methods`, + 'GET', + args, + 'getShippingMethodsForShipment' + ) + } + + async updateBillingAddressForBasket(...args) { + const required = ['basketId', 'body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId, useAsShipping = false}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/billing_address?use_as_shipping=${useAsShipping}`, + 'PUT', + args, + 'updateBillingAddressForBasket', + camelCaseKeysToUnderscore(body) + ) + } + + async updateShippingAddressForShipment(...args) { + const required = ['basketId', 'body', 'shipmentId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId, shipmentId, useAsBilling = false}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/shipments/${shipmentId}/shipping_address?use_as_billing=${useAsBilling}`, + 'PUT', + args, + 'updateShippingAddressForShipment', + camelCaseKeysToUnderscore(body) + ) + } + + async updateShippingMethodForShipment(...args) { + const required = ['basketId', 'body', 'shipmentId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId, shipmentId}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/shipments/${shipmentId}/shipping_method`, + 'PUT', + args, + 'updateShippingMethodForShipment', + camelCaseKeysToUnderscore(body) + ) + } + + async updateCustomerForBasket(...args) { + const required = ['basketId', 'body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/customer`, + 'PUT', + args, + 'updateCustomerForBasket', + camelCaseKeysToUnderscore(body) + ) + } + + async deleteBasket(...args) { + const required = ['basketId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + const {basketId} = args[0].parameters + return this.fetch(`baskets/${basketId}`, 'DELETE', args, 'deleteBasket') + } + + async addCouponToBasket(...args) { + const required = ['basketId', 'body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId}, + body + } = args[0] + return this.fetch( + `baskets/${basketId}/coupons`, + 'POST', + args, + 'addCouponToBasket', + camelCaseKeysToUnderscore(body) + ) + } + + async removeCouponFromBasket(...args) { + const required = ['basketId', 'couponItemId'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + let { + parameters: {basketId, couponItemId} + } = args[0] + return this.fetch( + `baskets/${basketId}/coupons/${couponItemId}`, + 'DELETE', + args, + 'removeCouponFromBasket' + ) + } +} + +export default OcapiShopperBaskets diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.test.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.test.js new file mode 100644 index 0000000000..cb2fa8cae3 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-baskets.test.js @@ -0,0 +1,278 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import fetch from 'jest-fetch-mock' +import {app as appConfig} from '../../config/default' +import OcapiShopperBaskets from './ocapi-shopper-baskets' +import { + ocapiBasketResponse, + ocapiBasketWithItem, + ocapiBasketWithPaymentInstrumentAndBillingAddress, + mockShippingMethods +} from './mock-data' + +jest.mock('cross-fetch', () => jest.requireActual('jest-fetch-mock')) + +const apiConfig = {...appConfig.commerceAPI, proxy: undefined} +const getOcapiShopperBaskets = () => new OcapiShopperBaskets(apiConfig) +beforeEach(() => { + jest.resetModules() + fetch.resetMocks() +}) + +describe('test OcapiShopperBaskets class', () => { + test('createBasket returns a basket object in camelCase', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basket = await ocapiShopperBaskets.createBasket({}) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + expect(basket.shipments[0].shipmentId).toBeDefined() + }) + test('updateBasket returns a basket object in camelCase', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basket = await ocapiShopperBaskets.updateBasket({ + parameters: {basketId: 'testBasketId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + expect(basket.shipments[0].shipmentId).toBeDefined() + }) + test('updateBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.updateBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('getBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.getBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('getBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basket = await ocapiShopperBaskets.getBasket({ + parameters: {basketId: 'testBasketId'} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo.customerId).toBeDefined() + expect(basket.shipments[0].shipmentId).toBeDefined() + }) + test('addItemToBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.addItemToBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + + test('addItemToBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithItem)) + const basket = await ocapiShopperBaskets.addItemToBasket({ + parameters: {basketId: 'testBasketId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.productItems).toBeDefined() + expect(basket.shipments[0].shipmentId).toBeDefined() + }) + test('updateItemInBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.updateItemInBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('updateItemInBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithItem)) + const basket = await ocapiShopperBaskets.updateItemInBasket({ + parameters: {basketId: 'testBasketId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.productItems).toBeDefined() + expect(basket.shipments[0].shipmentId).toBeDefined() + }) + test('removeItemFromBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.removeItemFromBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('removeItemFromBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithItem)) + const basket = await ocapiShopperBaskets.removeItemFromBasket({ + parameters: {basketId: 'testBasketId', itemId: 'fakeItemId'} + }) + expect(basket).toBeDefined() + expect(basket.productItems).toBeDefined() + expect(basket.shipments[0].shipmentId).toBeDefined() + }) + test('addPaymentInstrumentToBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.addPaymentInstrumentToBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('addPaymentInstrumentToBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const basket = await ocapiShopperBaskets.addPaymentInstrumentToBasket({ + parameters: {basketId: 'testBasketId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.paymentInstruments[0]).toBeDefined() + expect(basket.paymentInstruments[0].paymentCard).toBeDefined() + }) + test('removePaymentInstrumentFromBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.removePaymentInstrumentFromBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('removePaymentInstrumentFromBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basket = await ocapiShopperBaskets.removePaymentInstrumentFromBasket({ + parameters: {basketId: 'testBasketId', paymentInstrumentId: 'paymentInstrumentId'} + }) + expect(basket).toBeDefined() + expect(basket.paymentInstruments).not.toBeDefined() + }) + test('getPaymentMethodsForBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const response = await ocapiShopperBaskets.getPaymentMethodsForBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('getPaymentMethodsForBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const basket = await ocapiShopperBaskets.getPaymentMethodsForBasket({ + parameters: {basketId: 'testBasketId'} + }) + expect(basket).toBeDefined() + expect(basket.paymentInstruments[0]).toBeDefined() + expect(basket.paymentInstruments[0].paymentCard).toBeDefined() + }) + test('getShippingMethodsForShipment returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const response = await ocapiShopperBaskets.getShippingMethodsForShipment({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('getShippingMethodsForShipment returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(mockShippingMethods)) + const methods = await ocapiShopperBaskets.getShippingMethodsForShipment({ + parameters: {basketId: 'testBasketId', shipmentId: 'fakeShipmentId'} + }) + expect(methods).toBeDefined() + expect(methods.applicableShippingMethods).toBeDefined() + }) + test('updateBillingAddressForBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const response = await ocapiShopperBaskets.updateBillingAddressForBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('updateBillingAddressForBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const basket = await ocapiShopperBaskets.updateBillingAddressForBasket({ + parameters: {basketId: 'testBasketId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.billingAddress).toBeDefined() + expect(basket.billingAddress.city).toBeDefined() + }) + test('updateShippingAddressForShipment returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const response = await ocapiShopperBaskets.updateShippingAddressForShipment({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('updateShippingAddressForShipment returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const basket = await ocapiShopperBaskets.updateShippingAddressForShipment({ + parameters: {basketId: 'testBasketId', shipmentId: 'fakeShippingId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.shipments).toBeDefined() + expect(basket.shipments[1].shippingAddress).toBeDefined() + }) + test('updateShippingMethodForShipment returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const response = await ocapiShopperBaskets.updateShippingMethodForShipment({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('updateShippingMethodForShipment returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketWithPaymentInstrumentAndBillingAddress)) + const basket = await ocapiShopperBaskets.updateShippingMethodForShipment({ + parameters: {basketId: 'testBasketId', shipmentId: 'fakeShippingId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.shipments).toBeDefined() + expect(basket.shipments[0].shippingMethod).toBeDefined() + }) + test('updateCustomerForBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.updateCustomerForBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('updateCustomerForBasket returns a basket object in camelCase when params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const basket = await ocapiShopperBaskets.updateCustomerForBasket({ + parameters: {basketId: 'testBasketId'}, + body: {} + }) + expect(basket).toBeDefined() + expect(basket.customerInfo).toBeDefined() + expect(basket.customerInfo.email).toBeDefined() + }) + test('deleteBasket returns error object when no params are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify(ocapiBasketResponse)) + const response = await ocapiShopperBaskets.deleteBasket({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) + test('deleteBasket returns 204 when paramters are passed', async () => { + const ocapiShopperBaskets = getOcapiShopperBaskets() + fetch.mockResponseOnce(JSON.stringify({status: 204})) + const response = await ocapiShopperBaskets.deleteBasket({ + parameters: {basketId: 'testBasketId'} + }) + expect(response.status).toEqual(204) + }) +}) diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.js new file mode 100644 index 0000000000..dde968e5a9 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.js @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +// This class allows integration with OCAPI Orders Resource +// https://documentation.b2c.commercecloud.salesforce.com/DOC2/topic/com.demandware.dochelp/OCAPI/current/shop/Resources/Orders.html +// This implementations coverts CAPI requests to OCAPI requests as there are fundamental differences between the APIS +// One major difference is OCAPI uses snake_case and CAPI uses camelCase for this reaso you will see a utility function in here that convert +// from camelCase to snake_case - camelCaseKeysToUnderscore +// createOcapiFetch is another utility function that returns the response from OCAPI in the fromat returned from CAPI +// Another utility function - checkRequiredParameters is used to check if the parameters or body objects necessary for a call are +// present in the request before making it + +import {camelCaseKeysToUnderscore, checkRequiredParameters, createOcapiFetch} from './utils' + +class OcapiShopperOrders { + constructor(config) { + this.fetch = createOcapiFetch(config) + } + + async createOrder(...args) { + const required = ['body'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + + const {body} = args[0] + return await this.fetch( + 'orders', + 'POST', + args, + 'createOrder', + camelCaseKeysToUnderscore(body) + ) + } + + async getOrder(...args) { + const required = ['orderNo'] + let requiredParametersError = checkRequiredParameters(args[0], required) + if (requiredParametersError) { + return requiredParametersError + } + const {orderNo} = args[0].parameters + return this.fetch(`orders/${orderNo}`, 'GET', args, 'getOrder') + } +} + +export default OcapiShopperOrders diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.test.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.test.js new file mode 100644 index 0000000000..7b6dc6ed0f --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/ocapi-shopper-orders.test.js @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import fetch from 'jest-fetch-mock' +import {app as appConfig} from '../../config/default' +import OcapiShopperOrders from './ocapi-shopper-orders' +import {ocapiOrderResponse} from './mock-data' + +jest.mock('cross-fetch', () => jest.requireActual('jest-fetch-mock')) + +const apiConfig = {...appConfig.commerceAPI, proxy: undefined} +const getOcapiShopperOrders = () => new OcapiShopperOrders(apiConfig) +beforeEach(() => { + jest.resetModules() + fetch.resetMocks() +}) + +describe('test OcapiShopperOrders class', () => { + test('createOrder returns a basket object in camelCase', async () => { + const ocapiShopperOrders = getOcapiShopperOrders() + fetch.mockResponseOnce(JSON.stringify(ocapiOrderResponse)) + const order = await ocapiShopperOrders.createOrder({body: {}}) + expect(order).toBeDefined() + expect(order.orderNo).toBeDefined() + }) + test('createOrder returns error object when no body is passed', async () => { + const ocapiShopperOrders = getOcapiShopperOrders() + fetch.mockResponseOnce(JSON.stringify(ocapiOrderResponse)) + const response = await ocapiShopperOrders.createOrder({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Body is required for this request') + }) + + test('getOrder returns a basket object in camelCase', async () => { + const ocapiShopperOrders = getOcapiShopperOrders() + fetch.mockResponseOnce(JSON.stringify(ocapiOrderResponse)) + const order = await ocapiShopperOrders.getOrder({parameters: {orderNo: ''}}) + expect(order).toBeDefined() + expect(order.orderNo).toBeDefined() + }) + test('getOrder returns error object when no params are passed', async () => { + const ocapiShopperOrders = getOcapiShopperOrders() + fetch.mockResponseOnce(JSON.stringify(ocapiOrderResponse)) + const response = await ocapiShopperOrders.getOrder({}) + expect(response).toBeDefined() + expect(response.title).toEqual('Parameters are required for this request') + }) +}) diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/pkce.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/pkce.js new file mode 100644 index 0000000000..01a7fc91d0 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/pkce.js @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import {nanoid} from 'nanoid' +import {encode as base64encode} from 'base64-arraybuffer' + +// Server Side +const randomstring = require('randomstring') + +// Globals +const isServer = typeof window === 'undefined' + +/** + * Creates Code Verifier use for PKCE auth flow. + * + * @returns {String} The 128 character length code verifier. + */ +export const createCodeVerifier = () => { + return isServer ? randomstring.generate(128) : nanoid(128) +} + +/** + * Creates Code Challenge based on Code Verifier + * + * @param {String} codeVerifier + * @returns {String} + */ +export const generateCodeChallenge = async (codeVerifier) => { + let base64Digest + + if (isServer) { + await import('crypto').then((module) => { + const crypto = module.default + base64Digest = crypto.createHash('sha256').update(codeVerifier).digest('base64') + }) + } else { + const encoder = new TextEncoder() + const data = encoder.encode(codeVerifier) + const digest = await window.crypto.subtle.digest('SHA-256', data) + + base64Digest = base64encode(digest) + } + + return base64Digest.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '') +} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/shopper-baskets.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/shopper-baskets.js new file mode 100644 index 0000000000..4e7f9d2a39 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/shopper-baskets.js @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2022, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import OcapiShopperBaskets from './ocapi-shopper-baskets' +import * as sdk from 'commerce-sdk-isomorphic' + +// This class is an extension to OcapiShopperBaskets class to include basket functions implemented in SCAPI. +// Current implementation has ShopperBaskets interactiing with OCAPI which misses new functions implemented in newer SCAPI releases. +class ShopperBaskets extends OcapiShopperBaskets { + constructor(config) { + super(config) + this.shopperBasketsClient = new sdk.ShopperBaskets(config) + } + + mergeBasket(args) { + return this.shopperBasketsClient.mergeBasket(args) + } +} +export default ShopperBaskets diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.js new file mode 100644 index 0000000000..f449b6be14 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.js @@ -0,0 +1,273 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import jwtDecode from 'jwt-decode' +import {getAppOrigin} from 'pwa-kit-react-sdk/utils/url' +import {HTTPError} from 'pwa-kit-react-sdk/ssr/universal/errors' +import fetch from 'cross-fetch' + +/** + * Compares the token age against the issued and expiry times. If the token's age is + * within 60 seconds of its valid time (or exceeds it), we consider the token invalid. + * @function + * @param {string} token - The JWT bearer token to be inspected + * @returns {boolean} + */ +export function isTokenValid(token) { + if (!token) { + return false + } + const {exp, iat} = jwtDecode(token.replace('Bearer ', '')) + const validTimeSeconds = exp - iat - 60 + const tokenAgeSeconds = Date.now() / 1000 - iat + if (validTimeSeconds > tokenAgeSeconds) { + return true + } + + return false +} + +// Returns fomrulated body for SopperLogin getToken endpoint +export function createGetTokenBody(urlString, slasCallbackEndpoint, codeVerifier) { + const url = new URL(urlString) + const urlParams = new URLSearchParams(url.search) + const usid = urlParams.get('usid') + const code = urlParams.get('code') + return { + grantType: 'authorization_code_pkce', + code, + usid, + codeVerifier: codeVerifier, + redirectUri: slasCallbackEndpoint + } +} + +// Ocapi related utilities + +const toCamel = (str) => { + if (str.startsWith('_') || str.startsWith('c_')) { + return str + } + return str.replace(/([-_][a-z])/gi, ($1) => { + return $1.toUpperCase().replace('-', '').replace('_', '') + }) +} + +const isObject = (obj) => { + return obj === Object(obj) && !Array.isArray(obj) && typeof obj !== 'function' +} + +export const keysToCamel = (obj) => { + if (isObject(obj)) { + const n = {} + + Object.keys(obj).forEach((k) => { + n[toCamel(k)] = keysToCamel(obj[k]) + }) + + return n + } else if (Array.isArray(obj)) { + return obj.map((i) => { + return keysToCamel(i) + }) + } + + return obj +} + +export const camelCaseKeysToUnderscore = (_obj) => { + if (typeof _obj != 'object') return _obj + + // Copy the incoming object so we dont mutate it + let obj + if (Array.isArray(_obj)) { + obj = [..._obj] + } else { + obj = {..._obj} + } + + for (var oldName in obj) { + // Camel to underscore + + let newName = oldName.replace(/([A-Z])/g, ($1) => { + return '_' + $1.toLowerCase() + }) + + // Only process if names are different + if (newName != oldName) { + // Check for the old property name to avoid a ReferenceError in strict mode. + if (Object.prototype.hasOwnProperty.call(obj, oldName)) { + obj[newName] = obj[oldName] + delete obj[oldName] + } + } + + // Recursion + if (typeof obj[newName] == 'object') { + obj[newName] = camelCaseKeysToUnderscore(obj[newName]) + } + } + + return obj +} + +// This function coverts errors/faults returned from the OCAPI API to the format that is returned from the CAPI +// I added the fault key to make life easier as it's hard to discern a CAPI error +export const convertOcapiFaultToCapiError = (error) => { + return { + title: error.message, + type: error.type, + detail: error.message, + // Unique to OCAPI I think + arguments: error.arguments, + fault: true + } +} + +// This function checks required parameters and or body for requests to OCAPI endpoints before sending +export const checkRequiredParameters = (listOfPassedParameters, listOfRequiredParameters) => { + const isBodyOnlyRequiredParam = + listOfRequiredParameters.includes('body') && listOfRequiredParameters.length === 1 + + if (!listOfPassedParameters.parameters && !isBodyOnlyRequiredParam) { + return { + title: `Parameters are required for this request`, + type: `MissingParameters`, + detail: `Parameters are required for this request` + } + } + + if (listOfRequiredParameters.includes('body') && !listOfPassedParameters.body) { + return { + title: `Body is required for this request`, + type: `MissingBody`, + detail: `Body is required for this request` + } + } + + if ( + isBodyOnlyRequiredParam && + listOfRequiredParameters.includes('body') && + listOfPassedParameters.body + ) { + return undefined + } + + let undefinedValues = listOfRequiredParameters.filter( + (req) => !Object.keys(listOfPassedParameters.parameters).includes(req) + ) + + undefinedValues = undefinedValues.filter((value) => value !== 'body') + + if (undefinedValues.length) { + return { + title: `The following parameters were missing from your resquest: ${undefinedValues.toString()}`, + type: `MissingParameters`, + detail: `The following parameters were missing from your resquest: ${undefinedValues.toString()}` + } + } else { + return undefined + } +} + +// This function is used to interact with the OCAPI API +export const createOcapiFetch = + (commerceAPIConfig) => async (endpoint, method, args, methodName, body) => { + const proxy = `/mobify/proxy/ocapi` + + // The api config will only have `ocapiHost` during testing to workaround localhost proxy + const host = commerceAPIConfig.ocapiHost + ? `https://${commerceAPIConfig.ocapiHost}` + : `${getAppOrigin()}${proxy}` + + const siteId = commerceAPIConfig.parameters.siteId + const headers = { + ...args[0].headers, + 'Content-Type': 'application/json', + 'x-dw-client-id': commerceAPIConfig.parameters.clientId + } + + let response + response = await fetch(`${host}/s/${siteId}/dw/shop/v21_3/${endpoint}`, { + method: method, + headers: headers, + ...(body && { + body: JSON.stringify(body) + }) + }) + const httpStatus = response.status + + if (!args[1] && response.json) { + response = await response.json() + } + + const convertedResponse = keysToCamel(response) + if (convertedResponse.fault) { + const error = convertOcapiFaultToCapiError(convertedResponse.fault) + throw new HTTPError(httpStatus, error.detail) + } else { + return convertedResponse + } + } + +// This function derrives the SF Tenant Id from the SF OrgId +export const getTenantId = (orgId) => { + // Derive tenant id id form org id + const indexToStartOfTenantId = orgId.indexOf('_', orgId.indexOf('_') + 1) + const tenantId = orgId.substring(indexToStartOfTenantId + 1) + return tenantId +} + +/** + * Indicates if an JSON response from the SDK should be considered an error + * @param {object} jsonResponse - The response object returned from SDK calls + * @returns {boolean} + */ +export const isError = (jsonResponse) => { + if (!jsonResponse) { + return false + } + + const {detail, title, type} = jsonResponse + if (detail && title && type) { + return true + } + + return false +} + +/** + * Decorator that wraps functions to handle error response. + * @param {function} func - A function which returns a promise + * @returns {function} + */ +export const handleAsyncError = (func) => { + return async (...args) => { + const result = await func(...args) + if (isError(result)) { + throw new Error(result.detail) + } + return result + } +} + +/** + * Converts snake-case strings to space separated or sentence case + * strings by replacing '_' with a ' '. + * @param {string} text snake-case text. + * @returns {string} space separated string. + */ +export const convertSnakeCaseToSentenceCase = (text) => { + return text.split('_').join(' ') +} + +/** + * No operation function. You can use this + * empty function when you wish to pass + * around a function that will do nothing. + * Usually used as default for event handlers. + */ +export const noop = () => {} diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.test.js b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.test.js new file mode 100644 index 0000000000..d8eb4e0aff --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/commerce-api/utils.test.js @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import jwt from 'njwt' +import { + camelCaseKeysToUnderscore, + isTokenValid, + keysToCamel, + convertSnakeCaseToSentenceCase, + handleAsyncError +} from './utils' + +const createJwt = (secondsToExp) => { + const token = jwt.create({}, 'test') + token.setExpiration(new Date().getTime() + secondsToExp * 1000) + return token.compact() +} + +jest.mock('./utils', () => { + const originalModule = jest.requireActual('./utils') + return { + ...originalModule + } +}) + +describe('isTokenValid', () => { + test('returns false when no token given', () => { + expect(isTokenValid()).toBe(false) + }) + + test('returns true for valid token', () => { + const token = createJwt(600) + const bearerToken = `Bearer ${token}` + expect(isTokenValid(token)).toBe(true) + expect(isTokenValid(bearerToken)).toBe(true) + }) + + test('returns false if token expires within 60 econds', () => { + expect(isTokenValid(createJwt(59))).toBe(false) + }) +}) + +describe('keysToCamel', () => { + test('converts object keys to camelcase', () => { + const input = { + numba_one: true, + 'numba-two': false, + number3: 'un-changed', + c_Custom: 'un_changed', + _custom: 'unchanged' + } + + const result = keysToCamel(input) + + expect(result).toEqual({ + numbaOne: true, + numbaTwo: false, + number3: 'un-changed', + c_Custom: 'un_changed', + _custom: 'unchanged' + }) + }) + + test('converts arrays of objects to camelcase', () => { + const input = [ + { + numba_one: true, + number3: 'un-changed', + c_Custom: 'un_changed', + _custom: 'unchanged' + }, + { + 'numba-two': false + } + ] + + const result = keysToCamel(input) + + expect(result).toEqual([ + { + numbaOne: true, + number3: 'un-changed', + c_Custom: 'un_changed', + _custom: 'unchanged' + }, + { + numbaTwo: false + } + ]) + }) + + test('converts nested keys to camelcase', () => { + const input = { + numba_one: { + sub1: 'unchanged', + sub2: {sub_sub_2: 'changed'}, + sub3: [{sub_sub_3: 'changed', sub3Sub4: 'unchanged'}] + } + } + + const result = keysToCamel(input) + + expect(result).toEqual({ + numbaOne: { + sub1: 'unchanged', + sub2: {subSub_2: 'changed'}, + sub3: [{subSub_3: 'changed', sub3Sub4: 'unchanged'}] + } + }) + }) +}) + +describe('camelCaseKeysToUnderscore', () => { + test('camelCaseToUnderScore returns a copy of the object with renamed keys (deep/recursvive)', () => { + const camelCaseObject = { + testKey: { + nestedTestKey: { + deepDownKey: 'value' + } + } + } + const underScoreKeys = camelCaseKeysToUnderscore(camelCaseObject) + + expect(camelCaseObject).toStrictEqual({ + testKey: { + nestedTestKey: { + deepDownKey: 'value' + } + } + }) + expect(underScoreKeys.test_key).toBeDefined() + expect(underScoreKeys.test_key.nested_test_key).toBeDefined() + expect(underScoreKeys.test_key.nested_test_key.deep_down_key).toBeDefined() + }) + + test('doesnt mutate input object', () => { + const input = { + testKey: { + nestedTestKey: { + deepDownKey: 'value' + } + } + } + + camelCaseKeysToUnderscore(input) + + expect(input).toStrictEqual({ + testKey: { + nestedTestKey: { + deepDownKey: 'value' + } + } + }) + }) + + test('converts camel case keys to snake case', () => { + const input = { + testKey: { + nestedTestKey: { + deepDownKey: 'value' + }, + nestedArr: [{myKey: 'changed', my_key2: 'unchanged'}] + } + } + + const result = camelCaseKeysToUnderscore(input) + + expect(result).toEqual({ + test_key: { + nested_arr: [{my_key: 'changed', my_key2: 'unchanged'}], + nested_test_key: { + deep_down_key: 'value' + } + } + }) + }) + + test('converts keys in array of objects', () => { + const input = [ + { + testKey: 'changed' + }, + { + test_key: 'unchanged' + } + ] + + const result = camelCaseKeysToUnderscore(input) + + expect(result).toEqual([ + { + test_key: 'changed' + }, + { + test_key: 'unchanged' + } + ]) + }) + + test('avoids collision with existing key name', () => { + const input = { + test_key: 'unchanged', + testKey: 'unchanged' + } + + const result = camelCaseKeysToUnderscore(input) + + expect(result).toEqual({ + test_key: 'unchanged' + }) + }) +}) + +describe('convertSnakeCaseToSentenceCase', () => { + test('convertSnakeCaseToSentenceCase returns correct formatted string', () => { + const snakeCaseString = 'test_snake_case_string' + const expectedSentenceCaseString = 'test snake case string' + + expect(convertSnakeCaseToSentenceCase(snakeCaseString) === expectedSentenceCaseString).toBe( + true + ) + }) +}) + +describe('handleAsyncError', () => { + test('returns result when no error is thrown', async () => { + const func = jest.fn().mockResolvedValue(1) + expect(await handleAsyncError(func)()).toBe(1) + }) + test('throws error correctly', async () => { + const errorResponse = { + detail: 'detail', + title: 'title', + type: 'type' + } + const func = jest.fn().mockResolvedValue(errorResponse) + await expect(handleAsyncError(func)()).rejects.toThrow(new Error(errorResponse.detail)) + }) + test('works even if func is not async', async () => { + const func = jest.fn().mockReturnValue(1) + expect(await handleAsyncError(func)()).toBe(1) + }) +}) diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/components/_app-config/index.jsx b/packages/_stress-test-project/pwa-kit/overrides/app/components/_app-config/index.jsx new file mode 100644 index 0000000000..65e38f98fe --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/components/_app-config/index.jsx @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ +import React, {useState} from 'react' +import PropTypes from 'prop-types' +import {ChakraProvider} from '@chakra-ui/react' + +// Removes focus for non-keyboard interactions for the whole application +import 'focus-visible/dist/focus-visible' + +import theme from '^retail-react-app/app/theme' +import CommerceAPI from '^retail-react-app/app/commerce-api' +import { + BasketProvider, + CommerceAPIProvider, + CustomerProductListsProvider, + CustomerProvider, +} from '^retail-react-app/app/commerce-api/contexts' +import {MultiSiteProvider} from '^retail-react-app/app/contexts' +import {resolveSiteFromUrl} from '^retail-react-app/app/utils/site-utils' +import {resolveLocaleFromUrl} from '^retail-react-app/app/utils/utils' +import {getConfig} from 'pwa-kit-runtime/utils/ssr-config' +import {createUrlTemplate} from '^retail-react-app/app/utils/url' + +/** + * Use the AppConfig component to inject extra arguments into the getProps + * methods for all Route Components in the app – typically you'd want to do this + * to inject a connector instance that can be used in all Pages. + * + * You can also use the AppConfig to configure a state-management library such + * as Redux, or Mobx, if you like. + */ +const AppConfig = ({children, locals = {}}) => { + console.log('~hello from overrides _app-config') + const [basket, setBasket] = useState(null) + const [customer, setCustomer] = useState(null) + + return ( + + + + + + {children} + + + + + + ) +} + +AppConfig.restore = (locals = {}) => { + const path = + typeof window === 'undefined' + ? locals.originalUrl + : `${window.location.pathname}${window.location.search}` + const site = resolveSiteFromUrl(path) + const locale = resolveLocaleFromUrl(path) + const currency = locale.preferredCurrency + + const {app: appConfig} = getConfig() + const apiConfig = { + ...appConfig.commerceAPI, + einsteinConfig: appConfig.einsteinAPI, + } + + apiConfig.parameters.siteId = site.id + + locals.api = new CommerceAPI({...apiConfig, locale: locale.id, currency}) + locals.buildUrl = createUrlTemplate(appConfig, site.alias || site.id, locale.id) + locals.site = site + locals.locale = locale +} + +AppConfig.freeze = () => undefined + +AppConfig.extraGetPropsArgs = (locals = {}) => { + return { + api: locals.api, + buildUrl: locals.buildUrl, + site: locals.site, + locale: locals.locale, + } +} + +AppConfig.propTypes = { + children: PropTypes.node, + locals: PropTypes.object, +} + +export default AppConfig diff --git a/packages/_stress-test-project/pwa-kit/overrides/app/components/_app/index.jsx b/packages/_stress-test-project/pwa-kit/overrides/app/components/_app/index.jsx new file mode 100644 index 0000000000..36b747e011 --- /dev/null +++ b/packages/_stress-test-project/pwa-kit/overrides/app/components/_app/index.jsx @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2021, salesforce.com, inc. + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + */ + +import React, {useState, useEffect} from 'react' +import PropTypes from 'prop-types' +import {useHistory, useLocation} from 'react-router-dom' +import {getAssetUrl} from 'pwa-kit-react-sdk/ssr/universal/utils' +import {getAppOrigin} from 'pwa-kit-react-sdk/utils/url' + +// Chakra +import {Box, useDisclosure, useStyleConfig} from '@chakra-ui/react' +import {SkipNavLink, SkipNavContent} from '@chakra-ui/skip-nav' + +// Contexts +import {CategoriesProvider, CurrencyProvider} from '^retail-react-app/app/contexts' + +// Local Project Components +import Header from '../header' +import OfflineBanner from '^retail-react-app/app/components/offline-banner' +import OfflineBoundary from '^retail-react-app/app/components/offline-boundary' +import ScrollToTop from '^retail-react-app/app/components/scroll-to-top' +import Footer from '^retail-react-app/app/components/footer' +import CheckoutFooter from '^retail-react-app/app/pages/checkout/partials/checkout-footer' +import CheckoutHeader from '^retail-react-app/app/pages/checkout/partials/checkout-header' +import DrawerMenu from '^retail-react-app/app/components/drawer-menu' +import ListMenu from '^retail-react-app/app/components/list-menu' +import {HideOnDesktop, HideOnMobile} from '^retail-react-app/app/components/responsive' + +// Hooks +import useShopper from '^retail-react-app/app/commerce-api/hooks/useShopper' +import useCustomer from '^retail-react-app/app/commerce-api/hooks/useCustomer' +import {AuthModal, useAuthModal} from '^retail-react-app/app/hooks/use-auth-modal' +import {AddToCartModalProvider} from '^retail-react-app/app/hooks/use-add-to-cart-modal' +import useWishlist from '^retail-react-app/app/hooks/use-wishlist' + +// Localization +import {IntlProvider} from 'react-intl' + +// Others +import {watchOnlineStatus, flatten} from '^retail-react-app/app/utils/utils' +import {getTargetLocale, fetchTranslations} from '^retail-react-app/app/utils/locale' +import { + DEFAULT_SITE_TITLE, + HOME_HREF, + THEME_COLOR, + CAT_MENU_DEFAULT_NAV_DEPTH, + CAT_MENU_DEFAULT_ROOT_CATEGORY, + DEFAULT_LOCALE, +} from '^retail-react-app/app/constants' + +import Seo from '^retail-react-app/app/components/seo' +import {resolveSiteFromUrl} from '^retail-react-app/app/utils/site-utils' +import useMultiSite from '^retail-react-app/app/hooks/use-multi-site' + +const App = (props) => { + const { + children, + targetLocale = DEFAULT_LOCALE, + messages = {}, + categories: allCategories = {}, + } = props + + const appOrigin = getAppOrigin() + + const history = useHistory() + const location = useLocation() + const authModal = useAuthModal() + const customer = useCustomer() + const {site, locale, buildUrl} = useMultiSite() + + const [isOnline, setIsOnline] = useState(true) + const styles = useStyleConfig('App') + + const {isOpen, onOpen, onClose} = useDisclosure() + + // Used to conditionally render header/footer for checkout page + const isCheckout = /\/checkout$/.test(location?.pathname) + + const {l10n} = site + // Get the current currency to be used through out the app + const currency = locale.preferredCurrency || l10n.defaultCurrency + + // Set up customer and basket + useShopper({currency}) + + const wishlist = useWishlist() + useEffect(() => { + if (!customer.isInitialized) { + return + } + if (customer.isRegistered) { + wishlist.init() + } + if (customer.isGuest) { + wishlist.reset() + } + }, [customer.authType]) + + useEffect(() => { + // Listen for online status changes. + watchOnlineStatus((isOnline) => { + setIsOnline(isOnline) + }) + }, []) + + useEffect(() => { + // Lets automatically close the mobile navigation when the + // location path is changed. + onClose() + }, [location]) + + const onLogoClick = () => { + // Goto the home page. + const path = buildUrl(HOME_HREF) + + history.push(path) + + // Close the drawer. + onClose() + } + + const onCartClick = () => { + const path = buildUrl('/cart') + history.push(path) + + // Close the drawer. + onClose() + } + + const onAccountClick = () => { + // Link to account page for registered customer, open auth modal otherwise + if (customer.isRegistered) { + const path = buildUrl('/account') + history.push(path) + } else { + // if they already are at the login page, do not show login modal + if (new RegExp(`^/login$`).test(location.pathname)) return + authModal.onOpen() + } + } + + const onWishlistClick = () => { + const path = buildUrl('/account/wishlist') + history.push(path) + } + + return ( + + { + if (err.code === 'MISSING_TRANSLATION') { + // NOTE: Remove the console error for missing translations during development, + // as we knew translations would be added later. + console.warn('Missing translation', err.message) + return + } + throw err + }} + locale={targetLocale} + messages={messages} + // For react-intl, the _default locale_ refers to the locale that the inline `defaultMessage`s are written for. + // NOTE: if you update this value, please also update the following npm scripts in `template-retail-react-app/package.json`: + // - "extract-default-translations" + // - "compile-translations:pseudo" + defaultLocale={DEFAULT_LOCALE} + > + + + + + + + + + {/* Urls for all localized versions of this page (including current page) + For more details on hrefLang, see https://developers.google.com/search/docs/advanced/crawling/localized-versions */} + {site.l10n?.supportedLocales.map((locale) => ( + + ))} + {/* A general locale as fallback. For example: "en" if default locale is "en-GB" */} + + {/* A wider fallback for user locales that the app does not support */} + + + + + + + Skip to Content + + + {!isCheckout ? ( +
+ + + + + + + +
+ ) : ( + + )} +
+ + {!isOnline && } + + + + + {children} + + + + + {!isCheckout ?