├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── .prettierrc
├── LICENSE
├── README.md
├── extensions
└── it-optional.js
├── package-lock.json
├── package.json
├── src
└── arrays-tasks.js
└── test
└── arrays-tests.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
11 | [*.js]
12 | quote_type = single
13 |
14 | [*.md]
15 | trim_trailing_whitespace = false
16 |
17 | [*.json]
18 | insert_final_newline = false
19 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: {
4 | commonjs: true,
5 | es2024: true,
6 | node: true,
7 | mocha: true,
8 | },
9 | extends: ['airbnb-base', 'plugin:prettier/recommended'],
10 | globals: {
11 | Atomics: 'readonly',
12 | SharedArrayBuffer: 'readonly',
13 | },
14 | parserOptions: {
15 | ecmaVersion: 2024,
16 | },
17 | noInlineConfig: true,
18 | };
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Runtime data
14 | pids
15 | *.pid
16 | *.seed
17 | *.pid.lock
18 |
19 | # Directory for instrumented libs generated by jscoverage/JSCover
20 | lib-cov
21 |
22 | # Coverage directory used by tools like istanbul
23 | coverage
24 | *.lcov
25 |
26 | # nyc test coverage
27 | .nyc_output
28 |
29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 | .grunt
31 |
32 | # Bower dependency directory (https://bower.io/)
33 | bower_components
34 |
35 | # node-waf configuration
36 | .lock-wscript
37 |
38 | # Compiled binary addons (https://nodejs.org/api/addons.html)
39 | build/Release
40 |
41 | # Dependency directories
42 | node_modules/
43 | jspm_packages/
44 |
45 | # Snowpack dependency directory (https://snowpack.dev/)
46 | web_modules/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional stylelint cache
58 | .stylelintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variable files
76 | .env
77 | .env.development.local
78 | .env.test.local
79 | .env.production.local
80 | .env.local
81 |
82 | # parcel-bundler cache (https://parceljs.org/)
83 | .cache
84 | .parcel-cache
85 |
86 | # Next.js build output
87 | .next
88 | out
89 |
90 | # Nuxt.js build / generate output
91 | .nuxt
92 | dist
93 |
94 | # Gatsby files
95 | .cache/
96 | # Comment in the public line in if your project uses Gatsby and not Next.js
97 | # https://nextjs.org/blog/next-9-1#public-directory-support
98 | # public
99 |
100 | # vuepress build output
101 | .vuepress/dist
102 |
103 | # vuepress v2.x temp and cache directory
104 | .temp
105 | .cache
106 |
107 | # Docusaurus cache and generated files
108 | .docusaurus
109 |
110 | # Serverless directories
111 | .serverless/
112 |
113 | # FuseBox cache
114 | .fusebox/
115 |
116 | # DynamoDB Local files
117 | .dynamodb/
118 |
119 | # TernJS port file
120 | .tern-port
121 |
122 | # Stores VSCode versions used for testing VSCode extensions
123 | .vscode-test
124 |
125 | # yarn v2
126 | .yarn/cache
127 | .yarn/unplugged
128 | .yarn/build-state.yml
129 | .yarn/install-state.gz
130 | .pnp.*
131 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": true,
6 | "printWidth": 80,
7 | "endOfLine": "auto"
8 | }
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2019
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Core JS Arrays
2 |
3 | :warning: **Please note that you mustn't open PRs that contains the answers to this repo!**
4 |
5 | However, PRs with the fixes or proposals are welcomed!
6 |
7 | ## Task
8 | The goal of the assignment is to learn how to work with arrays in JS.
9 |
10 | **Active usage of [documentation](https://developer.mozilla.org/en-US/) is strongly recommended!**
11 |
12 | ## Prepare and test
13 | 1. Install Node.js
14 | 2. Fork this repository: https://github.com/rolling-scopes-school/core-js-arrays
15 | 3. Clone your newly created repo: `https://github.com/<%your_github_username%>/core-js-arrays/`
16 | 4. Go to folder `core-js-arrays`
17 | 5. To install all dependencies use `npm install`
18 | 6. Each task is usually a regular function:
19 | ```javascript
20 | /**
21 | * Returns the result of concatenation of two strings.
22 | *
23 | * @param {string} value1
24 | * @param {string} value2
25 | * @return {string}
26 | *
27 | * @example
28 | * 'aa', 'bb' => 'aabb'
29 | * 'aa','' => 'aa'
30 | * '', 'bb' => 'bb'
31 | */
32 | function concatenateStrings(/* value1, value2 */) {
33 | throw new Error('Not implemented');
34 | }
35 | ```
36 | Read the task description in the comment above the function. Try to understand the idea. You can see the tests prepared if you don't understand it.
37 | 7. Write your code in `src/arrays-tasks.js`.
38 |
39 | Uncomment the incoming parameters:
40 |
41 | ```javascript
42 | function concatenateStrings(/* value1, value2 */)
43 | ```
44 |
45 | Remove the throwing error line from function body:
46 | ```javascript
47 | throw new Error('Not implemented');
48 | ```
49 | Implement the function by any way and verify your solution by running tests until the failed test become passed (green).
50 | 8. Save the solution and run `npm test` in command line. If everything is OK you can try to resolve the next task.
51 | 9. You will see the number of passing and pending tests.
52 |
53 | ## Submit to [rs app](https://app.rs.school/)
54 | 1. Commit and push your solutions to your fork
55 | 2. Open rs app and login
56 | 3. Go to submit task page
57 | 4. Select your task (Core JS Arrays)
58 | 5. Press submit button and enjoy
59 |
60 | ## Notes
61 | * We recommend you to use nodejs of version 22. If you using any of features that does not supported by node `v22`, score won't be submitted.
62 | * Installing nodejs `v22` is optional, you can run jobs using your version and not use methods that are not in nodejs `v22`.
63 | * Please be sure that each of your test in limit of 30sec.
64 | * You will get 0 (zero) if you have any eslint's errors or warnings.
65 |
66 | ## FAQ
67 | **Question:** I use Windows machine and have received a lot of errors like "Expected linebreaks to be 'LF' but found 'CRLF'". How to handle it?
68 |
69 | **Answer**:
70 | - First, you need to install Gitbash properly: you need to choose option "Checkout as-is, commit as-is" in section "Configuring the line ending conversions". It'll let you download repos with line endings set "as-is" as well as commit. In other words, not to change them at all, because by default it converts them.
71 | - Second, install `editorconfig` plugin to your editor. For VS Code you can find it here:
72 | https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
73 |
74 | I'll let you apply some rules when you saving your files in the repo. This plugin will use config-file `.editorconfig` that you can see in the root folder. It lets you save the file with needed line endings, trim whitespaces, etc.
75 | - Finally, you need to apply linter's autofix feature in order to fix all linebreaks that was already changed to "CLRF":
76 | ```
77 | $ npm run lint -- --fix
78 | ```
79 |
80 | **Question:** Execution of tests "hangs" on one of them and does not display the result. What to do?
81 | **Answer**: Check your solution for an infinite loop, fix it, and rerun the test.
82 |
83 | **Question:** The solution in the local repository succeeds and all tests are "green", but in the application some tests don't count. What to do?
84 | **Answer**: [Update your repository fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork), update the local repository from the fork, run tests and fix your solution. After fixing, resubmit your solution for testing.
85 |
86 | ___
87 | The task based on https://github.com/rolling-scopes-school/js-assignments.
88 |
--------------------------------------------------------------------------------
/extensions/it-optional.js:
--------------------------------------------------------------------------------
1 | function testOptional(title, fn, isAsyncTest) {
2 | if (isAsyncTest) {
3 | it(title, function test(done) {
4 | try {
5 | fn.call(this, done);
6 | } catch (err) {
7 | if (err.message === 'Not implemented') {
8 | this.test.skip();
9 | } else {
10 | throw err;
11 | }
12 | }
13 | });
14 | } else {
15 | it(title, function test() {
16 | try {
17 | fn.call(this);
18 | } catch (err) {
19 | if (err.message === 'Not implemented') {
20 | this.test.skip();
21 | } else {
22 | throw err;
23 | }
24 | }
25 | });
26 | }
27 | }
28 |
29 | module.exports = testOptional;
30 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "core-js-arrays",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "core-js-arrays",
9 | "version": "1.0.0",
10 | "license": "MIT",
11 | "devDependencies": {
12 | "eslint": "^8.57.1",
13 | "eslint-config-airbnb-base": "^15.0.0",
14 | "eslint-config-prettier": "^10.1.1",
15 | "eslint-plugin-prettier": "^5.2.3",
16 | "mocha": "^10.8.2",
17 | "prettier": "^3.5.3"
18 | }
19 | },
20 | "node_modules/@eslint-community/eslint-utils": {
21 | "version": "4.5.0",
22 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.0.tgz",
23 | "integrity": "sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==",
24 | "dev": true,
25 | "license": "MIT",
26 | "dependencies": {
27 | "eslint-visitor-keys": "^3.4.3"
28 | },
29 | "engines": {
30 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
31 | },
32 | "funding": {
33 | "url": "https://opencollective.com/eslint"
34 | },
35 | "peerDependencies": {
36 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
37 | }
38 | },
39 | "node_modules/@eslint-community/regexpp": {
40 | "version": "4.12.1",
41 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
42 | "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
43 | "dev": true,
44 | "license": "MIT",
45 | "engines": {
46 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
47 | }
48 | },
49 | "node_modules/@eslint/eslintrc": {
50 | "version": "2.1.4",
51 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
52 | "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
53 | "dev": true,
54 | "license": "MIT",
55 | "dependencies": {
56 | "ajv": "^6.12.4",
57 | "debug": "^4.3.2",
58 | "espree": "^9.6.0",
59 | "globals": "^13.19.0",
60 | "ignore": "^5.2.0",
61 | "import-fresh": "^3.2.1",
62 | "js-yaml": "^4.1.0",
63 | "minimatch": "^3.1.2",
64 | "strip-json-comments": "^3.1.1"
65 | },
66 | "engines": {
67 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
68 | },
69 | "funding": {
70 | "url": "https://opencollective.com/eslint"
71 | }
72 | },
73 | "node_modules/@eslint/js": {
74 | "version": "8.57.1",
75 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
76 | "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
77 | "dev": true,
78 | "license": "MIT",
79 | "engines": {
80 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
81 | }
82 | },
83 | "node_modules/@humanwhocodes/config-array": {
84 | "version": "0.13.0",
85 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
86 | "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
87 | "deprecated": "Use @eslint/config-array instead",
88 | "dev": true,
89 | "license": "Apache-2.0",
90 | "dependencies": {
91 | "@humanwhocodes/object-schema": "^2.0.3",
92 | "debug": "^4.3.1",
93 | "minimatch": "^3.0.5"
94 | },
95 | "engines": {
96 | "node": ">=10.10.0"
97 | }
98 | },
99 | "node_modules/@humanwhocodes/module-importer": {
100 | "version": "1.0.1",
101 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
102 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
103 | "dev": true,
104 | "license": "Apache-2.0",
105 | "engines": {
106 | "node": ">=12.22"
107 | },
108 | "funding": {
109 | "type": "github",
110 | "url": "https://github.com/sponsors/nzakas"
111 | }
112 | },
113 | "node_modules/@humanwhocodes/object-schema": {
114 | "version": "2.0.3",
115 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
116 | "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
117 | "deprecated": "Use @eslint/object-schema instead",
118 | "dev": true,
119 | "license": "BSD-3-Clause"
120 | },
121 | "node_modules/@nodelib/fs.scandir": {
122 | "version": "2.1.5",
123 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
124 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
125 | "dev": true,
126 | "license": "MIT",
127 | "dependencies": {
128 | "@nodelib/fs.stat": "2.0.5",
129 | "run-parallel": "^1.1.9"
130 | },
131 | "engines": {
132 | "node": ">= 8"
133 | }
134 | },
135 | "node_modules/@nodelib/fs.stat": {
136 | "version": "2.0.5",
137 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
138 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
139 | "dev": true,
140 | "license": "MIT",
141 | "engines": {
142 | "node": ">= 8"
143 | }
144 | },
145 | "node_modules/@nodelib/fs.walk": {
146 | "version": "1.2.8",
147 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
148 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
149 | "dev": true,
150 | "license": "MIT",
151 | "dependencies": {
152 | "@nodelib/fs.scandir": "2.1.5",
153 | "fastq": "^1.6.0"
154 | },
155 | "engines": {
156 | "node": ">= 8"
157 | }
158 | },
159 | "node_modules/@pkgr/core": {
160 | "version": "0.1.1",
161 | "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
162 | "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
163 | "dev": true,
164 | "license": "MIT",
165 | "engines": {
166 | "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
167 | },
168 | "funding": {
169 | "url": "https://opencollective.com/unts"
170 | }
171 | },
172 | "node_modules/@rtsao/scc": {
173 | "version": "1.1.0",
174 | "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
175 | "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
176 | "dev": true,
177 | "license": "MIT",
178 | "peer": true
179 | },
180 | "node_modules/@types/json5": {
181 | "version": "0.0.29",
182 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
183 | "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
184 | "dev": true,
185 | "license": "MIT",
186 | "peer": true
187 | },
188 | "node_modules/@ungap/structured-clone": {
189 | "version": "1.3.0",
190 | "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
191 | "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
192 | "dev": true,
193 | "license": "ISC"
194 | },
195 | "node_modules/acorn": {
196 | "version": "8.14.1",
197 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
198 | "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
199 | "dev": true,
200 | "license": "MIT",
201 | "bin": {
202 | "acorn": "bin/acorn"
203 | },
204 | "engines": {
205 | "node": ">=0.4.0"
206 | }
207 | },
208 | "node_modules/acorn-jsx": {
209 | "version": "5.3.2",
210 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
211 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
212 | "dev": true,
213 | "license": "MIT",
214 | "peerDependencies": {
215 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
216 | }
217 | },
218 | "node_modules/ajv": {
219 | "version": "6.12.6",
220 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
221 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
222 | "dev": true,
223 | "license": "MIT",
224 | "dependencies": {
225 | "fast-deep-equal": "^3.1.1",
226 | "fast-json-stable-stringify": "^2.0.0",
227 | "json-schema-traverse": "^0.4.1",
228 | "uri-js": "^4.2.2"
229 | },
230 | "funding": {
231 | "type": "github",
232 | "url": "https://github.com/sponsors/epoberezkin"
233 | }
234 | },
235 | "node_modules/ansi-colors": {
236 | "version": "4.1.3",
237 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
238 | "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
239 | "dev": true,
240 | "license": "MIT",
241 | "engines": {
242 | "node": ">=6"
243 | }
244 | },
245 | "node_modules/ansi-regex": {
246 | "version": "5.0.1",
247 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
248 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
249 | "dev": true,
250 | "license": "MIT",
251 | "engines": {
252 | "node": ">=8"
253 | }
254 | },
255 | "node_modules/ansi-styles": {
256 | "version": "4.3.0",
257 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
258 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
259 | "dev": true,
260 | "license": "MIT",
261 | "dependencies": {
262 | "color-convert": "^2.0.1"
263 | },
264 | "engines": {
265 | "node": ">=8"
266 | },
267 | "funding": {
268 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
269 | }
270 | },
271 | "node_modules/anymatch": {
272 | "version": "3.1.3",
273 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
274 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
275 | "dev": true,
276 | "license": "ISC",
277 | "dependencies": {
278 | "normalize-path": "^3.0.0",
279 | "picomatch": "^2.0.4"
280 | },
281 | "engines": {
282 | "node": ">= 8"
283 | }
284 | },
285 | "node_modules/argparse": {
286 | "version": "2.0.1",
287 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
288 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
289 | "dev": true,
290 | "license": "Python-2.0"
291 | },
292 | "node_modules/array-buffer-byte-length": {
293 | "version": "1.0.2",
294 | "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
295 | "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
296 | "dev": true,
297 | "license": "MIT",
298 | "peer": true,
299 | "dependencies": {
300 | "call-bound": "^1.0.3",
301 | "is-array-buffer": "^3.0.5"
302 | },
303 | "engines": {
304 | "node": ">= 0.4"
305 | },
306 | "funding": {
307 | "url": "https://github.com/sponsors/ljharb"
308 | }
309 | },
310 | "node_modules/array-includes": {
311 | "version": "3.1.8",
312 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
313 | "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
314 | "dev": true,
315 | "license": "MIT",
316 | "peer": true,
317 | "dependencies": {
318 | "call-bind": "^1.0.7",
319 | "define-properties": "^1.2.1",
320 | "es-abstract": "^1.23.2",
321 | "es-object-atoms": "^1.0.0",
322 | "get-intrinsic": "^1.2.4",
323 | "is-string": "^1.0.7"
324 | },
325 | "engines": {
326 | "node": ">= 0.4"
327 | },
328 | "funding": {
329 | "url": "https://github.com/sponsors/ljharb"
330 | }
331 | },
332 | "node_modules/array.prototype.findlastindex": {
333 | "version": "1.2.5",
334 | "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
335 | "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
336 | "dev": true,
337 | "license": "MIT",
338 | "peer": true,
339 | "dependencies": {
340 | "call-bind": "^1.0.7",
341 | "define-properties": "^1.2.1",
342 | "es-abstract": "^1.23.2",
343 | "es-errors": "^1.3.0",
344 | "es-object-atoms": "^1.0.0",
345 | "es-shim-unscopables": "^1.0.2"
346 | },
347 | "engines": {
348 | "node": ">= 0.4"
349 | },
350 | "funding": {
351 | "url": "https://github.com/sponsors/ljharb"
352 | }
353 | },
354 | "node_modules/array.prototype.flat": {
355 | "version": "1.3.3",
356 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
357 | "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
358 | "dev": true,
359 | "license": "MIT",
360 | "peer": true,
361 | "dependencies": {
362 | "call-bind": "^1.0.8",
363 | "define-properties": "^1.2.1",
364 | "es-abstract": "^1.23.5",
365 | "es-shim-unscopables": "^1.0.2"
366 | },
367 | "engines": {
368 | "node": ">= 0.4"
369 | },
370 | "funding": {
371 | "url": "https://github.com/sponsors/ljharb"
372 | }
373 | },
374 | "node_modules/array.prototype.flatmap": {
375 | "version": "1.3.3",
376 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
377 | "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
378 | "dev": true,
379 | "license": "MIT",
380 | "peer": true,
381 | "dependencies": {
382 | "call-bind": "^1.0.8",
383 | "define-properties": "^1.2.1",
384 | "es-abstract": "^1.23.5",
385 | "es-shim-unscopables": "^1.0.2"
386 | },
387 | "engines": {
388 | "node": ">= 0.4"
389 | },
390 | "funding": {
391 | "url": "https://github.com/sponsors/ljharb"
392 | }
393 | },
394 | "node_modules/arraybuffer.prototype.slice": {
395 | "version": "1.0.4",
396 | "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
397 | "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
398 | "dev": true,
399 | "license": "MIT",
400 | "peer": true,
401 | "dependencies": {
402 | "array-buffer-byte-length": "^1.0.1",
403 | "call-bind": "^1.0.8",
404 | "define-properties": "^1.2.1",
405 | "es-abstract": "^1.23.5",
406 | "es-errors": "^1.3.0",
407 | "get-intrinsic": "^1.2.6",
408 | "is-array-buffer": "^3.0.4"
409 | },
410 | "engines": {
411 | "node": ">= 0.4"
412 | },
413 | "funding": {
414 | "url": "https://github.com/sponsors/ljharb"
415 | }
416 | },
417 | "node_modules/async-function": {
418 | "version": "1.0.0",
419 | "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
420 | "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
421 | "dev": true,
422 | "license": "MIT",
423 | "peer": true,
424 | "engines": {
425 | "node": ">= 0.4"
426 | }
427 | },
428 | "node_modules/available-typed-arrays": {
429 | "version": "1.0.7",
430 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
431 | "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
432 | "dev": true,
433 | "license": "MIT",
434 | "peer": true,
435 | "dependencies": {
436 | "possible-typed-array-names": "^1.0.0"
437 | },
438 | "engines": {
439 | "node": ">= 0.4"
440 | },
441 | "funding": {
442 | "url": "https://github.com/sponsors/ljharb"
443 | }
444 | },
445 | "node_modules/balanced-match": {
446 | "version": "1.0.2",
447 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
448 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
449 | "dev": true,
450 | "license": "MIT"
451 | },
452 | "node_modules/binary-extensions": {
453 | "version": "2.3.0",
454 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
455 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
456 | "dev": true,
457 | "license": "MIT",
458 | "engines": {
459 | "node": ">=8"
460 | },
461 | "funding": {
462 | "url": "https://github.com/sponsors/sindresorhus"
463 | }
464 | },
465 | "node_modules/brace-expansion": {
466 | "version": "1.1.11",
467 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
468 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
469 | "dev": true,
470 | "license": "MIT",
471 | "dependencies": {
472 | "balanced-match": "^1.0.0",
473 | "concat-map": "0.0.1"
474 | }
475 | },
476 | "node_modules/braces": {
477 | "version": "3.0.3",
478 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
479 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
480 | "dev": true,
481 | "license": "MIT",
482 | "dependencies": {
483 | "fill-range": "^7.1.1"
484 | },
485 | "engines": {
486 | "node": ">=8"
487 | }
488 | },
489 | "node_modules/browser-stdout": {
490 | "version": "1.3.1",
491 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
492 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
493 | "dev": true,
494 | "license": "ISC"
495 | },
496 | "node_modules/call-bind": {
497 | "version": "1.0.8",
498 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
499 | "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
500 | "dev": true,
501 | "license": "MIT",
502 | "dependencies": {
503 | "call-bind-apply-helpers": "^1.0.0",
504 | "es-define-property": "^1.0.0",
505 | "get-intrinsic": "^1.2.4",
506 | "set-function-length": "^1.2.2"
507 | },
508 | "engines": {
509 | "node": ">= 0.4"
510 | },
511 | "funding": {
512 | "url": "https://github.com/sponsors/ljharb"
513 | }
514 | },
515 | "node_modules/call-bind-apply-helpers": {
516 | "version": "1.0.2",
517 | "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
518 | "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
519 | "dev": true,
520 | "license": "MIT",
521 | "dependencies": {
522 | "es-errors": "^1.3.0",
523 | "function-bind": "^1.1.2"
524 | },
525 | "engines": {
526 | "node": ">= 0.4"
527 | }
528 | },
529 | "node_modules/call-bound": {
530 | "version": "1.0.4",
531 | "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
532 | "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
533 | "dev": true,
534 | "license": "MIT",
535 | "dependencies": {
536 | "call-bind-apply-helpers": "^1.0.2",
537 | "get-intrinsic": "^1.3.0"
538 | },
539 | "engines": {
540 | "node": ">= 0.4"
541 | },
542 | "funding": {
543 | "url": "https://github.com/sponsors/ljharb"
544 | }
545 | },
546 | "node_modules/callsites": {
547 | "version": "3.1.0",
548 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
549 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
550 | "dev": true,
551 | "license": "MIT",
552 | "engines": {
553 | "node": ">=6"
554 | }
555 | },
556 | "node_modules/camelcase": {
557 | "version": "6.3.0",
558 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
559 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
560 | "dev": true,
561 | "license": "MIT",
562 | "engines": {
563 | "node": ">=10"
564 | },
565 | "funding": {
566 | "url": "https://github.com/sponsors/sindresorhus"
567 | }
568 | },
569 | "node_modules/chalk": {
570 | "version": "4.1.2",
571 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
572 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
573 | "dev": true,
574 | "license": "MIT",
575 | "dependencies": {
576 | "ansi-styles": "^4.1.0",
577 | "supports-color": "^7.1.0"
578 | },
579 | "engines": {
580 | "node": ">=10"
581 | },
582 | "funding": {
583 | "url": "https://github.com/chalk/chalk?sponsor=1"
584 | }
585 | },
586 | "node_modules/chokidar": {
587 | "version": "3.6.0",
588 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
589 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
590 | "dev": true,
591 | "license": "MIT",
592 | "dependencies": {
593 | "anymatch": "~3.1.2",
594 | "braces": "~3.0.2",
595 | "glob-parent": "~5.1.2",
596 | "is-binary-path": "~2.1.0",
597 | "is-glob": "~4.0.1",
598 | "normalize-path": "~3.0.0",
599 | "readdirp": "~3.6.0"
600 | },
601 | "engines": {
602 | "node": ">= 8.10.0"
603 | },
604 | "funding": {
605 | "url": "https://paulmillr.com/funding/"
606 | },
607 | "optionalDependencies": {
608 | "fsevents": "~2.3.2"
609 | }
610 | },
611 | "node_modules/chokidar/node_modules/glob-parent": {
612 | "version": "5.1.2",
613 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
614 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
615 | "dev": true,
616 | "license": "ISC",
617 | "dependencies": {
618 | "is-glob": "^4.0.1"
619 | },
620 | "engines": {
621 | "node": ">= 6"
622 | }
623 | },
624 | "node_modules/cliui": {
625 | "version": "7.0.4",
626 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
627 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
628 | "dev": true,
629 | "license": "ISC",
630 | "dependencies": {
631 | "string-width": "^4.2.0",
632 | "strip-ansi": "^6.0.0",
633 | "wrap-ansi": "^7.0.0"
634 | }
635 | },
636 | "node_modules/color-convert": {
637 | "version": "2.0.1",
638 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
639 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
640 | "dev": true,
641 | "license": "MIT",
642 | "dependencies": {
643 | "color-name": "~1.1.4"
644 | },
645 | "engines": {
646 | "node": ">=7.0.0"
647 | }
648 | },
649 | "node_modules/color-name": {
650 | "version": "1.1.4",
651 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
652 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
653 | "dev": true,
654 | "license": "MIT"
655 | },
656 | "node_modules/concat-map": {
657 | "version": "0.0.1",
658 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
659 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
660 | "dev": true,
661 | "license": "MIT"
662 | },
663 | "node_modules/confusing-browser-globals": {
664 | "version": "1.0.11",
665 | "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
666 | "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
667 | "dev": true,
668 | "license": "MIT"
669 | },
670 | "node_modules/cross-spawn": {
671 | "version": "7.0.6",
672 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
673 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
674 | "dev": true,
675 | "license": "MIT",
676 | "dependencies": {
677 | "path-key": "^3.1.0",
678 | "shebang-command": "^2.0.0",
679 | "which": "^2.0.1"
680 | },
681 | "engines": {
682 | "node": ">= 8"
683 | }
684 | },
685 | "node_modules/data-view-buffer": {
686 | "version": "1.0.2",
687 | "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
688 | "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
689 | "dev": true,
690 | "license": "MIT",
691 | "peer": true,
692 | "dependencies": {
693 | "call-bound": "^1.0.3",
694 | "es-errors": "^1.3.0",
695 | "is-data-view": "^1.0.2"
696 | },
697 | "engines": {
698 | "node": ">= 0.4"
699 | },
700 | "funding": {
701 | "url": "https://github.com/sponsors/ljharb"
702 | }
703 | },
704 | "node_modules/data-view-byte-length": {
705 | "version": "1.0.2",
706 | "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
707 | "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
708 | "dev": true,
709 | "license": "MIT",
710 | "peer": true,
711 | "dependencies": {
712 | "call-bound": "^1.0.3",
713 | "es-errors": "^1.3.0",
714 | "is-data-view": "^1.0.2"
715 | },
716 | "engines": {
717 | "node": ">= 0.4"
718 | },
719 | "funding": {
720 | "url": "https://github.com/sponsors/inspect-js"
721 | }
722 | },
723 | "node_modules/data-view-byte-offset": {
724 | "version": "1.0.1",
725 | "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
726 | "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
727 | "dev": true,
728 | "license": "MIT",
729 | "peer": true,
730 | "dependencies": {
731 | "call-bound": "^1.0.2",
732 | "es-errors": "^1.3.0",
733 | "is-data-view": "^1.0.1"
734 | },
735 | "engines": {
736 | "node": ">= 0.4"
737 | },
738 | "funding": {
739 | "url": "https://github.com/sponsors/ljharb"
740 | }
741 | },
742 | "node_modules/debug": {
743 | "version": "4.4.0",
744 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
745 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
746 | "dev": true,
747 | "license": "MIT",
748 | "dependencies": {
749 | "ms": "^2.1.3"
750 | },
751 | "engines": {
752 | "node": ">=6.0"
753 | },
754 | "peerDependenciesMeta": {
755 | "supports-color": {
756 | "optional": true
757 | }
758 | }
759 | },
760 | "node_modules/decamelize": {
761 | "version": "4.0.0",
762 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
763 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
764 | "dev": true,
765 | "license": "MIT",
766 | "engines": {
767 | "node": ">=10"
768 | },
769 | "funding": {
770 | "url": "https://github.com/sponsors/sindresorhus"
771 | }
772 | },
773 | "node_modules/deep-is": {
774 | "version": "0.1.4",
775 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
776 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
777 | "dev": true,
778 | "license": "MIT"
779 | },
780 | "node_modules/define-data-property": {
781 | "version": "1.1.4",
782 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
783 | "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
784 | "dev": true,
785 | "license": "MIT",
786 | "dependencies": {
787 | "es-define-property": "^1.0.0",
788 | "es-errors": "^1.3.0",
789 | "gopd": "^1.0.1"
790 | },
791 | "engines": {
792 | "node": ">= 0.4"
793 | },
794 | "funding": {
795 | "url": "https://github.com/sponsors/ljharb"
796 | }
797 | },
798 | "node_modules/define-properties": {
799 | "version": "1.2.1",
800 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
801 | "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
802 | "dev": true,
803 | "license": "MIT",
804 | "dependencies": {
805 | "define-data-property": "^1.0.1",
806 | "has-property-descriptors": "^1.0.0",
807 | "object-keys": "^1.1.1"
808 | },
809 | "engines": {
810 | "node": ">= 0.4"
811 | },
812 | "funding": {
813 | "url": "https://github.com/sponsors/ljharb"
814 | }
815 | },
816 | "node_modules/diff": {
817 | "version": "5.2.0",
818 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
819 | "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
820 | "dev": true,
821 | "license": "BSD-3-Clause",
822 | "engines": {
823 | "node": ">=0.3.1"
824 | }
825 | },
826 | "node_modules/doctrine": {
827 | "version": "3.0.0",
828 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
829 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
830 | "dev": true,
831 | "license": "Apache-2.0",
832 | "dependencies": {
833 | "esutils": "^2.0.2"
834 | },
835 | "engines": {
836 | "node": ">=6.0.0"
837 | }
838 | },
839 | "node_modules/dunder-proto": {
840 | "version": "1.0.1",
841 | "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
842 | "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
843 | "dev": true,
844 | "license": "MIT",
845 | "dependencies": {
846 | "call-bind-apply-helpers": "^1.0.1",
847 | "es-errors": "^1.3.0",
848 | "gopd": "^1.2.0"
849 | },
850 | "engines": {
851 | "node": ">= 0.4"
852 | }
853 | },
854 | "node_modules/emoji-regex": {
855 | "version": "8.0.0",
856 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
857 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
858 | "dev": true,
859 | "license": "MIT"
860 | },
861 | "node_modules/es-abstract": {
862 | "version": "1.23.9",
863 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
864 | "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
865 | "dev": true,
866 | "license": "MIT",
867 | "peer": true,
868 | "dependencies": {
869 | "array-buffer-byte-length": "^1.0.2",
870 | "arraybuffer.prototype.slice": "^1.0.4",
871 | "available-typed-arrays": "^1.0.7",
872 | "call-bind": "^1.0.8",
873 | "call-bound": "^1.0.3",
874 | "data-view-buffer": "^1.0.2",
875 | "data-view-byte-length": "^1.0.2",
876 | "data-view-byte-offset": "^1.0.1",
877 | "es-define-property": "^1.0.1",
878 | "es-errors": "^1.3.0",
879 | "es-object-atoms": "^1.0.0",
880 | "es-set-tostringtag": "^2.1.0",
881 | "es-to-primitive": "^1.3.0",
882 | "function.prototype.name": "^1.1.8",
883 | "get-intrinsic": "^1.2.7",
884 | "get-proto": "^1.0.0",
885 | "get-symbol-description": "^1.1.0",
886 | "globalthis": "^1.0.4",
887 | "gopd": "^1.2.0",
888 | "has-property-descriptors": "^1.0.2",
889 | "has-proto": "^1.2.0",
890 | "has-symbols": "^1.1.0",
891 | "hasown": "^2.0.2",
892 | "internal-slot": "^1.1.0",
893 | "is-array-buffer": "^3.0.5",
894 | "is-callable": "^1.2.7",
895 | "is-data-view": "^1.0.2",
896 | "is-regex": "^1.2.1",
897 | "is-shared-array-buffer": "^1.0.4",
898 | "is-string": "^1.1.1",
899 | "is-typed-array": "^1.1.15",
900 | "is-weakref": "^1.1.0",
901 | "math-intrinsics": "^1.1.0",
902 | "object-inspect": "^1.13.3",
903 | "object-keys": "^1.1.1",
904 | "object.assign": "^4.1.7",
905 | "own-keys": "^1.0.1",
906 | "regexp.prototype.flags": "^1.5.3",
907 | "safe-array-concat": "^1.1.3",
908 | "safe-push-apply": "^1.0.0",
909 | "safe-regex-test": "^1.1.0",
910 | "set-proto": "^1.0.0",
911 | "string.prototype.trim": "^1.2.10",
912 | "string.prototype.trimend": "^1.0.9",
913 | "string.prototype.trimstart": "^1.0.8",
914 | "typed-array-buffer": "^1.0.3",
915 | "typed-array-byte-length": "^1.0.3",
916 | "typed-array-byte-offset": "^1.0.4",
917 | "typed-array-length": "^1.0.7",
918 | "unbox-primitive": "^1.1.0",
919 | "which-typed-array": "^1.1.18"
920 | },
921 | "engines": {
922 | "node": ">= 0.4"
923 | },
924 | "funding": {
925 | "url": "https://github.com/sponsors/ljharb"
926 | }
927 | },
928 | "node_modules/es-define-property": {
929 | "version": "1.0.1",
930 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
931 | "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
932 | "dev": true,
933 | "license": "MIT",
934 | "engines": {
935 | "node": ">= 0.4"
936 | }
937 | },
938 | "node_modules/es-errors": {
939 | "version": "1.3.0",
940 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
941 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
942 | "dev": true,
943 | "license": "MIT",
944 | "engines": {
945 | "node": ">= 0.4"
946 | }
947 | },
948 | "node_modules/es-object-atoms": {
949 | "version": "1.1.1",
950 | "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
951 | "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
952 | "dev": true,
953 | "license": "MIT",
954 | "dependencies": {
955 | "es-errors": "^1.3.0"
956 | },
957 | "engines": {
958 | "node": ">= 0.4"
959 | }
960 | },
961 | "node_modules/es-set-tostringtag": {
962 | "version": "2.1.0",
963 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
964 | "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
965 | "dev": true,
966 | "license": "MIT",
967 | "peer": true,
968 | "dependencies": {
969 | "es-errors": "^1.3.0",
970 | "get-intrinsic": "^1.2.6",
971 | "has-tostringtag": "^1.0.2",
972 | "hasown": "^2.0.2"
973 | },
974 | "engines": {
975 | "node": ">= 0.4"
976 | }
977 | },
978 | "node_modules/es-shim-unscopables": {
979 | "version": "1.1.0",
980 | "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
981 | "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
982 | "dev": true,
983 | "license": "MIT",
984 | "peer": true,
985 | "dependencies": {
986 | "hasown": "^2.0.2"
987 | },
988 | "engines": {
989 | "node": ">= 0.4"
990 | }
991 | },
992 | "node_modules/es-to-primitive": {
993 | "version": "1.3.0",
994 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
995 | "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
996 | "dev": true,
997 | "license": "MIT",
998 | "peer": true,
999 | "dependencies": {
1000 | "is-callable": "^1.2.7",
1001 | "is-date-object": "^1.0.5",
1002 | "is-symbol": "^1.0.4"
1003 | },
1004 | "engines": {
1005 | "node": ">= 0.4"
1006 | },
1007 | "funding": {
1008 | "url": "https://github.com/sponsors/ljharb"
1009 | }
1010 | },
1011 | "node_modules/escalade": {
1012 | "version": "3.2.0",
1013 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
1014 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
1015 | "dev": true,
1016 | "license": "MIT",
1017 | "engines": {
1018 | "node": ">=6"
1019 | }
1020 | },
1021 | "node_modules/escape-string-regexp": {
1022 | "version": "4.0.0",
1023 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1024 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1025 | "dev": true,
1026 | "license": "MIT",
1027 | "engines": {
1028 | "node": ">=10"
1029 | },
1030 | "funding": {
1031 | "url": "https://github.com/sponsors/sindresorhus"
1032 | }
1033 | },
1034 | "node_modules/eslint": {
1035 | "version": "8.57.1",
1036 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
1037 | "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
1038 | "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
1039 | "dev": true,
1040 | "license": "MIT",
1041 | "dependencies": {
1042 | "@eslint-community/eslint-utils": "^4.2.0",
1043 | "@eslint-community/regexpp": "^4.6.1",
1044 | "@eslint/eslintrc": "^2.1.4",
1045 | "@eslint/js": "8.57.1",
1046 | "@humanwhocodes/config-array": "^0.13.0",
1047 | "@humanwhocodes/module-importer": "^1.0.1",
1048 | "@nodelib/fs.walk": "^1.2.8",
1049 | "@ungap/structured-clone": "^1.2.0",
1050 | "ajv": "^6.12.4",
1051 | "chalk": "^4.0.0",
1052 | "cross-spawn": "^7.0.2",
1053 | "debug": "^4.3.2",
1054 | "doctrine": "^3.0.0",
1055 | "escape-string-regexp": "^4.0.0",
1056 | "eslint-scope": "^7.2.2",
1057 | "eslint-visitor-keys": "^3.4.3",
1058 | "espree": "^9.6.1",
1059 | "esquery": "^1.4.2",
1060 | "esutils": "^2.0.2",
1061 | "fast-deep-equal": "^3.1.3",
1062 | "file-entry-cache": "^6.0.1",
1063 | "find-up": "^5.0.0",
1064 | "glob-parent": "^6.0.2",
1065 | "globals": "^13.19.0",
1066 | "graphemer": "^1.4.0",
1067 | "ignore": "^5.2.0",
1068 | "imurmurhash": "^0.1.4",
1069 | "is-glob": "^4.0.0",
1070 | "is-path-inside": "^3.0.3",
1071 | "js-yaml": "^4.1.0",
1072 | "json-stable-stringify-without-jsonify": "^1.0.1",
1073 | "levn": "^0.4.1",
1074 | "lodash.merge": "^4.6.2",
1075 | "minimatch": "^3.1.2",
1076 | "natural-compare": "^1.4.0",
1077 | "optionator": "^0.9.3",
1078 | "strip-ansi": "^6.0.1",
1079 | "text-table": "^0.2.0"
1080 | },
1081 | "bin": {
1082 | "eslint": "bin/eslint.js"
1083 | },
1084 | "engines": {
1085 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1086 | },
1087 | "funding": {
1088 | "url": "https://opencollective.com/eslint"
1089 | }
1090 | },
1091 | "node_modules/eslint-config-airbnb-base": {
1092 | "version": "15.0.0",
1093 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
1094 | "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
1095 | "dev": true,
1096 | "license": "MIT",
1097 | "dependencies": {
1098 | "confusing-browser-globals": "^1.0.10",
1099 | "object.assign": "^4.1.2",
1100 | "object.entries": "^1.1.5",
1101 | "semver": "^6.3.0"
1102 | },
1103 | "engines": {
1104 | "node": "^10.12.0 || >=12.0.0"
1105 | },
1106 | "peerDependencies": {
1107 | "eslint": "^7.32.0 || ^8.2.0",
1108 | "eslint-plugin-import": "^2.25.2"
1109 | }
1110 | },
1111 | "node_modules/eslint-config-prettier": {
1112 | "version": "10.1.1",
1113 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz",
1114 | "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==",
1115 | "dev": true,
1116 | "license": "MIT",
1117 | "bin": {
1118 | "eslint-config-prettier": "bin/cli.js"
1119 | },
1120 | "peerDependencies": {
1121 | "eslint": ">=7.0.0"
1122 | }
1123 | },
1124 | "node_modules/eslint-import-resolver-node": {
1125 | "version": "0.3.9",
1126 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
1127 | "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
1128 | "dev": true,
1129 | "license": "MIT",
1130 | "peer": true,
1131 | "dependencies": {
1132 | "debug": "^3.2.7",
1133 | "is-core-module": "^2.13.0",
1134 | "resolve": "^1.22.4"
1135 | }
1136 | },
1137 | "node_modules/eslint-import-resolver-node/node_modules/debug": {
1138 | "version": "3.2.7",
1139 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1140 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1141 | "dev": true,
1142 | "license": "MIT",
1143 | "peer": true,
1144 | "dependencies": {
1145 | "ms": "^2.1.1"
1146 | }
1147 | },
1148 | "node_modules/eslint-module-utils": {
1149 | "version": "2.12.0",
1150 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
1151 | "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
1152 | "dev": true,
1153 | "license": "MIT",
1154 | "peer": true,
1155 | "dependencies": {
1156 | "debug": "^3.2.7"
1157 | },
1158 | "engines": {
1159 | "node": ">=4"
1160 | },
1161 | "peerDependenciesMeta": {
1162 | "eslint": {
1163 | "optional": true
1164 | }
1165 | }
1166 | },
1167 | "node_modules/eslint-module-utils/node_modules/debug": {
1168 | "version": "3.2.7",
1169 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1170 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1171 | "dev": true,
1172 | "license": "MIT",
1173 | "peer": true,
1174 | "dependencies": {
1175 | "ms": "^2.1.1"
1176 | }
1177 | },
1178 | "node_modules/eslint-plugin-import": {
1179 | "version": "2.31.0",
1180 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
1181 | "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
1182 | "dev": true,
1183 | "license": "MIT",
1184 | "peer": true,
1185 | "dependencies": {
1186 | "@rtsao/scc": "^1.1.0",
1187 | "array-includes": "^3.1.8",
1188 | "array.prototype.findlastindex": "^1.2.5",
1189 | "array.prototype.flat": "^1.3.2",
1190 | "array.prototype.flatmap": "^1.3.2",
1191 | "debug": "^3.2.7",
1192 | "doctrine": "^2.1.0",
1193 | "eslint-import-resolver-node": "^0.3.9",
1194 | "eslint-module-utils": "^2.12.0",
1195 | "hasown": "^2.0.2",
1196 | "is-core-module": "^2.15.1",
1197 | "is-glob": "^4.0.3",
1198 | "minimatch": "^3.1.2",
1199 | "object.fromentries": "^2.0.8",
1200 | "object.groupby": "^1.0.3",
1201 | "object.values": "^1.2.0",
1202 | "semver": "^6.3.1",
1203 | "string.prototype.trimend": "^1.0.8",
1204 | "tsconfig-paths": "^3.15.0"
1205 | },
1206 | "engines": {
1207 | "node": ">=4"
1208 | },
1209 | "peerDependencies": {
1210 | "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
1211 | }
1212 | },
1213 | "node_modules/eslint-plugin-import/node_modules/debug": {
1214 | "version": "3.2.7",
1215 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1216 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1217 | "dev": true,
1218 | "license": "MIT",
1219 | "peer": true,
1220 | "dependencies": {
1221 | "ms": "^2.1.1"
1222 | }
1223 | },
1224 | "node_modules/eslint-plugin-import/node_modules/doctrine": {
1225 | "version": "2.1.0",
1226 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
1227 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
1228 | "dev": true,
1229 | "license": "Apache-2.0",
1230 | "peer": true,
1231 | "dependencies": {
1232 | "esutils": "^2.0.2"
1233 | },
1234 | "engines": {
1235 | "node": ">=0.10.0"
1236 | }
1237 | },
1238 | "node_modules/eslint-plugin-prettier": {
1239 | "version": "5.2.3",
1240 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz",
1241 | "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==",
1242 | "dev": true,
1243 | "license": "MIT",
1244 | "dependencies": {
1245 | "prettier-linter-helpers": "^1.0.0",
1246 | "synckit": "^0.9.1"
1247 | },
1248 | "engines": {
1249 | "node": "^14.18.0 || >=16.0.0"
1250 | },
1251 | "funding": {
1252 | "url": "https://opencollective.com/eslint-plugin-prettier"
1253 | },
1254 | "peerDependencies": {
1255 | "@types/eslint": ">=8.0.0",
1256 | "eslint": ">=8.0.0",
1257 | "eslint-config-prettier": "*",
1258 | "prettier": ">=3.0.0"
1259 | },
1260 | "peerDependenciesMeta": {
1261 | "@types/eslint": {
1262 | "optional": true
1263 | },
1264 | "eslint-config-prettier": {
1265 | "optional": true
1266 | }
1267 | }
1268 | },
1269 | "node_modules/eslint-scope": {
1270 | "version": "7.2.2",
1271 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
1272 | "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
1273 | "dev": true,
1274 | "license": "BSD-2-Clause",
1275 | "dependencies": {
1276 | "esrecurse": "^4.3.0",
1277 | "estraverse": "^5.2.0"
1278 | },
1279 | "engines": {
1280 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1281 | },
1282 | "funding": {
1283 | "url": "https://opencollective.com/eslint"
1284 | }
1285 | },
1286 | "node_modules/eslint-visitor-keys": {
1287 | "version": "3.4.3",
1288 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
1289 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
1290 | "dev": true,
1291 | "license": "Apache-2.0",
1292 | "engines": {
1293 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1294 | },
1295 | "funding": {
1296 | "url": "https://opencollective.com/eslint"
1297 | }
1298 | },
1299 | "node_modules/espree": {
1300 | "version": "9.6.1",
1301 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
1302 | "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
1303 | "dev": true,
1304 | "license": "BSD-2-Clause",
1305 | "dependencies": {
1306 | "acorn": "^8.9.0",
1307 | "acorn-jsx": "^5.3.2",
1308 | "eslint-visitor-keys": "^3.4.1"
1309 | },
1310 | "engines": {
1311 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1312 | },
1313 | "funding": {
1314 | "url": "https://opencollective.com/eslint"
1315 | }
1316 | },
1317 | "node_modules/esquery": {
1318 | "version": "1.6.0",
1319 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
1320 | "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
1321 | "dev": true,
1322 | "license": "BSD-3-Clause",
1323 | "dependencies": {
1324 | "estraverse": "^5.1.0"
1325 | },
1326 | "engines": {
1327 | "node": ">=0.10"
1328 | }
1329 | },
1330 | "node_modules/esrecurse": {
1331 | "version": "4.3.0",
1332 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1333 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1334 | "dev": true,
1335 | "license": "BSD-2-Clause",
1336 | "dependencies": {
1337 | "estraverse": "^5.2.0"
1338 | },
1339 | "engines": {
1340 | "node": ">=4.0"
1341 | }
1342 | },
1343 | "node_modules/estraverse": {
1344 | "version": "5.3.0",
1345 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1346 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1347 | "dev": true,
1348 | "license": "BSD-2-Clause",
1349 | "engines": {
1350 | "node": ">=4.0"
1351 | }
1352 | },
1353 | "node_modules/esutils": {
1354 | "version": "2.0.3",
1355 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1356 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1357 | "dev": true,
1358 | "license": "BSD-2-Clause",
1359 | "engines": {
1360 | "node": ">=0.10.0"
1361 | }
1362 | },
1363 | "node_modules/fast-deep-equal": {
1364 | "version": "3.1.3",
1365 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1366 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1367 | "dev": true,
1368 | "license": "MIT"
1369 | },
1370 | "node_modules/fast-diff": {
1371 | "version": "1.3.0",
1372 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
1373 | "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
1374 | "dev": true,
1375 | "license": "Apache-2.0"
1376 | },
1377 | "node_modules/fast-json-stable-stringify": {
1378 | "version": "2.1.0",
1379 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1380 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1381 | "dev": true,
1382 | "license": "MIT"
1383 | },
1384 | "node_modules/fast-levenshtein": {
1385 | "version": "2.0.6",
1386 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1387 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
1388 | "dev": true,
1389 | "license": "MIT"
1390 | },
1391 | "node_modules/fastq": {
1392 | "version": "1.19.1",
1393 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
1394 | "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
1395 | "dev": true,
1396 | "license": "ISC",
1397 | "dependencies": {
1398 | "reusify": "^1.0.4"
1399 | }
1400 | },
1401 | "node_modules/file-entry-cache": {
1402 | "version": "6.0.1",
1403 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1404 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1405 | "dev": true,
1406 | "license": "MIT",
1407 | "dependencies": {
1408 | "flat-cache": "^3.0.4"
1409 | },
1410 | "engines": {
1411 | "node": "^10.12.0 || >=12.0.0"
1412 | }
1413 | },
1414 | "node_modules/fill-range": {
1415 | "version": "7.1.1",
1416 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
1417 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
1418 | "dev": true,
1419 | "license": "MIT",
1420 | "dependencies": {
1421 | "to-regex-range": "^5.0.1"
1422 | },
1423 | "engines": {
1424 | "node": ">=8"
1425 | }
1426 | },
1427 | "node_modules/find-up": {
1428 | "version": "5.0.0",
1429 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
1430 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
1431 | "dev": true,
1432 | "license": "MIT",
1433 | "dependencies": {
1434 | "locate-path": "^6.0.0",
1435 | "path-exists": "^4.0.0"
1436 | },
1437 | "engines": {
1438 | "node": ">=10"
1439 | },
1440 | "funding": {
1441 | "url": "https://github.com/sponsors/sindresorhus"
1442 | }
1443 | },
1444 | "node_modules/flat": {
1445 | "version": "5.0.2",
1446 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
1447 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
1448 | "dev": true,
1449 | "license": "BSD-3-Clause",
1450 | "bin": {
1451 | "flat": "cli.js"
1452 | }
1453 | },
1454 | "node_modules/flat-cache": {
1455 | "version": "3.2.0",
1456 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
1457 | "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
1458 | "dev": true,
1459 | "license": "MIT",
1460 | "dependencies": {
1461 | "flatted": "^3.2.9",
1462 | "keyv": "^4.5.3",
1463 | "rimraf": "^3.0.2"
1464 | },
1465 | "engines": {
1466 | "node": "^10.12.0 || >=12.0.0"
1467 | }
1468 | },
1469 | "node_modules/flatted": {
1470 | "version": "3.3.3",
1471 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
1472 | "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
1473 | "dev": true,
1474 | "license": "ISC"
1475 | },
1476 | "node_modules/for-each": {
1477 | "version": "0.3.5",
1478 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
1479 | "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
1480 | "dev": true,
1481 | "license": "MIT",
1482 | "peer": true,
1483 | "dependencies": {
1484 | "is-callable": "^1.2.7"
1485 | },
1486 | "engines": {
1487 | "node": ">= 0.4"
1488 | },
1489 | "funding": {
1490 | "url": "https://github.com/sponsors/ljharb"
1491 | }
1492 | },
1493 | "node_modules/fs.realpath": {
1494 | "version": "1.0.0",
1495 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1496 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1497 | "dev": true,
1498 | "license": "ISC"
1499 | },
1500 | "node_modules/fsevents": {
1501 | "version": "2.3.3",
1502 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1503 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1504 | "dev": true,
1505 | "hasInstallScript": true,
1506 | "license": "MIT",
1507 | "optional": true,
1508 | "os": [
1509 | "darwin"
1510 | ],
1511 | "engines": {
1512 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1513 | }
1514 | },
1515 | "node_modules/function-bind": {
1516 | "version": "1.1.2",
1517 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
1518 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1519 | "dev": true,
1520 | "license": "MIT",
1521 | "funding": {
1522 | "url": "https://github.com/sponsors/ljharb"
1523 | }
1524 | },
1525 | "node_modules/function.prototype.name": {
1526 | "version": "1.1.8",
1527 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
1528 | "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
1529 | "dev": true,
1530 | "license": "MIT",
1531 | "peer": true,
1532 | "dependencies": {
1533 | "call-bind": "^1.0.8",
1534 | "call-bound": "^1.0.3",
1535 | "define-properties": "^1.2.1",
1536 | "functions-have-names": "^1.2.3",
1537 | "hasown": "^2.0.2",
1538 | "is-callable": "^1.2.7"
1539 | },
1540 | "engines": {
1541 | "node": ">= 0.4"
1542 | },
1543 | "funding": {
1544 | "url": "https://github.com/sponsors/ljharb"
1545 | }
1546 | },
1547 | "node_modules/functions-have-names": {
1548 | "version": "1.2.3",
1549 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
1550 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
1551 | "dev": true,
1552 | "license": "MIT",
1553 | "peer": true,
1554 | "funding": {
1555 | "url": "https://github.com/sponsors/ljharb"
1556 | }
1557 | },
1558 | "node_modules/get-caller-file": {
1559 | "version": "2.0.5",
1560 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1561 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1562 | "dev": true,
1563 | "license": "ISC",
1564 | "engines": {
1565 | "node": "6.* || 8.* || >= 10.*"
1566 | }
1567 | },
1568 | "node_modules/get-intrinsic": {
1569 | "version": "1.3.0",
1570 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
1571 | "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
1572 | "dev": true,
1573 | "license": "MIT",
1574 | "dependencies": {
1575 | "call-bind-apply-helpers": "^1.0.2",
1576 | "es-define-property": "^1.0.1",
1577 | "es-errors": "^1.3.0",
1578 | "es-object-atoms": "^1.1.1",
1579 | "function-bind": "^1.1.2",
1580 | "get-proto": "^1.0.1",
1581 | "gopd": "^1.2.0",
1582 | "has-symbols": "^1.1.0",
1583 | "hasown": "^2.0.2",
1584 | "math-intrinsics": "^1.1.0"
1585 | },
1586 | "engines": {
1587 | "node": ">= 0.4"
1588 | },
1589 | "funding": {
1590 | "url": "https://github.com/sponsors/ljharb"
1591 | }
1592 | },
1593 | "node_modules/get-proto": {
1594 | "version": "1.0.1",
1595 | "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
1596 | "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
1597 | "dev": true,
1598 | "license": "MIT",
1599 | "dependencies": {
1600 | "dunder-proto": "^1.0.1",
1601 | "es-object-atoms": "^1.0.0"
1602 | },
1603 | "engines": {
1604 | "node": ">= 0.4"
1605 | }
1606 | },
1607 | "node_modules/get-symbol-description": {
1608 | "version": "1.1.0",
1609 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
1610 | "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
1611 | "dev": true,
1612 | "license": "MIT",
1613 | "peer": true,
1614 | "dependencies": {
1615 | "call-bound": "^1.0.3",
1616 | "es-errors": "^1.3.0",
1617 | "get-intrinsic": "^1.2.6"
1618 | },
1619 | "engines": {
1620 | "node": ">= 0.4"
1621 | },
1622 | "funding": {
1623 | "url": "https://github.com/sponsors/ljharb"
1624 | }
1625 | },
1626 | "node_modules/glob": {
1627 | "version": "8.1.0",
1628 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
1629 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
1630 | "deprecated": "Glob versions prior to v9 are no longer supported",
1631 | "dev": true,
1632 | "license": "ISC",
1633 | "dependencies": {
1634 | "fs.realpath": "^1.0.0",
1635 | "inflight": "^1.0.4",
1636 | "inherits": "2",
1637 | "minimatch": "^5.0.1",
1638 | "once": "^1.3.0"
1639 | },
1640 | "engines": {
1641 | "node": ">=12"
1642 | },
1643 | "funding": {
1644 | "url": "https://github.com/sponsors/isaacs"
1645 | }
1646 | },
1647 | "node_modules/glob-parent": {
1648 | "version": "6.0.2",
1649 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1650 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1651 | "dev": true,
1652 | "license": "ISC",
1653 | "dependencies": {
1654 | "is-glob": "^4.0.3"
1655 | },
1656 | "engines": {
1657 | "node": ">=10.13.0"
1658 | }
1659 | },
1660 | "node_modules/glob/node_modules/brace-expansion": {
1661 | "version": "2.0.1",
1662 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1663 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1664 | "dev": true,
1665 | "license": "MIT",
1666 | "dependencies": {
1667 | "balanced-match": "^1.0.0"
1668 | }
1669 | },
1670 | "node_modules/glob/node_modules/minimatch": {
1671 | "version": "5.1.6",
1672 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
1673 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
1674 | "dev": true,
1675 | "license": "ISC",
1676 | "dependencies": {
1677 | "brace-expansion": "^2.0.1"
1678 | },
1679 | "engines": {
1680 | "node": ">=10"
1681 | }
1682 | },
1683 | "node_modules/globals": {
1684 | "version": "13.24.0",
1685 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
1686 | "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
1687 | "dev": true,
1688 | "license": "MIT",
1689 | "dependencies": {
1690 | "type-fest": "^0.20.2"
1691 | },
1692 | "engines": {
1693 | "node": ">=8"
1694 | },
1695 | "funding": {
1696 | "url": "https://github.com/sponsors/sindresorhus"
1697 | }
1698 | },
1699 | "node_modules/globalthis": {
1700 | "version": "1.0.4",
1701 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
1702 | "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
1703 | "dev": true,
1704 | "license": "MIT",
1705 | "peer": true,
1706 | "dependencies": {
1707 | "define-properties": "^1.2.1",
1708 | "gopd": "^1.0.1"
1709 | },
1710 | "engines": {
1711 | "node": ">= 0.4"
1712 | },
1713 | "funding": {
1714 | "url": "https://github.com/sponsors/ljharb"
1715 | }
1716 | },
1717 | "node_modules/gopd": {
1718 | "version": "1.2.0",
1719 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
1720 | "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
1721 | "dev": true,
1722 | "license": "MIT",
1723 | "engines": {
1724 | "node": ">= 0.4"
1725 | },
1726 | "funding": {
1727 | "url": "https://github.com/sponsors/ljharb"
1728 | }
1729 | },
1730 | "node_modules/graphemer": {
1731 | "version": "1.4.0",
1732 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
1733 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
1734 | "dev": true,
1735 | "license": "MIT"
1736 | },
1737 | "node_modules/has-bigints": {
1738 | "version": "1.1.0",
1739 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
1740 | "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
1741 | "dev": true,
1742 | "license": "MIT",
1743 | "peer": true,
1744 | "engines": {
1745 | "node": ">= 0.4"
1746 | },
1747 | "funding": {
1748 | "url": "https://github.com/sponsors/ljharb"
1749 | }
1750 | },
1751 | "node_modules/has-flag": {
1752 | "version": "4.0.0",
1753 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1754 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1755 | "dev": true,
1756 | "license": "MIT",
1757 | "engines": {
1758 | "node": ">=8"
1759 | }
1760 | },
1761 | "node_modules/has-property-descriptors": {
1762 | "version": "1.0.2",
1763 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
1764 | "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
1765 | "dev": true,
1766 | "license": "MIT",
1767 | "dependencies": {
1768 | "es-define-property": "^1.0.0"
1769 | },
1770 | "funding": {
1771 | "url": "https://github.com/sponsors/ljharb"
1772 | }
1773 | },
1774 | "node_modules/has-proto": {
1775 | "version": "1.2.0",
1776 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
1777 | "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
1778 | "dev": true,
1779 | "license": "MIT",
1780 | "peer": true,
1781 | "dependencies": {
1782 | "dunder-proto": "^1.0.0"
1783 | },
1784 | "engines": {
1785 | "node": ">= 0.4"
1786 | },
1787 | "funding": {
1788 | "url": "https://github.com/sponsors/ljharb"
1789 | }
1790 | },
1791 | "node_modules/has-symbols": {
1792 | "version": "1.1.0",
1793 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
1794 | "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
1795 | "dev": true,
1796 | "license": "MIT",
1797 | "engines": {
1798 | "node": ">= 0.4"
1799 | },
1800 | "funding": {
1801 | "url": "https://github.com/sponsors/ljharb"
1802 | }
1803 | },
1804 | "node_modules/has-tostringtag": {
1805 | "version": "1.0.2",
1806 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
1807 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
1808 | "dev": true,
1809 | "license": "MIT",
1810 | "peer": true,
1811 | "dependencies": {
1812 | "has-symbols": "^1.0.3"
1813 | },
1814 | "engines": {
1815 | "node": ">= 0.4"
1816 | },
1817 | "funding": {
1818 | "url": "https://github.com/sponsors/ljharb"
1819 | }
1820 | },
1821 | "node_modules/hasown": {
1822 | "version": "2.0.2",
1823 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
1824 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
1825 | "dev": true,
1826 | "license": "MIT",
1827 | "dependencies": {
1828 | "function-bind": "^1.1.2"
1829 | },
1830 | "engines": {
1831 | "node": ">= 0.4"
1832 | }
1833 | },
1834 | "node_modules/he": {
1835 | "version": "1.2.0",
1836 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1837 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1838 | "dev": true,
1839 | "license": "MIT",
1840 | "bin": {
1841 | "he": "bin/he"
1842 | }
1843 | },
1844 | "node_modules/ignore": {
1845 | "version": "5.3.2",
1846 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
1847 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
1848 | "dev": true,
1849 | "license": "MIT",
1850 | "engines": {
1851 | "node": ">= 4"
1852 | }
1853 | },
1854 | "node_modules/import-fresh": {
1855 | "version": "3.3.1",
1856 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
1857 | "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
1858 | "dev": true,
1859 | "license": "MIT",
1860 | "dependencies": {
1861 | "parent-module": "^1.0.0",
1862 | "resolve-from": "^4.0.0"
1863 | },
1864 | "engines": {
1865 | "node": ">=6"
1866 | },
1867 | "funding": {
1868 | "url": "https://github.com/sponsors/sindresorhus"
1869 | }
1870 | },
1871 | "node_modules/imurmurhash": {
1872 | "version": "0.1.4",
1873 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1874 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
1875 | "dev": true,
1876 | "license": "MIT",
1877 | "engines": {
1878 | "node": ">=0.8.19"
1879 | }
1880 | },
1881 | "node_modules/inflight": {
1882 | "version": "1.0.6",
1883 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1884 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1885 | "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
1886 | "dev": true,
1887 | "license": "ISC",
1888 | "dependencies": {
1889 | "once": "^1.3.0",
1890 | "wrappy": "1"
1891 | }
1892 | },
1893 | "node_modules/inherits": {
1894 | "version": "2.0.4",
1895 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1896 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1897 | "dev": true,
1898 | "license": "ISC"
1899 | },
1900 | "node_modules/internal-slot": {
1901 | "version": "1.1.0",
1902 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
1903 | "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
1904 | "dev": true,
1905 | "license": "MIT",
1906 | "peer": true,
1907 | "dependencies": {
1908 | "es-errors": "^1.3.0",
1909 | "hasown": "^2.0.2",
1910 | "side-channel": "^1.1.0"
1911 | },
1912 | "engines": {
1913 | "node": ">= 0.4"
1914 | }
1915 | },
1916 | "node_modules/is-array-buffer": {
1917 | "version": "3.0.5",
1918 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
1919 | "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
1920 | "dev": true,
1921 | "license": "MIT",
1922 | "peer": true,
1923 | "dependencies": {
1924 | "call-bind": "^1.0.8",
1925 | "call-bound": "^1.0.3",
1926 | "get-intrinsic": "^1.2.6"
1927 | },
1928 | "engines": {
1929 | "node": ">= 0.4"
1930 | },
1931 | "funding": {
1932 | "url": "https://github.com/sponsors/ljharb"
1933 | }
1934 | },
1935 | "node_modules/is-async-function": {
1936 | "version": "2.1.1",
1937 | "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
1938 | "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
1939 | "dev": true,
1940 | "license": "MIT",
1941 | "peer": true,
1942 | "dependencies": {
1943 | "async-function": "^1.0.0",
1944 | "call-bound": "^1.0.3",
1945 | "get-proto": "^1.0.1",
1946 | "has-tostringtag": "^1.0.2",
1947 | "safe-regex-test": "^1.1.0"
1948 | },
1949 | "engines": {
1950 | "node": ">= 0.4"
1951 | },
1952 | "funding": {
1953 | "url": "https://github.com/sponsors/ljharb"
1954 | }
1955 | },
1956 | "node_modules/is-bigint": {
1957 | "version": "1.1.0",
1958 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
1959 | "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
1960 | "dev": true,
1961 | "license": "MIT",
1962 | "peer": true,
1963 | "dependencies": {
1964 | "has-bigints": "^1.0.2"
1965 | },
1966 | "engines": {
1967 | "node": ">= 0.4"
1968 | },
1969 | "funding": {
1970 | "url": "https://github.com/sponsors/ljharb"
1971 | }
1972 | },
1973 | "node_modules/is-binary-path": {
1974 | "version": "2.1.0",
1975 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1976 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1977 | "dev": true,
1978 | "license": "MIT",
1979 | "dependencies": {
1980 | "binary-extensions": "^2.0.0"
1981 | },
1982 | "engines": {
1983 | "node": ">=8"
1984 | }
1985 | },
1986 | "node_modules/is-boolean-object": {
1987 | "version": "1.2.2",
1988 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
1989 | "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
1990 | "dev": true,
1991 | "license": "MIT",
1992 | "peer": true,
1993 | "dependencies": {
1994 | "call-bound": "^1.0.3",
1995 | "has-tostringtag": "^1.0.2"
1996 | },
1997 | "engines": {
1998 | "node": ">= 0.4"
1999 | },
2000 | "funding": {
2001 | "url": "https://github.com/sponsors/ljharb"
2002 | }
2003 | },
2004 | "node_modules/is-callable": {
2005 | "version": "1.2.7",
2006 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
2007 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
2008 | "dev": true,
2009 | "license": "MIT",
2010 | "peer": true,
2011 | "engines": {
2012 | "node": ">= 0.4"
2013 | },
2014 | "funding": {
2015 | "url": "https://github.com/sponsors/ljharb"
2016 | }
2017 | },
2018 | "node_modules/is-core-module": {
2019 | "version": "2.16.1",
2020 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
2021 | "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
2022 | "dev": true,
2023 | "license": "MIT",
2024 | "peer": true,
2025 | "dependencies": {
2026 | "hasown": "^2.0.2"
2027 | },
2028 | "engines": {
2029 | "node": ">= 0.4"
2030 | },
2031 | "funding": {
2032 | "url": "https://github.com/sponsors/ljharb"
2033 | }
2034 | },
2035 | "node_modules/is-data-view": {
2036 | "version": "1.0.2",
2037 | "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
2038 | "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
2039 | "dev": true,
2040 | "license": "MIT",
2041 | "peer": true,
2042 | "dependencies": {
2043 | "call-bound": "^1.0.2",
2044 | "get-intrinsic": "^1.2.6",
2045 | "is-typed-array": "^1.1.13"
2046 | },
2047 | "engines": {
2048 | "node": ">= 0.4"
2049 | },
2050 | "funding": {
2051 | "url": "https://github.com/sponsors/ljharb"
2052 | }
2053 | },
2054 | "node_modules/is-date-object": {
2055 | "version": "1.1.0",
2056 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
2057 | "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
2058 | "dev": true,
2059 | "license": "MIT",
2060 | "peer": true,
2061 | "dependencies": {
2062 | "call-bound": "^1.0.2",
2063 | "has-tostringtag": "^1.0.2"
2064 | },
2065 | "engines": {
2066 | "node": ">= 0.4"
2067 | },
2068 | "funding": {
2069 | "url": "https://github.com/sponsors/ljharb"
2070 | }
2071 | },
2072 | "node_modules/is-extglob": {
2073 | "version": "2.1.1",
2074 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2075 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2076 | "dev": true,
2077 | "license": "MIT",
2078 | "engines": {
2079 | "node": ">=0.10.0"
2080 | }
2081 | },
2082 | "node_modules/is-finalizationregistry": {
2083 | "version": "1.1.1",
2084 | "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
2085 | "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
2086 | "dev": true,
2087 | "license": "MIT",
2088 | "peer": true,
2089 | "dependencies": {
2090 | "call-bound": "^1.0.3"
2091 | },
2092 | "engines": {
2093 | "node": ">= 0.4"
2094 | },
2095 | "funding": {
2096 | "url": "https://github.com/sponsors/ljharb"
2097 | }
2098 | },
2099 | "node_modules/is-fullwidth-code-point": {
2100 | "version": "3.0.0",
2101 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2102 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2103 | "dev": true,
2104 | "license": "MIT",
2105 | "engines": {
2106 | "node": ">=8"
2107 | }
2108 | },
2109 | "node_modules/is-generator-function": {
2110 | "version": "1.1.0",
2111 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
2112 | "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
2113 | "dev": true,
2114 | "license": "MIT",
2115 | "peer": true,
2116 | "dependencies": {
2117 | "call-bound": "^1.0.3",
2118 | "get-proto": "^1.0.0",
2119 | "has-tostringtag": "^1.0.2",
2120 | "safe-regex-test": "^1.1.0"
2121 | },
2122 | "engines": {
2123 | "node": ">= 0.4"
2124 | },
2125 | "funding": {
2126 | "url": "https://github.com/sponsors/ljharb"
2127 | }
2128 | },
2129 | "node_modules/is-glob": {
2130 | "version": "4.0.3",
2131 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2132 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2133 | "dev": true,
2134 | "license": "MIT",
2135 | "dependencies": {
2136 | "is-extglob": "^2.1.1"
2137 | },
2138 | "engines": {
2139 | "node": ">=0.10.0"
2140 | }
2141 | },
2142 | "node_modules/is-map": {
2143 | "version": "2.0.3",
2144 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
2145 | "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
2146 | "dev": true,
2147 | "license": "MIT",
2148 | "peer": true,
2149 | "engines": {
2150 | "node": ">= 0.4"
2151 | },
2152 | "funding": {
2153 | "url": "https://github.com/sponsors/ljharb"
2154 | }
2155 | },
2156 | "node_modules/is-number": {
2157 | "version": "7.0.0",
2158 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2159 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2160 | "dev": true,
2161 | "license": "MIT",
2162 | "engines": {
2163 | "node": ">=0.12.0"
2164 | }
2165 | },
2166 | "node_modules/is-number-object": {
2167 | "version": "1.1.1",
2168 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
2169 | "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
2170 | "dev": true,
2171 | "license": "MIT",
2172 | "peer": true,
2173 | "dependencies": {
2174 | "call-bound": "^1.0.3",
2175 | "has-tostringtag": "^1.0.2"
2176 | },
2177 | "engines": {
2178 | "node": ">= 0.4"
2179 | },
2180 | "funding": {
2181 | "url": "https://github.com/sponsors/ljharb"
2182 | }
2183 | },
2184 | "node_modules/is-path-inside": {
2185 | "version": "3.0.3",
2186 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
2187 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
2188 | "dev": true,
2189 | "license": "MIT",
2190 | "engines": {
2191 | "node": ">=8"
2192 | }
2193 | },
2194 | "node_modules/is-plain-obj": {
2195 | "version": "2.1.0",
2196 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
2197 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
2198 | "dev": true,
2199 | "license": "MIT",
2200 | "engines": {
2201 | "node": ">=8"
2202 | }
2203 | },
2204 | "node_modules/is-regex": {
2205 | "version": "1.2.1",
2206 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
2207 | "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
2208 | "dev": true,
2209 | "license": "MIT",
2210 | "peer": true,
2211 | "dependencies": {
2212 | "call-bound": "^1.0.2",
2213 | "gopd": "^1.2.0",
2214 | "has-tostringtag": "^1.0.2",
2215 | "hasown": "^2.0.2"
2216 | },
2217 | "engines": {
2218 | "node": ">= 0.4"
2219 | },
2220 | "funding": {
2221 | "url": "https://github.com/sponsors/ljharb"
2222 | }
2223 | },
2224 | "node_modules/is-set": {
2225 | "version": "2.0.3",
2226 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
2227 | "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
2228 | "dev": true,
2229 | "license": "MIT",
2230 | "peer": true,
2231 | "engines": {
2232 | "node": ">= 0.4"
2233 | },
2234 | "funding": {
2235 | "url": "https://github.com/sponsors/ljharb"
2236 | }
2237 | },
2238 | "node_modules/is-shared-array-buffer": {
2239 | "version": "1.0.4",
2240 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
2241 | "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
2242 | "dev": true,
2243 | "license": "MIT",
2244 | "peer": true,
2245 | "dependencies": {
2246 | "call-bound": "^1.0.3"
2247 | },
2248 | "engines": {
2249 | "node": ">= 0.4"
2250 | },
2251 | "funding": {
2252 | "url": "https://github.com/sponsors/ljharb"
2253 | }
2254 | },
2255 | "node_modules/is-string": {
2256 | "version": "1.1.1",
2257 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
2258 | "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
2259 | "dev": true,
2260 | "license": "MIT",
2261 | "peer": true,
2262 | "dependencies": {
2263 | "call-bound": "^1.0.3",
2264 | "has-tostringtag": "^1.0.2"
2265 | },
2266 | "engines": {
2267 | "node": ">= 0.4"
2268 | },
2269 | "funding": {
2270 | "url": "https://github.com/sponsors/ljharb"
2271 | }
2272 | },
2273 | "node_modules/is-symbol": {
2274 | "version": "1.1.1",
2275 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
2276 | "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
2277 | "dev": true,
2278 | "license": "MIT",
2279 | "peer": true,
2280 | "dependencies": {
2281 | "call-bound": "^1.0.2",
2282 | "has-symbols": "^1.1.0",
2283 | "safe-regex-test": "^1.1.0"
2284 | },
2285 | "engines": {
2286 | "node": ">= 0.4"
2287 | },
2288 | "funding": {
2289 | "url": "https://github.com/sponsors/ljharb"
2290 | }
2291 | },
2292 | "node_modules/is-typed-array": {
2293 | "version": "1.1.15",
2294 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
2295 | "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
2296 | "dev": true,
2297 | "license": "MIT",
2298 | "peer": true,
2299 | "dependencies": {
2300 | "which-typed-array": "^1.1.16"
2301 | },
2302 | "engines": {
2303 | "node": ">= 0.4"
2304 | },
2305 | "funding": {
2306 | "url": "https://github.com/sponsors/ljharb"
2307 | }
2308 | },
2309 | "node_modules/is-unicode-supported": {
2310 | "version": "0.1.0",
2311 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
2312 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
2313 | "dev": true,
2314 | "license": "MIT",
2315 | "engines": {
2316 | "node": ">=10"
2317 | },
2318 | "funding": {
2319 | "url": "https://github.com/sponsors/sindresorhus"
2320 | }
2321 | },
2322 | "node_modules/is-weakmap": {
2323 | "version": "2.0.2",
2324 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
2325 | "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
2326 | "dev": true,
2327 | "license": "MIT",
2328 | "peer": true,
2329 | "engines": {
2330 | "node": ">= 0.4"
2331 | },
2332 | "funding": {
2333 | "url": "https://github.com/sponsors/ljharb"
2334 | }
2335 | },
2336 | "node_modules/is-weakref": {
2337 | "version": "1.1.1",
2338 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
2339 | "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
2340 | "dev": true,
2341 | "license": "MIT",
2342 | "peer": true,
2343 | "dependencies": {
2344 | "call-bound": "^1.0.3"
2345 | },
2346 | "engines": {
2347 | "node": ">= 0.4"
2348 | },
2349 | "funding": {
2350 | "url": "https://github.com/sponsors/ljharb"
2351 | }
2352 | },
2353 | "node_modules/is-weakset": {
2354 | "version": "2.0.4",
2355 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
2356 | "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
2357 | "dev": true,
2358 | "license": "MIT",
2359 | "peer": true,
2360 | "dependencies": {
2361 | "call-bound": "^1.0.3",
2362 | "get-intrinsic": "^1.2.6"
2363 | },
2364 | "engines": {
2365 | "node": ">= 0.4"
2366 | },
2367 | "funding": {
2368 | "url": "https://github.com/sponsors/ljharb"
2369 | }
2370 | },
2371 | "node_modules/isarray": {
2372 | "version": "2.0.5",
2373 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
2374 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
2375 | "dev": true,
2376 | "license": "MIT",
2377 | "peer": true
2378 | },
2379 | "node_modules/isexe": {
2380 | "version": "2.0.0",
2381 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2382 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
2383 | "dev": true,
2384 | "license": "ISC"
2385 | },
2386 | "node_modules/js-yaml": {
2387 | "version": "4.1.0",
2388 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2389 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2390 | "dev": true,
2391 | "license": "MIT",
2392 | "dependencies": {
2393 | "argparse": "^2.0.1"
2394 | },
2395 | "bin": {
2396 | "js-yaml": "bin/js-yaml.js"
2397 | }
2398 | },
2399 | "node_modules/json-buffer": {
2400 | "version": "3.0.1",
2401 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
2402 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
2403 | "dev": true,
2404 | "license": "MIT"
2405 | },
2406 | "node_modules/json-schema-traverse": {
2407 | "version": "0.4.1",
2408 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2409 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2410 | "dev": true,
2411 | "license": "MIT"
2412 | },
2413 | "node_modules/json-stable-stringify-without-jsonify": {
2414 | "version": "1.0.1",
2415 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2416 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
2417 | "dev": true,
2418 | "license": "MIT"
2419 | },
2420 | "node_modules/json5": {
2421 | "version": "1.0.2",
2422 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
2423 | "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
2424 | "dev": true,
2425 | "license": "MIT",
2426 | "peer": true,
2427 | "dependencies": {
2428 | "minimist": "^1.2.0"
2429 | },
2430 | "bin": {
2431 | "json5": "lib/cli.js"
2432 | }
2433 | },
2434 | "node_modules/keyv": {
2435 | "version": "4.5.4",
2436 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
2437 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
2438 | "dev": true,
2439 | "license": "MIT",
2440 | "dependencies": {
2441 | "json-buffer": "3.0.1"
2442 | }
2443 | },
2444 | "node_modules/levn": {
2445 | "version": "0.4.1",
2446 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
2447 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
2448 | "dev": true,
2449 | "license": "MIT",
2450 | "dependencies": {
2451 | "prelude-ls": "^1.2.1",
2452 | "type-check": "~0.4.0"
2453 | },
2454 | "engines": {
2455 | "node": ">= 0.8.0"
2456 | }
2457 | },
2458 | "node_modules/locate-path": {
2459 | "version": "6.0.0",
2460 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2461 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2462 | "dev": true,
2463 | "license": "MIT",
2464 | "dependencies": {
2465 | "p-locate": "^5.0.0"
2466 | },
2467 | "engines": {
2468 | "node": ">=10"
2469 | },
2470 | "funding": {
2471 | "url": "https://github.com/sponsors/sindresorhus"
2472 | }
2473 | },
2474 | "node_modules/lodash.merge": {
2475 | "version": "4.6.2",
2476 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
2477 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2478 | "dev": true,
2479 | "license": "MIT"
2480 | },
2481 | "node_modules/log-symbols": {
2482 | "version": "4.1.0",
2483 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
2484 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
2485 | "dev": true,
2486 | "license": "MIT",
2487 | "dependencies": {
2488 | "chalk": "^4.1.0",
2489 | "is-unicode-supported": "^0.1.0"
2490 | },
2491 | "engines": {
2492 | "node": ">=10"
2493 | },
2494 | "funding": {
2495 | "url": "https://github.com/sponsors/sindresorhus"
2496 | }
2497 | },
2498 | "node_modules/math-intrinsics": {
2499 | "version": "1.1.0",
2500 | "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
2501 | "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
2502 | "dev": true,
2503 | "license": "MIT",
2504 | "engines": {
2505 | "node": ">= 0.4"
2506 | }
2507 | },
2508 | "node_modules/minimatch": {
2509 | "version": "3.1.2",
2510 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2511 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2512 | "dev": true,
2513 | "license": "ISC",
2514 | "dependencies": {
2515 | "brace-expansion": "^1.1.7"
2516 | },
2517 | "engines": {
2518 | "node": "*"
2519 | }
2520 | },
2521 | "node_modules/minimist": {
2522 | "version": "1.2.8",
2523 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
2524 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
2525 | "dev": true,
2526 | "license": "MIT",
2527 | "peer": true,
2528 | "funding": {
2529 | "url": "https://github.com/sponsors/ljharb"
2530 | }
2531 | },
2532 | "node_modules/mocha": {
2533 | "version": "10.8.2",
2534 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
2535 | "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==",
2536 | "dev": true,
2537 | "license": "MIT",
2538 | "dependencies": {
2539 | "ansi-colors": "^4.1.3",
2540 | "browser-stdout": "^1.3.1",
2541 | "chokidar": "^3.5.3",
2542 | "debug": "^4.3.5",
2543 | "diff": "^5.2.0",
2544 | "escape-string-regexp": "^4.0.0",
2545 | "find-up": "^5.0.0",
2546 | "glob": "^8.1.0",
2547 | "he": "^1.2.0",
2548 | "js-yaml": "^4.1.0",
2549 | "log-symbols": "^4.1.0",
2550 | "minimatch": "^5.1.6",
2551 | "ms": "^2.1.3",
2552 | "serialize-javascript": "^6.0.2",
2553 | "strip-json-comments": "^3.1.1",
2554 | "supports-color": "^8.1.1",
2555 | "workerpool": "^6.5.1",
2556 | "yargs": "^16.2.0",
2557 | "yargs-parser": "^20.2.9",
2558 | "yargs-unparser": "^2.0.0"
2559 | },
2560 | "bin": {
2561 | "_mocha": "bin/_mocha",
2562 | "mocha": "bin/mocha.js"
2563 | },
2564 | "engines": {
2565 | "node": ">= 14.0.0"
2566 | }
2567 | },
2568 | "node_modules/mocha/node_modules/brace-expansion": {
2569 | "version": "2.0.1",
2570 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
2571 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
2572 | "dev": true,
2573 | "license": "MIT",
2574 | "dependencies": {
2575 | "balanced-match": "^1.0.0"
2576 | }
2577 | },
2578 | "node_modules/mocha/node_modules/minimatch": {
2579 | "version": "5.1.6",
2580 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
2581 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
2582 | "dev": true,
2583 | "license": "ISC",
2584 | "dependencies": {
2585 | "brace-expansion": "^2.0.1"
2586 | },
2587 | "engines": {
2588 | "node": ">=10"
2589 | }
2590 | },
2591 | "node_modules/mocha/node_modules/supports-color": {
2592 | "version": "8.1.1",
2593 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
2594 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
2595 | "dev": true,
2596 | "license": "MIT",
2597 | "dependencies": {
2598 | "has-flag": "^4.0.0"
2599 | },
2600 | "engines": {
2601 | "node": ">=10"
2602 | },
2603 | "funding": {
2604 | "url": "https://github.com/chalk/supports-color?sponsor=1"
2605 | }
2606 | },
2607 | "node_modules/ms": {
2608 | "version": "2.1.3",
2609 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2610 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2611 | "dev": true,
2612 | "license": "MIT"
2613 | },
2614 | "node_modules/natural-compare": {
2615 | "version": "1.4.0",
2616 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2617 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2618 | "dev": true,
2619 | "license": "MIT"
2620 | },
2621 | "node_modules/normalize-path": {
2622 | "version": "3.0.0",
2623 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2624 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2625 | "dev": true,
2626 | "license": "MIT",
2627 | "engines": {
2628 | "node": ">=0.10.0"
2629 | }
2630 | },
2631 | "node_modules/object-inspect": {
2632 | "version": "1.13.4",
2633 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
2634 | "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
2635 | "dev": true,
2636 | "license": "MIT",
2637 | "peer": true,
2638 | "engines": {
2639 | "node": ">= 0.4"
2640 | },
2641 | "funding": {
2642 | "url": "https://github.com/sponsors/ljharb"
2643 | }
2644 | },
2645 | "node_modules/object-keys": {
2646 | "version": "1.1.1",
2647 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
2648 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
2649 | "dev": true,
2650 | "license": "MIT",
2651 | "engines": {
2652 | "node": ">= 0.4"
2653 | }
2654 | },
2655 | "node_modules/object.assign": {
2656 | "version": "4.1.7",
2657 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
2658 | "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
2659 | "dev": true,
2660 | "license": "MIT",
2661 | "dependencies": {
2662 | "call-bind": "^1.0.8",
2663 | "call-bound": "^1.0.3",
2664 | "define-properties": "^1.2.1",
2665 | "es-object-atoms": "^1.0.0",
2666 | "has-symbols": "^1.1.0",
2667 | "object-keys": "^1.1.1"
2668 | },
2669 | "engines": {
2670 | "node": ">= 0.4"
2671 | },
2672 | "funding": {
2673 | "url": "https://github.com/sponsors/ljharb"
2674 | }
2675 | },
2676 | "node_modules/object.entries": {
2677 | "version": "1.1.8",
2678 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
2679 | "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
2680 | "dev": true,
2681 | "license": "MIT",
2682 | "dependencies": {
2683 | "call-bind": "^1.0.7",
2684 | "define-properties": "^1.2.1",
2685 | "es-object-atoms": "^1.0.0"
2686 | },
2687 | "engines": {
2688 | "node": ">= 0.4"
2689 | }
2690 | },
2691 | "node_modules/object.fromentries": {
2692 | "version": "2.0.8",
2693 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
2694 | "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
2695 | "dev": true,
2696 | "license": "MIT",
2697 | "peer": true,
2698 | "dependencies": {
2699 | "call-bind": "^1.0.7",
2700 | "define-properties": "^1.2.1",
2701 | "es-abstract": "^1.23.2",
2702 | "es-object-atoms": "^1.0.0"
2703 | },
2704 | "engines": {
2705 | "node": ">= 0.4"
2706 | },
2707 | "funding": {
2708 | "url": "https://github.com/sponsors/ljharb"
2709 | }
2710 | },
2711 | "node_modules/object.groupby": {
2712 | "version": "1.0.3",
2713 | "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
2714 | "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
2715 | "dev": true,
2716 | "license": "MIT",
2717 | "peer": true,
2718 | "dependencies": {
2719 | "call-bind": "^1.0.7",
2720 | "define-properties": "^1.2.1",
2721 | "es-abstract": "^1.23.2"
2722 | },
2723 | "engines": {
2724 | "node": ">= 0.4"
2725 | }
2726 | },
2727 | "node_modules/object.values": {
2728 | "version": "1.2.1",
2729 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
2730 | "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
2731 | "dev": true,
2732 | "license": "MIT",
2733 | "peer": true,
2734 | "dependencies": {
2735 | "call-bind": "^1.0.8",
2736 | "call-bound": "^1.0.3",
2737 | "define-properties": "^1.2.1",
2738 | "es-object-atoms": "^1.0.0"
2739 | },
2740 | "engines": {
2741 | "node": ">= 0.4"
2742 | },
2743 | "funding": {
2744 | "url": "https://github.com/sponsors/ljharb"
2745 | }
2746 | },
2747 | "node_modules/once": {
2748 | "version": "1.4.0",
2749 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2750 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2751 | "dev": true,
2752 | "license": "ISC",
2753 | "dependencies": {
2754 | "wrappy": "1"
2755 | }
2756 | },
2757 | "node_modules/optionator": {
2758 | "version": "0.9.4",
2759 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
2760 | "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
2761 | "dev": true,
2762 | "license": "MIT",
2763 | "dependencies": {
2764 | "deep-is": "^0.1.3",
2765 | "fast-levenshtein": "^2.0.6",
2766 | "levn": "^0.4.1",
2767 | "prelude-ls": "^1.2.1",
2768 | "type-check": "^0.4.0",
2769 | "word-wrap": "^1.2.5"
2770 | },
2771 | "engines": {
2772 | "node": ">= 0.8.0"
2773 | }
2774 | },
2775 | "node_modules/own-keys": {
2776 | "version": "1.0.1",
2777 | "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
2778 | "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
2779 | "dev": true,
2780 | "license": "MIT",
2781 | "peer": true,
2782 | "dependencies": {
2783 | "get-intrinsic": "^1.2.6",
2784 | "object-keys": "^1.1.1",
2785 | "safe-push-apply": "^1.0.0"
2786 | },
2787 | "engines": {
2788 | "node": ">= 0.4"
2789 | },
2790 | "funding": {
2791 | "url": "https://github.com/sponsors/ljharb"
2792 | }
2793 | },
2794 | "node_modules/p-limit": {
2795 | "version": "3.1.0",
2796 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2797 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2798 | "dev": true,
2799 | "license": "MIT",
2800 | "dependencies": {
2801 | "yocto-queue": "^0.1.0"
2802 | },
2803 | "engines": {
2804 | "node": ">=10"
2805 | },
2806 | "funding": {
2807 | "url": "https://github.com/sponsors/sindresorhus"
2808 | }
2809 | },
2810 | "node_modules/p-locate": {
2811 | "version": "5.0.0",
2812 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2813 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2814 | "dev": true,
2815 | "license": "MIT",
2816 | "dependencies": {
2817 | "p-limit": "^3.0.2"
2818 | },
2819 | "engines": {
2820 | "node": ">=10"
2821 | },
2822 | "funding": {
2823 | "url": "https://github.com/sponsors/sindresorhus"
2824 | }
2825 | },
2826 | "node_modules/parent-module": {
2827 | "version": "1.0.1",
2828 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2829 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2830 | "dev": true,
2831 | "license": "MIT",
2832 | "dependencies": {
2833 | "callsites": "^3.0.0"
2834 | },
2835 | "engines": {
2836 | "node": ">=6"
2837 | }
2838 | },
2839 | "node_modules/path-exists": {
2840 | "version": "4.0.0",
2841 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2842 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2843 | "dev": true,
2844 | "license": "MIT",
2845 | "engines": {
2846 | "node": ">=8"
2847 | }
2848 | },
2849 | "node_modules/path-is-absolute": {
2850 | "version": "1.0.1",
2851 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2852 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2853 | "dev": true,
2854 | "license": "MIT",
2855 | "engines": {
2856 | "node": ">=0.10.0"
2857 | }
2858 | },
2859 | "node_modules/path-key": {
2860 | "version": "3.1.1",
2861 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2862 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2863 | "dev": true,
2864 | "license": "MIT",
2865 | "engines": {
2866 | "node": ">=8"
2867 | }
2868 | },
2869 | "node_modules/path-parse": {
2870 | "version": "1.0.7",
2871 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2872 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2873 | "dev": true,
2874 | "license": "MIT",
2875 | "peer": true
2876 | },
2877 | "node_modules/picomatch": {
2878 | "version": "2.3.1",
2879 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2880 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2881 | "dev": true,
2882 | "license": "MIT",
2883 | "engines": {
2884 | "node": ">=8.6"
2885 | },
2886 | "funding": {
2887 | "url": "https://github.com/sponsors/jonschlinkert"
2888 | }
2889 | },
2890 | "node_modules/possible-typed-array-names": {
2891 | "version": "1.1.0",
2892 | "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
2893 | "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
2894 | "dev": true,
2895 | "license": "MIT",
2896 | "peer": true,
2897 | "engines": {
2898 | "node": ">= 0.4"
2899 | }
2900 | },
2901 | "node_modules/prelude-ls": {
2902 | "version": "1.2.1",
2903 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2904 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2905 | "dev": true,
2906 | "license": "MIT",
2907 | "engines": {
2908 | "node": ">= 0.8.0"
2909 | }
2910 | },
2911 | "node_modules/prettier": {
2912 | "version": "3.5.3",
2913 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
2914 | "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
2915 | "dev": true,
2916 | "license": "MIT",
2917 | "bin": {
2918 | "prettier": "bin/prettier.cjs"
2919 | },
2920 | "engines": {
2921 | "node": ">=14"
2922 | },
2923 | "funding": {
2924 | "url": "https://github.com/prettier/prettier?sponsor=1"
2925 | }
2926 | },
2927 | "node_modules/prettier-linter-helpers": {
2928 | "version": "1.0.0",
2929 | "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
2930 | "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
2931 | "dev": true,
2932 | "license": "MIT",
2933 | "dependencies": {
2934 | "fast-diff": "^1.1.2"
2935 | },
2936 | "engines": {
2937 | "node": ">=6.0.0"
2938 | }
2939 | },
2940 | "node_modules/punycode": {
2941 | "version": "2.3.1",
2942 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
2943 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
2944 | "dev": true,
2945 | "license": "MIT",
2946 | "engines": {
2947 | "node": ">=6"
2948 | }
2949 | },
2950 | "node_modules/queue-microtask": {
2951 | "version": "1.2.3",
2952 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2953 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2954 | "dev": true,
2955 | "funding": [
2956 | {
2957 | "type": "github",
2958 | "url": "https://github.com/sponsors/feross"
2959 | },
2960 | {
2961 | "type": "patreon",
2962 | "url": "https://www.patreon.com/feross"
2963 | },
2964 | {
2965 | "type": "consulting",
2966 | "url": "https://feross.org/support"
2967 | }
2968 | ],
2969 | "license": "MIT"
2970 | },
2971 | "node_modules/randombytes": {
2972 | "version": "2.1.0",
2973 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
2974 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
2975 | "dev": true,
2976 | "license": "MIT",
2977 | "dependencies": {
2978 | "safe-buffer": "^5.1.0"
2979 | }
2980 | },
2981 | "node_modules/readdirp": {
2982 | "version": "3.6.0",
2983 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
2984 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
2985 | "dev": true,
2986 | "license": "MIT",
2987 | "dependencies": {
2988 | "picomatch": "^2.2.1"
2989 | },
2990 | "engines": {
2991 | "node": ">=8.10.0"
2992 | }
2993 | },
2994 | "node_modules/reflect.getprototypeof": {
2995 | "version": "1.0.10",
2996 | "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
2997 | "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
2998 | "dev": true,
2999 | "license": "MIT",
3000 | "peer": true,
3001 | "dependencies": {
3002 | "call-bind": "^1.0.8",
3003 | "define-properties": "^1.2.1",
3004 | "es-abstract": "^1.23.9",
3005 | "es-errors": "^1.3.0",
3006 | "es-object-atoms": "^1.0.0",
3007 | "get-intrinsic": "^1.2.7",
3008 | "get-proto": "^1.0.1",
3009 | "which-builtin-type": "^1.2.1"
3010 | },
3011 | "engines": {
3012 | "node": ">= 0.4"
3013 | },
3014 | "funding": {
3015 | "url": "https://github.com/sponsors/ljharb"
3016 | }
3017 | },
3018 | "node_modules/regexp.prototype.flags": {
3019 | "version": "1.5.4",
3020 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
3021 | "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
3022 | "dev": true,
3023 | "license": "MIT",
3024 | "peer": true,
3025 | "dependencies": {
3026 | "call-bind": "^1.0.8",
3027 | "define-properties": "^1.2.1",
3028 | "es-errors": "^1.3.0",
3029 | "get-proto": "^1.0.1",
3030 | "gopd": "^1.2.0",
3031 | "set-function-name": "^2.0.2"
3032 | },
3033 | "engines": {
3034 | "node": ">= 0.4"
3035 | },
3036 | "funding": {
3037 | "url": "https://github.com/sponsors/ljharb"
3038 | }
3039 | },
3040 | "node_modules/require-directory": {
3041 | "version": "2.1.1",
3042 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3043 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
3044 | "dev": true,
3045 | "license": "MIT",
3046 | "engines": {
3047 | "node": ">=0.10.0"
3048 | }
3049 | },
3050 | "node_modules/resolve": {
3051 | "version": "1.22.10",
3052 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
3053 | "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
3054 | "dev": true,
3055 | "license": "MIT",
3056 | "peer": true,
3057 | "dependencies": {
3058 | "is-core-module": "^2.16.0",
3059 | "path-parse": "^1.0.7",
3060 | "supports-preserve-symlinks-flag": "^1.0.0"
3061 | },
3062 | "bin": {
3063 | "resolve": "bin/resolve"
3064 | },
3065 | "engines": {
3066 | "node": ">= 0.4"
3067 | },
3068 | "funding": {
3069 | "url": "https://github.com/sponsors/ljharb"
3070 | }
3071 | },
3072 | "node_modules/resolve-from": {
3073 | "version": "4.0.0",
3074 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
3075 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
3076 | "dev": true,
3077 | "license": "MIT",
3078 | "engines": {
3079 | "node": ">=4"
3080 | }
3081 | },
3082 | "node_modules/reusify": {
3083 | "version": "1.1.0",
3084 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
3085 | "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
3086 | "dev": true,
3087 | "license": "MIT",
3088 | "engines": {
3089 | "iojs": ">=1.0.0",
3090 | "node": ">=0.10.0"
3091 | }
3092 | },
3093 | "node_modules/rimraf": {
3094 | "version": "3.0.2",
3095 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
3096 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
3097 | "deprecated": "Rimraf versions prior to v4 are no longer supported",
3098 | "dev": true,
3099 | "license": "ISC",
3100 | "dependencies": {
3101 | "glob": "^7.1.3"
3102 | },
3103 | "bin": {
3104 | "rimraf": "bin.js"
3105 | },
3106 | "funding": {
3107 | "url": "https://github.com/sponsors/isaacs"
3108 | }
3109 | },
3110 | "node_modules/rimraf/node_modules/glob": {
3111 | "version": "7.2.3",
3112 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
3113 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
3114 | "deprecated": "Glob versions prior to v9 are no longer supported",
3115 | "dev": true,
3116 | "license": "ISC",
3117 | "dependencies": {
3118 | "fs.realpath": "^1.0.0",
3119 | "inflight": "^1.0.4",
3120 | "inherits": "2",
3121 | "minimatch": "^3.1.1",
3122 | "once": "^1.3.0",
3123 | "path-is-absolute": "^1.0.0"
3124 | },
3125 | "engines": {
3126 | "node": "*"
3127 | },
3128 | "funding": {
3129 | "url": "https://github.com/sponsors/isaacs"
3130 | }
3131 | },
3132 | "node_modules/run-parallel": {
3133 | "version": "1.2.0",
3134 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
3135 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
3136 | "dev": true,
3137 | "funding": [
3138 | {
3139 | "type": "github",
3140 | "url": "https://github.com/sponsors/feross"
3141 | },
3142 | {
3143 | "type": "patreon",
3144 | "url": "https://www.patreon.com/feross"
3145 | },
3146 | {
3147 | "type": "consulting",
3148 | "url": "https://feross.org/support"
3149 | }
3150 | ],
3151 | "license": "MIT",
3152 | "dependencies": {
3153 | "queue-microtask": "^1.2.2"
3154 | }
3155 | },
3156 | "node_modules/safe-array-concat": {
3157 | "version": "1.1.3",
3158 | "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
3159 | "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
3160 | "dev": true,
3161 | "license": "MIT",
3162 | "peer": true,
3163 | "dependencies": {
3164 | "call-bind": "^1.0.8",
3165 | "call-bound": "^1.0.2",
3166 | "get-intrinsic": "^1.2.6",
3167 | "has-symbols": "^1.1.0",
3168 | "isarray": "^2.0.5"
3169 | },
3170 | "engines": {
3171 | "node": ">=0.4"
3172 | },
3173 | "funding": {
3174 | "url": "https://github.com/sponsors/ljharb"
3175 | }
3176 | },
3177 | "node_modules/safe-buffer": {
3178 | "version": "5.2.1",
3179 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3180 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3181 | "dev": true,
3182 | "funding": [
3183 | {
3184 | "type": "github",
3185 | "url": "https://github.com/sponsors/feross"
3186 | },
3187 | {
3188 | "type": "patreon",
3189 | "url": "https://www.patreon.com/feross"
3190 | },
3191 | {
3192 | "type": "consulting",
3193 | "url": "https://feross.org/support"
3194 | }
3195 | ],
3196 | "license": "MIT"
3197 | },
3198 | "node_modules/safe-push-apply": {
3199 | "version": "1.0.0",
3200 | "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
3201 | "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
3202 | "dev": true,
3203 | "license": "MIT",
3204 | "peer": true,
3205 | "dependencies": {
3206 | "es-errors": "^1.3.0",
3207 | "isarray": "^2.0.5"
3208 | },
3209 | "engines": {
3210 | "node": ">= 0.4"
3211 | },
3212 | "funding": {
3213 | "url": "https://github.com/sponsors/ljharb"
3214 | }
3215 | },
3216 | "node_modules/safe-regex-test": {
3217 | "version": "1.1.0",
3218 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
3219 | "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
3220 | "dev": true,
3221 | "license": "MIT",
3222 | "peer": true,
3223 | "dependencies": {
3224 | "call-bound": "^1.0.2",
3225 | "es-errors": "^1.3.0",
3226 | "is-regex": "^1.2.1"
3227 | },
3228 | "engines": {
3229 | "node": ">= 0.4"
3230 | },
3231 | "funding": {
3232 | "url": "https://github.com/sponsors/ljharb"
3233 | }
3234 | },
3235 | "node_modules/semver": {
3236 | "version": "6.3.1",
3237 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
3238 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
3239 | "dev": true,
3240 | "license": "ISC",
3241 | "bin": {
3242 | "semver": "bin/semver.js"
3243 | }
3244 | },
3245 | "node_modules/serialize-javascript": {
3246 | "version": "6.0.2",
3247 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
3248 | "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
3249 | "dev": true,
3250 | "license": "BSD-3-Clause",
3251 | "dependencies": {
3252 | "randombytes": "^2.1.0"
3253 | }
3254 | },
3255 | "node_modules/set-function-length": {
3256 | "version": "1.2.2",
3257 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
3258 | "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
3259 | "dev": true,
3260 | "license": "MIT",
3261 | "dependencies": {
3262 | "define-data-property": "^1.1.4",
3263 | "es-errors": "^1.3.0",
3264 | "function-bind": "^1.1.2",
3265 | "get-intrinsic": "^1.2.4",
3266 | "gopd": "^1.0.1",
3267 | "has-property-descriptors": "^1.0.2"
3268 | },
3269 | "engines": {
3270 | "node": ">= 0.4"
3271 | }
3272 | },
3273 | "node_modules/set-function-name": {
3274 | "version": "2.0.2",
3275 | "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
3276 | "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
3277 | "dev": true,
3278 | "license": "MIT",
3279 | "peer": true,
3280 | "dependencies": {
3281 | "define-data-property": "^1.1.4",
3282 | "es-errors": "^1.3.0",
3283 | "functions-have-names": "^1.2.3",
3284 | "has-property-descriptors": "^1.0.2"
3285 | },
3286 | "engines": {
3287 | "node": ">= 0.4"
3288 | }
3289 | },
3290 | "node_modules/set-proto": {
3291 | "version": "1.0.0",
3292 | "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
3293 | "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
3294 | "dev": true,
3295 | "license": "MIT",
3296 | "peer": true,
3297 | "dependencies": {
3298 | "dunder-proto": "^1.0.1",
3299 | "es-errors": "^1.3.0",
3300 | "es-object-atoms": "^1.0.0"
3301 | },
3302 | "engines": {
3303 | "node": ">= 0.4"
3304 | }
3305 | },
3306 | "node_modules/shebang-command": {
3307 | "version": "2.0.0",
3308 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3309 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3310 | "dev": true,
3311 | "license": "MIT",
3312 | "dependencies": {
3313 | "shebang-regex": "^3.0.0"
3314 | },
3315 | "engines": {
3316 | "node": ">=8"
3317 | }
3318 | },
3319 | "node_modules/shebang-regex": {
3320 | "version": "3.0.0",
3321 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3322 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3323 | "dev": true,
3324 | "license": "MIT",
3325 | "engines": {
3326 | "node": ">=8"
3327 | }
3328 | },
3329 | "node_modules/side-channel": {
3330 | "version": "1.1.0",
3331 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
3332 | "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
3333 | "dev": true,
3334 | "license": "MIT",
3335 | "peer": true,
3336 | "dependencies": {
3337 | "es-errors": "^1.3.0",
3338 | "object-inspect": "^1.13.3",
3339 | "side-channel-list": "^1.0.0",
3340 | "side-channel-map": "^1.0.1",
3341 | "side-channel-weakmap": "^1.0.2"
3342 | },
3343 | "engines": {
3344 | "node": ">= 0.4"
3345 | },
3346 | "funding": {
3347 | "url": "https://github.com/sponsors/ljharb"
3348 | }
3349 | },
3350 | "node_modules/side-channel-list": {
3351 | "version": "1.0.0",
3352 | "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
3353 | "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
3354 | "dev": true,
3355 | "license": "MIT",
3356 | "peer": true,
3357 | "dependencies": {
3358 | "es-errors": "^1.3.0",
3359 | "object-inspect": "^1.13.3"
3360 | },
3361 | "engines": {
3362 | "node": ">= 0.4"
3363 | },
3364 | "funding": {
3365 | "url": "https://github.com/sponsors/ljharb"
3366 | }
3367 | },
3368 | "node_modules/side-channel-map": {
3369 | "version": "1.0.1",
3370 | "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
3371 | "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
3372 | "dev": true,
3373 | "license": "MIT",
3374 | "peer": true,
3375 | "dependencies": {
3376 | "call-bound": "^1.0.2",
3377 | "es-errors": "^1.3.0",
3378 | "get-intrinsic": "^1.2.5",
3379 | "object-inspect": "^1.13.3"
3380 | },
3381 | "engines": {
3382 | "node": ">= 0.4"
3383 | },
3384 | "funding": {
3385 | "url": "https://github.com/sponsors/ljharb"
3386 | }
3387 | },
3388 | "node_modules/side-channel-weakmap": {
3389 | "version": "1.0.2",
3390 | "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
3391 | "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
3392 | "dev": true,
3393 | "license": "MIT",
3394 | "peer": true,
3395 | "dependencies": {
3396 | "call-bound": "^1.0.2",
3397 | "es-errors": "^1.3.0",
3398 | "get-intrinsic": "^1.2.5",
3399 | "object-inspect": "^1.13.3",
3400 | "side-channel-map": "^1.0.1"
3401 | },
3402 | "engines": {
3403 | "node": ">= 0.4"
3404 | },
3405 | "funding": {
3406 | "url": "https://github.com/sponsors/ljharb"
3407 | }
3408 | },
3409 | "node_modules/string-width": {
3410 | "version": "4.2.3",
3411 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3412 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3413 | "dev": true,
3414 | "license": "MIT",
3415 | "dependencies": {
3416 | "emoji-regex": "^8.0.0",
3417 | "is-fullwidth-code-point": "^3.0.0",
3418 | "strip-ansi": "^6.0.1"
3419 | },
3420 | "engines": {
3421 | "node": ">=8"
3422 | }
3423 | },
3424 | "node_modules/string.prototype.trim": {
3425 | "version": "1.2.10",
3426 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
3427 | "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
3428 | "dev": true,
3429 | "license": "MIT",
3430 | "peer": true,
3431 | "dependencies": {
3432 | "call-bind": "^1.0.8",
3433 | "call-bound": "^1.0.2",
3434 | "define-data-property": "^1.1.4",
3435 | "define-properties": "^1.2.1",
3436 | "es-abstract": "^1.23.5",
3437 | "es-object-atoms": "^1.0.0",
3438 | "has-property-descriptors": "^1.0.2"
3439 | },
3440 | "engines": {
3441 | "node": ">= 0.4"
3442 | },
3443 | "funding": {
3444 | "url": "https://github.com/sponsors/ljharb"
3445 | }
3446 | },
3447 | "node_modules/string.prototype.trimend": {
3448 | "version": "1.0.9",
3449 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
3450 | "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
3451 | "dev": true,
3452 | "license": "MIT",
3453 | "peer": true,
3454 | "dependencies": {
3455 | "call-bind": "^1.0.8",
3456 | "call-bound": "^1.0.2",
3457 | "define-properties": "^1.2.1",
3458 | "es-object-atoms": "^1.0.0"
3459 | },
3460 | "engines": {
3461 | "node": ">= 0.4"
3462 | },
3463 | "funding": {
3464 | "url": "https://github.com/sponsors/ljharb"
3465 | }
3466 | },
3467 | "node_modules/string.prototype.trimstart": {
3468 | "version": "1.0.8",
3469 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
3470 | "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
3471 | "dev": true,
3472 | "license": "MIT",
3473 | "peer": true,
3474 | "dependencies": {
3475 | "call-bind": "^1.0.7",
3476 | "define-properties": "^1.2.1",
3477 | "es-object-atoms": "^1.0.0"
3478 | },
3479 | "engines": {
3480 | "node": ">= 0.4"
3481 | },
3482 | "funding": {
3483 | "url": "https://github.com/sponsors/ljharb"
3484 | }
3485 | },
3486 | "node_modules/strip-ansi": {
3487 | "version": "6.0.1",
3488 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3489 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3490 | "dev": true,
3491 | "license": "MIT",
3492 | "dependencies": {
3493 | "ansi-regex": "^5.0.1"
3494 | },
3495 | "engines": {
3496 | "node": ">=8"
3497 | }
3498 | },
3499 | "node_modules/strip-bom": {
3500 | "version": "3.0.0",
3501 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
3502 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
3503 | "dev": true,
3504 | "license": "MIT",
3505 | "peer": true,
3506 | "engines": {
3507 | "node": ">=4"
3508 | }
3509 | },
3510 | "node_modules/strip-json-comments": {
3511 | "version": "3.1.1",
3512 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
3513 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
3514 | "dev": true,
3515 | "license": "MIT",
3516 | "engines": {
3517 | "node": ">=8"
3518 | },
3519 | "funding": {
3520 | "url": "https://github.com/sponsors/sindresorhus"
3521 | }
3522 | },
3523 | "node_modules/supports-color": {
3524 | "version": "7.2.0",
3525 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3526 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3527 | "dev": true,
3528 | "license": "MIT",
3529 | "dependencies": {
3530 | "has-flag": "^4.0.0"
3531 | },
3532 | "engines": {
3533 | "node": ">=8"
3534 | }
3535 | },
3536 | "node_modules/supports-preserve-symlinks-flag": {
3537 | "version": "1.0.0",
3538 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
3539 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
3540 | "dev": true,
3541 | "license": "MIT",
3542 | "peer": true,
3543 | "engines": {
3544 | "node": ">= 0.4"
3545 | },
3546 | "funding": {
3547 | "url": "https://github.com/sponsors/ljharb"
3548 | }
3549 | },
3550 | "node_modules/synckit": {
3551 | "version": "0.9.2",
3552 | "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz",
3553 | "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==",
3554 | "dev": true,
3555 | "license": "MIT",
3556 | "dependencies": {
3557 | "@pkgr/core": "^0.1.0",
3558 | "tslib": "^2.6.2"
3559 | },
3560 | "engines": {
3561 | "node": "^14.18.0 || >=16.0.0"
3562 | },
3563 | "funding": {
3564 | "url": "https://opencollective.com/unts"
3565 | }
3566 | },
3567 | "node_modules/text-table": {
3568 | "version": "0.2.0",
3569 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3570 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
3571 | "dev": true,
3572 | "license": "MIT"
3573 | },
3574 | "node_modules/to-regex-range": {
3575 | "version": "5.0.1",
3576 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3577 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3578 | "dev": true,
3579 | "license": "MIT",
3580 | "dependencies": {
3581 | "is-number": "^7.0.0"
3582 | },
3583 | "engines": {
3584 | "node": ">=8.0"
3585 | }
3586 | },
3587 | "node_modules/tsconfig-paths": {
3588 | "version": "3.15.0",
3589 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
3590 | "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
3591 | "dev": true,
3592 | "license": "MIT",
3593 | "peer": true,
3594 | "dependencies": {
3595 | "@types/json5": "^0.0.29",
3596 | "json5": "^1.0.2",
3597 | "minimist": "^1.2.6",
3598 | "strip-bom": "^3.0.0"
3599 | }
3600 | },
3601 | "node_modules/tslib": {
3602 | "version": "2.8.1",
3603 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
3604 | "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
3605 | "dev": true,
3606 | "license": "0BSD"
3607 | },
3608 | "node_modules/type-check": {
3609 | "version": "0.4.0",
3610 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
3611 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
3612 | "dev": true,
3613 | "license": "MIT",
3614 | "dependencies": {
3615 | "prelude-ls": "^1.2.1"
3616 | },
3617 | "engines": {
3618 | "node": ">= 0.8.0"
3619 | }
3620 | },
3621 | "node_modules/type-fest": {
3622 | "version": "0.20.2",
3623 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
3624 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
3625 | "dev": true,
3626 | "license": "(MIT OR CC0-1.0)",
3627 | "engines": {
3628 | "node": ">=10"
3629 | },
3630 | "funding": {
3631 | "url": "https://github.com/sponsors/sindresorhus"
3632 | }
3633 | },
3634 | "node_modules/typed-array-buffer": {
3635 | "version": "1.0.3",
3636 | "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
3637 | "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
3638 | "dev": true,
3639 | "license": "MIT",
3640 | "peer": true,
3641 | "dependencies": {
3642 | "call-bound": "^1.0.3",
3643 | "es-errors": "^1.3.0",
3644 | "is-typed-array": "^1.1.14"
3645 | },
3646 | "engines": {
3647 | "node": ">= 0.4"
3648 | }
3649 | },
3650 | "node_modules/typed-array-byte-length": {
3651 | "version": "1.0.3",
3652 | "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
3653 | "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
3654 | "dev": true,
3655 | "license": "MIT",
3656 | "peer": true,
3657 | "dependencies": {
3658 | "call-bind": "^1.0.8",
3659 | "for-each": "^0.3.3",
3660 | "gopd": "^1.2.0",
3661 | "has-proto": "^1.2.0",
3662 | "is-typed-array": "^1.1.14"
3663 | },
3664 | "engines": {
3665 | "node": ">= 0.4"
3666 | },
3667 | "funding": {
3668 | "url": "https://github.com/sponsors/ljharb"
3669 | }
3670 | },
3671 | "node_modules/typed-array-byte-offset": {
3672 | "version": "1.0.4",
3673 | "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
3674 | "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
3675 | "dev": true,
3676 | "license": "MIT",
3677 | "peer": true,
3678 | "dependencies": {
3679 | "available-typed-arrays": "^1.0.7",
3680 | "call-bind": "^1.0.8",
3681 | "for-each": "^0.3.3",
3682 | "gopd": "^1.2.0",
3683 | "has-proto": "^1.2.0",
3684 | "is-typed-array": "^1.1.15",
3685 | "reflect.getprototypeof": "^1.0.9"
3686 | },
3687 | "engines": {
3688 | "node": ">= 0.4"
3689 | },
3690 | "funding": {
3691 | "url": "https://github.com/sponsors/ljharb"
3692 | }
3693 | },
3694 | "node_modules/typed-array-length": {
3695 | "version": "1.0.7",
3696 | "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
3697 | "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
3698 | "dev": true,
3699 | "license": "MIT",
3700 | "peer": true,
3701 | "dependencies": {
3702 | "call-bind": "^1.0.7",
3703 | "for-each": "^0.3.3",
3704 | "gopd": "^1.0.1",
3705 | "is-typed-array": "^1.1.13",
3706 | "possible-typed-array-names": "^1.0.0",
3707 | "reflect.getprototypeof": "^1.0.6"
3708 | },
3709 | "engines": {
3710 | "node": ">= 0.4"
3711 | },
3712 | "funding": {
3713 | "url": "https://github.com/sponsors/ljharb"
3714 | }
3715 | },
3716 | "node_modules/unbox-primitive": {
3717 | "version": "1.1.0",
3718 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
3719 | "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
3720 | "dev": true,
3721 | "license": "MIT",
3722 | "peer": true,
3723 | "dependencies": {
3724 | "call-bound": "^1.0.3",
3725 | "has-bigints": "^1.0.2",
3726 | "has-symbols": "^1.1.0",
3727 | "which-boxed-primitive": "^1.1.1"
3728 | },
3729 | "engines": {
3730 | "node": ">= 0.4"
3731 | },
3732 | "funding": {
3733 | "url": "https://github.com/sponsors/ljharb"
3734 | }
3735 | },
3736 | "node_modules/uri-js": {
3737 | "version": "4.4.1",
3738 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3739 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3740 | "dev": true,
3741 | "license": "BSD-2-Clause",
3742 | "dependencies": {
3743 | "punycode": "^2.1.0"
3744 | }
3745 | },
3746 | "node_modules/which": {
3747 | "version": "2.0.2",
3748 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3749 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3750 | "dev": true,
3751 | "license": "ISC",
3752 | "dependencies": {
3753 | "isexe": "^2.0.0"
3754 | },
3755 | "bin": {
3756 | "node-which": "bin/node-which"
3757 | },
3758 | "engines": {
3759 | "node": ">= 8"
3760 | }
3761 | },
3762 | "node_modules/which-boxed-primitive": {
3763 | "version": "1.1.1",
3764 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
3765 | "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
3766 | "dev": true,
3767 | "license": "MIT",
3768 | "peer": true,
3769 | "dependencies": {
3770 | "is-bigint": "^1.1.0",
3771 | "is-boolean-object": "^1.2.1",
3772 | "is-number-object": "^1.1.1",
3773 | "is-string": "^1.1.1",
3774 | "is-symbol": "^1.1.1"
3775 | },
3776 | "engines": {
3777 | "node": ">= 0.4"
3778 | },
3779 | "funding": {
3780 | "url": "https://github.com/sponsors/ljharb"
3781 | }
3782 | },
3783 | "node_modules/which-builtin-type": {
3784 | "version": "1.2.1",
3785 | "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
3786 | "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
3787 | "dev": true,
3788 | "license": "MIT",
3789 | "peer": true,
3790 | "dependencies": {
3791 | "call-bound": "^1.0.2",
3792 | "function.prototype.name": "^1.1.6",
3793 | "has-tostringtag": "^1.0.2",
3794 | "is-async-function": "^2.0.0",
3795 | "is-date-object": "^1.1.0",
3796 | "is-finalizationregistry": "^1.1.0",
3797 | "is-generator-function": "^1.0.10",
3798 | "is-regex": "^1.2.1",
3799 | "is-weakref": "^1.0.2",
3800 | "isarray": "^2.0.5",
3801 | "which-boxed-primitive": "^1.1.0",
3802 | "which-collection": "^1.0.2",
3803 | "which-typed-array": "^1.1.16"
3804 | },
3805 | "engines": {
3806 | "node": ">= 0.4"
3807 | },
3808 | "funding": {
3809 | "url": "https://github.com/sponsors/ljharb"
3810 | }
3811 | },
3812 | "node_modules/which-collection": {
3813 | "version": "1.0.2",
3814 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
3815 | "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
3816 | "dev": true,
3817 | "license": "MIT",
3818 | "peer": true,
3819 | "dependencies": {
3820 | "is-map": "^2.0.3",
3821 | "is-set": "^2.0.3",
3822 | "is-weakmap": "^2.0.2",
3823 | "is-weakset": "^2.0.3"
3824 | },
3825 | "engines": {
3826 | "node": ">= 0.4"
3827 | },
3828 | "funding": {
3829 | "url": "https://github.com/sponsors/ljharb"
3830 | }
3831 | },
3832 | "node_modules/which-typed-array": {
3833 | "version": "1.1.19",
3834 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
3835 | "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
3836 | "dev": true,
3837 | "license": "MIT",
3838 | "peer": true,
3839 | "dependencies": {
3840 | "available-typed-arrays": "^1.0.7",
3841 | "call-bind": "^1.0.8",
3842 | "call-bound": "^1.0.4",
3843 | "for-each": "^0.3.5",
3844 | "get-proto": "^1.0.1",
3845 | "gopd": "^1.2.0",
3846 | "has-tostringtag": "^1.0.2"
3847 | },
3848 | "engines": {
3849 | "node": ">= 0.4"
3850 | },
3851 | "funding": {
3852 | "url": "https://github.com/sponsors/ljharb"
3853 | }
3854 | },
3855 | "node_modules/word-wrap": {
3856 | "version": "1.2.5",
3857 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
3858 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
3859 | "dev": true,
3860 | "license": "MIT",
3861 | "engines": {
3862 | "node": ">=0.10.0"
3863 | }
3864 | },
3865 | "node_modules/workerpool": {
3866 | "version": "6.5.1",
3867 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
3868 | "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
3869 | "dev": true,
3870 | "license": "Apache-2.0"
3871 | },
3872 | "node_modules/wrap-ansi": {
3873 | "version": "7.0.0",
3874 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3875 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3876 | "dev": true,
3877 | "license": "MIT",
3878 | "dependencies": {
3879 | "ansi-styles": "^4.0.0",
3880 | "string-width": "^4.1.0",
3881 | "strip-ansi": "^6.0.0"
3882 | },
3883 | "engines": {
3884 | "node": ">=10"
3885 | },
3886 | "funding": {
3887 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
3888 | }
3889 | },
3890 | "node_modules/wrappy": {
3891 | "version": "1.0.2",
3892 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3893 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
3894 | "dev": true,
3895 | "license": "ISC"
3896 | },
3897 | "node_modules/y18n": {
3898 | "version": "5.0.8",
3899 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
3900 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
3901 | "dev": true,
3902 | "license": "ISC",
3903 | "engines": {
3904 | "node": ">=10"
3905 | }
3906 | },
3907 | "node_modules/yargs": {
3908 | "version": "16.2.0",
3909 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
3910 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
3911 | "dev": true,
3912 | "license": "MIT",
3913 | "dependencies": {
3914 | "cliui": "^7.0.2",
3915 | "escalade": "^3.1.1",
3916 | "get-caller-file": "^2.0.5",
3917 | "require-directory": "^2.1.1",
3918 | "string-width": "^4.2.0",
3919 | "y18n": "^5.0.5",
3920 | "yargs-parser": "^20.2.2"
3921 | },
3922 | "engines": {
3923 | "node": ">=10"
3924 | }
3925 | },
3926 | "node_modules/yargs-parser": {
3927 | "version": "20.2.9",
3928 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
3929 | "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
3930 | "dev": true,
3931 | "license": "ISC",
3932 | "engines": {
3933 | "node": ">=10"
3934 | }
3935 | },
3936 | "node_modules/yargs-unparser": {
3937 | "version": "2.0.0",
3938 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
3939 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
3940 | "dev": true,
3941 | "license": "MIT",
3942 | "dependencies": {
3943 | "camelcase": "^6.0.0",
3944 | "decamelize": "^4.0.0",
3945 | "flat": "^5.0.2",
3946 | "is-plain-obj": "^2.1.0"
3947 | },
3948 | "engines": {
3949 | "node": ">=10"
3950 | }
3951 | },
3952 | "node_modules/yocto-queue": {
3953 | "version": "0.1.0",
3954 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3955 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3956 | "dev": true,
3957 | "license": "MIT",
3958 | "engines": {
3959 | "node": ">=10"
3960 | },
3961 | "funding": {
3962 | "url": "https://github.com/sponsors/sindresorhus"
3963 | }
3964 | }
3965 | }
3966 | }
3967 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "core-js-arrays",
3 | "version": "1.0.0",
4 | "description": "Core JS Arrays",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "npm run lint && mocha",
8 | "lint": "node node_modules/eslint/bin/eslint.js ./src",
9 | "lint:fix": "node node_modules/eslint/bin/eslint.js ./src --fix"
10 | },
11 | "repository": {
12 | "type": "git",
13 | "url": "git+https://github.com/rolling-scopes-school/core-js-arrays.git"
14 | },
15 | "author": "valerydluski, natein",
16 | "license": "MIT",
17 | "devDependencies": {
18 | "eslint": "^8.57.1",
19 | "eslint-config-airbnb-base": "^15.0.0",
20 | "eslint-config-prettier": "^10.1.1",
21 | "eslint-plugin-prettier": "^5.2.3",
22 | "mocha": "^10.8.2",
23 | "prettier": "^3.5.3"
24 | },
25 | "bugs": {
26 | "url": "https://github.com/rolling-scopes-school/core-js-arrays/issues"
27 | },
28 | "homepage": "https://github.com/rolling-scopes-school/core-js-arrays#readme"
29 | }
30 |
--------------------------------------------------------------------------------
/src/arrays-tasks.js:
--------------------------------------------------------------------------------
1 | /* ********************************************************************************************
2 | * *
3 | * Please read the following tutorial before implementing tasks: *
4 | * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array *
5 | * *
6 | * NOTE : Please do not use loops! All tasks can be implemented using standard Array methods *
7 | * *
8 | ******************************************************************************************** */
9 |
10 | /**
11 | * Creates an array of integers from the specified start to end (inclusive).
12 | *
13 | * @param {number} start - The first number of an array.
14 | * @param {number} end - The last number of an array.
15 | * @return {array} - An array of integers.
16 | *
17 | * @example
18 | * getIntervalArray(1, 5) => [ 1, 2, 3, 4, 5 ]
19 | * getIntervalArray(-2, 2) => [ -2, -1, 0, 1, 2 ]
20 | * getIntervalArray(0, 100) => [ 0, 1, 2, ..., 100 ]
21 | * getIntervalArray(3, 3) => [ 3 ]
22 | */
23 | function getIntervalArray(/* start, end */) {
24 | throw new Error('Not implemented');
25 | }
26 |
27 | /**
28 | * Returns a new array where each element is the sum of the corresponding elements
29 | * from two arrays. Arrays can have different lengths.
30 | *
31 | * @param {array} arr1 - The first array.
32 | * @param {array} arr2 - The second array.
33 | * @return {array} - An array containing the sum of corresponding elements.
34 | *
35 | * @example
36 | * sumArrays([1, 2, 3], [4, 5, 6]) => [5, 7, 9]
37 | * sumArrays([10, 20, 30], [5, 10, 15]) => [15, 30, 45]
38 | * sumArrays([-1, 0, 1], [1, 2, 3, 4]) => [0, 2, 4, 4]
39 | */
40 | function sumArrays(/* arr1, arr2 */) {
41 | throw new Error('Not implemented');
42 | }
43 |
44 | /**
45 | * Returns an index of the specified element in array or -1 if element is not found.
46 | *
47 | * @param {array} arr - The input array.
48 | * @param {any} value - Element to search.
49 | * @return {number} - An index of the specified element.
50 | *
51 | * @example
52 | * findElement(['Ace', 10, true], 10) => 1
53 | * findElement(['Array', 'Number', 'string'], 'Date') => -1
54 | * findElement([0, 1, 2, 3, 4, 5], 5) => 5
55 | */
56 | function findElement(/* arr, value */) {
57 | throw new Error('Not implemented');
58 | }
59 |
60 | /**
61 | * Returns a number of all occurrences of the specified item in an array.
62 | *
63 | * @param {array} arr - The input array.
64 | * @param {any} item - Element to search.
65 | * @return {number} - Number of found items.
66 | *
67 | * @example
68 | * findAllOccurrences([ 0, 0, 1, 1, 1, 2 ], 1) => 3
69 | * findAllOccurrences([ 1, 2, 3, 4, 5 ], 0) => 0
70 | * findAllOccurrences([ 'a','b','c','c' ], 'c') => 2
71 | * findAllOccurrences([ null, undefined, null ], null) => 2
72 | * findAllOccurrences([ true, 0, 1, 'true' ], true) => 1
73 | */
74 | function findAllOccurrences(/* arr, item */) {
75 | throw new Error('Not implemented');
76 | }
77 |
78 | /**
79 | * Removes falsy values from the specified array.
80 | * Falsy values: false, null, 0, "", undefined, and NaN.
81 | *
82 | * @param {array} arr - The input array.
83 | * @return {array} - The array without falsy values.
84 | *
85 | * @example
86 | * removeFalsyValues([ 0, false, 'cat', NaN, true, '' ]) => [ 'cat', true ]
87 | * removeFalsyValues([ 1, 2, 3, 4, 5, 'false' ]) => [ 1, 2, 3, 4, 5, 'false' ]
88 | * removeFalsyValues([ false, 0, NaN, '', undefined ]) => [ ]
89 | */
90 | function removeFalsyValues(/* arr */) {
91 | throw new Error('Not implemented');
92 | }
93 |
94 | /**
95 | * Returns an array containing the lengths of each string in a specified array of strings.
96 | *
97 | * @param {array} arr - The input array.
98 | * @return {array} - The array of string lengths.
99 | *
100 | * @example
101 | * getStringsLength([ '', 'a', 'bc', 'def', 'ghij' ]) => [ 0, 1, 2, 3, 4 ]
102 | * getStringsLength([ 'angular', 'react', 'ember' ]) => [ 7, 5, 5 ]
103 | */
104 | function getStringsLength(/* arr */) {
105 | throw new Error('Not implemented');
106 | }
107 |
108 | /**
109 | * Returns the average of all items in the specified array of numbers.
110 | * The result should be rounded to two decimal places.
111 | *
112 | * @param {array} arr - The input array
113 | * @return {number} - The average of all items
114 | *
115 | * @example
116 | * getAverage([]) => 0
117 | * getAverage([ 1, 2, 3 ]) => 2
118 | * getAverage([ -1, 1, -1, 1 ]) => 0
119 | * getAverage([ 1, 10, 100, 1000 ]) => 277,75
120 | * getAverage([ 2, 3, 3 ]) => 2,67
121 | */
122 | function getAverage(/* arr */) {
123 | throw new Error('Not implemented');
124 | }
125 |
126 | /**
127 | * Checks if all strings in an array have the same length.
128 | *
129 | * @param {array} arr - The array of strings to be checked.
130 | * @return {boolean} - True if all strings have the same length, false otherwise.
131 | *
132 | * @example
133 | * isSameLength(['orange', 'banana', 'cherry']) => true
134 | * isSameLength(['cat', 'dog', 'elephant']) => false
135 | */
136 | function isSameLength(/* arr */) {
137 | throw new Error('Not implemented');
138 | }
139 |
140 | /**
141 | * Checks if there are elements in the array where the value is equal to its index.
142 | *
143 | * @param {array} arr - The array of elements to be checked.
144 | * @return {boolean} - True if there are elements with value equal to their index, false otherwise.
145 | *
146 | * @example
147 | * isValueEqualsIndex([0, 1, 2, 3, 4]) => true
148 | * isValueEqualsIndex([2, 1, 0, 4, 5]) => true
149 | * isValueEqualsIndex([10, 20, 30, 40, 50]) => false
150 | */
151 | function isValueEqualsIndex(/* arr */) {
152 | throw new Error('Not implemented');
153 | }
154 |
155 | /**
156 | * Inserts the item into specified array at specified index.
157 | *
158 | * @param {array} arr - The input array.
159 | * @param {any} item - The item to insert.
160 | * @param {number} index - Specified index.
161 | *
162 | * @example
163 | * insertItem([ 1, 3, 4, 5 ], 2, 1) => [ 1, 2, 3, 4, 5 ]
164 | * insertItem([ 1, 'b', 'c'], 'x', 0) => [ 'x', 1, 'b', 'c' ]
165 | */
166 | function insertItem(/* arr, item, index */) {
167 | throw new Error('Not implemented');
168 | }
169 |
170 | /**
171 | * Returns the n first items of the specified array.
172 | *
173 | * @param {array} arr - The input array.
174 | * @param {number} n - Number of items.
175 | *
176 | * @example
177 | * getHead([ 1, 3, 4, 5 ], 2) => [ 1, 3 ]
178 | * getHead([ 'a', 'b', 'c', 'd'], 3) => [ 'a', 'b', 'c' ]
179 | * getHead([ 'a', 'b', 'c', 'd'], 0) => []
180 | */
181 | function getHead(/* arr, n */) {
182 | throw new Error('Not implemented');
183 | }
184 |
185 | /**
186 | * Returns the n last items of the specified array.
187 | *
188 | * @param {array} arr - The input array.
189 | * @param {number} n - Number of items.
190 | *
191 | * @example
192 | * getTail([ 1, 3, 4, 5 ], 2) => [ 4, 5 ]
193 | * getTail([ 'a', 'b', 'c', 'd'], 3) => [ 'b', 'c', 'd' ]
194 | * getTail([ 'a', 'b', 'c', 'd'], 0) => []
195 | */
196 | function getTail(/* arr, n */) {
197 | throw new Error('Not implemented');
198 | }
199 |
200 | /**
201 | * Returns the doubled array - elements of the specified array
202 | * are repeated twice using original order.
203 | *
204 | * @param {array} arr - The input array.
205 | * @return {array} - The doubled array.
206 | *
207 | * @example
208 | * doubleArray(['Ace', 10, true]) => ['Ace', 10, true, 'Ace', 10, true]
209 | * doubleArray([0, 1, 2, 3, 4, 5]) => [0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5]
210 | * doubleArray([]) => []
211 | */
212 | function doubleArray(/* arr */) {
213 | throw new Error('Not implemented');
214 | }
215 |
216 | /**
217 | * Concatenates all elements from specified array into single string with ',' delimiter.
218 | *
219 | * @param {array} arr - The input array.
220 | * @return {string} - The concatenated string.
221 | *
222 | * @example
223 | * toStringList([0, false, 'cat', NaN, true, '']) => '0,false,cat,NaN,true,'
224 | * toStringList([1, 2, 3, 4, 5]) => '1,2,3,4,5'
225 | * toStringList(['rock', 'paper', 'scissors']) => 'rock,paper,scissors'
226 | */
227 | function toStringList(/* arr */) {
228 | throw new Error('Not implemented');
229 | }
230 |
231 | /**
232 | * Returns array containing only unique values from the specified array.
233 | *
234 | * @param {array} arr - The input array.
235 | * @return {array} - The array with unique values.
236 | *
237 | * @example
238 | * distinct([ 1, 2, 3, 3, 2, 1 ]) => [ 1, 2, 3 ]
239 | * distinct([ 'a', 'a', 'a', 'a' ]) => [ 'a' ]
240 | * distinct([ 1, 1, 2, 2, 3, 3, 4, 4]) => [ 1, 2, 3, 4]
241 | * distinct([]) => []
242 | */
243 | function distinct(/* arr */) {
244 | throw new Error('Not implemented');
245 | }
246 |
247 | /**
248 | * Creates an n-dimensional array and fills it with zeros.
249 | *
250 | * @param {number} n - Depth of outter array (n > 0).
251 | * @param {number} size - Length of all arrays (size > 0).
252 | * @return {array} - The n-dimensional array filled with zeros.
253 | *
254 | * @example
255 | * createNDimensionalArray(2, 3) => [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
256 | * createNDimensionalArray(3, 2) => [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]
257 | * createNDimensionalArray(4, 2) => [[[[0, 0], [0, 0]], [[0, 0], [0, 0]]], [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]]
258 | * createNDimensionalArray(1, 1) => [0]
259 | */
260 | function createNDimensionalArray(/* n, size */) {
261 | throw new Error('Not implemented');
262 | }
263 |
264 | /**
265 | * Flattens a nested array into a single-level array.
266 | *
267 | * @param {array} nestedArray - The nested array to be flattened.
268 | * @return {array} - A single-level array.
269 | *
270 | * @example
271 | * flattenArray([1, [2, [3, 4], 5], 6]) => [1, 2, 3, 4, 5, 6]
272 | * flattenArray(['a', ['b', ['c', 'd'], 'e'], 'f']) => ['a', 'b', 'c', 'd', 'e', 'f']
273 | * flattenArray([1, 2, 3, 4]) => [1, 2, 3, 4]
274 | */
275 | function flattenArray(/* nestedArray */) {
276 | throw new Error('Not implemented');
277 | }
278 |
279 | /**
280 | * Projects each element of the specified array to a sequence
281 | * and flattens the resulting sequences into one array.
282 | *
283 | * @param {array} arr - The input array
284 | * @param {Function} childrenSelector - A transform function to apply to each element
285 | * that returns an array of children
286 | * @return {array} - The flatted array
287 | *
288 | * @example
289 | * selectMany([[1, 2], [3, 4], [5, 6]], (x) => x) => [ 1, 2, 3, 4, 5, 6 ]
290 | * selectMany(['one','two','three'], (x) => x.split('')) => ['o','n','e','t','w','o','t','h','r','e','e']
291 | */
292 | function selectMany(/* arr, childrenSelector */) {
293 | throw new Error('Not implemented');
294 | }
295 |
296 | /**
297 | * Every month, you record your income and expenses.
298 | * Expenses may be greater than income.
299 | * You need to calculate the final balance.
300 | *
301 | * @param {array} arr - The input array [[income, expence], ...]
302 | * @return {number} - The final balance.
303 | *
304 | * @example
305 | * calculateBalance([ [ 10, 8 ], [ 5, 1 ] ]) => (10 - 8) + (5 - 1) = 2 + 4 = 6
306 | * calculateBalance([ [ 10, 8 ], [ 1, 5 ] ]) => (10 - 8) + (1 - 5) = 2 + -4 = -2
307 | * calculateBalance([]) => 0
308 | */
309 | function calculateBalance(/* arr */) {
310 | throw new Error('Not implemented');
311 | }
312 |
313 | /**
314 | * Breaks an array into chunks of the specified size.
315 | *
316 | * @param {array} arr - The array to be broken into chunks.
317 | * @param {number} chunkSize - The size of each chunk.
318 | * @return {array} - An array of chunks.
319 | *
320 | * @example
321 | * createChunks([1, 2, 3, 4, 5, 6, 7], 3) => [[1, 2, 3], [4, 5, 6], [7]]
322 | * createChunks(['a', 'b', 'c', 'd', 'e'], 2) => [['a', 'b'], ['c', 'd'], ['e']]
323 | * createChunks([10, 20, 30, 40, 50], 1) => [[10], [20], [30], [40], [50]]
324 | */
325 | function createChunks(/* arr, chunkSize */) {
326 | throw new Error('Not implemented');
327 | }
328 |
329 | /**
330 | * Generates an array of odd numbers of the specified length.
331 | *
332 | * @param {number} len - The length of an array.
333 | * @return {array} - An array of odd numbers.
334 | *
335 | * @example
336 | * generateOdds(0) => []
337 | * generateOdds(1) => [ 1 ]
338 | * generateOdds(2) => [ 1, 3 ]
339 | * generateOdds(5) => [ 1, 3, 5, 7, 9 ]
340 | */
341 | function generateOdds(/* len */) {
342 | throw new Error('Not implemented');
343 | }
344 |
345 | /**
346 | * Returns an element from the multidimensional array by the specified indices.
347 | *
348 | * @param {array} arr - The input multidimensional array
349 | * @param {array} indices - The array of indices
350 | * @return {any} - An element from the array
351 | *
352 | * @example
353 | * getElementByIndices([[1, 2], [3, 4], [5, 6]], [0,0]) => 1 (arr[0][0])
354 | * getElementByIndices(['one','two','three'], [2]) => 'three' (arr[2])
355 | * getElementByIndices([[[ 1, 2, 3]]], [ 0, 0, 1 ]) => 2 (arr[0][0][1])
356 | */
357 | function getElementByIndices(/* arr, indices */) {
358 | throw new Error('Not implemented');
359 | }
360 |
361 | /**
362 | * Returns the number of all falsy values in the specified array.
363 | *
364 | * @param {array} arr - The input array.
365 | * @return {number} - The number of all falsy values.
366 | *
367 | * @example
368 | * getFalsyValuesCount([]) => 0
369 | * getFalsyValuesCount([ 1, '', 3 ]) => 1
370 | * getFalsyValuesCount([ -1, 'false', null, 0 ]) => 2
371 | * getFalsyValuesCount([ null, undefined, NaN, false, 0, '' ]) => 6
372 | */
373 | function getFalsyValuesCount(/* arr */) {
374 | throw new Error('Not implemented');
375 | }
376 |
377 | /**
378 | * Creates an identity matrix of the specified size.
379 | *
380 | * @param {number} n - A size of the matrix.
381 | * @return {array} - An identity matrix.
382 | *
383 | * @example
384 | * getIdentityMatrix(1) => [[1]]
385 | *
386 | * getIdentityMatrix(2) => [[1,0],
387 | * [0,1]]
388 | *
389 | * [[1,0,0,0,0],
390 | * [0,1,0,0,0],
391 | * getIdentityMatrix(5) => [0,0,1,0,0],
392 | * [0,0,0,1,0],
393 | * [0,0,0,0,1]]
394 | */
395 | function getIdentityMatrix(/* n */) {
396 | throw new Error('Not implemented');
397 | }
398 |
399 | /**
400 | * Returns an array containing indices of odd elements in the input array.
401 | *
402 | * @param {array} numbers - The array of numbers.
403 | * @return {array} - An array containing indices of odd elements.
404 | *
405 | * @example
406 | * getIndicesOfOddNumbers([1, 2, 3, 4, 5]) => [0, 2, 4]
407 | * getIndicesOfOddNumbers([2, 4, 6, 8, 10]) => []
408 | * getIndicesOfOddNumbers([11, 22, 33, 44, 55]) => [0, 2, 4]
409 | */
410 | function getIndicesOfOddNumbers(/* numbers */) {
411 | throw new Error('Not implemented');
412 | }
413 |
414 | /**
415 | * Returns the array of RGB Hex strings from the specified array of numbers.
416 | *
417 | * @param {array} arr - The input array.
418 | * @return {array} - The array of RGB Hex strings.
419 | *
420 | * @example
421 | * getHexRGBValues([ 0, 255, 16777215]) => [ '#000000', '#0000FF', '#FFFFFF' ]
422 | * getHexRGBValues([]) => []
423 | */
424 | function getHexRGBValues(/* arr */) {
425 | throw new Error('Not implemented');
426 | }
427 |
428 | /**
429 | * Returns the n largest values from the specified array
430 | *
431 | * @param {array} arr - The input array
432 | * @param {number} n - Number of maximum values.
433 | * @return {array} - n largest values.
434 | *
435 | * @example
436 | * getMaxItems([], 5) => []
437 | * getMaxItems([ 1, 2 ], 1) => [ 2]
438 | * getMaxItems([ 2, 3, 1 ], 2) => [ 3, 2]
439 | * getMaxItems([ 10, 2, 7, 5, 3, -5 ], 3) => [ 10, 7, 5 ]
440 | * getMaxItems([ 10, 10, 10, 10 ], 3) => [ 10, 10, 10 ]
441 | */
442 | function getMaxItems(/* arr, n */) {
443 | throw new Error('Not implemented');
444 | }
445 |
446 | /**
447 | * Finds and returns an array containing only the common elements found in two arrays.
448 | *
449 | * @param {array} arr1 - The first array.
450 | * @param {array} arr2 - The second array.
451 | * @return {array} - An array containing common elements.
452 | *
453 | * @example
454 | * findCommonElements([1, 2, 3], [2, 3, 4]) => [ 2, 3 ]
455 | * findCommonElements(['a', 'b', 'c'], ['b', 'c', 'd']) => [ 'b', 'c' ]
456 | * findCommonElements([1, 2, 3], ['a', 'b', 'c']) => []
457 | */
458 | function findCommonElements(/* arr1, arr2 */) {
459 | throw new Error('Not implemented');
460 | }
461 |
462 | /**
463 | * Finds the length of the longest increasing and uninterrupted subsequence of a given array of integers.
464 | *
465 | * @param {array} nums - The array of integers.
466 | * @return {number} - The length of the longest increasing subsequence.
467 | *
468 | * @example
469 | * findLongestIncreasingSubsequence([10, 22, 9, 33, 21, 50, 41, 60, 80]) => longest is [41, 60, 80] => 3
470 | * findLongestIncreasingSubsequence([3, 10, 2, 1, 20]) => longest is [3, 10] and [1, 20] => 2
471 | * findLongestIncreasingSubsequence([50, 3, 10, 7, 40, 80]) => longest is [7, 40, 80] => 3
472 | */
473 | function findLongestIncreasingSubsequence(/* nums */) {
474 | throw new Error('Not implemented');
475 | }
476 |
477 | /**
478 | * Propagates every item in sequence its position times
479 | * Returns an array that consists of: one first item, two second items, three third items etc.
480 | *
481 | * @param {array} arr - The input array
482 | * @return {array}
483 | *
484 | * @example :
485 | * propagateItemsByPositionIndex([]) => []
486 | * propagateItemsByPositionIndex([ 1 ]) => [ 1 ]
487 | * propagateItemsByPositionIndex([ 'a', 'b' ]) => [ 'a', 'b','b' ]
488 | * propagateItemsByPositionIndex([ 'a', 'b', 'c', null ]) => [ 'a', 'b', 'b', 'c', 'c', 'c', null, null, null, null ]
489 | * propagateItemsByPositionIndex([ 1,2,3,4,5 ]) => [ 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 ]
490 | */
491 | function propagateItemsByPositionIndex(/* arr */) {
492 | throw new Error('Not implemented');
493 | }
494 |
495 | /**
496 | * Shifts an array by n positions. If n is negative, the array is shifted to the left;
497 | * if positive, it is shifted to the right.
498 | *
499 | * @param {array} arr - The array to be shifted.
500 | * @param {number} n - The number of positions to shift the array elements.
501 | * @return {array} - The shifted array.
502 | *
503 | * @example
504 | * shiftArray([1, 2, 3, 4, 5], 2) => [4, 5, 1, 2, 3]
505 | * shiftArray(['a', 'b', 'c', 'd'], -1) => ['b', 'c', 'd', 'a']
506 | * shiftArray([10, 20, 30, 40, 50], -3) => [40, 50, 10, 20, 30]
507 | */
508 | function shiftArray(/* arr, n */) {
509 | throw new Error('Not implemented');
510 | }
511 |
512 | /**
513 | * Sorts digit names.
514 | *
515 | * @param {array} arr - The input array.
516 | * @return {array} - Sorted array.
517 | *
518 | * @example
519 | * sortDigitNamesByNumericOrder([]) => []
520 | * sortDigitNamesByNumericOrder([ 'nine','one' ]) => [ 'one', 'nine' ]
521 | * sortDigitNamesByNumericOrder([ 'one','two','three' ]) => [ 'one','two', 'three' ]
522 | * sortDigitNamesByNumericOrder([ 'nine','eight','nine','eight' ]) => [ 'eight','eight','nine','nine']
523 | * sortDigitNamesByNumericOrder([ 'one','one','one','zero' ]) => [ 'zero','one','one','one' ]
524 | */
525 | function sortDigitNamesByNumericOrder(/* arr */) {
526 | throw new Error('Not implemented');
527 | }
528 |
529 | /**
530 | * Swaps the head and tail of the specified array:
531 | * the head (first half) of array move to the end, the tail (last half) move to the start.
532 | * The middle element (if exists) leave on the same position. *
533 | *
534 | * @param {array} arr - The input array.
535 | * @return {array} - The swapped array.
536 | *
537 | * @example
538 | * [ 1, 2, 3, 4, 5 ] => [ 4, 5, 3, 1, 2 ]
539 | * \----/ \----/
540 | * head tail
541 | *
542 | * swapHeadAndTail([ 1, 2 ]) => [ 2, 1 ]
543 | * swapHeadAndTail([ 1, 2, 3, 4, 5, 6, 7, 8 ]) => [ 5, 6, 7, 8, 1, 2, 3, 4 ]
544 | * swapHeadAndTail([ 1 ]) => [ 1 ]
545 | * swapHeadAndTail([]) => []
546 | *
547 | */
548 | function swapHeadAndTail(/* arr */) {
549 | throw new Error('Not implemented');
550 | }
551 |
552 | module.exports = {
553 | getIntervalArray,
554 | sumArrays,
555 | findElement,
556 | findAllOccurrences,
557 | removeFalsyValues,
558 | getStringsLength,
559 | getAverage,
560 | isSameLength,
561 | isValueEqualsIndex,
562 | insertItem,
563 | getHead,
564 | getTail,
565 | doubleArray,
566 | toStringList,
567 | distinct,
568 | createNDimensionalArray,
569 | flattenArray,
570 | selectMany,
571 | calculateBalance,
572 | createChunks,
573 | generateOdds,
574 | getElementByIndices,
575 | getFalsyValuesCount,
576 | getIdentityMatrix,
577 | getIndicesOfOddNumbers,
578 | getHexRGBValues,
579 | getMaxItems,
580 | findCommonElements,
581 | findLongestIncreasingSubsequence,
582 | propagateItemsByPositionIndex,
583 | shiftArray,
584 | sortDigitNamesByNumericOrder,
585 | swapHeadAndTail,
586 | };
587 |
--------------------------------------------------------------------------------
/test/arrays-tests.js:
--------------------------------------------------------------------------------
1 | const assert = require('assert');
2 | const tasks = require('../src/arrays-tasks');
3 | it.optional = require('../extensions/it-optional');
4 |
5 | describe('arrays-tasks', () => {
6 | it.optional(
7 | 'getIntervalArray should return the array of integers from start to end (inclusive)',
8 | () => {
9 | [
10 | {
11 | start: 1,
12 | end: 5,
13 | expected: [1, 2, 3, 4, 5],
14 | },
15 | {
16 | start: -2,
17 | end: 2,
18 | expected: [-2, -1, 0, 1, 2],
19 | },
20 | {
21 | start: 0,
22 | end: 100,
23 | expected: [
24 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
25 | 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
26 | 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
27 | 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
28 | 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
29 | 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
30 | ],
31 | },
32 | {
33 | start: 3,
34 | end: 3,
35 | expected: [3],
36 | },
37 | {
38 | start: -5,
39 | end: -3,
40 | expected: [-5, -4, -3],
41 | },
42 | ].forEach((data) => {
43 | const actual = tasks.getIntervalArray(data.start, data.end);
44 | assert.deepEqual(actual, data.expected);
45 | });
46 | }
47 | );
48 |
49 | it.optional(
50 | 'sumArrays should return new array where each element is the sum of the corresponding elements from two arrays',
51 | () => {
52 | [
53 | {
54 | arr1: [1, 2, 3],
55 | arr2: [4, 5, 6],
56 | expected: [5, 7, 9],
57 | },
58 | {
59 | arr1: [10, 20, 30],
60 | arr2: [5, 10, 15],
61 | expected: [15, 30, 45],
62 | },
63 | {
64 | arr1: [-1, 0, 1],
65 | arr2: [1, 2, 3, 4],
66 | expected: [0, 2, 4, 4],
67 | },
68 | {
69 | arr1: [],
70 | arr2: [1, 2, 3, 4],
71 | expected: [1, 2, 3, 4],
72 | },
73 | {
74 | arr1: [1, 2, 3, 4],
75 | arr2: [],
76 | expected: [1, 2, 3, 4],
77 | },
78 | ].forEach((data) => {
79 | const actual = tasks.sumArrays(data.arr1, data.arr2);
80 | assert.deepEqual(actual, data.expected);
81 | });
82 | }
83 | );
84 |
85 | it.optional(
86 | 'findElement should return the index of specified value if exists',
87 | () => {
88 | [
89 | {
90 | arr: ['Ace', 10, true],
91 | value: 10,
92 | expected: 1,
93 | },
94 | {
95 | arr: ['Array', 'Number', 'string'],
96 | value: 'Date',
97 | expected: -1,
98 | },
99 | {
100 | arr: [0, 1, 2, 3, 4, 5],
101 | value: 5,
102 | expected: 5,
103 | },
104 | ].forEach((data) => {
105 | const actual = tasks.findElement(data.arr, data.value);
106 | assert.equal(
107 | actual,
108 | data.expected,
109 | `Index of '${data.value}' inside of [${data.arr}] = ${data.expected}, but actually ${actual}`
110 | );
111 | });
112 | }
113 | );
114 |
115 | it.optional(
116 | 'findAllOccurrences should return the number of all occurrences of specified item in an array',
117 | () => {
118 | [
119 | {
120 | arr: [0, 0, 1, 1, 1, 2],
121 | item: 1,
122 | expected: 3,
123 | },
124 | {
125 | arr: [1, 2, 3, 4, 5],
126 | item: 0,
127 | expected: 0,
128 | },
129 | {
130 | arr: ['a', 'b', 'c', 'c'],
131 | item: 'c',
132 | expected: 2,
133 | },
134 | {
135 | arr: [null, undefined, null],
136 | item: null,
137 | expected: 2,
138 | },
139 | {
140 | arr: [true, 0, 1, 'true'],
141 | item: true,
142 | expected: 1,
143 | },
144 | ].forEach((data) => {
145 | const actual = tasks.findAllOccurrences(data.arr, data.item);
146 | assert.equal(
147 | actual,
148 | data.expected,
149 | `Number of occurrences of ${JSON.stringify(
150 | data.item
151 | )} in ${JSON.stringify(data.arr)} is ${
152 | data.expected
153 | }, but actually ${actual}`
154 | );
155 | });
156 | }
157 | );
158 |
159 | it.optional(
160 | 'removeFalsyValues should return the specified array without falsy values',
161 | () => {
162 | [
163 | {
164 | arr: [0, false, 'cat', NaN, true, ''],
165 | expected: ['cat', true],
166 | },
167 | {
168 | arr: [1, 2, 3, 4, 5, 'false'],
169 | expected: [1, 2, 3, 4, 5, 'false'],
170 | },
171 | {
172 | arr: [false, 0, NaN, '', undefined],
173 | expected: [],
174 | },
175 | ].forEach((data) => {
176 | const actual = tasks.removeFalsyValues(data.arr);
177 | assert.deepEqual(actual, data.expected);
178 | });
179 | }
180 | );
181 |
182 | it.optional(
183 | 'getStringsLength should return an array containing the lengths of each string',
184 | () => {
185 | [
186 | {
187 | arr: ['', 'a', 'bc', 'def', 'ghij'],
188 | expected: [0, 1, 2, 3, 4],
189 | },
190 | {
191 | arr: ['angular', 'react', 'ember'],
192 | expected: [7, 5, 5],
193 | },
194 | {
195 | arr: [],
196 | expected: [],
197 | },
198 | ].forEach((data) => {
199 | const actual = tasks.getStringsLength(data.arr);
200 | assert.deepEqual(actual, data.expected);
201 | });
202 | }
203 | );
204 |
205 | it.optional(
206 | 'getAverage should return the average of all items in the specified array of numbers',
207 | () => {
208 | [
209 | {
210 | arr: [],
211 | expected: 0,
212 | },
213 | {
214 | arr: [1, 2, 3],
215 | expected: 2,
216 | },
217 | {
218 | arr: [-1, 1, -1, 1],
219 | expected: 0,
220 | },
221 | {
222 | arr: [1, 10, 100, 1000],
223 | expected: 277.75,
224 | },
225 | {
226 | arr: [2, 3, 3],
227 | expected: 2.67,
228 | },
229 | ].forEach((data) => {
230 | const actual = tasks.getAverage(data.arr);
231 | assert.strictEqual(actual, data.expected);
232 | });
233 | }
234 | );
235 |
236 | it.optional(
237 | 'isSameLength should return true if all strings have the same length, false otherwise',
238 | () => {
239 | [
240 | {
241 | arr: ['potato', 'banana', 'cherry'],
242 | expected: true,
243 | },
244 | {
245 | arr: ['cat', 'dog', 'elephant'],
246 | expected: false,
247 | },
248 | {
249 | arr: ['cat'],
250 | expected: true,
251 | },
252 | ].forEach((data) => {
253 | const actual = tasks.isSameLength(data.arr);
254 | assert.strictEqual(actual, data.expected);
255 | });
256 | }
257 | );
258 |
259 | it.optional(
260 | 'isValueEqualsIndex should return true if there are elements with value equal to their index, false otherwise',
261 | () => {
262 | [
263 | {
264 | arr: [0, 1, 2, 3, 4],
265 | expected: true,
266 | },
267 | {
268 | arr: [2, 1, 0, 4, 5],
269 | expected: true,
270 | },
271 | {
272 | arr: [10, 20, 30, 40, 50],
273 | expected: false,
274 | },
275 | ].forEach((data) => {
276 | const actual = tasks.isValueEqualsIndex(data.arr);
277 | assert.strictEqual(actual, data.expected);
278 | });
279 | }
280 | );
281 |
282 | it.optional('insertItem should insert an item at specified position', () => {
283 | [
284 | {
285 | arr: [1, 3, 4, 5],
286 | item: 2,
287 | index: 1,
288 | expected: [1, 2, 3, 4, 5],
289 | },
290 | {
291 | arr: [1, 'b', 'c'],
292 | item: 'x',
293 | index: 0,
294 | expected: ['x', 1, 'b', 'c'],
295 | },
296 | ].forEach((data) => {
297 | tasks.insertItem(data.arr, data.item, data.index);
298 | assert.deepEqual(data.arr, data.expected);
299 | });
300 | });
301 |
302 | it.optional(
303 | 'getHead should return the n first items from the specified array',
304 | () => {
305 | [
306 | {
307 | arr: [1, 2, 3, 4, 5],
308 | n: 2,
309 | expected: [1, 2],
310 | },
311 | {
312 | arr: ['a', 'b', 'c', 'd'],
313 | n: 3,
314 | expected: ['a', 'b', 'c'],
315 | },
316 | {
317 | arr: ['c', 'a', 't'],
318 | n: 0,
319 | expected: [],
320 | },
321 | ].forEach((data) => {
322 | assert.deepEqual(tasks.getHead(data.arr, data.n), data.expected);
323 | });
324 | }
325 | );
326 |
327 | it.optional(
328 | 'getTail should return the n last items from the specified array',
329 | () => {
330 | [
331 | {
332 | arr: [1, 2, 3, 4, 5],
333 | n: 2,
334 | expected: [4, 5],
335 | },
336 | {
337 | arr: ['a', 'b', 'c', 'd'],
338 | n: 3,
339 | expected: ['b', 'c', 'd'],
340 | },
341 | {
342 | arr: ['c', 'a', 't'],
343 | n: 0,
344 | expected: [],
345 | },
346 | ].forEach((data) => {
347 | assert.deepEqual(tasks.getTail(data.arr, data.n), data.expected);
348 | });
349 | }
350 | );
351 |
352 | it.optional('doubleArray should return the specified array twice', () => {
353 | [
354 | {
355 | arr: ['Ace', 10, true],
356 | expected: ['Ace', 10, true, 'Ace', 10, true],
357 | },
358 | {
359 | arr: [0, 1, 2, 3, 4, 5],
360 | expected: [0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5],
361 | },
362 | {
363 | arr: [],
364 | expected: [],
365 | },
366 | ].forEach((data) => {
367 | const actual = tasks.doubleArray(data.arr);
368 | assert.deepEqual(
369 | actual,
370 | data.expected,
371 | `The result of doubling [${data.arr}] is not correct`
372 | );
373 | });
374 | });
375 |
376 | it.optional(
377 | 'toStringList should return the string list of passed arguments',
378 | () => {
379 | [
380 | {
381 | arr: [0, false, 'cat', NaN, true, ''],
382 | expected: '0,false,cat,NaN,true,',
383 | },
384 | {
385 | arr: [1, 2, 3, 4, 5],
386 | expected: '1,2,3,4,5',
387 | },
388 | {
389 | arr: ['rock', 'paper', 'scissors'],
390 | expected: 'rock,paper,scissors',
391 | },
392 | ].forEach((data) => {
393 | const actual = tasks.toStringList(data.arr);
394 | assert.equal(actual, data.expected);
395 | });
396 | }
397 | );
398 |
399 | it.optional(
400 | 'distinct should return an array of unique items from the specified array',
401 | () => {
402 | [
403 | {
404 | arr: [1, 2, 3, 3, 2, 1],
405 | expected: [1, 2, 3],
406 | },
407 | {
408 | arr: ['a', 'a', 'a', 'a', 'a'],
409 | expected: ['a'],
410 | },
411 | {
412 | arr: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
413 | expected: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
414 | },
415 | {
416 | arr: [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6],
417 | expected: [1, 2, 3, 4, 5, 6],
418 | },
419 | ].forEach((data) => {
420 | const actual = tasks.distinct(data.arr);
421 | assert.deepEqual(actual, data.expected);
422 | });
423 | }
424 | );
425 |
426 | it.optional(
427 | 'createNDimensionalArray should return an n-dimensional array filled with zeros',
428 | () => {
429 | [
430 | {
431 | n: 2,
432 | size: 3,
433 | expected: [
434 | [0, 0, 0],
435 | [0, 0, 0],
436 | [0, 0, 0],
437 | ],
438 | },
439 | {
440 | n: 3,
441 | size: 2,
442 | expected: [
443 | [
444 | [0, 0],
445 | [0, 0],
446 | ],
447 | [
448 | [0, 0],
449 | [0, 0],
450 | ],
451 | ],
452 | },
453 | {
454 | n: 4,
455 | size: 2,
456 | expected: [
457 | [
458 | [
459 | [0, 0],
460 | [0, 0],
461 | ],
462 | [
463 | [0, 0],
464 | [0, 0],
465 | ],
466 | ],
467 | [
468 | [
469 | [0, 0],
470 | [0, 0],
471 | ],
472 | [
473 | [0, 0],
474 | [0, 0],
475 | ],
476 | ],
477 | ],
478 | },
479 | {
480 | n: 1,
481 | size: 1,
482 | expected: [0],
483 | },
484 | ].forEach((data) => {
485 | const actual = tasks.createNDimensionalArray(data.n, data.size);
486 | assert.deepEqual(actual, data.expected);
487 | });
488 | }
489 | );
490 |
491 | it.optional('flattenArray should return a single-level array', () => {
492 | [
493 | {
494 | arr: [1, [2, [3, 4], 5], 6],
495 | expected: [1, 2, 3, 4, 5, 6],
496 | },
497 | {
498 | arr: ['a', ['b', ['c', 'd'], 'e'], 'f'],
499 | expected: ['a', 'b', 'c', 'd', 'e', 'f'],
500 | },
501 | {
502 | arr: [1, 2, 3, 4],
503 | expected: [1, 2, 3, 4],
504 | },
505 | ].forEach((data) => {
506 | const actual = tasks.flattenArray(data.arr);
507 | assert.deepEqual(actual, data.expected);
508 | });
509 | });
510 |
511 | it.optional(
512 | 'selectMany should return an array of child items from the specified array',
513 | () => {
514 | [
515 | {
516 | arr: [
517 | [1, 2],
518 | [3, 4],
519 | [5, 6],
520 | ],
521 | childrenSelector: (x) => x,
522 | expected: [1, 2, 3, 4, 5, 6],
523 | },
524 | {
525 | arr: [
526 | [11, 12, 13, 14, 15],
527 | [21, 22, undefined, 23, 24, 25],
528 | [31, 32, 34, 35],
529 | ],
530 | childrenSelector: (x) => x.slice(0, 2),
531 | expected: [11, 12, 21, 22, 31, 32],
532 | },
533 | {
534 | arr: ['one', 'two', 'three'],
535 | childrenSelector: (x) => x.split(''),
536 | expected: ['o', 'n', 'e', 't', 'w', 'o', 't', 'h', 'r', 'e', 'e'],
537 | },
538 | ].forEach((data) => {
539 | const actual = tasks.selectMany(data.arr, data.childrenSelector);
540 | assert.deepStrictEqual(actual, data.expected);
541 | });
542 | }
543 | );
544 |
545 | it.optional('calculateBalance should return the final balance', () => {
546 | [
547 | {
548 | arr: [
549 | [10, 8],
550 | [5, 1],
551 | ],
552 | expected: 6,
553 | },
554 | {
555 | arr: [
556 | [10, 8],
557 | [1, 5],
558 | ],
559 | expected: -2,
560 | },
561 | ].forEach((data) => {
562 | const actual = tasks.calculateBalance(data.arr);
563 | assert.strictEqual(actual, data.expected);
564 | });
565 | });
566 |
567 | // createChunks
568 | it.optional('createChunks should return an array of chunks', () => {
569 | [
570 | {
571 | arr: [1, 2, 3, 4, 5, 6, 7],
572 | chunkSize: 3,
573 | expected: [[1, 2, 3], [4, 5, 6], [7]],
574 | },
575 | {
576 | arr: ['a', 'b', 'c', 'd', 'e'],
577 | chunkSize: 2,
578 | expected: [['a', 'b'], ['c', 'd'], ['e']],
579 | },
580 | {
581 | arr: [10, 20, 30, 40, 50],
582 | chunkSize: 1,
583 | expected: [[10], [20], [30], [40], [50]],
584 | },
585 | ].forEach((data) => {
586 | const actual = tasks.createChunks(data.arr, data.chunkSize);
587 | assert.deepEqual(actual, data.expected);
588 | });
589 | });
590 |
591 | it.optional(
592 | 'generateOdds should return the array of odd numbers of specified size',
593 | () => {
594 | [
595 | {
596 | len: 1,
597 | expected: [1],
598 | },
599 | {
600 | len: 2,
601 | expected: [1, 3],
602 | },
603 | {
604 | len: 5,
605 | expected: [1, 3, 5, 7, 9],
606 | },
607 | {
608 | len: 16,
609 | expected: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31],
610 | },
611 | ].forEach((data) => {
612 | assert.deepEqual(tasks.generateOdds(data.len), data.expected);
613 | });
614 | }
615 | );
616 |
617 | it.optional(
618 | 'getElementByIndices should return an element from array by specified indexes',
619 | () => {
620 | [
621 | {
622 | arr: [
623 | [1, 2],
624 | [3, 4],
625 | [5, 6],
626 | ],
627 | indexes: [0, 0],
628 | expected: 1,
629 | },
630 | {
631 | arr: ['one', 'two', 'three'],
632 | indexes: [2],
633 | expected: 'three',
634 | },
635 | {
636 | arr: [[[1, 2, 3]]],
637 | indexes: [0, 0, 1],
638 | expected: 2,
639 | },
640 | ].forEach((data) => {
641 | const actual = tasks.getElementByIndices(data.arr, data.indexes);
642 | assert.equal(
643 | actual,
644 | data.expected,
645 | `getElementByIndices(${JSON.stringify(data.arr)}, ${JSON.stringify(
646 | data.indexes
647 | )}) returns an incorrect result. Expected ${
648 | data.expected
649 | }, but actual ${actual}`
650 | );
651 | });
652 | }
653 | );
654 |
655 | it.optional(
656 | 'getFalsyValuesCount should return the number of falsy value in the specified array',
657 | () => {
658 | [
659 | {
660 | arr: [],
661 | expected: 0,
662 | },
663 | {
664 | arr: [1, '', 3],
665 | expected: 1,
666 | },
667 | {
668 | arr: [-1, 'false', null, 0],
669 | expected: 2,
670 | },
671 | {
672 | arr: [null, undefined, NaN, false, 0, ''],
673 | expected: 6,
674 | },
675 | ].forEach((data) => {
676 | const actual = tasks.getFalsyValuesCount(data.arr);
677 | assert.deepEqual(
678 | actual,
679 | data.expected,
680 | `Test failed for [${data.arr}]`
681 | );
682 | });
683 | }
684 | );
685 |
686 | it.optional(
687 | 'getIdentityMatrix should return the identity matrix of the specified size',
688 | () => {
689 | [
690 | {
691 | n: 1,
692 | expected: [[1]],
693 | },
694 | {
695 | n: 2,
696 | expected: [
697 | [1, 0],
698 | [0, 1],
699 | ],
700 | },
701 | {
702 | n: 5,
703 | expected: [
704 | [1, 0, 0, 0, 0],
705 | [0, 1, 0, 0, 0],
706 | [0, 0, 1, 0, 0],
707 | [0, 0, 0, 1, 0],
708 | [0, 0, 0, 0, 1],
709 | ],
710 | },
711 | ].forEach((data) => {
712 | const actual = tasks.getIdentityMatrix(data.n);
713 | assert.deepEqual(actual, data.expected);
714 | });
715 | }
716 | );
717 |
718 | it.optional(
719 | 'getIndicesOfOddNumbers should return an array containing indices of odd elements',
720 | () => {
721 | [
722 | {
723 | arr: [1, 2, 3, 4, 5],
724 | expected: [0, 2, 4],
725 | },
726 | {
727 | arr: [2, 4, 6, 8, 10],
728 | expected: [],
729 | },
730 | {
731 | arr: [11, 22, 33, 44, 55],
732 | expected: [0, 2, 4],
733 | },
734 | ].forEach((data) => {
735 | const actual = tasks.getIndicesOfOddNumbers(data.arr);
736 | assert.deepEqual(actual, data.expected);
737 | });
738 | }
739 | );
740 |
741 | // getHexRGBValues
742 | it.optional(
743 | 'getHexRGBValues should return an array of RGB Hex strings',
744 | () => {
745 | [
746 | {
747 | arr: [0, 255, 16777215],
748 | expected: ['#000000', '#0000FF', '#FFFFFF'],
749 | },
750 | {
751 | arr: [],
752 | expected: [],
753 | },
754 | ].forEach((data) => {
755 | const actual = tasks.getHexRGBValues(data.arr);
756 | assert.deepEqual(actual, data.expected);
757 | });
758 | }
759 | );
760 |
761 | it.optional('getMaxItems should return n largest values', () => {
762 | [
763 | {
764 | arr: [],
765 | n: 5,
766 | expected: [],
767 | },
768 | {
769 | arr: [1, 2],
770 | n: 1,
771 | expected: [2],
772 | },
773 | {
774 | arr: [2, 3, 1],
775 | n: 2,
776 | expected: [3, 2],
777 | },
778 | {
779 | arr: [10, 2, 7, 5, 3, -5],
780 | n: 3,
781 | expected: [10, 7, 5],
782 | },
783 | {
784 | arr: [10, 10, 10, 10],
785 | n: 3,
786 | expected: [10, 10, 10],
787 | },
788 | ].forEach((data) => {
789 | const actual = tasks.getMaxItems(data.arr, data.n);
790 | assert.deepEqual(actual, data.expected);
791 | });
792 | });
793 |
794 | // findCommonElements
795 | it.optional(
796 | 'findCommonElements should return an array containing common elements',
797 | () => {
798 | [
799 | {
800 | arr1: [1, 2, 3],
801 | arr2: [2, 3, 4],
802 | expected: [2, 3],
803 | },
804 | {
805 | arr1: ['a', 'b', 'c'],
806 | arr2: ['b', 'c', 'd'],
807 | expected: ['b', 'c'],
808 | },
809 | {
810 | arr1: [1, 2, 3],
811 | arr2: ['a', 'b', 'c'],
812 | expected: [],
813 | },
814 | ].forEach((data) => {
815 | const actual = tasks.findCommonElements(data.arr1, data.arr2);
816 | assert.deepEqual(actual, data.expected);
817 | });
818 | }
819 | );
820 |
821 | // findLongestIncreasingSubsequence
822 | it.optional(
823 | 'findLongestIncreasingSubsequence should return a length of the longest increasing subsequence',
824 | () => {
825 | [
826 | {
827 | arr: [10, 22, 9, 33, 21, 50, 41, 60, 80],
828 | expected: 3,
829 | },
830 | {
831 | arr: [3, 10, 2, 1, 20],
832 | expected: 2,
833 | },
834 | {
835 | arr: [50, 3, 10, 7, 40, 80],
836 | expected: 3,
837 | },
838 | {
839 | arr: [41, 60, 80, 10, 22, 9, 33, 21, 50],
840 | expected: 3,
841 | },
842 | ].forEach((data) => {
843 | const actual = tasks.findLongestIncreasingSubsequence(data.arr);
844 | assert.strictEqual(actual, data.expected);
845 | });
846 | }
847 | );
848 |
849 | it.optional(
850 | 'propagateItemsByPositionIndex should propagate every item its position time',
851 | () => {
852 | [
853 | {
854 | arr: [],
855 | expected: [],
856 | },
857 | {
858 | arr: [1],
859 | expected: [1],
860 | },
861 | {
862 | arr: ['a', 'b'],
863 | expected: ['a', 'b', 'b'],
864 | },
865 | {
866 | arr: ['a', 'b', 'c', null],
867 | expected: ['a', 'b', 'b', 'c', 'c', 'c', null, null, null, null],
868 | },
869 | {
870 | arr: [1, 2, 3, 4, 5],
871 | expected: [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5],
872 | },
873 | ].forEach((data) => {
874 | const actual = tasks.propagateItemsByPositionIndex(data.arr);
875 | assert.deepEqual(actual, data.expected);
876 | });
877 | }
878 | );
879 |
880 | // shiftArray
881 | it.optional('shiftArray should return the shifted array', () => {
882 | [
883 | {
884 | arr: [1, 2, 3, 4, 5],
885 | n: 2,
886 | expected: [4, 5, 1, 2, 3],
887 | },
888 | {
889 | arr: ['a', 'b', 'c', 'd'],
890 | n: -1,
891 | expected: ['b', 'c', 'd', 'a'],
892 | },
893 | {
894 | arr: [10, 20, 30, 40, 50],
895 | n: -3,
896 | expected: [40, 50, 10, 20, 30],
897 | },
898 | ].forEach((data) => {
899 | const actual = tasks.shiftArray(data.arr, data.n);
900 | assert.deepEqual(actual, data.expected);
901 | });
902 | });
903 |
904 | it.optional(
905 | 'sortDigitNamesByNumericOrder should sort digit names by its numeric value',
906 | () => {
907 | [
908 | {
909 | arr: [],
910 | expected: [],
911 | },
912 | {
913 | arr: ['nine', 'one'],
914 | expected: ['one', 'nine'],
915 | },
916 | {
917 | arr: ['one', 'two', 'three'],
918 | expected: ['one', 'two', 'three'],
919 | },
920 | {
921 | arr: ['nine', 'eight', 'nine', 'eight'],
922 | expected: ['eight', 'eight', 'nine', 'nine'],
923 | },
924 | {
925 | arr: ['one', 'one', 'one', 'zero'],
926 | expected: ['zero', 'one', 'one', 'one'],
927 | },
928 | {
929 | arr: [
930 | 'nine',
931 | 'eight',
932 | 'seven',
933 | 'six',
934 | 'five',
935 | 'four',
936 | 'three',
937 | 'two',
938 | 'one',
939 | 'zero',
940 | ],
941 | expected: [
942 | 'zero',
943 | 'one',
944 | 'two',
945 | 'three',
946 | 'four',
947 | 'five',
948 | 'six',
949 | 'seven',
950 | 'eight',
951 | 'nine',
952 | ],
953 | },
954 | ].forEach((data) => {
955 | const actual = tasks.sortDigitNamesByNumericOrder(data.arr);
956 | assert.deepEqual(actual, data.expected);
957 | });
958 | }
959 | );
960 |
961 | it.optional(
962 | 'swapHeadAndTail should swap the head and tail of the array',
963 | () => {
964 | [
965 | {
966 | arr: [1],
967 | expected: [1],
968 | },
969 | {
970 | arr: [1, 2],
971 | expected: [2, 1],
972 | },
973 | {
974 | arr: [1, 2, 3],
975 | expected: [3, 2, 1],
976 | },
977 | {
978 | arr: [1, 2, 3, 4],
979 | expected: [3, 4, 1, 2],
980 | },
981 | {
982 | arr: [1, 2, 3, 4, 5],
983 | expected: [4, 5, 3, 1, 2],
984 | },
985 | ].forEach((data) => {
986 | const actual = tasks.swapHeadAndTail(Array.from(data.arr));
987 | assert.deepEqual(
988 | actual,
989 | data.expected,
990 | `The result of swapping head and tail [${data.arr}] is not correct`
991 | );
992 | });
993 | }
994 | );
995 |
996 | it.optional(
997 | 'Functions from 04-array-test.js should not use basic loops statements',
998 | () => {
999 | Object.getOwnPropertyNames(tasks)
1000 | .filter((x) => tasks[x] instanceof Function)
1001 | .forEach((f) => {
1002 | assert(
1003 | !/([;{]\s*(for|while)\s*\()|(\.forEach\s*\()/.test(
1004 | tasks[f].toString()
1005 | ),
1006 | `Function "${f}" should not use basic loop statements (for, while or forEach)! Please use specialized array methods (map, reduce etc).`
1007 | );
1008 | });
1009 | }
1010 | );
1011 | });
1012 |
1013 | describe('strings-tasks optimal implementation', () => {
1014 | it.optional('optimal implementation of getIntervalArray', function test() {
1015 | const fnStr = tasks.getIntervalArray.toString();
1016 | if (!fnStr.includes('return')) {
1017 | this.skip();
1018 | }
1019 | assert.equal(
1020 | fnStr.includes('from'),
1021 | true,
1022 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1023 | );
1024 | });
1025 |
1026 | it.optional('optimal implementation of findElement', function test() {
1027 | const fnStr = tasks.findElement.toString();
1028 | if (!fnStr.includes('return')) {
1029 | this.skip();
1030 | }
1031 | assert.equal(
1032 | fnStr.includes('indexOf'),
1033 | true,
1034 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1035 | );
1036 | });
1037 |
1038 | it.optional('optimal implementation of removeFalsyValues', function test() {
1039 | const fnStr = tasks.removeFalsyValues.toString();
1040 | if (!fnStr.includes('return')) {
1041 | this.skip();
1042 | }
1043 | assert.equal(
1044 | fnStr.includes('filter'),
1045 | true,
1046 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1047 | );
1048 | });
1049 |
1050 | it.optional('optimal implementation of getStringsLength', function test() {
1051 | const fnStr = tasks.getStringsLength.toString();
1052 | if (!fnStr.includes('return')) {
1053 | this.skip();
1054 | }
1055 | assert.equal(
1056 | fnStr.includes('map'),
1057 | true,
1058 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1059 | );
1060 | });
1061 |
1062 | it.optional('optimal implementation of getAverage', function test() {
1063 | const fnStr = tasks.getAverage.toString();
1064 | if (!fnStr.includes('return')) {
1065 | this.skip();
1066 | }
1067 | assert.equal(
1068 | fnStr.includes('reduce'),
1069 | true,
1070 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1071 | );
1072 | });
1073 |
1074 | it.optional('optimal implementation of isSameLength', function test() {
1075 | const fnStr = tasks.isSameLength.toString();
1076 | if (!fnStr.includes('return')) {
1077 | this.skip();
1078 | }
1079 | assert.equal(
1080 | fnStr.includes('every'),
1081 | true,
1082 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1083 | );
1084 | });
1085 |
1086 | it.optional('optimal implementation of isValueEqualsIndex', function test() {
1087 | const fnStr = tasks.isValueEqualsIndex.toString();
1088 | if (!fnStr.includes('return')) {
1089 | this.skip();
1090 | }
1091 | assert.equal(
1092 | fnStr.includes('some'),
1093 | true,
1094 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1095 | );
1096 | });
1097 |
1098 | it.optional('optimal implementation of insertItem', function test() {
1099 | const fnStr = tasks.insertItem.toString();
1100 | if (!fnStr.includes('return')) {
1101 | this.skip();
1102 | }
1103 | assert.equal(
1104 | fnStr.includes('splice'),
1105 | true,
1106 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1107 | );
1108 | });
1109 |
1110 | it.optional('optimal implementation of getHead', function test() {
1111 | const fnStr = tasks.getHead.toString();
1112 | if (!fnStr.includes('return')) {
1113 | this.skip();
1114 | }
1115 | assert.equal(
1116 | fnStr.includes('slice'),
1117 | true,
1118 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1119 | );
1120 | });
1121 |
1122 | it.optional('optimal implementation of doubleArray', function test() {
1123 | const fnStr = tasks.doubleArray.toString();
1124 | if (!fnStr.includes('return')) {
1125 | this.skip();
1126 | }
1127 | assert.equal(
1128 | fnStr.includes('concat'),
1129 | true,
1130 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1131 | );
1132 | });
1133 |
1134 | it.optional('optimal implementation of toStringList', function test() {
1135 | const fnStr = tasks.toStringList.toString();
1136 | if (!fnStr.includes('return')) {
1137 | this.skip();
1138 | }
1139 | assert.equal(
1140 | fnStr.includes('join'),
1141 | true,
1142 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1143 | );
1144 | });
1145 |
1146 | it.optional('optimal implementation of distinct', function test() {
1147 | const fnStr = tasks.distinct.toString();
1148 | if (!fnStr.includes('return')) {
1149 | this.skip();
1150 | }
1151 | assert.equal(
1152 | fnStr.includes('Set'),
1153 | true,
1154 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1155 | );
1156 | });
1157 |
1158 | it.optional(
1159 | 'optimal implementation of createNDimensionalArray',
1160 | function test() {
1161 | const fnStr = tasks.createNDimensionalArray.toString();
1162 | if (!fnStr.includes('return')) {
1163 | this.skip();
1164 | }
1165 | assert.equal(
1166 | fnStr.includes('fill'),
1167 | true,
1168 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1169 | );
1170 | }
1171 | );
1172 |
1173 | it.optional('optimal implementation of flattenArray', function test() {
1174 | let fnStr = tasks.flattenArray.toString();
1175 | const idx = fnStr.indexOf('{');
1176 | fnStr = fnStr.slice(idx);
1177 | if (!fnStr.includes('return')) {
1178 | this.skip();
1179 | }
1180 | assert.equal(
1181 | fnStr.includes('flat'),
1182 | true,
1183 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1184 | );
1185 | });
1186 |
1187 | it.optional('optimal implementation of selectMany', function test() {
1188 | const fnStr = tasks.selectMany.toString();
1189 | if (!fnStr.includes('return')) {
1190 | this.skip();
1191 | }
1192 | assert.equal(
1193 | fnStr.includes('flatMap'),
1194 | true,
1195 | 'You need to use a different method, look for the appropriate method in the documentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array'
1196 | );
1197 | });
1198 | });
1199 |
--------------------------------------------------------------------------------