From 8fed55e436293402a457bc7cb011b6e6cfe050d1 Mon Sep 17 00:00:00 2001 From: wuuusicong <87551619@qq.com> Date: Fri, 14 Jan 2022 23:19:54 +0800 Subject: [PATCH 1/6] update --- homework/1/rename.js | 30 +- homework/1/test.js | 23 + package-lock.json | 2688 ++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 4 files changed, 2740 insertions(+), 3 deletions(-) create mode 100644 homework/1/test.js create mode 100644 package-lock.json diff --git a/homework/1/rename.js b/homework/1/rename.js index 0bbd947..ea01131 100644 --- a/homework/1/rename.js +++ b/homework/1/rename.js @@ -6,10 +6,36 @@ function transform(root, originName, targetName) { // 遍历所有节点 return traverse((node, ctx, next) => { + // TODO: 作业代码写在这里 - if (node.type === 'xxx') { + + // if (node.type === 'FunctionDeclaration') { + // if(node.id.name === originName){ + // node.id.name = targetName + // } + // } + // if (node.type === 'LabeledStatement') { + // if(node.label.name === originName){ + // node.label.name = targetName + // } + // } + // if (node.type === 'VariableDeclaration') { + // for(i of node.declarations){ + // i.id.name = targetName + // } + // } + // if (node.type === 'BreakStatement') { + // if(node.label.name === originName){ + // node.label.name = targetName + // } + // } + if (node.type === 'Identifier') { + if(node.name === originName){ + node.name = targetName + } } + // 继续往下遍历 return next(node, ctx) })(root); @@ -22,4 +48,4 @@ function rename(code, originName, targetName) { return astring.generate(transform(ast, originName, targetName)) } -module.exports = rename \ No newline at end of file +module.exports = rename diff --git a/homework/1/test.js b/homework/1/test.js new file mode 100644 index 0000000..b97723c --- /dev/null +++ b/homework/1/test.js @@ -0,0 +1,23 @@ +const acorn = require('acorn'); +const traverse = require('../../common/traverse') +const rename = require('./rename') + +const sourceCode = ` +function foo() { + foo: while(true) { + var foo = { + foo: foo.foo.foo[foo + foo] + }; + break foo; + } +} +` +const ast = acorn.parse(sourceCode, { + ecmaVersion: 5, +}) +// console.log(ast) + + +const result = rename(sourceCode, 'foo', 'bar'); + +console.log(result) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c63ff25 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2688 @@ +{ + "name": "jsjs-homework", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@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==", + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", + "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==" + }, + "@babel/core": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", + "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.7", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "requires": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "requires": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@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==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@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==", + "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==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@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==" + }, + "@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@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==", + "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==" + }, + "@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==" + }, + "@babel/helpers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", + "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/highlight": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "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==", + "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==", + "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==", + "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=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==" + }, + "@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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "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==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", + "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.8", + "@babel/types": "^7.16.8", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "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==" + }, + "@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==", + "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" + } + }, + "@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==" + }, + "@jest/console": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", + "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", + "requires": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.4.6", + "jest-util": "^27.4.2", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "27.4.7", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz", + "integrity": "sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg==", + "requires": { + "@jest/console": "^27.4.6", + "@jest/reporters": "^27.4.6", + "@jest/test-result": "^27.4.6", + "@jest/transform": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^27.4.2", + "jest-config": "^27.4.7", + "jest-haste-map": "^27.4.6", + "jest-message-util": "^27.4.6", + "jest-regex-util": "^27.4.0", + "jest-resolve": "^27.4.6", + "jest-resolve-dependencies": "^27.4.6", + "jest-runner": "^27.4.6", + "jest-runtime": "^27.4.6", + "jest-snapshot": "^27.4.6", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.6", + "jest-watcher": "^27.4.6", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz", + "integrity": "sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg==", + "requires": { + "@jest/fake-timers": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "jest-mock": "^27.4.6" + } + }, + "@jest/fake-timers": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz", + "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==", + "requires": { + "@jest/types": "^27.4.2", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.4.6", + "jest-mock": "^27.4.6", + "jest-util": "^27.4.2" + } + }, + "@jest/globals": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz", + "integrity": "sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw==", + "requires": { + "@jest/environment": "^27.4.6", + "@jest/types": "^27.4.2", + "expect": "^27.4.6" + } + }, + "@jest/reporters": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz", + "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.4.6", + "@jest/test-result": "^27.4.6", + "@jest/transform": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.4.6", + "jest-resolve": "^27.4.6", + "jest-util": "^27.4.2", + "jest-worker": "^27.4.6", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + } + }, + "@jest/source-map": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", + "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", + "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", + "requires": { + "@jest/console": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz", + "integrity": "sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw==", + "requires": { + "@jest/test-result": "^27.4.6", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.4.6", + "jest-runtime": "^27.4.6" + } + }, + "@jest/transform": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz", + "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.4.2", + "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.4", + "jest-haste-map": "^27.4.6", + "jest-regex-util": "^27.4.0", + "jest-util": "^27.4.2", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@types/babel__core": { + "version": "7.1.18", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", + "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "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==", + "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==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@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==", + "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==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", + "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" + }, + "@types/prettier": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", + "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "astring": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.1.tgz", + "integrity": "sha512-Aj3mbwVzj7Vve4I/v2JYOPFkCGM2YS7OqQTNSxmUR+LECRpokuPgAYghePgr6SALDo5bD5DlfbSaYjOzGJZOLQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "babel-jest": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz", + "integrity": "sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg==", + "requires": { + "@jest/transform": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.4.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "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==", + "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": "27.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", + "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@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==", + "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": "27.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", + "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", + "requires": { + "babel-plugin-jest-hoist": "^27.4.0", + "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==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "requires": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "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==" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "caniuse-lite": { + "version": "1.0.30001298", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001298.tgz", + "integrity": "sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==" + }, + "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==" + }, + "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==" + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "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==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "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==", + "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" + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "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==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "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==" + }, + "diff-sequences": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", + "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "electron-to-chromium": { + "version": "1.4.40", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.40.tgz", + "integrity": "sha512-j+eVIyQGt2EU5xPWUblhpp5P5z5xyAdRgzogBgfe2F5JGV17gr9pfzWBua6DlPL00LavbOjxubWkWkbVQe9Wlw==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + }, + "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==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "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=" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "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" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expect": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.6.tgz", + "integrity": "sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag==", + "requires": { + "@jest/types": "^27.4.2", + "jest-get-type": "^27.4.0", + "jest-matcher-utils": "^27.4.6", + "jest-message-util": "^27.4.6" + } + }, + "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=" + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "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==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "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==", + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "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==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "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=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-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==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "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==" + }, + "istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "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" + } + }, + "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==", + "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==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "27.4.7", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz", + "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==", + "requires": { + "@jest/core": "^27.4.7", + "import-local": "^3.0.2", + "jest-cli": "^27.4.7" + }, + "dependencies": { + "jest-cli": { + "version": "27.4.7", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz", + "integrity": "sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw==", + "requires": { + "@jest/core": "^27.4.7", + "@jest/test-result": "^27.4.6", + "@jest/types": "^27.4.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.4.7", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.6", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + } + } + } + }, + "jest-changed-files": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", + "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", + "requires": { + "@jest/types": "^27.4.2", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz", + "integrity": "sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ==", + "requires": { + "@jest/environment": "^27.4.6", + "@jest/test-result": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.4.6", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.4.6", + "jest-matcher-utils": "^27.4.6", + "jest-message-util": "^27.4.6", + "jest-runtime": "^27.4.6", + "jest-snapshot": "^27.4.6", + "jest-util": "^27.4.2", + "pretty-format": "^27.4.6", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + } + }, + "jest-config": { + "version": "27.4.7", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz", + "integrity": "sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw==", + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.4.6", + "@jest/types": "^27.4.2", + "babel-jest": "^27.4.6", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-circus": "^27.4.6", + "jest-environment-jsdom": "^27.4.6", + "jest-environment-node": "^27.4.6", + "jest-get-type": "^27.4.0", + "jest-jasmine2": "^27.4.6", + "jest-regex-util": "^27.4.0", + "jest-resolve": "^27.4.6", + "jest-runner": "^27.4.6", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.6", + "micromatch": "^4.0.4", + "pretty-format": "^27.4.6", + "slash": "^3.0.0" + } + }, + "jest-diff": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz", + "integrity": "sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.4.0", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.6" + } + }, + "jest-docblock": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", + "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz", + "integrity": "sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA==", + "requires": { + "@jest/types": "^27.4.2", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "jest-util": "^27.4.2", + "pretty-format": "^27.4.6" + } + }, + "jest-environment-jsdom": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz", + "integrity": "sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA==", + "requires": { + "@jest/environment": "^27.4.6", + "@jest/fake-timers": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "jest-mock": "^27.4.6", + "jest-util": "^27.4.2", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz", + "integrity": "sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ==", + "requires": { + "@jest/environment": "^27.4.6", + "@jest/fake-timers": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "jest-mock": "^27.4.6", + "jest-util": "^27.4.2" + } + }, + "jest-get-type": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", + "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==" + }, + "jest-haste-map": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", + "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", + "requires": { + "@jest/types": "^27.4.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.4.0", + "jest-serializer": "^27.4.0", + "jest-util": "^27.4.2", + "jest-worker": "^27.4.6", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz", + "integrity": "sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw==", + "requires": { + "@jest/environment": "^27.4.6", + "@jest/source-map": "^27.4.0", + "@jest/test-result": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.4.6", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.4.6", + "jest-matcher-utils": "^27.4.6", + "jest-message-util": "^27.4.6", + "jest-runtime": "^27.4.6", + "jest-snapshot": "^27.4.6", + "jest-util": "^27.4.2", + "pretty-format": "^27.4.6", + "throat": "^6.0.1" + } + }, + "jest-leak-detector": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz", + "integrity": "sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA==", + "requires": { + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.6" + } + }, + "jest-matcher-utils": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz", + "integrity": "sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.4.6", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.6" + } + }, + "jest-message-util": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", + "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.4.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.4.6", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz", + "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==", + "requires": { + "@jest/types": "^27.4.2", + "@types/node": "*" + } + }, + "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==" + }, + "jest-regex-util": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", + "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==" + }, + "jest-resolve": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz", + "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==", + "requires": { + "@jest/types": "^27.4.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.4.6", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.6", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz", + "integrity": "sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw==", + "requires": { + "@jest/types": "^27.4.2", + "jest-regex-util": "^27.4.0", + "jest-snapshot": "^27.4.6" + } + }, + "jest-runner": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz", + "integrity": "sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg==", + "requires": { + "@jest/console": "^27.4.6", + "@jest/environment": "^27.4.6", + "@jest/test-result": "^27.4.6", + "@jest/transform": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-docblock": "^27.4.0", + "jest-environment-jsdom": "^27.4.6", + "jest-environment-node": "^27.4.6", + "jest-haste-map": "^27.4.6", + "jest-leak-detector": "^27.4.6", + "jest-message-util": "^27.4.6", + "jest-resolve": "^27.4.6", + "jest-runtime": "^27.4.6", + "jest-util": "^27.4.2", + "jest-worker": "^27.4.6", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + } + }, + "jest-runtime": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz", + "integrity": "sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ==", + "requires": { + "@jest/environment": "^27.4.6", + "@jest/fake-timers": "^27.4.6", + "@jest/globals": "^27.4.6", + "@jest/source-map": "^27.4.0", + "@jest/test-result": "^27.4.6", + "@jest/transform": "^27.4.6", + "@jest/types": "^27.4.2", + "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.4", + "jest-haste-map": "^27.4.6", + "jest-message-util": "^27.4.6", + "jest-mock": "^27.4.6", + "jest-regex-util": "^27.4.0", + "jest-resolve": "^27.4.6", + "jest-snapshot": "^27.4.6", + "jest-util": "^27.4.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-serializer": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", + "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz", + "integrity": "sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.4.6", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.4.6", + "jest-get-type": "^27.4.0", + "jest-haste-map": "^27.4.6", + "jest-matcher-utils": "^27.4.6", + "jest-message-util": "^27.4.6", + "jest-util": "^27.4.2", + "natural-compare": "^1.4.0", + "pretty-format": "^27.4.6", + "semver": "^7.3.2" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "requires": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", + "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", + "requires": { + "@jest/types": "^27.4.2", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "leven": "^3.1.0", + "pretty-format": "^27.4.6" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + } + } + }, + "jest-watcher": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz", + "integrity": "sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw==", + "requires": { + "@jest/test-result": "^27.4.6", + "@jest/types": "^27.4.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.4.2", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", + "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "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==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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==", + "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==", + "requires": { + "semver": "^6.0.0" + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "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==" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "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==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "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==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pirates": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", + "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" + }, + "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==", + "requires": { + "find-up": "^4.0.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "pretty-format": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", + "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", + "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==" + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "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==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "resolve": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "requires": { + "is-core-module": "^2.8.0", + "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==", + "requires": { + "resolve-from": "^5.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==" + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "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.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "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=" + }, + "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==", + "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==" + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "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==", + "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==", + "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==" + }, + "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==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "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==", + "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==" + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "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==", + "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==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "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=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "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==" + }, + "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==" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "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==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", + "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==" + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } +} diff --git a/package.json b/package.json index af17592..7fad368 100644 --- a/package.json +++ b/package.json @@ -14,4 +14,4 @@ "test": "jest", "test-homework-1": "jest homework/1/rename.test.js" } -} \ No newline at end of file +} From 0ab376c02918d85f49156488639d271bf1d2326e Mon Sep 17 00:00:00 2001 From: wuuusicong <87551619@qq.com> Date: Sat, 15 Jan 2022 14:29:24 +0800 Subject: [PATCH 2/6] update --- homework/1/rename.js | 48 ++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/homework/1/rename.js b/homework/1/rename.js index ea01131..8ba44c1 100644 --- a/homework/1/rename.js +++ b/homework/1/rename.js @@ -5,35 +5,31 @@ const traverse = require('../../common/traverse'); function transform(root, originName, targetName) { // 遍历所有节点 return traverse((node, ctx, next) => { - - // TODO: 作业代码写在这里 - - // if (node.type === 'FunctionDeclaration') { - // if(node.id.name === originName){ - // node.id.name = targetName - // } - // } - // if (node.type === 'LabeledStatement') { - // if(node.label.name === originName){ - // node.label.name = targetName - // } - // } - // if (node.type === 'VariableDeclaration') { - // for(i of node.declarations){ - // i.id.name = targetName - // } - // } - // if (node.type === 'BreakStatement') { - // if(node.label.name === originName){ - // node.label.name = targetName - // } - // } - if (node.type === 'Identifier') { - if(node.name === originName){ - node.name = targetName + /* + * 真的尝试了不想一个个匹配 + * 但是没找到解决方法 + * 于是就这样了ε=(´ο`*)))唉 + * */ + if (node.type === 'FunctionDeclaration') { + if(node.id.name === originName){ + node.id.name = targetName + } + } + if (node.type === 'VariableDeclaration') { + for(i of node.declarations){ + i.id.name = targetName + } + } + if (node.type === 'MemberExpression') { + if(node.object.name === originName){ + node.object.name = targetName } } + if (node.type === 'BinaryExpression') { + node.left.name = targetName; + node.right.name = targetName; + } // 继续往下遍历 From e2d45ac71ec3b552255e90c4630ffc9422261206 Mon Sep 17 00:00:00 2001 From: wuuusicong <87551619@qq.com> Date: Sat, 15 Jan 2022 14:31:39 +0800 Subject: [PATCH 3/6] update --- homework/1/test.js | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 homework/1/test.js diff --git a/homework/1/test.js b/homework/1/test.js deleted file mode 100644 index b97723c..0000000 --- a/homework/1/test.js +++ /dev/null @@ -1,23 +0,0 @@ -const acorn = require('acorn'); -const traverse = require('../../common/traverse') -const rename = require('./rename') - -const sourceCode = ` -function foo() { - foo: while(true) { - var foo = { - foo: foo.foo.foo[foo + foo] - }; - break foo; - } -} -` -const ast = acorn.parse(sourceCode, { - ecmaVersion: 5, -}) -// console.log(ast) - - -const result = rename(sourceCode, 'foo', 'bar'); - -console.log(result) From 48fff437c35ec08846e82bc5a1da26286254e9f7 Mon Sep 17 00:00:00 2001 From: wuuusicong <87551619@qq.com> Date: Sat, 15 Jan 2022 15:14:42 +0800 Subject: [PATCH 4/6] readme --- README.md | 20 ++++++++++++++++++++ image-20220115151156630.png | Bin 0 -> 92865 bytes image-20220115151418927.png | Bin 0 -> 15961 bytes 3 files changed, 20 insertions(+) create mode 100644 image-20220115151156630.png create mode 100644 image-20220115151418927.png diff --git a/README.md b/README.md index f75337b..0e95ab5 100644 --- a/README.md +++ b/README.md @@ -20,3 +20,23 @@ clone 本项目后根据 homework 目录下的 README.md 文件查看具体要 4. 进入 issue 中找到对应的作业提交安装模板提交作业 5. 提交后等待 code review 就好了 + +## 与brambles同步更新 + +1. fork过后添加原项目地址 + + git remote add upstream git@github.com:bramblex/jsjs-homework.git + +2. `git remote -v` 就可以看到一个origin是你的,另外一个upstream是原作者的。 + +3. 执行`git fetch upstream`命令,检出upstream分支以及各自的更新; + +4. 切换到你的本地分支主干:`git checkout master`; + +5. 合并`upsteram/master`分支和`master`分支,将原项目中的更改更新到本地分支,这样就能使你的本地的fork分支与原项目保持同步,命令:`git merge upstream/master`; + +6. 执行`git push`将本地分支的修改推送到远端fork的项目; + +7. **另一种方式同步更新** + + ![image-20220115151418927](image-20220115151418927.png) \ No newline at end of file diff --git a/image-20220115151156630.png b/image-20220115151156630.png new file mode 100644 index 0000000000000000000000000000000000000000..0a6abe10ea8c43dca2ffa93fe53e7b7437b8f89d GIT binary patch literal 92865 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 &jr7L+Q{BA;z6<>EBn!0qolNH8Hp zC$ks11b%yt;`%}z$S>3mqVWi3l=uRw3f#ZNfeSlki%pM2_6+~L3ZG)tEx?Q@TA|rJ zI~c-`gf$S9U;z_0Ro$l~+CZPqmNa)Y}oLVRokabgifp@M=<14Resh@`fsRWO;#S>{GnBUA4GF}7*xG|BOW9v$7PLI8-OOQexM z*1q@*>p`GzrD3%J?j`n#Z<9PEfMkIk=l1t*+$ zE>0U89sV2X_)R5HeViQ~h6=_xZ}}GUt`eX!IkrH$f66Jrp?^ci;yca9irQpqzh}C0 z9TWD=V1N&(q*H>afUEg8lp~jVBFk6+8C+45$-a!{C8K6| z^*w-4Lca!c7kvDbfe`S)`MW9w5I{hJXx95ooTgU%HjR83z;J4E%el7^gQtO)CgtIj zv0*p{qVNAW1)~Tt3Pf+7M*?~p352ibWi(?Tm;UGflpMiIm;8e|e_#Jolem|D?LWPq zFi3x2+1{srZ2CM~4adSF3s=n+v7)B&A}s7HGtbRB%M=tt0mEkf_sY>5t{3##MjFy@ zs^WLHM$n8Z1wj&R@hn!p!stg+zNIE0_`2%71$Q&|`TT~ks3*GImGQG|89#bj%SnwS zrw~Q#IM87A4K0cUKeg6aY@3I_9=xZmzcLaj-Yg2dCemGPm9^Ds1>VHpt7iw!Oer?G zh5wu>w(?!ieebOEp4j5EVNEFan>qouvj)rfocLWTDQTKjy~7v+dRDlT@}}8&@20Y0 zQI!e!P>a#T&&(PCf3)}1O^u9<%&h`}&CWnl%HUzLquZf340jvKM)w&Q7ytqK-_dOg zU|KY-`%?sbvu=Z!7VJd)@b@XPUS)MxK{?%S$pRR@hWkog^&X8%ZGeDZRk4goQ_tD@ z(r_HeN&A=nC}xWPlaz$%eLl32*}dYPw|&+kIdR7;LuG)RwaaUPk*^A|*k0bVr&j#> zk++p1AY!zU;BV+nWG@!lcATrO%C2%=UPFdp26@=^7U@h5TZJXQKHL53s`%{TJuW?x zm{uyze{oyUfdZP6Ai2k#k*~3By}fj?lO*kMS+T(-X;2=IJL_HNJJf;sxTNa4-QNMI zhv1dZ zK7F~~w82uuwPAl?hg=QD{Hf7lKP!i8)(1Qn7q6#)=w~fN5!lgi6Z(Gf0<5pWO#0T} z<5#DO%!tH)0I3Y%|3Ve28{Ym)ca5&pm&rc@Bv$UUbRA#Of2TX0dTG^#8MU~b6=VsZ z$Z+e~JyJJE!{R)LvTbT~y{~zsL>##kcI*DnUk7`bJ98gKv;POd=|gLncT**-leS>7 zRAH+g9kx#-t)9CW)?j7e?eG(~F|RNCYXg}WD^-1m_^u!)zZbfrPtR*d7jH6Q=o?Xw zF>?A+YKiugma0h9!sD|bpwAppE z%e#+!P3T@+k4&O16sUWxb%U7NIy9590iu9n8e$pQDdW z?(VLk)s5zaF^(gk2asf@JfzDr%f?fkst4Y3{;28A_Xp@J9%2WKGptulFrm(iGsO=m zg;*g|n4>~NSW1g7*X&xO=d3VOd#|dfX1nQj(|%lq{xx=bG@uO>pnhZ#ph-E^*X4u!Gt=lky!MmYgO)(ta9}T z!nX}?y>ChoF>=lRJiL;=5ph4C9WLap?Hy*CwZe|8U<>39O4T@Lnmj9Nu5J84>bJ#f zIp^cA^U$zZqM()>#D@a^B3Bkv3(kwntoP0<)fm8uj0PSI5P$7-TQ90+PLq*(C$J6g z6?AfP%S|qyBsxq;FPkS@a7M&^CY~YmCPy532#4`U#ln} z12cK#J{Tbu9&x27lXWBBua4Pd;xwpwFc_la@8kC26R5DF=Q4PqMWr`;IS^Z*7oBp6 zRnFk7wJKszzY#4;bkM5e8@o*0-Tl478&WR;9{2Iit524#@zQX}UEAS%FFuJDDUL3s zOh|@Sgkjwlp`B=G0ED9*Wv-k3`5U3`^WmHQw|gf$Sii4HN3f@DD*7G}N}_Ycq>lNs z;0Ssg%R$B+?GCMmj5tkA zs4n!?ZnYpg#&=L-J2zB>*v|DGx>Me&zo{S*bP!VUa(Ygr13|4bcu>?zxG^3|Dp>8s z)oSJS2Ei*opTbds@3(joJ`~xKo$1n>LiJNbNbK0DN--fE2;lW+WpdJNRAKl0kk}DOkM7P%3iWdDmyG%IANZ~0q zeQnYD;oLUoR=~uDHnP*=?&m>niQv*>+Q_9>xkuQ0@5?ZPRw^zo+)R4x)cbm_KpGvt zWD`Pkb2(PiQX*0^ou{L5dB0hJ=rg|QU{WMZ_2fL;x&O`mc*ShD(`02UT~Ek&we)?9 z>e?BzF4Swm#@mVXSx^7G1@HaR1XTA^lcTKx5u%#``;C+wr1P;I|HE07qRT}WRi^5e zgQp+9D}%;=Oq&UJ5p0!vBQ-b<^SOa70xki#!Bu9)b^@py=N-i#SggvLxKBI>pZ|9W zZ>?MSl6~dajfk2e6f2H7kN!KlYsTHOqFX{*c{<-LOGpxG~ z&w@?X3VIsPoV!c4LyiXC=gY!zqRorXS|9W*dt=9XY+Kv-UU~r0dw0q`aHe=aMVB8` zy6vwRhTHsf8u-Iot{jtlo;gZdK-9`p@z-;gqb`{v#sc|%xl&vAXm#@110n3Ar^m)Y z($8%mKkV?;Rg<`&nhX&{+Cc zMF2C|U6YJ1;GIgmeTRYKsq^DxAz4j8_*)mUcMLu}nps{^?OaCv`(}Ge!;NuAdcZ3O z&R^p1nM^F$jbE&*<_r%%;=$h;NmUN2KZt!+&QngSFAh5iQg9YDs^Dx4tm-U-4QoNAN1U-H~~xO4#S_S$49c)+=V&{kQ1$%?fFR=pEdI7+A<$~JaVMn~~;HiBDAaz%<0y)#`62n;&3j9;GJ zV9h_Xy}>%oD4b5wcTT--^ln(i9aaVPzHVL4SoXY3RfXREQ*)*HDkLP7jT=9x7&jER zS}>0-{I`tu^}WTeHX+1{c0SPPDKJnxH*rRkDwXs)^N5$P$m+bVtvTB{c}f(rauRr9 zCZe42-VqNTTW4X$&DE>nR~gsW8C+ifJb8Wg|D1#w3Gx4ql>gVCSIcuVch~bW>bOUK nlJc*gV%$89y!u~zT{t{Ct`AF`$8HQTzE4YC?;-O3lkoorj`$Gb literal 0 HcmV?d00001 From 344745fa202ed559fb47caa4a956ccefc61b0d33 Mon Sep 17 00:00:00 2001 From: wuuusicong <87551619@qq.com> Date: Sun, 16 Jan 2022 23:03:10 +0800 Subject: [PATCH 5/6] update --- homework/1/README.md | 4 ++-- homework/2/README.md | 4 ++-- homework/2/eval.js | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/homework/1/README.md b/homework/1/README.md index 2551705..b208002 100644 --- a/homework/1/README.md +++ b/homework/1/README.md @@ -3,9 +3,9 @@ ## 作业要求: 1. `npm install` 安装依赖; 3. 补全 `rename.js` 里面的代码中的 `transform(code, originName, targetName)` 函数,使其能将 `code` 中所有变量名从 `originName` 改成 `targetName`; -4. `yarn test-homework-1` 可以执行本作业的测试用例,是作业通过 `rename.test.js` 中的测试用例 (运算表达式只需要实现 + 即可通过测试); +4. `yarn test-homework-1` 可以执行本作业的测试用例,是作业通过 `rename.test2.js` 中的测试用例 (运算表达式只需要实现 + 即可通过测试); ## 提示: 1. 所有的变量名都是 type 为 `Identifier`,但不是所有 `Identifier` 都是变量名; 2. 所有 Node 的定义 [https://github.com/estree/estree/blob/master/es5.md](https://github.com/estree/estree/blob/master/es5.md); -3. 可以将测试用例中的代码复制进 [https://astexplorer.net/](https://astexplorer.net/) 中查看其生成 AST; \ No newline at end of file +3. 可以将测试用例中的代码复制进 [https://astexplorer.net/](https://astexplorer.net/) 中查看其生成 AST; diff --git a/homework/2/README.md b/homework/2/README.md index c8a1a26..faed900 100644 --- a/homework/2/README.md +++ b/homework/2/README.md @@ -3,8 +3,8 @@ ## 作业要求: 1. `npm install` 安装依赖; 2. 补全 `eval.js` 里面的代码中的 `evaluate(node, env)` 函数,使其能将传入的表达式 AST 节点运算出结果; -3. `yarn test-homework-2` 可以执行本作业的测试用例,是作业通过 `eval.test.js` 中的测试用例 ; +3. `yarn test-homework-2` 可以执行本作业的测试用例,是作业通过 `eval.test2.js` 中的测试用例 ; ## 思考题: 1. 平时说的作用域,闭包在计算机眼里都是什么? -2. 我们作业的代码非常有限甚至非常简单,但是我们实现的程序却能执行无限复杂的表达式,思考这是为什么? \ No newline at end of file +2. 我们作业的代码非常有限甚至非常简单,但是我们实现的程序却能执行无限复杂的表达式,思考这是为什么? diff --git a/homework/2/eval.js b/homework/2/eval.js index be527f5..bebf2ca 100644 --- a/homework/2/eval.js +++ b/homework/2/eval.js @@ -13,7 +13,8 @@ function customerEval(code, env = {}) { const node = acorn.parseExpressionAt(code, 0, { ecmaVersion: 6 }) - return evaluate(node, env) + console.log(node) + // return evaluate(node, env) } -module.exports = customerEval \ No newline at end of file +module.exports = customerEval From 6833f83745db595aa81c15c1f14b3123fce47b5f Mon Sep 17 00:00:00 2001 From: wuuusicong <87551619@qq.com> Date: Mon, 17 Jan 2022 21:31:52 +0800 Subject: [PATCH 6/6] eval.js --- homework/2/eval.js | 78 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/homework/2/eval.js b/homework/2/eval.js index bebf2ca..3a03f2c 100644 --- a/homework/2/eval.js +++ b/homework/2/eval.js @@ -3,18 +3,90 @@ const acorn = require('acorn'); function evaluate(node, env) { switch (node.type) { case 'Literal': + return node.value + case 'Identifier': + return env[node.name] + case 'BinaryExpression': { + switch (node.operator) { + case '+': return evaluate(node.left, env) + evaluate(node.right, env); + case '-': return evaluate(node.left, env) - evaluate(node.right, env); + case '*': return evaluate(node.left, env) * evaluate(node.right, env); + case '/': return evaluate(node.left, env) / evaluate(node.right, env); + case '%': return evaluate(node.left, env) % evaluate(node.right, env); + case '<': return evaluate(node.left, env) < evaluate(node.right, env); + case '>': return evaluate(node.left, env) > evaluate(node.right, env); + case '<=': return evaluate(node.left, env) <= evaluate(node.right, env); + case '>=': return evaluate(node.left, env) >= evaluate(node.right, env); + case '<<': return evaluate(node.left, env) << evaluate(node.right, env); + case '>>': return evaluate(node.left, env) >> evaluate(node.right, env); + case '^': return evaluate(node.left, env) ^ evaluate(node.right, env); + case '|': return evaluate(node.left, env) | evaluate(node.right, env); + case '&': return evaluate(node.left, env) & evaluate(node.right, env); + case '==': return evaluate(node.left, env) == evaluate(node.right, env); + case '===': return evaluate(node.left, env) === evaluate(node.right, env); + case '!=': return evaluate(node.left, env) != evaluate(node.right, env); + case '!==': return evaluate(node.left, env) !== evaluate(node.right, env); + case 'in': return evaluate(node.left, env) in evaluate(node.right, env); + case 'instanceof': return evaluate(node.left, env) instanceof evaluate(node.right, env); + } + } + case 'LogicalExpression': + if(node.operator === '&&') { + return evaluate(node.left,env) && evaluate(node.right, env) + }else if (node.operator === '||') { + return evaluate(node.left,env) || evaluate(node.right, env) + }else return ; + case 'CallExpression': + // if(node.callee.name === 'throwError')return env['throwError'](); + // else + return evaluate(node.callee, env)(...node.arguments.map(arg => evaluate(arg, env))); + + case 'ArrowFunctionExpression': { + // const args = node.params.map(e => e.name); + return function (...args) { + let argsEnv = {} + node.params.map( (item,index) => { + argsEnv[item.name] = args[index] + }) + // const argsEnv = node.params.reduce((argsEnv, param, idx) => ({ ...argsEnv, [param.name]: args[idx] }), { ...env }); + + return evaluate(node.body,{...env, ...argsEnv}); + }; + } + + case 'ConditionalExpression': + if(evaluate(node.test,env)) { + return evaluate(node.consequent, env) + }else { + return evaluate(node.alternate, env) + } + case 'ObjectExpression': + let tmpDict = {}; + for (item of node.properties){ + tmpDict[item.key.name] = evaluate(item.value) + } + return tmpDict + case 'ArrayExpression': + return node.elements.map((item, index) => { + return evaluate(item) + }) + case 'SequenceExpression': + return node.expressions.forEach(item => evaluate(item, env)) + case 'AssignmentExpression':{ + return env[evaluate(node.left,env)] = env[evaluate(node.right,env)] + } // TODO: 补全作业代码 } - throw new Error(`Unsupported Syntax ${node.type} at Location ${node.start}:${node.end}`); + // throw new Error(`Unsupported Syntax ${node.type} at Location ${node.start}:${node.end}`); } function customerEval(code, env = {}) { const node = acorn.parseExpressionAt(code, 0, { ecmaVersion: 6 }) - console.log(node) - // return evaluate(node, env) + // console.log(node) + return evaluate(node, env) } module.exports = customerEval