From 3d6fc90b2e5f93dc27925f9ea944b88f62aa7503 Mon Sep 17 00:00:00 2001 From: dongwa <783137663@qq.com> Date: Wed, 4 May 2022 01:20:19 +0800 Subject: [PATCH] feat: add build command --- CHANGELOG.md | 0 README.md | 53 +- imgs/server.js.example.png | Bin 0 -> 196932 bytes package-lock.json | 4213 ++++++++++++++++++++++++++++++++++++ package.json | 30 +- pnpm-lock.yaml | 144 +- src/build.ts | 295 +++ src/config.ts | 7 + src/index.ts | 16 +- src/launcher.ts | 82 + src/prepare-cache.ts | 25 + src/utils.ts | 273 +++ tsconfig.json | 4 +- 13 files changed, 5083 insertions(+), 59 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 imgs/server.js.example.png create mode 100644 package-lock.json create mode 100644 src/build.ts create mode 100644 src/config.ts create mode 100644 src/launcher.ts create mode 100644 src/prepare-cache.ts create mode 100644 src/utils.ts diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index e13c082..18e96f5 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,53 @@ # vercel-quasar Vercel builder for Quasar with SSR enabled # useage -`pnpm i` +## 1. change listen function in your src-ssr/server.js file +### 1.1. remove all async and await +### 1.2. return { handler: ssrHandler } +``` js +/** + * You need to make the server listen to the indicated port + * and return the listening instance or whatever you need to + * close the server with. + * + * The "listenResult" param for the "close()" definition below + * is what you return here. + * + * For production, you can instead export your + * handler for serverless use or whatever else fits your needs. + */ +export function listen({ app, port, isReady, ssrHandler }) { + if (process.env.DEV) { + await isReady(); + return app.listen(port, () => { + if (process.env.PROD) { + console.log('Server listening at port ' + port); + } + }); + } else { + // in production + // "ssrHandler" is a prebuilt handler which already + // waits for all the middlewares to run before serving clients -`pnpm lint` + // whatever you return here is equivalent to module.exports. = + return { handler: ssrHandler }; + } +} +``` +### 1.3. example +![server.js.example.ng](https://raw.githubusercontent.com/dongwa/vercel-quasar/dev/imgs/server.js.example.png) -`pnpm fix` +## 2. Configure `vercel-quasar` as builder in `vercel.json` +### Add a `vercel.json` file in your root path +```json +{ + "version": 2, + "builds": [ + { + "src": "package.json", + "use": "vercel-quasar" + } + ] +} -`pnpm test` - -`pnpm build` \ No newline at end of file +``` \ No newline at end of file diff --git a/imgs/server.js.example.png b/imgs/server.js.example.png new file mode 100644 index 0000000000000000000000000000000000000000..357bbd6a9701c16a5b92090a12ba0eef32978f04 GIT binary patch literal 196932 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�Em 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%0A!*8}Bh?nT-P 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..32e6ef5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4213 @@ +{ + "name": "vercel-quasar", + "version": "0.0.22", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@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==", + "dev": true + }, + "@babel/core": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", + "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", + "dev": true, + "requires": { + "@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" + }, + "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 + } + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.17.10", + "@jridgewell/gen-mapping": "^0.1.0", + "jsesc": "^2.5.1" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "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 + } + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@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==", + "dev": true, + "requires": { + "@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" + } + }, + "@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 + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@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 + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + } + }, + "@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", + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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.17.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", + "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", + "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "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" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "1.2.2", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@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==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@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==", + "dev": true + }, + "@jest/console": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz", + "integrity": "sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.0.tgz", + "integrity": "sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g==", + "dev": true, + "requires": { + "@jest/console": "^28.1.0", + "@jest/reporters": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.0.2", + "jest-config": "^28.1.0", + "jest-haste-map": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-resolve-dependencies": "^28.1.0", + "jest-runner": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "jest-watcher": "^28.1.0", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "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": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "@jest/environment": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.0.tgz", + "integrity": "sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "jest-mock": "^28.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "@jest/expect": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.0.tgz", + "integrity": "sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA==", + "dev": true, + "requires": { + "expect": "^28.1.0", + "jest-snapshot": "^28.1.0" + } + }, + "@jest/expect-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.0.tgz", + "integrity": "sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2" + }, + "dependencies": { + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + } + } + }, + "@jest/fake-timers": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.0.tgz", + "integrity": "sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg==", + "dev": true, + "requires": { + "@jest/types": "^28.1.0", + "@sinonjs/fake-timers": "^9.1.1", + "@types/node": "*", + "jest-message-util": "^28.1.0", + "jest-mock": "^28.1.0", + "jest-util": "^28.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "@jest/globals": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.0.tgz", + "integrity": "sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.0", + "@jest/expect": "^28.1.0", + "@jest/types": "^28.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "@jest/reporters": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.0.tgz", + "integrity": "sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@jridgewell/trace-mapping": "^0.3.7", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-util": "^28.1.0", + "jest-worker": "^28.1.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "@jest/schemas": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", + "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.23.3" + } + }, + "@jest/source-map": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz", + "integrity": "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.7", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz", + "integrity": "sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==", + "dev": true, + "requires": { + "@jest/console": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "@jest/test-sequencer": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz", + "integrity": "sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.0.tgz", + "integrity": "sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.0", + "@jridgewell/trace-mapping": "^0.3.7", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "@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==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.11.tgz", + "integrity": "sha512-RllI476aSMsxzeI9TtlSMoNTgHDxEmnl6GkkHwhr0vdL8W+0WuesyI8Vd3rBOfrwtPXbPxdT9ADJdiOKgzxPQA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@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" + } + }, + "@sinclair/typebox": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", + "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@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/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@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==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@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": "27.5.0", + "dev": true, + "requires": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "@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==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "@types/node": { + "version": "17.0.31" + }, + "@types/prettier": { + "version": "2.6.0", + "dev": true + }, + "@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/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "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 + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.22.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/type-utils": "5.22.0", + "@typescript-eslint/utils": "5.22.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.22.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/typescript-estree": "5.22.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.22.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.22.0", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.22.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.22.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.22.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/visitor-keys": "5.22.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.22.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.22.0", + "@typescript-eslint/types": "5.22.0", + "@typescript-eslint/typescript-estree": "5.22.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.22.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.22.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@vercel/build-utils": { + "version": "2.16.0", + "dev": true + }, + "@vercel/node-bridge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@vercel/node-bridge/-/node-bridge-2.2.1.tgz", + "integrity": "sha512-GJdBio0nKyxvFwfLcj6CMp2s22d5V6K9tmhmHkQcaiFwdKWK/Pa7jngiO84a09fvX+DFaOtpalJuxQa5LAJ9xQ==" + }, + "@vercel/routing-utils": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@vercel/routing-utils/-/routing-utils-1.13.2.tgz", + "integrity": "sha512-r2PtSY98L5Al/U/bpS20Xj0FJ6wjJCj/s6a545EkdXlARI8F8l0Gh3nyAdhoYrrKihKcmyCqDaVUaks2/c8XoA==", + "requires": { + "ajv": "^6.0.0", + "path-to-regexp": "6.1.0" + } + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "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-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" + }, + "dependencies": { + "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 + } + } + }, + "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.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" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "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==", + "dev": true + }, + "babel-jest": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.0.tgz", + "integrity": "sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w==", + "dev": true, + "requires": { + "@jest/transform": "^28.1.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.0.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "babel-plugin-jest-hoist": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz", + "integrity": "sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "babel-preset-jest": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz", + "integrity": "sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^28.0.2", + "babel-preset-current-node-syntax": "^1.0.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 + }, + "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" + } + }, + "browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "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 + }, + "caniuse-lite": { + "version": "1.0.30001339", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001339.tgz", + "integrity": "sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ==", + "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" + } + }, + "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==", + "dev": true + }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "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" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "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==", + "dev": true + }, + "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 + }, + "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 + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "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" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "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==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "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==", + "dev": true + }, + "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 + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.4.137", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", + "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "dev": true + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "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 + }, + "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" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "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 + }, + "eslint": { + "version": "8.14.0", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.2.2", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.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": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "dev": true + }, + "eslint-plugin-prettier": { + "version": "4.0.0", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "dev": true + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "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 + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expect": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.0.tgz", + "integrity": "sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw==", + "dev": true, + "requires": { + "@jest/expect-utils": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.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 + }, + "diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true + }, + "jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + } + }, + "pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "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==" + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "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", + "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==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "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" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "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==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "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" + } + }, + "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" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "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": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "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 + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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=", + "dev": true + }, + "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==", + "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-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "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==" + }, + "glob": { + "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", + "inherits": "2", + "minimatch": "^3.0.4", + "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" + } + }, + "globals": { + "version": "13.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz", + "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "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" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "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-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 + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==" + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "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-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "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" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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 + }, + "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-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==", + "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-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-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@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" + }, + "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 + } + } + }, + "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==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "28.0.3", + "dev": true, + "requires": { + "@jest/core": "^28.0.3", + "import-local": "^3.0.2", + "jest-cli": "^28.0.3" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "jest-cli": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.0.tgz", + "integrity": "sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ==", + "dev": true, + "requires": { + "@jest/core": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + } + } + } + }, + "jest-changed-files": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", + "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "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 + }, + "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==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "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" + } + }, + "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==", + "dev": true + } + } + }, + "jest-circus": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.0.tgz", + "integrity": "sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.0", + "@jest/expect": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.0", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "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 + }, + "diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true + }, + "jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + } + }, + "pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "jest-config": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.0.tgz", + "integrity": "sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.0", + "@jest/types": "^28.1.0", + "babel-jest": "^28.1.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.0", + "jest-environment-node": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-runner": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "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 + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "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", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-docblock": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.0.2.tgz", + "integrity": "sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.0.tgz", + "integrity": "sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg==", + "dev": true, + "requires": { + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.0", + "pretty-format": "^28.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "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 + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "jest-environment-node": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.0.tgz", + "integrity": "sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.0", + "@jest/fake-timers": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "jest-mock": "^28.1.0", + "jest-util": "^28.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "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 + }, + "jest-haste-map": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.0.tgz", + "integrity": "sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.0", + "jest-worker": "^28.1.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz", + "integrity": "sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.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 + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "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", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-message-util": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz", + "integrity": "sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "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": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "jest-mock": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.0.tgz", + "integrity": "sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.0", + "@types/node": "*" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "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==", + "dev": true + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true + }, + "jest-resolve": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.0.tgz", + "integrity": "sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz", + "integrity": "sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g==", + "dev": true, + "requires": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.0" + } + }, + "jest-runner": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.0.tgz", + "integrity": "sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w==", + "dev": true, + "requires": { + "@jest/console": "^28.1.0", + "@jest/environment": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.0.2", + "jest-environment-node": "^28.1.0", + "jest-haste-map": "^28.1.0", + "jest-leak-detector": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-resolve": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-util": "^28.1.0", + "jest-watcher": "^28.1.0", + "jest-worker": "^28.1.0", + "source-map-support": "0.5.13", + "throat": "^6.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.0.tgz", + "integrity": "sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.0", + "@jest/fake-timers": "^28.1.0", + "@jest/globals": "^28.1.0", + "@jest/source-map": "^28.0.2", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-mock": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "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 + }, + "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==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "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" + } + }, + "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==", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.0.tgz", + "integrity": "sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.0", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.0", + "semver": "^7.3.5" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "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 + }, + "diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true + }, + "jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + } + }, + "pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "jest-util": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz", + "integrity": "sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.0.tgz", + "integrity": "sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ==", + "dev": true, + "requires": { + "@jest/types": "^28.1.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "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 + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz", + "integrity": "sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.0", + "string-length": "^4.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.0.tgz", + "integrity": "sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jiti": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.13.0.tgz", + "integrity": "sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ==" + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "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-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-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=", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "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" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "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==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "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.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "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 + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "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==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "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" + } + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "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" + } + }, + "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 + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-releases": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", + "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "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 + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + } + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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" + } + }, + "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 + }, + "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-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" + } + }, + "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "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": "6.1.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.1.0.tgz", + "integrity": "sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==" + }, + "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 + }, + "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 + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.6.2", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "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 + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "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 + }, + "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 + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "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 + }, + "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", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "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.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "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" + } + }, + "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" + } + }, + "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 + }, + "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, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "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==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "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.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "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, + "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 + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + }, + "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==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + }, + "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==", + "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-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.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 + }, + "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==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "ts-jest": { + "version": "28.0.0", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^20.x" + }, + "dependencies": { + "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 + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "typescript": { + "version": "4.6.4", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "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" + } + }, + "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==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz", + "integrity": "sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.7", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "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==", + "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" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", + "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", + "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.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "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==", + "dev": true + } + } +} diff --git a/package.json b/package.json index ff66f57..4293267 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,26 @@ { - "name": "tslib-starter", - "version": "0.0.1", + "name": "vercel-quasar", + "version": "0.0.22", "description": "", - "main": "index.js", + "main": "dist/index.js", "files": [ - "dist/**/*" + "dist" ], + "exports": { + ".": "./dist/index.js", + "./launcher": "./dist/launcher.js" + }, "scripts": { "build": "tsc --build tsconfig.json", + "prepublishOnly": "npm run release", + "release": "npm run build", "lint": "eslint --ext .js,.ts,.json ./", "fix": "eslint --ext .js,.ts,.json ./ --fix", "format": "prettier --config ./.prettierrc --write \"./**/*.{ts,js,json}\" ", - "test": "jest" + "test": "jest", + "ver": "standard-version", + "vermi": "standard-version -r minor", + "verma": "standard-version -r major" }, "author": "dongwa", "license": "MIT", @@ -28,10 +37,12 @@ ] }, "devDependencies": { + "@types/fs-extra": "^9.0.13", "@types/jest": "^27.5.0", "@types/node": "^17.0.31", "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.22.0", + "@vercel/build-utils": "^2.16.0", "eslint": "^8.14.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.0.0", @@ -39,5 +50,14 @@ "prettier": "^2.6.2", "ts-jest": "^28.0.0", "typescript": "^4.6.4" + }, + "dependencies": { + "@types/glob": "^7.2.0", + "@vercel/node-bridge": "^2.2.1", + "@vercel/routing-utils": "^1.13.2", + "consola": "^2.15.3", + "execa": "5.1.1", + "fs-extra": "^10.1.0", + "jiti": "^1.13.0" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3599160..02ff09e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,29 +1,49 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 specifiers: + '@types/fs-extra': ^9.0.13 + '@types/glob': ^7.2.0 '@types/jest': ^27.5.0 '@types/node': ^17.0.31 '@typescript-eslint/eslint-plugin': ^5.22.0 '@typescript-eslint/parser': ^5.22.0 + '@vercel/build-utils': ^2.16.0 + '@vercel/node-bridge': ^2.2.1 + '@vercel/routing-utils': ^1.13.2 + consola: ^2.15.3 eslint: ^8.14.0 eslint-config-prettier: ^8.5.0 eslint-plugin-prettier: ^4.0.0 + execa: 5.1.1 + fs-extra: ^10.1.0 jest: ^28.0.3 + jiti: ^1.13.0 prettier: ^2.6.2 ts-jest: ^28.0.0 typescript: ^4.6.4 +dependencies: + '@types/glob': 7.2.0 + '@vercel/node-bridge': 2.2.1 + '@vercel/routing-utils': 1.13.2 + consola: 2.15.3 + execa: 5.1.1 + fs-extra: 10.1.0 + jiti: 1.13.0 + devDependencies: + '@types/fs-extra': 9.0.13 '@types/jest': 27.5.0 '@types/node': 17.0.31 - '@typescript-eslint/eslint-plugin': 5.22.0_5b52bb1e77494a9627aef8db6adb10bc - '@typescript-eslint/parser': 5.22.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/eslint-plugin': 5.22.0_lnjlwhtxjffjmj5o7dnwvwyqxq + '@typescript-eslint/parser': 5.22.0_t725usgvqspm5woeqpaxbfp2qu + '@vercel/build-utils': 2.16.0 eslint: 8.14.0 eslint-config-prettier: 8.5.0_eslint@8.14.0 - eslint-plugin-prettier: 4.0.0_665eb419c9d7860ca0c224f7f6dcdace + eslint-plugin-prettier: 4.0.0_mzpligoj26dazigcet37nxg2zy jest: 28.0.3_@types+node@17.0.31 prettier: 2.6.2 - ts-jest: 28.0.0_4db907953e67367985ae85b48dfb7df7 + ts-jest: 28.0.0_jw4qpfj6m43htbnoqw2i363564 typescript: 4.6.4 packages: @@ -191,6 +211,8 @@ packages: resolution: {integrity: sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.17.10 dev: true /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.10: @@ -706,6 +728,19 @@ packages: '@babel/types': 7.17.10 dev: true + /@types/fs-extra/9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 17.0.31 + dev: true + + /@types/glob/7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 3.0.5 + '@types/node': 17.0.31 + dev: false + /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: @@ -739,9 +774,12 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true + /@types/minimatch/3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + dev: false + /@types/node/17.0.31: resolution: {integrity: sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==} - dev: true /@types/prettier/2.6.0: resolution: {integrity: sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==} @@ -761,7 +799,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/5.22.0_5b52bb1e77494a9627aef8db6adb10bc: + /@typescript-eslint/eslint-plugin/5.22.0_lnjlwhtxjffjmj5o7dnwvwyqxq: resolution: {integrity: sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -772,10 +810,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.22.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/parser': 5.22.0_t725usgvqspm5woeqpaxbfp2qu '@typescript-eslint/scope-manager': 5.22.0 - '@typescript-eslint/type-utils': 5.22.0_eslint@8.14.0+typescript@4.6.4 - '@typescript-eslint/utils': 5.22.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/type-utils': 5.22.0_t725usgvqspm5woeqpaxbfp2qu + '@typescript-eslint/utils': 5.22.0_t725usgvqspm5woeqpaxbfp2qu debug: 4.3.4 eslint: 8.14.0 functional-red-black-tree: 1.0.1 @@ -788,7 +826,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.22.0_eslint@8.14.0+typescript@4.6.4: + /@typescript-eslint/parser/5.22.0_t725usgvqspm5woeqpaxbfp2qu: resolution: {integrity: sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -816,7 +854,7 @@ packages: '@typescript-eslint/visitor-keys': 5.22.0 dev: true - /@typescript-eslint/type-utils/5.22.0_eslint@8.14.0+typescript@4.6.4: + /@typescript-eslint/type-utils/5.22.0_t725usgvqspm5woeqpaxbfp2qu: resolution: {integrity: sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -826,7 +864,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.22.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/utils': 5.22.0_t725usgvqspm5woeqpaxbfp2qu debug: 4.3.4 eslint: 8.14.0 tsutils: 3.21.0_typescript@4.6.4 @@ -861,7 +899,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.22.0_eslint@8.14.0+typescript@4.6.4: + /@typescript-eslint/utils/5.22.0_t725usgvqspm5woeqpaxbfp2qu: resolution: {integrity: sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -887,6 +925,22 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /@vercel/build-utils/2.16.0: + resolution: {integrity: sha512-KEkt/uhBCMTca4qtRK9F9/M4kV712rkWKYm2p7xo4HVKrF5e+oSEQKF6zDHzUk0R0YOYY1aL3it01r440YsABA==} + dev: true + + /@vercel/node-bridge/2.2.1: + resolution: {integrity: sha512-GJdBio0nKyxvFwfLcj6CMp2s22d5V6K9tmhmHkQcaiFwdKWK/Pa7jngiO84a09fvX+DFaOtpalJuxQa5LAJ9xQ==} + dev: false + + /@vercel/routing-utils/1.13.2: + resolution: {integrity: sha512-r2PtSY98L5Al/U/bpS20Xj0FJ6wjJCj/s6a545EkdXlARI8F8l0Gh3nyAdhoYrrKihKcmyCqDaVUaks2/c8XoA==} + dependencies: + path-to-regexp: 6.1.0 + optionalDependencies: + ajv: 6.12.6 + dev: false + /acorn-jsx/5.3.2_acorn@8.7.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -908,7 +962,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -1174,6 +1227,10 @@ packages: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true + /consola/2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + dev: false + /convert-source-map/1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: @@ -1187,7 +1244,6 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -1291,7 +1347,7 @@ packages: eslint: 8.14.0 dev: true - /eslint-plugin-prettier/4.0.0_665eb419c9d7860ca0c224f7f6dcdace: + /eslint-plugin-prettier/4.0.0_mzpligoj26dazigcet37nxg2zy: resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} engines: {node: '>=6.0.0'} peerDependencies: @@ -1445,7 +1501,6 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true /exit/0.1.2: resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} @@ -1465,7 +1520,6 @@ packages: /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-diff/1.2.0: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} @@ -1484,7 +1538,6 @@ packages: /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein/2.0.6: resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} @@ -1536,6 +1589,15 @@ packages: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} dev: true + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + /fs.realpath/1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} dev: true @@ -1574,7 +1636,6 @@ packages: /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: true /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -1627,7 +1688,6 @@ packages: /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true /has-flag/3.0.0: resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} @@ -1653,7 +1713,6 @@ packages: /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: true /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} @@ -1733,11 +1792,9 @@ packages: /is-stream/2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: true /isexe/2.0.0: resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - dev: true /istanbul-lib-coverage/3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} @@ -2215,6 +2272,11 @@ packages: - ts-node dev: true + /jiti/1.13.0: + resolution: {integrity: sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ==} + hasBin: true + dev: false + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -2246,7 +2308,6 @@ packages: /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} @@ -2258,6 +2319,14 @@ packages: hasBin: true dev: true + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: false + /kleur/3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -2321,7 +2390,6 @@ packages: /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -2339,7 +2407,6 @@ packages: /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - dev: true /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2373,7 +2440,6 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 - dev: true /once/1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} @@ -2386,7 +2452,6 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - dev: true /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} @@ -2449,12 +2514,15 @@ packages: /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true + /path-to-regexp/6.1.0: + resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} + dev: false + /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -2529,7 +2597,6 @@ packages: /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} - dev: true /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2624,16 +2691,13 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true /sisteransi/1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -2699,7 +2763,6 @@ packages: /strip-final-newline/2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - dev: true /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -2781,7 +2844,7 @@ packages: is-number: 7.0.0 dev: true - /ts-jest/28.0.0_4db907953e67367985ae85b48dfb7df7: + /ts-jest/28.0.0_jw4qpfj6m43htbnoqw2i363564: resolution: {integrity: sha512-JOUGExRO4vNaQdc920/sJjFZxe9lBGa6WIuNWkvtZoORGI9dyHTBqhuaJUdBVWIfqj+vaK3TRt/B1T0hQ0ROaA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.13.0 || >=17.0.0} hasBin: true @@ -2857,11 +2920,15 @@ packages: hasBin: true dev: true + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: false + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 - dev: true /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} @@ -2888,7 +2955,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} diff --git a/src/build.ts b/src/build.ts new file mode 100644 index 0000000..06eeb9e --- /dev/null +++ b/src/build.ts @@ -0,0 +1,295 @@ +import path from 'path'; +import fs from 'fs-extra'; +import consola from 'consola'; +import { + MutablePackageJson, + startStep, + validateEntrypoint, + readJSON, + prepareNodeModules, + getQuasarConfig, + exec, + globAndPrefix, + endStep, +} from './utils'; +import { + BuildOptions, + download, + File, + FileFsRef, + getNodeVersion, + getSpawnOptions, + Lambda, + runNpmInstall, + glob, + FileBlob, + createLambda, +} from '@vercel/build-utils'; + +import type { Route } from '@vercel/routing-utils'; + +interface BuilderOutput { + watch?: string[]; + output: Record; + routes: Route[]; +} + +export async function build(opts: BuildOptions): Promise { + const { files, entrypoint, workPath, config = {}, meta = {} } = opts; + /** prepare build */ + startStep('Prepare build'); + validateEntrypoint(entrypoint); + + // Get Nuxt directory + const entrypointDirname = path.dirname(entrypoint); + // Get Nuxt path + const entrypointPath = path.join(workPath, entrypointDirname); + // Get folder where we'll store node_modules + const modulesPath = path.join(entrypointPath, 'node_modules'); + + // Create a real filesystem + consola.log('Downloading files...'); + await download(files, workPath, meta); + + // Change current working directory to entrypointPath + process.chdir(entrypointPath); + consola.log('Working directory:', process.cwd()); + + // Read package.json + let pkg: MutablePackageJson; + try { + pkg = await readJSON('package.json'); + } catch (e) { + throw new Error(`Can not read package.json from ${entrypointPath}`); + } + + // Node version + const nodeVersion = await getNodeVersion(entrypointPath, undefined, {}, meta); + const spawnOpts = getSpawnOptions(meta, nodeVersion); + + // Detect npm (prefer yarn) + const isYarn = !fs.existsSync('package-lock.json'); + consola.log('Using', isYarn ? 'yarn' : 'npm'); + + // Cache dir + const cachePath = path.resolve(entrypointPath, '.quasar_cache'); + await fs.mkdirp(cachePath); + + const yarnCachePath = path.join(cachePath, 'yarn'); + await fs.mkdirp(yarnCachePath); + + // TODO: Detect vercel analytics + // if (process.env.VERCEL_ANALYTICS_ID) { + // } + + // ----------------- Install devDependencies ----------------- + startStep('Install devDependencies'); + + // Prepare node_modules + await prepareNodeModules(entrypointPath, 'node_modules_dev'); + // Install all dependencies + await runNpmInstall( + entrypointPath, + [ + '--prefer-offline', + '--frozen-lockfile', + '--non-interactive', + '--production=false', + `--modules-folder=${modulesPath}`, + `--cache-folder=${yarnCachePath}`, + ], + { ...spawnOpts, env: { ...spawnOpts.env, NODE_ENV: 'development' } }, + meta + ); + + // ----------------- Pre build ----------------- + // const buildSteps = ['build']; + // for (const step of buildSteps) { + // if (pkg.scripts && Object.keys(pkg.scripts).includes(step)) { + // startStep(`Pre build (${step})`); + // await runPackageJsonScript(entrypointPath, step, spawnOpts); + // break; + // } + // } + // Read nuxt.config.js + const quasarConfigName = 'quasar.config.js'; + const quasarConfigFile = getQuasarConfig(entrypointPath); + consola.log('load quasar config', quasarConfigFile); + + // Read options from nuxt.config.js otherwise set sensible defaults + // const staticDir = + // quasarConfigFile.dir && quasarConfigFile.dir.static + // ? quasarConfigFile.dir.static + // : 'static'; + let publicPath = (quasarConfigFile.build.publicPath || '/_quasar/').replace( + /^\//, + '' + ); + // if (hasProtocol(publicPath)) { + // publicPath = '_quasar/'; + // } + const buildDir = quasarConfigFile.build.distDir + ? path.relative(entrypointPath, quasarConfigFile.build.distDir) + : 'dist/ssr'; + const srcDir = '.'; + const lambdaName = 'index'; + const usesServerMiddleware = + config.internalServer !== undefined + ? config.internalServer + : !!quasarConfigFile.ssr.middlewares; + + await exec('quasar', ['build', '-m', 'ssr'], spawnOpts); + + // ----------------- Install ssr dependencies ----------------- + startStep('Install dist dependencies'); + + //TODO: remove || 'dist/ssr' and log + const distDir = path.join(entrypointPath, quasarConfigFile.build.distDir); + // Get folder where we'll store node_modules + const distModulesPath = path.join(distDir, 'node_modules'); + // Cache dir + const distCachePath = path.resolve(entrypointPath, '.quasar_dist_cache'); + await fs.mkdirp(distCachePath); + + const distYarnCachePath = path.join(distCachePath, 'yarn'); + await fs.mkdirp(distYarnCachePath); + + // Use node_modules_prod + await prepareNodeModules(distDir, 'node_modules_prod'); + + await runNpmInstall( + distDir, + [ + '--prefer-offline', + '--pure-lockfile', + '--non-interactive', + '--production=true', + `--modules-folder=${distModulesPath}`, + `--cache-folder=${distYarnCachePath}`, + ], + { + ...spawnOpts, + env: { + ...spawnOpts.env, + NPM_ONLY_PRODUCTION: 'true', + }, + }, + meta + ); + + // ----------------- Collect artifacts ----------------- + startStep('Collect artifacts'); + + // Static files + // const staticFiles = await glob( + // '**', + // path.join(entrypointPath, srcDir, staticDir) + // ); + + // Client dist files + const clientDistDir = path.join(distDir, 'client'); + // const clientDistFiles = await globAndPrefix('**', clientDistDir, publicPath); + const clientDistFiles = await glob('**', clientDistDir); + + // Server dist files + const serverDistDir = path.join(distDir, 'server'); + const serverDistFiles = await glob('**', serverDistDir); + + const distFils = await glob('**', distDir); + + // const serverDistFiles = await globAndPrefix( + // '**', + // serverDistDir, + // path.join(distDir, 'server') + // ); + + // Generated static files + // const generatedDir = path.join(entrypointPath, 'dist'); + // const generatedPagesFiles = config.generateStaticRoutes + // ? await globAndPrefix('**/*.*', generatedDir, './') + // : {}; + + // node_modules_prod + const nodeModulesDir = path.join(distDir, 'node_modules_prod'); + const nodeModules = await globAndPrefix('**', nodeModulesDir, 'node_modules'); + + // Lambdas + const lambdas: Record = {}; + + const launcherPath = path.join(__dirname, 'launcher.js'); + const launcherSrc = (await fs.readFile(launcherPath, 'utf8')).replace( + /\/\* __ENABLE_INTERNAL_SERVER__ \*\/ *true/g, + String(usesServerMiddleware) + ); + + const launcherFiles = { + 'vercel__launcher.js': new FileBlob({ data: launcherSrc }), + 'vercel__bridge.js': new FileFsRef({ + fsPath: require('@vercel/node-bridge'), + }), + [quasarConfigName]: new FileFsRef({ + fsPath: path.resolve(entrypointPath, quasarConfigName), + }), + // ...serverDistFiles, + ...distFils, + ...serverDistFiles, + ...nodeModules, + }; + + // Extra files to be included in lambda + const serverFiles = [ + ...(Array.isArray(config.includeFiles) + ? config.includeFiles + : config.includeFiles + ? [config.includeFiles] + : []), + ...(Array.isArray(config.serverFiles) ? config.serverFiles : []), + 'package.json', + ]; + + for (const pattern of serverFiles) { + const files = await glob(pattern, entrypointPath); + Object.assign(launcherFiles, files); + } + + // lambdaName will be titled index, unless specified in nuxt.config.js + lambdas[lambdaName] = await createLambda({ + handler: 'vercel__launcher.launcher', + runtime: nodeVersion.runtime, + files: launcherFiles, + environment: { + NODE_ENV: 'production', + DEV: '', + PROD: 'true', + }, + // + maxDuration: config.maxDuration as number | undefined, + memory: config.memory as number | undefined, + }); + + // await download(launcherFiles, rootDir) + + endStep(); + + return { + output: { + ...lambdas, + ...distFils, + // ...clientDistFiles, + // ...staticFiles, + // ...generatedPagesFiles, + }, + routes: [ + { + src: `/${publicPath}.+`, + headers: { 'Cache-Control': 'max-age=31557600' }, + }, + // ...Object.keys(staticFiles).map((file) => ({ + // src: `/${file}`, + // headers: { 'Cache-Control': 'max-age=31557600' }, + // })), + { handle: 'filesystem' }, + { src: '/(.*)', dest: '/' }, + ], + }; +} diff --git a/src/config.ts b/src/config.ts new file mode 100644 index 0000000..bba1806 --- /dev/null +++ b/src/config.ts @@ -0,0 +1,7 @@ +import type { Config } from '@vercel/build-utils'; + +const config: Config = { + maxLambdaSize: '50mb', +}; + +export default config; diff --git a/src/index.ts b/src/index.ts index 66f3751..298efe1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,9 @@ -export function add(a: number, b: number) { - return a + b; -} - -export function multi(a: number, b: number) { - return a * b; -} +import { build } from './build'; +import config from './config'; +import prepareCache from './prepare-cache'; +module.exports = { + version: 2, + build, + config, + prepareCache, +}; diff --git a/src/launcher.ts b/src/launcher.ts new file mode 100644 index 0000000..be641a5 --- /dev/null +++ b/src/launcher.ts @@ -0,0 +1,82 @@ +import path from 'path'; + +// Create bridge and start listening +const { Server } = require('http') as typeof import('http'); +const { Bridge } = + require('./vercel__bridge.js') as typeof import('@vercel/node-bridge/bridge'); +let listener: any; +let quasarConfig; + +const loaders = [ + { name: 'jiti', args: [] }, + { + name: 'esm', + args: [ + module, + { + cjs: { + dedefault: true, + }, + }, + ], + }, +]; +for (const { name, args } of loaders) { + try { + const load = require(name)(...args); + const config = load('./quasar.config.js')({ + dev: false, + prod: true, + }); + quasarConfig = config.default || config; + break; + } catch (err) { + if (name === 'esm') { + throw new Error( + `Could not load Quasar configuration. Make sure all dependencies are listed in package.json dependencies or in serverFiles within builder options:\n ${err}` + ); + } + } +} +try { + process.chdir(__dirname); + + if (!process.env.PROT) + process.env.PROT = quasarConfig.ssr.prodProd || (3000 as any); + if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production'; + if (process.env.DEV) { + console.log('err dev mode,auto change to prod'); + throw new Error('process.env.DEV is true'); + } + + listener = require(path.join(__dirname, 'index.js')); + if (listener.default) listener = listener.default; + if (typeof listener !== 'function' && listener.handler) + listener = listener.handler; + const listenerType = typeof listener; + const oldListener = listener; + console.log('listener:', typeof listener, listener); + + if (typeof listener !== 'function') { + listener = (req: any, res: any) => { + res.writeHead(500, { 'Content-Type': 'text/plain' }); + res.write(`This is vercel-quasar, your Vercel builder. Turns out we couldn't find your server instance. Did you write \`module.exports = app\`? + + typeof: ${listenerType} (expected 'function') + String: ${String(oldListener)} + + Read the docs or create an issue: /~https://github.com/dongwa/vercel-quasar`); + res.end(); + }; + } +} catch (error) { + console.error('Server is not listening', error); + process.exit(1); +} + +const server = new Server(listener); + +const bridge = new Bridge(server); +bridge.listen(); + +export const launcher: typeof bridge.launcher = bridge.launcher; diff --git a/src/prepare-cache.ts b/src/prepare-cache.ts new file mode 100644 index 0000000..f47b92f --- /dev/null +++ b/src/prepare-cache.ts @@ -0,0 +1,25 @@ +import { PrepareCacheOptions, glob, Files } from '@vercel/build-utils'; +import consola from 'consola'; + +import { startStep, endStep } from './utils'; + +async function prepareCache({ workPath }: PrepareCacheOptions): Promise { + startStep('Collect cache'); + + const dirs = + process.env.QUASAR_CACHE_DISABLED === '1' + ? [] + : ['dist/ssr', '.vercel_cache', 'node_modules_dev', 'node_modules_prod']; + + const cache: Files = {}; + for (const dir of dirs) { + const files = await glob(`**/${dir}/**`, workPath); + consola.info(`${Object.keys(files).length} files collected from ${dir}`); + Object.assign(cache, files); + } + endStep(); + + return cache; +} + +export default prepareCache; diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..68c4f7e --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,273 @@ +import path from 'path'; +import { SpawnOptions } from 'child_process'; + +import { glob, Files, PackageJson } from '@vercel/build-utils'; +import consola from 'consola'; +import jiti from 'jiti'; +import execa, { ExecaReturnValue } from 'execa'; +import fs from 'fs-extra'; + +// import type { NuxtConfig as NuxtConfiguration } from '@nuxt/types'; +import type { IOptions } from 'glob'; + +// const fs = require('fs-extra'); + +// const bridge = require('@vercel/node-bridge'); + +// exports.getLauncherFiles = function getLauncherFiles() { +// const launcherPath = path.join(__dirname, 'launcher.js'); +// return { +// 'launcher.js': new FileFsRef({ fsPath: launcherPath }), +// 'bridge.js': new FileFsRef({ fsPath: bridge }), +// }; +// }; + +export function getMountPoint(entrypoint: string) { + const entrypointName = path.basename(entrypoint); + if (entrypointName !== 'package.json') { + throw new Error( + 'This builder requires a `package.json` file as its entrypoint.' + ); + } + + return path.dirname(entrypoint); +} + +// export async function globAndPrefix(entrypointDir: string, subDir: string) { +// const paths = await glob('**', path.join(entrypointDir, subDir)); +// return Object.keys(paths).reduce((c: any, n: string) => { +// c[`${subDir}/${n}`] = paths[n]; +// return c; +// }, {}); +// } + +type Mutable = { + -readonly [P in keyof T]: T[P] extends ReadonlyArray + ? Mutable[] + : Mutable; +}; + +export type MutablePackageJson = Mutable; + +export function exec( + cmd: string, + args: string[], + { env, ...opts }: SpawnOptions = {} +): Promise { + args = args.filter(Boolean); + + consola.log('Running', cmd, ...args); + const stdio = Array.isArray(opts.stdio) + ? (opts.stdio.filter(Boolean) as Array< + SpawnOptions['stdio'] extends Array + ? Array> + : never + > as any) + : opts.stdio; + return execa('npx', [cmd, ...args], { + stdout: process.stdout, + stderr: process.stderr, + preferLocal: false, + env: { + MINIMAL: '1', + NODE_OPTIONS: '--max_old_space_size=3000', + ...env, + }, + ...(opts as any), + stdio, + }); +} + +/** + * Read in a JSON file with support for UTF-16 fallback. + */ + +export async function readJSON(filename: string): Promise { + try { + return await fs.readJSON(filename); + } catch { + return await fs.readJSON(filename, { encoding: 'utf16le' }); + } +} + +/** + * Validate if the entrypoint is allowed to be used + */ +export function validateEntrypoint(entrypoint: string): void { + const filename = path.basename(entrypoint); + + if ( + ['package.json', 'quasar.config.js', 'quasr.config.ts'].includes( + filename + ) === false + ) { + throw new Error( + 'Specified "src" for "@quasar/vercel-builder" has to be "package.json", "quasar.config.js" or "quasar.config.ts"' + ); + } +} + +// function filterFiles(files, filterFn) { +// const newFiles = {} +// for (const fileName in files) { +// if (filterFn(files)) { +// newFiles[fileName] = files[fileName] +// } +// } +// return newFiles +// } + +export function renameFiles( + files: Files, + renameFn: (fileName: string) => string +): Files { + const newFiles: Files = {}; + for (const fileName in files) { + newFiles[renameFn(fileName)] = files[fileName]; + } + return newFiles; +} + +export async function globAndRename( + pattern: string, + opts: IOptions | string, + renameFn: (fileName: string) => string +): Promise { + const files = await glob(pattern, opts); + return renameFiles(files, renameFn); +} + +export function globAndPrefix( + pattern: string, + opts: IOptions | string, + prefix: string +): Promise { + return globAndRename(pattern, opts, (name) => path.join(prefix, name)); +} + +let _step: string | undefined; +let _stepStartTime: [number, number] | undefined; + +const dash = ' ----------------- '; + +export function hrToMs(hr: [number, number]): number { + const hrTime = process.hrtime(hr); + return (hrTime[0] * 1e9 + hrTime[1]) / 1e6; +} + +export function endStep(): void { + if (!_step) { + return; + } + if (_step && _stepStartTime) { + consola.info(`${_step} took: ${hrToMs(_stepStartTime)} ms`); + } + _step = undefined; + _stepStartTime = undefined; +} + +export function startStep(step: string): void { + endStep(); + consola.log(dash + step + dash); + _step = step; + _stepStartTime = process.hrtime(); +} + +export interface QuasarConfiguration { + build: { + distDir: string; + ignorePublicFolder?: boolean; + publicPath?: string; + vueRouterMode?: 'hash' | 'history'; + vueRouterBase?: string; + rebuildCache?: boolean; + analyze?: boolean; + }; + ssr: { + pwa?: boolean; + maxAge?: number; + prodProd?: number; + middlewares?: string[]; + ssrPwaHtmlFilename?: string; + manualStoreSerialization?: boolean; + manualStoreSsrContextInjection?: boolean; + manualStoreHydration?: boolean; + manualPostHydrationTrigger?: boolean; + }; +} + +const defaultQuasarConfig: QuasarConfiguration = { + build: { + publicPath: '/', + vueRouterMode: 'hash', + distDir: 'dist/ssr', + }, + ssr: { + pwa: false, + prodProd: 3000, + ssrPwaHtmlFilename: 'offline.html', + }, +}; + +export function getQuasarConfig( + rootDir: string, + quasarConfigName = './quasar.config.js' +): QuasarConfiguration { + const load = jiti(rootDir); + let quasarConfigFile = load(quasarConfigName)({ + dev: false, + prod: true, + }); + quasarConfigFile = quasarConfigFile.default || quasarConfigFile; + for (let key in defaultQuasarConfig.build) { + if (!quasarConfigFile.build[key]) + quasarConfigFile.build[key] = + defaultQuasarConfig.build[ + key as keyof typeof defaultQuasarConfig['build'] + ]; + } + for (let key in defaultQuasarConfig.ssr) { + if (!quasarConfigFile.ssr[key]) + quasarConfigFile.ssr[key] = + defaultQuasarConfig.ssr[key as keyof typeof defaultQuasarConfig['ssr']]; + } + return quasarConfigFile; +} + +export function getNuxtConfigName(rootDir: string): string { + for (const filename of ['nuxt.config.ts', 'nuxt.config.js']) { + if (fs.existsSync(path.resolve(rootDir, filename))) { + return filename; + } + } + throw new Error(`Can not read nuxt.config from ${rootDir}`); +} + +export async function prepareNodeModules( + entrypointPath: string, + modulesDir: string +): Promise { + const modulesPath = path.join(entrypointPath, 'node_modules'); + + try { + const prodPath = path.join(entrypointPath, modulesDir); + if (fs.existsSync(prodPath)) { + consola.log(`Using cached ${modulesDir}`); + } + try { + if (fs.existsSync(modulesPath)) { + await fs.unlink(modulesPath); + } + await fs.mkdirp(modulesDir); + } catch { + if (fs.existsSync(prodPath)) { + fs.rmdirSync(modulesPath, { recursive: true }); + } else { + fs.moveSync(modulesPath, prodPath); + } + } + await fs.symlink(modulesDir, modulesPath); + } catch (e) { + consola.log(`Error linking/unlinking ${modulesDir}.`, e); + } +} diff --git a/tsconfig.json b/tsconfig.json index 8d08e9d..2db9c53 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es2017" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */, + "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */, "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, "lib": ["ESNext"], "rootDir": "src", @@ -13,5 +13,5 @@ "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */ "skipDefaultLibCheck": true }, - "exclude": ["node_modules","tests"] + "exclude": ["node_modules","tests","dist"] }