├── .github
└── workflows
│ ├── build.yml
│ └── publish.yml
├── .gitignore
├── .npmignore
├── .prettierrc
├── LICENSE
├── README.md
├── package.json
├── src
├── index.ts
├── schema-builder.ts
├── schema-comparator.ts
└── types.ts
├── tests
├── __snapshots__
│ └── schema-builder.spec.ts.snap
├── fixtures
│ ├── complex-schema1.ts
│ ├── complex-schema2.ts
│ └── index.ts
├── schema-builder.spec.ts
├── schema-comparator.spec.ts
└── test-utils.ts
├── tsconfig.json
└── yarn.lock
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build
2 | on: [push]
3 |
4 | jobs:
5 | build:
6 | name: Build
7 | runs-on: ubuntu-latest
8 | steps:
9 | - uses: actions/checkout@v2
10 |
11 | - name: install
12 | run: yarn
13 |
14 | - name: build
15 | run: yarn run build
16 |
17 | - name: test
18 | run: yarn test
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish to NPM
2 |
3 | on:
4 | workflow_dispatch:
5 | inputs:
6 | semanticVersion:
7 | description: 'Semantic Version [major|minor|patch]'
8 | required: true
9 | default: 'patch'
10 |
11 | jobs:
12 | Publish:
13 | name: Publish
14 | runs-on: ubuntu-latest
15 | if: github.ref == 'refs/heads/master'
16 | steps:
17 | - name: checkout
18 | uses: actions/checkout@v2
19 | with:
20 | token: ${{ secrets.ADMIN_TOKEN }}
21 | ref: 'master'
22 |
23 | - uses: actions/setup-node@v1
24 | with:
25 | node-version: 12
26 | registry-url: https://registry.npmjs.org/
27 |
28 | - name: Install node modules
29 | run: yarn install
30 |
31 | - name: Build
32 | run: yarn build
33 |
34 | - name: Test
35 | run: yarn test
36 |
37 | - name: Configure CI Git User
38 | run: |
39 | git config --global user.name '@aspecto-system'
40 | git config --global user.email 'aspecto-system@users.noreply.github.com'
41 |
42 | - name: Update yarn commit message
43 | run: yarn config set version-git-message "chore(release) - publish v%s"
44 |
45 | - name: Bump Version
46 | run: yarn version --${{ github.event.inputs.semanticVersion }} --no-commit-hooks
47 |
48 | - name: Publish to NPM
49 | run: npm publish
50 | env:
51 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
52 |
53 | - name: Push Version Update
54 | run: git push
55 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 | .DS_Store
4 | .idea
5 | .vscode
6 | yarn-error.log
7 | .editorconfig
8 | coverage
9 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | /.idea
2 | /.vscode
3 | /node_modules
4 | /.github
5 | /scripts
6 | .prettierrc
7 | src
8 | tsconfig.json
9 | .npmignore
10 | tests
11 | .editorconfig
12 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | trailingComma: "es5"
2 | semi: true
3 | printWidth: 120
4 | tabWidth: 4
5 | singleQuote: true
6 | arrowParens: "always"
7 | jsxSingleQuote: true
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # genson-js
2 |  [](http://makeapullrequest.com) [](http://www.typescriptlang.org/) [](https://www.npmjs.com/package/genson-js)
3 |
4 |
5 | **genson-js** is a user-friendly **JSON Schema** generator built in TypeScript/JavaScript.
6 |
7 | > This is _not_ the JavaScript equivalent of the **Java Genson library**.
8 | > The motivation for this library was to port [GenSON](https://github.com/cequencer/GenSON) python library to JS, however having exactly the same api or possiblities was not a goal.
9 |
10 | genson-js's core function is to take JSON objects and generate schemas that describe them, with an ability to **merge** schemas.
11 |
12 | ## Usage
13 |
14 | ### Creating schemas
15 |
16 | To infer a schema from existing object:
17 |
18 | ```ts
19 | import { createSchema } from 'genson-js';
20 |
21 | const schema = createSchema({
22 | userName: 'smith',
23 | languages: ['c++', 'java'],
24 | age: 40,
25 | });
26 | ```
27 |
28 | The following schema will be created:
29 |
30 | ```js
31 | {
32 | type: "object",
33 | properties: {
34 | userName: {
35 | type: "string",
36 | },
37 | languages: {
38 | type: "array",
39 | items: {
40 | type: "string",
41 | },
42 | },
43 | age: {
44 | type: "integer",
45 | },
46 | },
47 | required: ["userName", "languages", "age"],
48 | };
49 | ```
50 |
51 | ### Merging schemas
52 |
53 | You can merge 2 or more schemas, so that merged schema would be kind of a superset of the schemas that it was built from:
54 |
55 | ```ts
56 | import { mergeSchemas } from 'genson-js';
57 |
58 | const merged = mergeSchemas([{ type: ValueType.Number }, { type: ValueType.String }]);
59 |
60 | // will create merged schema like this:
61 | // { type: ['number', 'string'] }
62 | ```
63 |
64 | ### Create compound schema
65 |
66 | Shorthand for createSchema + mergeSchemas.
67 | Can take multiple inputs and create one compound schema:
68 |
69 | ```ts
70 | import { createCompoundSchema } from 'genson-js';
71 |
72 | const schema = createCompoundSchema([{ age: 19, name: 'John' }, { age: 23, admin: true }, { age: 35 }]);
73 |
74 | // Will create the following schema:
75 | // {
76 | // type: 'object',
77 | // properties: { admin: { type: 'boolean' }, age: { type: 'integer' }, name: { type: 'string' } },
78 | // required: ['age']
79 | // }
80 | ```
81 |
82 | ### Extending schemas
83 |
84 | You can extend existing schema to match some value:
85 |
86 | ```ts
87 | import { extendSchema } from 'genson-js';
88 |
89 | const extended = extendSchema({ type: ValueType.Number }, 'some string');
90 |
91 | // will create extended schema like this:
92 | // { type: ['number', 'string'] }
93 | ```
94 |
95 | ### Comparing schemas
96 |
97 | You can compare 2 schemas for equality like this:
98 |
99 | ```ts
100 | import { areSchemasEqual } from 'genson-js';
101 |
102 | areSchemasEqual({ type: ValueType.Number }, { type: ValueType.Number });
103 | // will return true
104 | ```
105 |
106 | ### Subset
107 |
108 | You can also check if one schema is a subset of another one like so:
109 |
110 | ```ts
111 | import { isSubset } from 'genson-js';
112 |
113 | isSubset(
114 | { type: ValueType.Array, items: { type: [ValueType.Boolean, ValueType.Integer] } },
115 | { type: ValueType.Array, items: { type: [ValueType.Boolean] } }
116 | );
117 | // will return true
118 | ```
119 |
120 | You can find more examples in the unit tests.
121 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "genson-js",
3 | "version": "0.0.8",
4 | "main": "dist/index.js",
5 | "types": "dist/index.d.js",
6 | "author": "Aspecto.io",
7 | "license": "Apache-2.0",
8 | "keywords": [
9 | "json",
10 | "schema",
11 | "json-schema",
12 | "jsonschema",
13 | "object",
14 | "generate",
15 | "generator",
16 | "builder",
17 | "merge"
18 | ],
19 | "description": "JSON schema generator with a possibility to merge schemas",
20 | "scripts": {
21 | "test": "jest",
22 | "tdd": "jest --watch",
23 | "build": "tsc",
24 | "prepublishOnly": "npm run build"
25 | },
26 | "devDependencies": {
27 | "@types/jest": "^27.5.1",
28 | "@types/node": "^14.6.0",
29 | "jest": "^27.5.1",
30 | "ts-jest": "^27.1.5",
31 | "typescript": "^4.0.2"
32 | },
33 | "repository": {
34 | "type": "git",
35 | "url": "git+ssh://git@github.com/aspecto-io/genson-js.git"
36 | },
37 | "files": [
38 | "dist/**/*.js",
39 | "dist/**/*.d.ts",
40 | "LICENSE",
41 | "README.md"
42 | ],
43 | "jest": {
44 | "testEnvironment": "node",
45 | "preset": "ts-jest",
46 | "testMatch": [
47 | "**/tests/**/*.spec.+(ts|tsx|js)"
48 | ],
49 | "moduleFileExtensions": [
50 | "ts",
51 | "js"
52 | ],
53 | "transform": {
54 | "^.+\\.(ts)$": "ts-jest"
55 | },
56 | "globals": {
57 | "ts-jest": {
58 | "diagnostics": false
59 | }
60 | }
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './types';
2 | export { extendSchema, mergeSchemas, createSchema, createCompoundSchema } from './schema-builder';
3 | export * from './schema-comparator';
4 |
--------------------------------------------------------------------------------
/src/schema-builder.ts:
--------------------------------------------------------------------------------
1 | import { ValueType, Schema, SchemaGenOptions } from './types';
2 |
3 | function createSchemaFor(value: any, options?: SchemaGenOptions): Schema {
4 | switch (typeof value) {
5 | case 'number':
6 | if (Number.isInteger(value)) {
7 | return { type: ValueType.Integer };
8 | }
9 | return { type: ValueType.Number };
10 | case 'boolean':
11 | return { type: ValueType.Boolean };
12 | case 'string':
13 | return { type: ValueType.String };
14 | case 'object':
15 | if (value === null) {
16 | return { type: ValueType.Null };
17 | }
18 | if (Array.isArray(value)) {
19 | return createSchemaForArray(value, options);
20 | }
21 | return createSchemaForObject(value, options);
22 | }
23 | }
24 |
25 | function createSchemaForArray(arr: Array, options?: SchemaGenOptions): Schema {
26 | if (arr.length === 0) {
27 | return { type: ValueType.Array };
28 | }
29 | const elementSchemas = arr.map((value) => createSchemaFor(value, options));
30 | const items = combineSchemas(elementSchemas);
31 | return { type: ValueType.Array, items };
32 | }
33 |
34 | function createSchemaForObject(obj: Object, options?: SchemaGenOptions): Schema {
35 | const keys = Object.keys(obj);
36 | if (keys.length === 0) {
37 | return {
38 | type: ValueType.Object,
39 | };
40 | }
41 | const properties = Object.entries(obj).reduce((props, [key, val]) => {
42 | props[key] = createSchemaFor(val, options);
43 | return props;
44 | }, {});
45 |
46 | const schema: Schema = { type: ValueType.Object, properties };
47 | if (!options?.noRequired) {
48 | schema.required = keys;
49 | }
50 | return schema;
51 | }
52 |
53 | function combineSchemas(schemas: Schema[], options?: SchemaGenOptions): Schema {
54 | const schemasByType: Record = {
55 | [ValueType.Null]: [],
56 | [ValueType.Boolean]: [],
57 | [ValueType.Integer]: [],
58 | [ValueType.Number]: [],
59 | [ValueType.String]: [],
60 | [ValueType.Array]: [],
61 | [ValueType.Object]: [],
62 | };
63 |
64 | const unwrappedSchemas = unwrapSchemas(schemas);
65 | for (const unwrappedSchema of unwrappedSchemas) {
66 | const type = unwrappedSchema.type as ValueType;
67 | if (schemasByType[type].length === 0 || isContainerSchema(unwrappedSchema)) {
68 | schemasByType[type].push(unwrappedSchema);
69 | } else {
70 | continue;
71 | }
72 | }
73 |
74 | const resultSchemasByType: Record = {
75 | [ValueType.Null]: schemasByType[ValueType.Null][0],
76 | [ValueType.Boolean]: schemasByType[ValueType.Boolean][0],
77 | [ValueType.Number]: schemasByType[ValueType.Number][0],
78 | [ValueType.Integer]: schemasByType[ValueType.Integer][0],
79 | [ValueType.String]: schemasByType[ValueType.String][0],
80 | [ValueType.Array]: combineArraySchemas(schemasByType[ValueType.Array]),
81 | [ValueType.Object]: combineObjectSchemas(schemasByType[ValueType.Object], options),
82 | };
83 |
84 | if (resultSchemasByType[ValueType.Number]) {
85 | // if at least one value is float, others can be floats too
86 | delete resultSchemasByType[ValueType.Integer];
87 | }
88 |
89 | const schemasFound = Object.values(resultSchemasByType).filter(Boolean);
90 | const multiType = schemasFound.length > 1;
91 | if (multiType) {
92 | const wrapped = wrapAnyOfSchema({ anyOf: schemasFound });
93 | return wrapped;
94 | }
95 | return schemasFound[0] as Schema;
96 | }
97 |
98 | function combineArraySchemas(schemas: Schema[]): Schema {
99 | if (!schemas || schemas.length === 0) {
100 | return undefined;
101 | }
102 | const itemSchemas: Schema[] = [];
103 | for (const schema of schemas) {
104 | if (!schema.items) continue;
105 | const unwrappedSchemas = unwrapSchema(schema.items);
106 | itemSchemas.push(...unwrappedSchemas);
107 | }
108 |
109 | if (itemSchemas.length === 0) {
110 | return {
111 | type: ValueType.Array,
112 | };
113 | }
114 | const items = combineSchemas(itemSchemas);
115 | return {
116 | type: ValueType.Array,
117 | items,
118 | };
119 | }
120 |
121 | function combineObjectSchemas(schemas: Schema[], options?: SchemaGenOptions): Schema {
122 | if (!schemas || schemas.length === 0) {
123 | return undefined;
124 | }
125 | const allPropSchemas = schemas.map((s) => s.properties).filter(Boolean);
126 | const schemasByProp: Record = Object.create(null);
127 | // const schemasByProp: Record = {};
128 | for (const propSchemas of allPropSchemas) {
129 | for (const [prop, schema] of Object.entries(propSchemas)) {
130 | if (!schemasByProp[prop]) {
131 | schemasByProp[prop] = [];
132 | }
133 | const unwrappedSchemas = unwrapSchema(schema);
134 | schemasByProp[prop].push(...unwrappedSchemas);
135 | }
136 | }
137 |
138 | const properties: Record = Object.entries(schemasByProp).reduce((props, [prop, schemas]) => {
139 | if (schemas.length === 1) {
140 | props[prop] = schemas[0];
141 | } else {
142 | props[prop] = combineSchemas(schemas);
143 | }
144 | return props;
145 | }, {});
146 |
147 | const combinedSchema: Schema = { type: ValueType.Object };
148 |
149 | if (Object.keys(properties).length > 0) {
150 | combinedSchema.properties = properties;
151 | }
152 | if (!options?.noRequired) {
153 | const required = intersection(schemas.map((s) => s.required || []));
154 | if (required.length > 0) {
155 | combinedSchema.required = required;
156 | }
157 | }
158 |
159 | return combinedSchema;
160 | }
161 |
162 | export function unwrapSchema(schema: Schema): Schema[] {
163 | if (!schema) return [];
164 | if (schema.anyOf) {
165 | return unwrapSchemas(schema.anyOf);
166 | }
167 | if (Array.isArray(schema.type)) {
168 | return schema.type.map((x) => ({ type: x }));
169 | }
170 | return [schema];
171 | }
172 |
173 | export function unwrapSchemas(schemas: Schema[]): Schema[] {
174 | if (!schemas || schemas.length === 0) return [];
175 | const unwrappedSchemas = schemas.flatMap((schema) => unwrapSchema(schema));
176 | return unwrappedSchemas;
177 | }
178 |
179 | export function wrapAnyOfSchema(schema: Schema): Schema {
180 | const simpleSchemas = [];
181 | const complexSchemas = [];
182 | for (const subSchema of schema.anyOf) {
183 | if (Array.isArray(subSchema.type)) {
184 | simpleSchemas.push(...subSchema.type);
185 | } else if (isSimpleSchema(subSchema)) {
186 | simpleSchemas.push((subSchema as Schema).type);
187 | } else {
188 | complexSchemas.push(subSchema);
189 | }
190 | }
191 | if (complexSchemas.length === 0) {
192 | return { type: simpleSchemas };
193 | }
194 | const anyOf = [];
195 | if (simpleSchemas.length > 0) {
196 | anyOf.push({ type: simpleSchemas.length > 1 ? simpleSchemas : simpleSchemas[0] });
197 | }
198 | anyOf.push(...complexSchemas);
199 | return { anyOf };
200 | }
201 |
202 | function intersection(valuesArr: string[][]) {
203 | if (valuesArr.length === 0) return [];
204 | const arrays = valuesArr.filter(Array.isArray);
205 | const counter: Record = {};
206 | for (const arr of arrays) {
207 | for (const val of arr) {
208 | if (!counter[val]) {
209 | counter[val] = 1;
210 | } else {
211 | counter[val]++;
212 | }
213 | }
214 | }
215 | const result = Object.entries(counter)
216 | .filter(([_, value]) => value === arrays.length)
217 | .map(([key]) => key);
218 | return result;
219 | }
220 |
221 | function isSimpleSchema(schema: Schema): boolean {
222 | const keys = Object.keys(schema);
223 | return keys.length === 1 && keys[0] === 'type';
224 | }
225 |
226 | function isContainerSchema(schema: Schema): boolean {
227 | const type = (schema as Schema).type;
228 | return type === ValueType.Array || type === ValueType.Object;
229 | }
230 |
231 | // FACADE
232 |
233 | export function createSchema(value: any, options?: SchemaGenOptions): Schema {
234 | if (typeof value === 'undefined') value = null;
235 | const clone = JSON.parse(JSON.stringify(value));
236 | return createSchemaFor(clone, options);
237 | }
238 |
239 | export function mergeSchemas(schemas: Schema[], options?: SchemaGenOptions): Schema {
240 | const mergedSchema = combineSchemas(schemas, options);
241 | return mergedSchema;
242 | }
243 |
244 | export function extendSchema(schema: Schema, value: any, options?: SchemaGenOptions): Schema {
245 | const valueSchema = createSchema(value, options);
246 | const mergedSchema = combineSchemas([schema, valueSchema], options);
247 | return mergedSchema;
248 | }
249 |
250 | export function createCompoundSchema(values: any[], options?: SchemaGenOptions): Schema {
251 | const schemas = values.map((value) => createSchema(value, options));
252 | return mergeSchemas(schemas, options);
253 | }
254 |
--------------------------------------------------------------------------------
/src/schema-comparator.ts:
--------------------------------------------------------------------------------
1 | import { mergeSchemas, unwrapSchema } from './schema-builder';
2 | import { Schema, SchemaComparisonOptions } from './types';
3 |
4 | export function areSchemasEqual(schema1: Schema, schema2: Schema, options?: SchemaComparisonOptions): boolean {
5 | if (schema1 === undefined && schema2 === undefined) return true;
6 | if (schema1 === undefined || schema2 === undefined) return false;
7 |
8 | const anyOf1 = unwrapSchema(schema1);
9 | const anyOf2 = unwrapSchema(schema2);
10 |
11 | if (anyOf1.length != anyOf2.length) return false;
12 | if (anyOf1.length === 0) return true;
13 |
14 | const typeComparator = (s1: Schema, s2: Schema) => s1.type.toLocaleString().localeCompare(s2.type.toLocaleString());
15 | const sorted1 = [...anyOf1].sort(typeComparator);
16 | const sorted2 = [...anyOf2].sort(typeComparator);
17 |
18 | for (let i = 0; i < anyOf1.length; i++) {
19 | const s1 = sorted1[i];
20 | const s2 = sorted2[i];
21 |
22 | if (s1.type !== s2.type) return false;
23 | if (!options?.ignoreRequired && !areArraysEqual(s1.required, s2.required)) return false;
24 | if (!arePropsEqual(s1.properties, s2.properties, options)) return false;
25 | if (!areSchemasEqual(s1.items, s2.items, options)) return false;
26 | }
27 |
28 | return true;
29 | }
30 |
31 | function areArraysEqual(arr1: string[], arr2: string[]): boolean {
32 | if (arr1 === undefined && arr2 === undefined) return true;
33 | if (arr1 === undefined || arr2 === undefined) return false;
34 | const set1 = new Set(arr1);
35 | const set2 = new Set(arr2);
36 | const combined = new Set([...arr1, ...arr2]);
37 | const areEqual = combined.size === set1.size && combined.size === set2.size;
38 | return areEqual;
39 | }
40 |
41 | function arePropsEqual(
42 | props1: Record,
43 | props2: Record,
44 | options?: SchemaComparisonOptions
45 | ): boolean {
46 | if (props1 === undefined && props2 === undefined) return true;
47 | if (props1 === undefined || props2 === undefined) return false;
48 | const keys1 = Object.keys(props1);
49 | const keys2 = Object.keys(props2);
50 | if (!areArraysEqual(keys1, keys2)) return false;
51 | for (const key of keys1) {
52 | if (!areSchemasEqual(props1[key], props2[key], options)) return false;
53 | }
54 | return true;
55 | }
56 |
57 | export function isSubset(mainSchema: Schema, subSchema: Schema, options?: SchemaComparisonOptions): boolean {
58 | const mergedSchema = mergeSchemas([mainSchema, subSchema]);
59 | // console.log(JSON.stringify(mergedSchema, null, 4));
60 | const isModified = areSchemasEqual(mergedSchema, mainSchema, options);
61 | return isModified;
62 | }
63 |
--------------------------------------------------------------------------------
/src/types.ts:
--------------------------------------------------------------------------------
1 | export enum ValueType {
2 | Null = 'null',
3 | Boolean = 'boolean',
4 | Integer = 'integer',
5 | Number = 'number',
6 | String = 'string',
7 | Object = 'object',
8 | Array = 'array',
9 | }
10 |
11 | export type Schema = {
12 | type?: ValueType | ValueType[];
13 | items?: Schema;
14 | properties?: Record;
15 | required?: string[];
16 | anyOf?: Array;
17 | };
18 |
19 | export type SchemaGenOptions = {
20 | noRequired: boolean;
21 | };
22 |
23 | export type SchemaComparisonOptions = {
24 | ignoreRequired: boolean;
25 | };
26 |
--------------------------------------------------------------------------------
/tests/__snapshots__/schema-builder.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`SchemaBuilder generation all cases combined should generate valid schemas for complex objects 1`] = `
4 | Object {
5 | "items": Object {
6 | "properties": Object {
7 | "lvl1PropNum": Object {
8 | "type": "number",
9 | },
10 | "lvl1PropObj1": Object {
11 | "properties": Object {
12 | "lvl2PropArr": Object {
13 | "items": Object {
14 | "type": Array [
15 | "null",
16 | "boolean",
17 | "number",
18 | "string",
19 | ],
20 | },
21 | "type": "array",
22 | },
23 | },
24 | "required": Array [
25 | "lvl2PropArr",
26 | ],
27 | "type": "object",
28 | },
29 | "lvl1PropObj2": Object {
30 | "properties": Object {
31 | "lvl2PropArr1": Object {
32 | "items": Object {
33 | "type": "integer",
34 | },
35 | "type": "array",
36 | },
37 | "lvl2PropArr2": Object {
38 | "items": Object {
39 | "anyOf": Array [
40 | Object {
41 | "type": Array [
42 | "integer",
43 | "string",
44 | ],
45 | },
46 | Object {
47 | "items": Object {
48 | "type": Array [
49 | "boolean",
50 | "integer",
51 | ],
52 | },
53 | "type": "array",
54 | },
55 | Object {
56 | "properties": Object {
57 | "lvl3PropNum1": Object {
58 | "type": "number",
59 | },
60 | "lvl3PropStr1": Object {
61 | "type": "string",
62 | },
63 | },
64 | "type": "object",
65 | },
66 | ],
67 | },
68 | "type": "array",
69 | },
70 | "lvl2PropNum1": Object {
71 | "type": "integer",
72 | },
73 | "six": Object {
74 | "type": "null",
75 | },
76 | },
77 | "required": Array [
78 | "lvl2PropNum1",
79 | "lvl2PropArr1",
80 | "six",
81 | "lvl2PropArr2",
82 | ],
83 | "type": "object",
84 | },
85 | "lvl1PropStr": Object {
86 | "type": "string",
87 | },
88 | },
89 | "required": Array [
90 | "lvl1PropStr",
91 | ],
92 | "type": "object",
93 | },
94 | "type": "array",
95 | }
96 | `;
97 |
98 | exports[`SchemaBuilder generation circular refs should throw an error w/ explanation 1`] = `
99 | "Converting circular structure to JSON
100 | --> starting at object with constructor 'Object'
101 | | property 'b' -> object with constructor 'Object'
102 | --- property 'a' closes the circle"
103 | `;
104 |
105 | exports[`SchemaBuilder generation nested objects/arrays should combine object schemas and respect required property 1`] = `
106 | Object {
107 | "properties": Object {
108 | "one": Object {
109 | "type": "integer",
110 | },
111 | "three": Object {
112 | "properties": Object {
113 | "five": Object {
114 | "items": Object {
115 | "type": "integer",
116 | },
117 | "type": "array",
118 | },
119 | "four": Object {
120 | "type": "integer",
121 | },
122 | "seven": Object {
123 | "items": Object {
124 | "properties": Object {
125 | "eight": Object {
126 | "type": "number",
127 | },
128 | "nine": Object {
129 | "type": "string",
130 | },
131 | },
132 | "type": "object",
133 | },
134 | "type": "array",
135 | },
136 | "six": Object {
137 | "type": "null",
138 | },
139 | },
140 | "required": Array [
141 | "four",
142 | "five",
143 | "six",
144 | "seven",
145 | ],
146 | "type": "object",
147 | },
148 | "two": Object {
149 | "type": "string",
150 | },
151 | },
152 | "required": Array [
153 | "one",
154 | "two",
155 | "three",
156 | ],
157 | "type": "object",
158 | }
159 | `;
160 |
--------------------------------------------------------------------------------
/tests/fixtures/complex-schema1.ts:
--------------------------------------------------------------------------------
1 | import { ValueType } from '../../src';
2 |
3 | export const complexSchema1 = {
4 | type: ValueType.Array,
5 | items: {
6 | type: ValueType.Object,
7 | properties: {
8 | lvl1PropNum: {
9 | type: ValueType.Number,
10 | },
11 | lvl1PropStr: {
12 | type: ValueType.String,
13 | },
14 | lvl1PropObj1: {
15 | type: ValueType.Object,
16 | properties: {
17 | lvl2PropArr: {
18 | type: ValueType.Array,
19 | items: {
20 | type: [ValueType.Null, ValueType.Boolean, ValueType.Number, ValueType.String],
21 | },
22 | },
23 | },
24 | required: ['lvl2PropArr'],
25 | },
26 | lvl1PropObj2: {
27 | type: ValueType.Object,
28 | properties: {
29 | lvl2PropNum1: {
30 | type: ValueType.Integer,
31 | },
32 | lvl2PropArr1: {
33 | type: ValueType.Array,
34 | items: {
35 | type: ValueType.Integer,
36 | },
37 | },
38 | six: {
39 | type: ValueType.Null,
40 | },
41 | lvl2PropArr2: {
42 | type: ValueType.Array,
43 | items: {
44 | anyOf: [
45 | {
46 | type: [ValueType.Integer, ValueType.String],
47 | },
48 | {
49 | type: ValueType.Array,
50 | items: {
51 | type: [ValueType.Boolean, ValueType.Integer],
52 | },
53 | },
54 | {
55 | type: ValueType.Object,
56 | properties: {
57 | lvl3PropNum1: {
58 | type: ValueType.Number,
59 | },
60 | lvl3PropStr1: {
61 | type: ValueType.String,
62 | },
63 | },
64 | },
65 | ],
66 | },
67 | },
68 | },
69 | required: ['lvl2PropNum1', 'lvl2PropArr1', 'six', 'lvl2PropArr2'],
70 | },
71 | },
72 | required: ['lvl1PropStr'],
73 | },
74 | };
75 |
--------------------------------------------------------------------------------
/tests/fixtures/complex-schema2.ts:
--------------------------------------------------------------------------------
1 | import { ValueType } from '../../src';
2 |
3 | export const complexSchema2 = {
4 | type: ValueType.Array,
5 | items: {
6 | type: ValueType.Object,
7 | properties: {
8 | lvl1PropNum: {
9 | type: [ValueType.Number],
10 | },
11 | lvl1PropStr: {
12 | type: [ValueType.String],
13 | },
14 | lvl1PropObj1: {
15 | type: ValueType.Object,
16 | properties: {
17 | lvl2PropArr: {
18 | type: ValueType.Array,
19 | items: {
20 | type: [ValueType.Boolean, ValueType.Null, ValueType.Number, ValueType.String],
21 | },
22 | },
23 | },
24 | required: ['lvl2PropArr'],
25 | },
26 | lvl1PropObj2: {
27 | type: ValueType.Object,
28 | properties: {
29 | lvl2PropNum1: {
30 | type: ValueType.Integer,
31 | },
32 | lvl2PropArr1: {
33 | type: ValueType.Array,
34 | items: {
35 | type: ValueType.Integer,
36 | },
37 | },
38 | lvl2PropArr2: {
39 | type: ValueType.Array,
40 | items: {
41 | anyOf: [
42 | {
43 | type: [ValueType.String, ValueType.Integer],
44 | },
45 | {
46 | type: ValueType.Object,
47 | properties: {
48 | lvl3PropStr1: {
49 | type: ValueType.String,
50 | },
51 | lvl3PropNum1: {
52 | type: ValueType.Number,
53 | },
54 | },
55 | },
56 | {
57 | type: ValueType.Array,
58 | items: {
59 | type: [ValueType.Boolean, ValueType.Integer],
60 | },
61 | },
62 | ],
63 | },
64 | },
65 | six: {
66 | type: ValueType.Null,
67 | },
68 | },
69 | required: ['lvl2PropArr1', 'lvl2PropNum1', 'six', 'lvl2PropArr2'],
70 | },
71 | },
72 | required: ['lvl1PropStr'],
73 | },
74 | };
75 |
--------------------------------------------------------------------------------
/tests/fixtures/index.ts:
--------------------------------------------------------------------------------
1 | export * from './complex-schema1';
2 | export * from './complex-schema2';
3 |
--------------------------------------------------------------------------------
/tests/schema-builder.spec.ts:
--------------------------------------------------------------------------------
1 | import { createSchema, mergeSchemas, ValueType, extendSchema, createCompoundSchema } from '../src';
2 | import { pp } from './test-utils';
3 |
4 | describe('SchemaBuilder', () => {
5 | describe('generation', () => {
6 | describe('simple types', () => {
7 | it('should build schema for integer', () => {
8 | const schema = createSchema(1);
9 | expect(schema).toEqual({ type: 'integer' });
10 | });
11 |
12 | it('should build schema for number', () => {
13 | const schema = createSchema(1.1);
14 | expect(schema).toEqual({ type: 'number' });
15 | });
16 |
17 | it('should build schema for string', () => {
18 | const schema = createSchema('some string');
19 | expect(schema).toEqual({ type: 'string' });
20 | });
21 |
22 | it('should build schema for null', () => {
23 | const schema = createSchema(null);
24 | expect(schema).toEqual({ type: 'null' });
25 | });
26 |
27 | it('should build schema for boolean', () => {
28 | const schema = createSchema(false);
29 | expect(schema).toEqual({ type: 'boolean' });
30 | });
31 |
32 | it('should build schema for array', () => {
33 | const schema = createSchema([]);
34 | expect(schema).toEqual({ type: 'array' });
35 | });
36 |
37 | it('should build schema for object', () => {
38 | const schema = createSchema({});
39 | expect(schema).toEqual({ type: 'object' });
40 | });
41 |
42 | it('should build schema for undefined', () => {
43 | const schema = createSchema(undefined);
44 | expect(schema).toEqual({ type: 'null' });
45 | });
46 | });
47 |
48 | describe('arrays', () => {
49 | it('it should generate schema for arrays of the same type', () => {
50 | const schema = createSchema([1, 2, 3]);
51 | expect(schema).toEqual({ type: 'array', items: { type: 'integer' } });
52 | });
53 |
54 | it('it should generate schema for arrays of the same type with floats', () => {
55 | const schema = createSchema([1, 2.1, 3]);
56 | expect(schema).toEqual({ type: 'array', items: { type: 'number' } });
57 | });
58 |
59 | it('it should generate schema for arrays of different primitive types', () => {
60 | const schema = createSchema([1, 1.1, 'string', null, false, true]);
61 | expect(schema).toEqual({ type: 'array', items: { type: ['null', 'boolean', 'number', 'string'] } });
62 | });
63 |
64 | it('it should generate schema for arrays of different primitive types and ints only', () => {
65 | const schema = createSchema([1, 'string', null, false, true]);
66 | expect(schema).toEqual({ type: 'array', items: { type: ['null', 'boolean', 'integer', 'string'] } });
67 | });
68 | });
69 |
70 | describe('objects', () => {
71 | it('it should generate schema for object with props of the same type', () => {
72 | const schema = createSchema({ one: 1, two: 2 });
73 | expect(schema).toEqual({
74 | type: 'object',
75 | properties: { one: { type: 'integer' }, two: { type: 'integer' } },
76 | required: ['one', 'two'],
77 | });
78 | });
79 |
80 | it('it should generate schema for object with props of different types', () => {
81 | const schema = createSchema({ one: 1, two: 'second' });
82 | expect(schema).toEqual({
83 | type: 'object',
84 | properties: { one: { type: 'integer' }, two: { type: 'string' } },
85 | required: ['one', 'two'],
86 | });
87 | });
88 |
89 | it('it should generate schema for object with props of different types w/o required', () => {
90 | const schema = createSchema({ one: 1, two: 'second' }, { noRequired: true });
91 | expect(schema).toEqual({
92 | type: 'object',
93 | properties: { one: { type: 'integer' }, two: { type: 'string' } },
94 | });
95 | });
96 | });
97 |
98 | describe('nested array', () => {
99 | it('should generate schema for nested arrays', () => {
100 | const schema = createSchema([1, [2.1], [[3]]]);
101 | expect(schema).toEqual({
102 | type: 'array',
103 | items: {
104 | anyOf: [
105 | {
106 | type: 'integer',
107 | },
108 | {
109 | type: 'array',
110 | items: {
111 | anyOf: [
112 | {
113 | type: 'number',
114 | },
115 | {
116 | type: 'array',
117 | items: {
118 | type: 'integer',
119 | },
120 | },
121 | ],
122 | },
123 | },
124 | ],
125 | },
126 | });
127 | });
128 |
129 | it('should generate schema for nested arrays and simplify anyOf', () => {
130 | const schema = createSchema([1, 'some string', null, [2, 'some other string', {}], [[3.1]]]);
131 | expect(schema).toEqual({
132 | type: 'array',
133 | items: {
134 | anyOf: [
135 | {
136 | type: ['null', 'integer', 'string'],
137 | },
138 | {
139 | type: 'array',
140 | items: {
141 | anyOf: [
142 | {
143 | type: ['integer', 'string', 'object'],
144 | },
145 | {
146 | type: 'array',
147 | items: {
148 | type: 'number',
149 | },
150 | },
151 | ],
152 | },
153 | },
154 | ],
155 | },
156 | });
157 | });
158 | });
159 |
160 | describe('nested objects/arrays', () => {
161 | it('should combine object schemas and respect required property', () => {
162 | const schema = createSchema({
163 | one: 1,
164 | two: 'second',
165 | three: { four: 5, five: [5], six: null, seven: [{}, { eight: 1.1 }, { nine: 'nine' }] },
166 | });
167 | expect(schema).toMatchSnapshot();
168 | });
169 |
170 | it('should generate schema for nested object with props of different types w/o required', () => {
171 | const schema = createSchema({ one: 1, two: { a: 'value' } }, { noRequired: true });
172 | expect(schema).toEqual({
173 | type: 'object',
174 | properties: {
175 | one: { type: 'integer' },
176 | two: { type: 'object', properties: { a: { type: 'string' } } },
177 | },
178 | });
179 | });
180 | });
181 |
182 | describe('all cases combined', () => {
183 | it('should generate valid schemas for complex objects', () => {
184 | const schema = createSchema([
185 | {
186 | lvl1PropNum: 1,
187 | lvl1PropStr: 'second',
188 | lvl1PropObj1: { lvl2PropArr: [1, 2] },
189 | lvl1PropObj2: {
190 | lvl2PropNum1: 5,
191 | lvl2PropArr1: [5],
192 | six: null,
193 | lvl2PropArr2: [
194 | {},
195 | { lvl3PropNum1: 1.2 },
196 | { lvl3PropStr1: 'nine' },
197 | [1, false],
198 | 1,
199 | 'some string',
200 | ],
201 | },
202 | },
203 | { lvl1PropStr: 'one' },
204 | { lvl1PropNum: 1.2, lvl1PropStr: 'one' },
205 | { lvl1PropStr: 'one', lvl1PropObj1: { lvl2PropArr: [2.3, null, 'some string', false] } },
206 | ]);
207 |
208 | expect(schema).toMatchSnapshot();
209 | });
210 |
211 | it('should consider value as required if it is present in all objects', async () => {
212 | const val = [
213 | {
214 | arr: [
215 | {
216 | prop1: 'test string',
217 | },
218 | {
219 | prop2: 'test string',
220 | },
221 | ],
222 | },
223 | {
224 | arr: [
225 | {
226 | prop1: 'test',
227 | },
228 | ],
229 | },
230 | ];
231 | const schema = createSchema(val);
232 | expect(schema).toEqual({
233 | type: 'array',
234 | items: {
235 | type: 'object',
236 | properties: {
237 | arr: {
238 | type: 'array',
239 | items: {
240 | type: 'object',
241 | properties: {
242 | prop1: {
243 | type: 'string',
244 | },
245 | prop2: {
246 | type: 'string',
247 | },
248 | },
249 | },
250 | },
251 | },
252 | required: ['arr'],
253 | },
254 | });
255 | });
256 |
257 | it('should generate schema for array of objects w/o required', () => {
258 | const schema = createSchema(
259 | [
260 | { one: 'a', two: 'b' },
261 | { one: 'aa', two: 'bb' },
262 | ],
263 | { noRequired: true }
264 | );
265 | expect(schema).toEqual({
266 | type: 'array',
267 | items: {
268 | type: 'object',
269 | properties: {
270 | one: { type: 'string' },
271 | two: { type: 'string' },
272 | },
273 | },
274 | });
275 | });
276 | });
277 |
278 | describe('prototype methods', () => {
279 | function createObjectWithProtoMethods(): Record {
280 | return {
281 | constructor: 'constructor value',
282 | hasOwnProperty: 'hasOwnProperty value',
283 | isPrototypeOf: 'isPrototypeOf value',
284 | propertyIsEnumerable: 'propertyIsEnumerable value',
285 | toLocaleString: 'toLocaleString value',
286 | toString: 'toString value',
287 | valueOf: 'valueOf value',
288 | __defineGetter__: '__defineGetter__ value',
289 | __defineSetter__: '__defineSetter__ value',
290 | __lookupGetter__: '__lookupGetter__ value',
291 | __lookupSetter__: '__lookupSetter__ value',
292 | __proto__: '__proto__ value',
293 | };
294 | }
295 |
296 | it('should work for props with the same names as Object.prototype methods', async () => {
297 | // it's improtant to keep them in array, as this is more complex case
298 | const value: any = [createObjectWithProtoMethods(), createObjectWithProtoMethods()];
299 | const schema = createSchema(value);
300 | expect(schema).toEqual({
301 | type: 'array',
302 | items: {
303 | type: 'object',
304 | properties: {
305 | constructor: { type: 'string' },
306 | hasOwnProperty: { type: 'string' },
307 | isPrototypeOf: { type: 'string' },
308 | propertyIsEnumerable: { type: 'string' },
309 | toLocaleString: { type: 'string' },
310 | toString: { type: 'string' },
311 | valueOf: { type: 'string' },
312 | __defineGetter__: { type: 'string' },
313 | __defineSetter__: { type: 'string' },
314 | __lookupGetter__: { type: 'string' },
315 | __lookupSetter__: { type: 'string' },
316 | },
317 | },
318 | });
319 | });
320 | });
321 |
322 | describe('circular refs', () => {
323 | it('should throw an error w/ explanation', async () => {
324 | const a: any = {};
325 | const b: any = {};
326 | a.b = b;
327 | b.a = a;
328 |
329 | expect(() => {
330 | createSchema(a);
331 | }).toThrowErrorMatchingSnapshot();
332 | });
333 | });
334 |
335 | describe('non-json values', () => {
336 | it('should ignore functions', async () => {
337 | const value: any = {
338 | func() {},
339 | someProp: 'string',
340 | };
341 | const schema = createSchema(value);
342 | expect(schema).toEqual({
343 | type: 'object',
344 | properties: {
345 | someProp: {
346 | type: 'string',
347 | },
348 | },
349 | required: ['someProp'],
350 | });
351 | });
352 | });
353 | });
354 |
355 | describe('createCompoundSchema', () => {
356 | it('should create compound schema from multiple inputs', () => {
357 | const schema = createCompoundSchema([{ age: 35 }, { age: 19, name: 'John' }, { age: 23, admin: true }]);
358 | expect(schema).toEqual({
359 | type: 'object',
360 | properties: { admin: { type: 'boolean' }, age: { type: 'integer' }, name: { type: 'string' } },
361 | required: ['age'],
362 | });
363 | });
364 | });
365 |
366 | describe('merging', () => {
367 | it('should merge simple schemas', () => {
368 | const merged = mergeSchemas([{ type: ValueType.Number }, { type: ValueType.String }]);
369 | expect(merged).toEqual({ type: ['number', 'string'] });
370 | });
371 |
372 | it('should merge array schemas', () => {
373 | const merged = mergeSchemas([
374 | {
375 | type: ValueType.Array,
376 | items: {
377 | anyOf: [
378 | {
379 | type: [ValueType.Number, ValueType.String],
380 | },
381 | {
382 | type: ValueType.Array,
383 | },
384 | ],
385 | },
386 | },
387 | { type: ValueType.String },
388 | ]);
389 | expect(merged).toEqual({
390 | anyOf: [
391 | { type: ValueType.String },
392 | {
393 | type: ValueType.Array,
394 | items: { type: [ValueType.Number, ValueType.String, ValueType.Array] },
395 | },
396 | ],
397 | });
398 | });
399 |
400 | it('should merge object schemas', async () => {
401 | const merged = mergeSchemas([
402 | { type: ValueType.Object },
403 | { type: ValueType.Object, properties: { prop1: { type: ValueType.String } } },
404 | ]);
405 | expect(merged).toEqual({
406 | type: ValueType.Object,
407 | properties: { prop1: { type: ValueType.String } },
408 | });
409 | });
410 |
411 | it('should merge more than 2 schemas', async () => {
412 | const merged = mergeSchemas([
413 | { type: ValueType.Number },
414 | { type: ValueType.String },
415 | { type: ValueType.Boolean },
416 | ]);
417 | expect(merged).toEqual({ type: ['boolean', 'number', 'string'] });
418 | });
419 | });
420 |
421 | describe('extending', () => {
422 | it('should extend simple schemas', () => {
423 | const merged = extendSchema({ type: ValueType.Number }, 'some string');
424 | expect(merged).toEqual({ type: ['number', 'string'] });
425 | });
426 |
427 | it('should extend array schemas', () => {
428 | const merged = extendSchema(
429 | {
430 | type: ValueType.Array,
431 | items: {
432 | anyOf: [
433 | {
434 | type: [ValueType.Number, ValueType.String],
435 | },
436 | {
437 | type: ValueType.Array,
438 | },
439 | ],
440 | },
441 | },
442 | 'some string'
443 | );
444 | expect(merged).toEqual({
445 | anyOf: [
446 | { type: ValueType.String },
447 | {
448 | type: ValueType.Array,
449 | items: { type: [ValueType.Number, ValueType.String, ValueType.Array] },
450 | },
451 | ],
452 | });
453 | });
454 | });
455 | });
456 |
--------------------------------------------------------------------------------
/tests/schema-comparator.spec.ts:
--------------------------------------------------------------------------------
1 | import { areSchemasEqual, ValueType, isSubset, createSchema } from '../src';
2 | import { complexSchema1, complexSchema2 } from './fixtures';
3 | import { pp } from './test-utils';
4 |
5 | describe('Schema Comparison', () => {
6 | describe('simple schemas', () => {
7 | it('should compare by type', () => {
8 | const equal = areSchemasEqual({ type: ValueType.Number }, { type: ValueType.Number });
9 | expect(equal).toBe(true);
10 | });
11 |
12 | it('should compare by props', () => {
13 | const equal = areSchemasEqual(
14 | { type: ValueType.Object, properties: { test: { type: ValueType.String } } },
15 | { type: ValueType.Object, properties: { test: { type: ValueType.String } } }
16 | );
17 | expect(equal).toBe(true);
18 | });
19 |
20 | it('should compare by props not eq', () => {
21 | const equal = areSchemasEqual(
22 | { type: ValueType.Object, properties: { test: { type: ValueType.String } } },
23 | { type: ValueType.Object, properties: { test: { type: ValueType.Number } } }
24 | );
25 | expect(equal).toBe(false);
26 | });
27 |
28 | it('should compare by props not eq (properties=undefined)', () => {
29 | const equal = areSchemasEqual(
30 | { type: ValueType.Object },
31 | { type: ValueType.Object, properties: { test: { type: ValueType.Number } } }
32 | );
33 | expect(equal).toBe(false);
34 | });
35 |
36 | it('should compare by props not eq (properties={})', () => {
37 | const equal = areSchemasEqual(
38 | { type: ValueType.Object, properties: {} },
39 | { type: ValueType.Object, properties: { test: { type: ValueType.Number } } }
40 | );
41 | expect(equal).toBe(false);
42 | });
43 |
44 | it('should compare by required', () => {
45 | const equal = areSchemasEqual(
46 | { type: ValueType.Object, properties: { test: { type: ValueType.String } }, required: ['test'] },
47 | { type: ValueType.Object, properties: { test: { type: ValueType.String } }, required: ['test'] }
48 | );
49 | expect(equal).toBe(true);
50 | });
51 |
52 | it('should compare by required not equal', () => {
53 | const equal = areSchemasEqual(
54 | { type: ValueType.Object, properties: { test: { type: ValueType.String } }, required: ['test'] },
55 | { type: ValueType.Object, properties: { test: { type: ValueType.String } }, required: [] }
56 | );
57 | expect(equal).toBe(false);
58 | });
59 |
60 | it('should compare by required not equal w/ ignore required', () => {
61 | const equal = areSchemasEqual(
62 | { type: ValueType.Object, properties: { test: { type: ValueType.String } }, required: ['test'] },
63 | { type: ValueType.Object, properties: { test: { type: ValueType.String } }, required: [] },
64 | { ignoreRequired: true }
65 | );
66 | expect(equal).toBe(true);
67 | });
68 |
69 | it('should compare by required not equal (required=undefined)', () => {
70 | const equal = areSchemasEqual(
71 | { type: ValueType.Object, properties: { test: { type: ValueType.String } }, required: ['test'] },
72 | { type: ValueType.Object, properties: { test: { type: ValueType.String } } }
73 | );
74 | expect(equal).toBe(false);
75 | });
76 |
77 | it('should compare by items', () => {
78 | const equal = areSchemasEqual(
79 | { type: ValueType.Array, items: { type: ValueType.String } },
80 | { type: ValueType.Array, items: { type: ValueType.String } }
81 | );
82 | expect(equal).toBe(true);
83 | });
84 |
85 | it('should compare by items not eq', () => {
86 | const equal = areSchemasEqual(
87 | { type: ValueType.Array, items: { type: ValueType.String } },
88 | { type: ValueType.Array, items: { type: ValueType.Number } }
89 | );
90 | expect(equal).toBe(false);
91 | });
92 | });
93 |
94 | describe('simple wrapped schemas', () => {
95 | it('should compare wrapped and unwrapped', () => {
96 | const equal = areSchemasEqual({ type: ValueType.Number }, { type: [ValueType.Number] });
97 | expect(equal).toBe(true);
98 | });
99 |
100 | it('should compare wrapped and unwrapped not equal', () => {
101 | const equal = areSchemasEqual({ type: ValueType.Number }, { type: [ValueType.String] });
102 | expect(equal).toBe(false);
103 | });
104 |
105 | it('should compare multiple wrapped types', () => {
106 | const equal = areSchemasEqual(
107 | { type: [ValueType.Number, ValueType.String] },
108 | { type: [ValueType.String, ValueType.Number] }
109 | );
110 | expect(equal).toBe(true);
111 | });
112 |
113 | it('should compare multiple wrapped types not equal by length', () => {
114 | const equal = areSchemasEqual(
115 | { type: [ValueType.Number, ValueType.String] },
116 | { type: [ValueType.String, ValueType.Number, ValueType.Number] }
117 | );
118 | expect(equal).toBe(false);
119 | });
120 |
121 | it('should compare multiple wrapped types not equal by type', () => {
122 | const equal = areSchemasEqual(
123 | { type: [ValueType.Number, ValueType.String] },
124 | { type: [ValueType.String, ValueType.Boolean] }
125 | );
126 | expect(equal).toBe(false);
127 | });
128 | });
129 |
130 | describe('simple anyOf schemas', () => {
131 | it('should compare wrapped and unwrapped', () => {
132 | const equal = areSchemasEqual(
133 | { anyOf: [{ type: ValueType.Number }] },
134 | { anyOf: [{ type: [ValueType.Number] }] }
135 | );
136 | expect(equal).toBe(true);
137 | });
138 |
139 | it('should compare wrapped and unwrapped not equal', () => {
140 | const equal = areSchemasEqual(
141 | { anyOf: [{ type: ValueType.Number }] },
142 | { anyOf: [{ type: [ValueType.String] }] }
143 | );
144 | expect(equal).toBe(false);
145 | });
146 |
147 | it('should compare multiple wrapped types', () => {
148 | const equal = areSchemasEqual(
149 | { anyOf: [{ type: ValueType.Number }, { type: ValueType.String }] },
150 | { anyOf: [{ type: [ValueType.String, ValueType.Number] }] }
151 | );
152 | expect(equal).toBe(true);
153 | });
154 |
155 | it('should compare multiple unwrapped types', () => {
156 | const equal = areSchemasEqual(
157 | { anyOf: [{ type: ValueType.Number }, { type: ValueType.String }] },
158 | { anyOf: [{ type: ValueType.String }, { type: ValueType.Number }] }
159 | );
160 | expect(equal).toBe(true);
161 | });
162 |
163 | it('should compare multiple unwrapped types not equal by length', () => {
164 | const equal = areSchemasEqual(
165 | { anyOf: [{ type: ValueType.String }, { type: ValueType.Number }] },
166 | { anyOf: [{ type: ValueType.Number }, { type: ValueType.String }, { type: ValueType.String }] }
167 | );
168 | expect(equal).toBe(false);
169 | });
170 |
171 | it('should compare multiple unwrapped types not equal by type', () => {
172 | const equal = areSchemasEqual(
173 | { anyOf: [{ type: ValueType.String }, { type: ValueType.Number }] },
174 | { anyOf: [{ type: ValueType.Number }, { type: ValueType.Boolean }] }
175 | );
176 | expect(equal).toBe(false);
177 | });
178 | });
179 |
180 | describe('complex schemas', () => {
181 | it('should compare complex schemas', () => {
182 | const schema1 = JSON.parse(JSON.stringify(complexSchema1));
183 | const schema2 = JSON.parse(JSON.stringify(complexSchema2));
184 |
185 | expect(areSchemasEqual(schema1, schema2)).toBe(true);
186 |
187 | schema2.items.properties.lvl1PropObj2.properties.lvl2PropArr2.items.anyOf[2].type = [
188 | ValueType.Boolean,
189 | ValueType.String,
190 | ];
191 | expect(areSchemasEqual(schema1, schema2)).toBe(false);
192 | });
193 | });
194 |
195 | describe('isSubset', () => {
196 | it('should return true is shemas are equal', async () => {
197 | const result = isSubset({ anyOf: [{ type: ValueType.Number }] }, { anyOf: [{ type: [ValueType.Number] }] });
198 | expect(result).toBe(true);
199 | });
200 |
201 | it('should return false if second schema is not a subset', async () => {
202 | const result = isSubset({ anyOf: [{ type: ValueType.Number }] }, { anyOf: [{ type: [ValueType.String] }] });
203 | expect(result).toBe(false);
204 | });
205 |
206 | it('should return false if second schema is a superset instead of subset', async () => {
207 | const result = isSubset(
208 | { anyOf: [{ type: ValueType.Number }] },
209 | { anyOf: [{ type: [ValueType.String, ValueType.Number] }] }
210 | );
211 | expect(result).toBe(false);
212 | });
213 |
214 | it('should return true if second schema is a subset', async () => {
215 | const result = isSubset(
216 | { anyOf: [{ type: [ValueType.String, ValueType.Number] }] },
217 | { anyOf: [{ type: ValueType.Number }] }
218 | );
219 | expect(result).toBe(true);
220 | });
221 |
222 | it('should return true if second schema is a subset (anyOf, simple)', async () => {
223 | const result = isSubset(
224 | { anyOf: [{ type: [ValueType.String, ValueType.Number] }] },
225 | { type: ValueType.Number }
226 | );
227 | expect(result).toBe(true);
228 | });
229 |
230 | it('should return true if second schema is a subset (array items, simple schema)', async () => {
231 | const result = isSubset(
232 | { type: ValueType.Array, items: { type: [ValueType.Boolean, ValueType.Integer] } },
233 | { type: ValueType.Array, items: { type: [ValueType.Boolean] } }
234 | );
235 | expect(result).toBe(true);
236 | });
237 |
238 | it('should return true if second schema is a subset (object props, simple schema)', async () => {
239 | const result = isSubset(
240 | { type: ValueType.Object, properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } } },
241 | { type: ValueType.Object }
242 | );
243 | expect(result).toBe(true);
244 | });
245 |
246 | it('should return true if second schema is a subset (object props, simple schema)', async () => {
247 | const result = isSubset(
248 | { type: ValueType.Object, properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } } },
249 | { type: ValueType.Object, properties: { propOne: { type: [ValueType.Integer] } } }
250 | );
251 | expect(result).toBe(true);
252 | });
253 |
254 | it('should return true if second schema is a subset (object props, simple schema, required)', async () => {
255 | const result = isSubset(
256 | {
257 | type: ValueType.Object,
258 | properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } },
259 | },
260 | {
261 | type: ValueType.Object,
262 | properties: { propOne: { type: [ValueType.Integer] } },
263 | required: ['propOne'],
264 | }
265 | );
266 | expect(result).toBe(true);
267 | });
268 |
269 | it('should return false if second schema is not a subset (object props, simple schema, required)', async () => {
270 | // presence of required prop is more restrictive
271 | const result = isSubset(
272 | {
273 | type: ValueType.Object,
274 | properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } },
275 | required: ['propOne'],
276 | },
277 | {
278 | type: ValueType.Object,
279 | properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } },
280 | }
281 | );
282 | expect(result).toBe(false);
283 | });
284 |
285 | it('should return true if second schema is a subset (object props, simple schema, required ignored)', async () => {
286 | const result = isSubset(
287 | {
288 | type: ValueType.Object,
289 | properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } },
290 | required: ['propOne'],
291 | },
292 | {
293 | type: ValueType.Object,
294 | properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } },
295 | },
296 | { ignoreRequired: true }
297 | );
298 | expect(result).toBe(true);
299 | });
300 |
301 | it('should ignore required in nested objects (object props, simple schema, required ignored)', async () => {
302 | const result = isSubset(
303 | {
304 | type: ValueType.Object,
305 | properties: {
306 | propOne: {
307 | type: ValueType.Object,
308 | properties: { propTwo: { type: [ValueType.Boolean, ValueType.Integer] } },
309 | required: ['propTwo'],
310 | },
311 | },
312 | },
313 | {
314 | type: ValueType.Object,
315 | properties: {
316 | propOne: {
317 | type: ValueType.Object,
318 | properties: { propTwo: { type: [ValueType.Boolean, ValueType.Integer] } },
319 | },
320 | },
321 | },
322 | { ignoreRequired: true }
323 | );
324 | expect(result).toBe(true);
325 | });
326 |
327 | it('should return false if second schema is not a subset (empty vs non-empty array)', async () => {
328 | // array w/o items is more restrictive
329 | const result = isSubset(
330 | {
331 | type: ValueType.Array,
332 | },
333 | {
334 | type: ValueType.Array,
335 | items: {
336 | type: ValueType.Object,
337 | properties: { propOne: { type: [ValueType.Boolean, ValueType.Integer] } },
338 | },
339 | }
340 | );
341 | expect(result).toBe(false);
342 | });
343 | });
344 | });
345 |
--------------------------------------------------------------------------------
/tests/test-utils.ts:
--------------------------------------------------------------------------------
1 | // pretty printer, useful for debugging
2 | export function pp(value: any) {
3 | console.log(JSON.stringify(value, null, 2));
4 | }
5 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2017",
4 | "lib": ["ES2019"],
5 | "rootDir": "./src",
6 | "outDir": "dist",
7 | "module": "commonjs",
8 | "moduleResolution": "node",
9 | "strict": false,
10 | "declaration": true,
11 | "sourceMap": true,
12 | "inlineSources": true,
13 | "types": ["node"],
14 | "allowSyntheticDefaultImports": true,
15 | "esModuleInterop": true
16 | },
17 | "include": ["src/**/*"],
18 | "exclude": ["**/node_modules/*", "dist"]
19 | }
20 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.1.0":
6 | version "2.2.0"
7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
9 | dependencies:
10 | "@jridgewell/gen-mapping" "^0.1.0"
11 | "@jridgewell/trace-mapping" "^0.3.9"
12 |
13 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
14 | version "7.10.4"
15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
16 | integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
17 | dependencies:
18 | "@babel/highlight" "^7.10.4"
19 |
20 | "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
21 | version "7.18.6"
22 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
23 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
24 | dependencies:
25 | "@babel/highlight" "^7.18.6"
26 |
27 | "@babel/code-frame@^7.22.13":
28 | version "7.22.13"
29 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
30 | integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
31 | dependencies:
32 | "@babel/highlight" "^7.22.13"
33 | chalk "^2.4.2"
34 |
35 | "@babel/compat-data@^7.20.5":
36 | version "7.20.14"
37 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8"
38 | integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==
39 |
40 | "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
41 | version "7.20.12"
42 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d"
43 | integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==
44 | dependencies:
45 | "@ampproject/remapping" "^2.1.0"
46 | "@babel/code-frame" "^7.18.6"
47 | "@babel/generator" "^7.20.7"
48 | "@babel/helper-compilation-targets" "^7.20.7"
49 | "@babel/helper-module-transforms" "^7.20.11"
50 | "@babel/helpers" "^7.20.7"
51 | "@babel/parser" "^7.20.7"
52 | "@babel/template" "^7.20.7"
53 | "@babel/traverse" "^7.20.12"
54 | "@babel/types" "^7.20.7"
55 | convert-source-map "^1.7.0"
56 | debug "^4.1.0"
57 | gensync "^1.0.0-beta.2"
58 | json5 "^2.2.2"
59 | semver "^6.3.0"
60 |
61 | "@babel/generator@^7.20.7", "@babel/generator@^7.7.2":
62 | version "7.20.14"
63 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce"
64 | integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==
65 | dependencies:
66 | "@babel/types" "^7.20.7"
67 | "@jridgewell/gen-mapping" "^0.3.2"
68 | jsesc "^2.5.1"
69 |
70 | "@babel/generator@^7.23.0":
71 | version "7.23.0"
72 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420"
73 | integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==
74 | dependencies:
75 | "@babel/types" "^7.23.0"
76 | "@jridgewell/gen-mapping" "^0.3.2"
77 | "@jridgewell/trace-mapping" "^0.3.17"
78 | jsesc "^2.5.1"
79 |
80 | "@babel/helper-compilation-targets@^7.20.7":
81 | version "7.20.7"
82 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
83 | integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
84 | dependencies:
85 | "@babel/compat-data" "^7.20.5"
86 | "@babel/helper-validator-option" "^7.18.6"
87 | browserslist "^4.21.3"
88 | lru-cache "^5.1.1"
89 | semver "^6.3.0"
90 |
91 | "@babel/helper-environment-visitor@^7.18.9":
92 | version "7.18.9"
93 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
94 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
95 |
96 | "@babel/helper-environment-visitor@^7.22.20":
97 | version "7.22.20"
98 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
99 | integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
100 |
101 | "@babel/helper-function-name@^7.23.0":
102 | version "7.23.0"
103 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
104 | integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
105 | dependencies:
106 | "@babel/template" "^7.22.15"
107 | "@babel/types" "^7.23.0"
108 |
109 | "@babel/helper-hoist-variables@^7.22.5":
110 | version "7.22.5"
111 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
112 | integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
113 | dependencies:
114 | "@babel/types" "^7.22.5"
115 |
116 | "@babel/helper-module-imports@^7.18.6":
117 | version "7.18.6"
118 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
119 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
120 | dependencies:
121 | "@babel/types" "^7.18.6"
122 |
123 | "@babel/helper-module-transforms@^7.20.11":
124 | version "7.20.11"
125 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
126 | integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==
127 | dependencies:
128 | "@babel/helper-environment-visitor" "^7.18.9"
129 | "@babel/helper-module-imports" "^7.18.6"
130 | "@babel/helper-simple-access" "^7.20.2"
131 | "@babel/helper-split-export-declaration" "^7.18.6"
132 | "@babel/helper-validator-identifier" "^7.19.1"
133 | "@babel/template" "^7.20.7"
134 | "@babel/traverse" "^7.20.10"
135 | "@babel/types" "^7.20.7"
136 |
137 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0":
138 | version "7.10.4"
139 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
140 | integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
141 |
142 | "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.19.0":
143 | version "7.20.2"
144 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
145 | integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
146 |
147 | "@babel/helper-simple-access@^7.20.2":
148 | version "7.20.2"
149 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
150 | integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
151 | dependencies:
152 | "@babel/types" "^7.20.2"
153 |
154 | "@babel/helper-split-export-declaration@^7.18.6":
155 | version "7.18.6"
156 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
157 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
158 | dependencies:
159 | "@babel/types" "^7.18.6"
160 |
161 | "@babel/helper-split-export-declaration@^7.22.6":
162 | version "7.22.6"
163 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
164 | integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
165 | dependencies:
166 | "@babel/types" "^7.22.5"
167 |
168 | "@babel/helper-string-parser@^7.19.4":
169 | version "7.19.4"
170 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
171 | integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
172 |
173 | "@babel/helper-string-parser@^7.22.5":
174 | version "7.22.5"
175 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
176 | integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
177 |
178 | "@babel/helper-validator-identifier@^7.10.4":
179 | version "7.10.4"
180 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
181 | integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
182 |
183 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
184 | version "7.19.1"
185 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
186 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
187 |
188 | "@babel/helper-validator-identifier@^7.22.20":
189 | version "7.22.20"
190 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
191 | integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
192 |
193 | "@babel/helper-validator-option@^7.18.6":
194 | version "7.18.6"
195 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
196 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
197 |
198 | "@babel/helpers@^7.20.7":
199 | version "7.20.13"
200 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2"
201 | integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==
202 | dependencies:
203 | "@babel/template" "^7.20.7"
204 | "@babel/traverse" "^7.20.13"
205 | "@babel/types" "^7.20.7"
206 |
207 | "@babel/highlight@^7.10.4":
208 | version "7.10.4"
209 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
210 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
211 | dependencies:
212 | "@babel/helper-validator-identifier" "^7.10.4"
213 | chalk "^2.0.0"
214 | js-tokens "^4.0.0"
215 |
216 | "@babel/highlight@^7.18.6":
217 | version "7.18.6"
218 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
219 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
220 | dependencies:
221 | "@babel/helper-validator-identifier" "^7.18.6"
222 | chalk "^2.0.0"
223 | js-tokens "^4.0.0"
224 |
225 | "@babel/highlight@^7.22.13":
226 | version "7.22.20"
227 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54"
228 | integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==
229 | dependencies:
230 | "@babel/helper-validator-identifier" "^7.22.20"
231 | chalk "^2.4.2"
232 | js-tokens "^4.0.0"
233 |
234 | "@babel/parser@^7.1.0", "@babel/parser@^7.10.4":
235 | version "7.11.4"
236 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.4.tgz#6fa1a118b8b0d80d0267b719213dc947e88cc0ca"
237 | integrity sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==
238 |
239 | "@babel/parser@^7.14.7", "@babel/parser@^7.20.7":
240 | version "7.20.15"
241 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89"
242 | integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==
243 |
244 | "@babel/parser@^7.22.15", "@babel/parser@^7.23.0":
245 | version "7.23.0"
246 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
247 | integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
248 |
249 | "@babel/plugin-syntax-async-generators@^7.8.4":
250 | version "7.8.4"
251 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
252 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
253 | dependencies:
254 | "@babel/helper-plugin-utils" "^7.8.0"
255 |
256 | "@babel/plugin-syntax-bigint@^7.8.3":
257 | version "7.8.3"
258 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
259 | integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
260 | dependencies:
261 | "@babel/helper-plugin-utils" "^7.8.0"
262 |
263 | "@babel/plugin-syntax-class-properties@^7.8.3":
264 | version "7.10.4"
265 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c"
266 | integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==
267 | dependencies:
268 | "@babel/helper-plugin-utils" "^7.10.4"
269 |
270 | "@babel/plugin-syntax-import-meta@^7.8.3":
271 | version "7.10.4"
272 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
273 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
274 | dependencies:
275 | "@babel/helper-plugin-utils" "^7.10.4"
276 |
277 | "@babel/plugin-syntax-json-strings@^7.8.3":
278 | version "7.8.3"
279 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
280 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
281 | dependencies:
282 | "@babel/helper-plugin-utils" "^7.8.0"
283 |
284 | "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
285 | version "7.10.4"
286 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
287 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
288 | dependencies:
289 | "@babel/helper-plugin-utils" "^7.10.4"
290 |
291 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
292 | version "7.8.3"
293 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
294 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
295 | dependencies:
296 | "@babel/helper-plugin-utils" "^7.8.0"
297 |
298 | "@babel/plugin-syntax-numeric-separator@^7.8.3":
299 | version "7.10.4"
300 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
301 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
302 | dependencies:
303 | "@babel/helper-plugin-utils" "^7.10.4"
304 |
305 | "@babel/plugin-syntax-object-rest-spread@^7.8.3":
306 | version "7.8.3"
307 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
308 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
309 | dependencies:
310 | "@babel/helper-plugin-utils" "^7.8.0"
311 |
312 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
313 | version "7.8.3"
314 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
315 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
316 | dependencies:
317 | "@babel/helper-plugin-utils" "^7.8.0"
318 |
319 | "@babel/plugin-syntax-optional-chaining@^7.8.3":
320 | version "7.8.3"
321 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
322 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
323 | dependencies:
324 | "@babel/helper-plugin-utils" "^7.8.0"
325 |
326 | "@babel/plugin-syntax-top-level-await@^7.8.3":
327 | version "7.14.5"
328 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
329 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
330 | dependencies:
331 | "@babel/helper-plugin-utils" "^7.14.5"
332 |
333 | "@babel/plugin-syntax-typescript@^7.7.2":
334 | version "7.20.0"
335 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7"
336 | integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==
337 | dependencies:
338 | "@babel/helper-plugin-utils" "^7.19.0"
339 |
340 | "@babel/template@^7.20.7":
341 | version "7.20.7"
342 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
343 | integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
344 | dependencies:
345 | "@babel/code-frame" "^7.18.6"
346 | "@babel/parser" "^7.20.7"
347 | "@babel/types" "^7.20.7"
348 |
349 | "@babel/template@^7.22.15":
350 | version "7.22.15"
351 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
352 | integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
353 | dependencies:
354 | "@babel/code-frame" "^7.22.13"
355 | "@babel/parser" "^7.22.15"
356 | "@babel/types" "^7.22.15"
357 |
358 | "@babel/template@^7.3.3":
359 | version "7.10.4"
360 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
361 | integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==
362 | dependencies:
363 | "@babel/code-frame" "^7.10.4"
364 | "@babel/parser" "^7.10.4"
365 | "@babel/types" "^7.10.4"
366 |
367 | "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.7.2":
368 | version "7.23.2"
369 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
370 | integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
371 | dependencies:
372 | "@babel/code-frame" "^7.22.13"
373 | "@babel/generator" "^7.23.0"
374 | "@babel/helper-environment-visitor" "^7.22.20"
375 | "@babel/helper-function-name" "^7.23.0"
376 | "@babel/helper-hoist-variables" "^7.22.5"
377 | "@babel/helper-split-export-declaration" "^7.22.6"
378 | "@babel/parser" "^7.23.0"
379 | "@babel/types" "^7.23.0"
380 | debug "^4.1.0"
381 | globals "^11.1.0"
382 |
383 | "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
384 | version "7.11.0"
385 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d"
386 | integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==
387 | dependencies:
388 | "@babel/helper-validator-identifier" "^7.10.4"
389 | lodash "^4.17.19"
390 | to-fast-properties "^2.0.0"
391 |
392 | "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7":
393 | version "7.20.7"
394 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
395 | integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
396 | dependencies:
397 | "@babel/helper-string-parser" "^7.19.4"
398 | "@babel/helper-validator-identifier" "^7.19.1"
399 | to-fast-properties "^2.0.0"
400 |
401 | "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0":
402 | version "7.23.0"
403 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
404 | integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
405 | dependencies:
406 | "@babel/helper-string-parser" "^7.22.5"
407 | "@babel/helper-validator-identifier" "^7.22.20"
408 | to-fast-properties "^2.0.0"
409 |
410 | "@bcoe/v8-coverage@^0.2.3":
411 | version "0.2.3"
412 | resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
413 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
414 |
415 | "@istanbuljs/load-nyc-config@^1.0.0":
416 | version "1.1.0"
417 | resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
418 | integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
419 | dependencies:
420 | camelcase "^5.3.1"
421 | find-up "^4.1.0"
422 | get-package-type "^0.1.0"
423 | js-yaml "^3.13.1"
424 | resolve-from "^5.0.0"
425 |
426 | "@istanbuljs/schema@^0.1.2":
427 | version "0.1.2"
428 | resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
429 | integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
430 |
431 | "@jest/console@^27.5.1":
432 | version "27.5.1"
433 | resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba"
434 | integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==
435 | dependencies:
436 | "@jest/types" "^27.5.1"
437 | "@types/node" "*"
438 | chalk "^4.0.0"
439 | jest-message-util "^27.5.1"
440 | jest-util "^27.5.1"
441 | slash "^3.0.0"
442 |
443 | "@jest/core@^27.5.1":
444 | version "27.5.1"
445 | resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626"
446 | integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==
447 | dependencies:
448 | "@jest/console" "^27.5.1"
449 | "@jest/reporters" "^27.5.1"
450 | "@jest/test-result" "^27.5.1"
451 | "@jest/transform" "^27.5.1"
452 | "@jest/types" "^27.5.1"
453 | "@types/node" "*"
454 | ansi-escapes "^4.2.1"
455 | chalk "^4.0.0"
456 | emittery "^0.8.1"
457 | exit "^0.1.2"
458 | graceful-fs "^4.2.9"
459 | jest-changed-files "^27.5.1"
460 | jest-config "^27.5.1"
461 | jest-haste-map "^27.5.1"
462 | jest-message-util "^27.5.1"
463 | jest-regex-util "^27.5.1"
464 | jest-resolve "^27.5.1"
465 | jest-resolve-dependencies "^27.5.1"
466 | jest-runner "^27.5.1"
467 | jest-runtime "^27.5.1"
468 | jest-snapshot "^27.5.1"
469 | jest-util "^27.5.1"
470 | jest-validate "^27.5.1"
471 | jest-watcher "^27.5.1"
472 | micromatch "^4.0.4"
473 | rimraf "^3.0.0"
474 | slash "^3.0.0"
475 | strip-ansi "^6.0.0"
476 |
477 | "@jest/environment@^27.5.1":
478 | version "27.5.1"
479 | resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74"
480 | integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==
481 | dependencies:
482 | "@jest/fake-timers" "^27.5.1"
483 | "@jest/types" "^27.5.1"
484 | "@types/node" "*"
485 | jest-mock "^27.5.1"
486 |
487 | "@jest/fake-timers@^27.5.1":
488 | version "27.5.1"
489 | resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74"
490 | integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==
491 | dependencies:
492 | "@jest/types" "^27.5.1"
493 | "@sinonjs/fake-timers" "^8.0.1"
494 | "@types/node" "*"
495 | jest-message-util "^27.5.1"
496 | jest-mock "^27.5.1"
497 | jest-util "^27.5.1"
498 |
499 | "@jest/globals@^27.5.1":
500 | version "27.5.1"
501 | resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b"
502 | integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==
503 | dependencies:
504 | "@jest/environment" "^27.5.1"
505 | "@jest/types" "^27.5.1"
506 | expect "^27.5.1"
507 |
508 | "@jest/reporters@^27.5.1":
509 | version "27.5.1"
510 | resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04"
511 | integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==
512 | dependencies:
513 | "@bcoe/v8-coverage" "^0.2.3"
514 | "@jest/console" "^27.5.1"
515 | "@jest/test-result" "^27.5.1"
516 | "@jest/transform" "^27.5.1"
517 | "@jest/types" "^27.5.1"
518 | "@types/node" "*"
519 | chalk "^4.0.0"
520 | collect-v8-coverage "^1.0.0"
521 | exit "^0.1.2"
522 | glob "^7.1.2"
523 | graceful-fs "^4.2.9"
524 | istanbul-lib-coverage "^3.0.0"
525 | istanbul-lib-instrument "^5.1.0"
526 | istanbul-lib-report "^3.0.0"
527 | istanbul-lib-source-maps "^4.0.0"
528 | istanbul-reports "^3.1.3"
529 | jest-haste-map "^27.5.1"
530 | jest-resolve "^27.5.1"
531 | jest-util "^27.5.1"
532 | jest-worker "^27.5.1"
533 | slash "^3.0.0"
534 | source-map "^0.6.0"
535 | string-length "^4.0.1"
536 | terminal-link "^2.0.0"
537 | v8-to-istanbul "^8.1.0"
538 |
539 | "@jest/source-map@^27.5.1":
540 | version "27.5.1"
541 | resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf"
542 | integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==
543 | dependencies:
544 | callsites "^3.0.0"
545 | graceful-fs "^4.2.9"
546 | source-map "^0.6.0"
547 |
548 | "@jest/test-result@^27.5.1":
549 | version "27.5.1"
550 | resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb"
551 | integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==
552 | dependencies:
553 | "@jest/console" "^27.5.1"
554 | "@jest/types" "^27.5.1"
555 | "@types/istanbul-lib-coverage" "^2.0.0"
556 | collect-v8-coverage "^1.0.0"
557 |
558 | "@jest/test-sequencer@^27.5.1":
559 | version "27.5.1"
560 | resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b"
561 | integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==
562 | dependencies:
563 | "@jest/test-result" "^27.5.1"
564 | graceful-fs "^4.2.9"
565 | jest-haste-map "^27.5.1"
566 | jest-runtime "^27.5.1"
567 |
568 | "@jest/transform@^27.5.1":
569 | version "27.5.1"
570 | resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409"
571 | integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==
572 | dependencies:
573 | "@babel/core" "^7.1.0"
574 | "@jest/types" "^27.5.1"
575 | babel-plugin-istanbul "^6.1.1"
576 | chalk "^4.0.0"
577 | convert-source-map "^1.4.0"
578 | fast-json-stable-stringify "^2.0.0"
579 | graceful-fs "^4.2.9"
580 | jest-haste-map "^27.5.1"
581 | jest-regex-util "^27.5.1"
582 | jest-util "^27.5.1"
583 | micromatch "^4.0.4"
584 | pirates "^4.0.4"
585 | slash "^3.0.0"
586 | source-map "^0.6.1"
587 | write-file-atomic "^3.0.0"
588 |
589 | "@jest/types@^27.5.1":
590 | version "27.5.1"
591 | resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80"
592 | integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==
593 | dependencies:
594 | "@types/istanbul-lib-coverage" "^2.0.0"
595 | "@types/istanbul-reports" "^3.0.0"
596 | "@types/node" "*"
597 | "@types/yargs" "^16.0.0"
598 | chalk "^4.0.0"
599 |
600 | "@jridgewell/gen-mapping@^0.1.0":
601 | version "0.1.1"
602 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
603 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
604 | dependencies:
605 | "@jridgewell/set-array" "^1.0.0"
606 | "@jridgewell/sourcemap-codec" "^1.4.10"
607 |
608 | "@jridgewell/gen-mapping@^0.3.2":
609 | version "0.3.2"
610 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
611 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
612 | dependencies:
613 | "@jridgewell/set-array" "^1.0.1"
614 | "@jridgewell/sourcemap-codec" "^1.4.10"
615 | "@jridgewell/trace-mapping" "^0.3.9"
616 |
617 | "@jridgewell/resolve-uri@3.1.0":
618 | version "3.1.0"
619 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
620 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
621 |
622 | "@jridgewell/resolve-uri@^3.1.0":
623 | version "3.1.1"
624 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
625 | integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
626 |
627 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
628 | version "1.1.2"
629 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
630 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
631 |
632 | "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
633 | version "1.4.14"
634 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
635 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
636 |
637 | "@jridgewell/sourcemap-codec@^1.4.14":
638 | version "1.4.15"
639 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
640 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
641 |
642 | "@jridgewell/trace-mapping@^0.3.17":
643 | version "0.3.20"
644 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f"
645 | integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
646 | dependencies:
647 | "@jridgewell/resolve-uri" "^3.1.0"
648 | "@jridgewell/sourcemap-codec" "^1.4.14"
649 |
650 | "@jridgewell/trace-mapping@^0.3.9":
651 | version "0.3.17"
652 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
653 | integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
654 | dependencies:
655 | "@jridgewell/resolve-uri" "3.1.0"
656 | "@jridgewell/sourcemap-codec" "1.4.14"
657 |
658 | "@sinonjs/commons@^1.7.0":
659 | version "1.8.6"
660 | resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9"
661 | integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==
662 | dependencies:
663 | type-detect "4.0.8"
664 |
665 | "@sinonjs/fake-timers@^8.0.1":
666 | version "8.1.0"
667 | resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7"
668 | integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==
669 | dependencies:
670 | "@sinonjs/commons" "^1.7.0"
671 |
672 | "@tootallnate/once@1":
673 | version "1.1.2"
674 | resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
675 | integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
676 |
677 | "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14":
678 | version "7.20.0"
679 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891"
680 | integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==
681 | dependencies:
682 | "@babel/parser" "^7.20.7"
683 | "@babel/types" "^7.20.7"
684 | "@types/babel__generator" "*"
685 | "@types/babel__template" "*"
686 | "@types/babel__traverse" "*"
687 |
688 | "@types/babel__generator@*":
689 | version "7.6.1"
690 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04"
691 | integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==
692 | dependencies:
693 | "@babel/types" "^7.0.0"
694 |
695 | "@types/babel__template@*":
696 | version "7.0.2"
697 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307"
698 | integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==
699 | dependencies:
700 | "@babel/parser" "^7.1.0"
701 | "@babel/types" "^7.0.0"
702 |
703 | "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
704 | version "7.0.13"
705 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.13.tgz#1874914be974a492e1b4cb00585cabb274e8ba18"
706 | integrity sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==
707 | dependencies:
708 | "@babel/types" "^7.3.0"
709 |
710 | "@types/babel__traverse@^7.0.4":
711 | version "7.18.3"
712 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d"
713 | integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==
714 | dependencies:
715 | "@babel/types" "^7.3.0"
716 |
717 | "@types/color-name@^1.1.1":
718 | version "1.1.1"
719 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
720 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
721 |
722 | "@types/graceful-fs@^4.1.2":
723 | version "4.1.6"
724 | resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae"
725 | integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==
726 | dependencies:
727 | "@types/node" "*"
728 |
729 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
730 | version "2.0.3"
731 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
732 | integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==
733 |
734 | "@types/istanbul-lib-report@*":
735 | version "3.0.0"
736 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
737 | integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
738 | dependencies:
739 | "@types/istanbul-lib-coverage" "*"
740 |
741 | "@types/istanbul-reports@^3.0.0":
742 | version "3.0.0"
743 | resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821"
744 | integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==
745 | dependencies:
746 | "@types/istanbul-lib-report" "*"
747 |
748 | "@types/jest@^27.5.1":
749 | version "27.5.2"
750 | resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c"
751 | integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==
752 | dependencies:
753 | jest-matcher-utils "^27.0.0"
754 | pretty-format "^27.0.0"
755 |
756 | "@types/node@*", "@types/node@^14.6.0":
757 | version "14.6.0"
758 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499"
759 | integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==
760 |
761 | "@types/prettier@^2.1.5":
762 | version "2.7.2"
763 | resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0"
764 | integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==
765 |
766 | "@types/stack-utils@^2.0.0":
767 | version "2.0.1"
768 | resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
769 | integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
770 |
771 | "@types/yargs-parser@*":
772 | version "15.0.0"
773 | resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
774 | integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
775 |
776 | "@types/yargs@^16.0.0":
777 | version "16.0.5"
778 | resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3"
779 | integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==
780 | dependencies:
781 | "@types/yargs-parser" "*"
782 |
783 | abab@^2.0.3, abab@^2.0.5:
784 | version "2.0.6"
785 | resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
786 | integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
787 |
788 | acorn-globals@^6.0.0:
789 | version "6.0.0"
790 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
791 | integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
792 | dependencies:
793 | acorn "^7.1.1"
794 | acorn-walk "^7.1.1"
795 |
796 | acorn-walk@^7.1.1:
797 | version "7.2.0"
798 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
799 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
800 |
801 | acorn@^7.1.1:
802 | version "7.4.1"
803 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
804 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
805 |
806 | acorn@^8.2.4:
807 | version "8.8.2"
808 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
809 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
810 |
811 | agent-base@6:
812 | version "6.0.2"
813 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
814 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
815 | dependencies:
816 | debug "4"
817 |
818 | ansi-escapes@^4.2.1:
819 | version "4.3.1"
820 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
821 | integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
822 | dependencies:
823 | type-fest "^0.11.0"
824 |
825 | ansi-regex@^5.0.0, ansi-regex@^5.0.1:
826 | version "5.0.1"
827 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
828 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
829 |
830 | ansi-styles@^3.2.1:
831 | version "3.2.1"
832 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
833 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
834 | dependencies:
835 | color-convert "^1.9.0"
836 |
837 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
838 | version "4.2.1"
839 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
840 | integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
841 | dependencies:
842 | "@types/color-name" "^1.1.1"
843 | color-convert "^2.0.1"
844 |
845 | ansi-styles@^5.0.0:
846 | version "5.2.0"
847 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
848 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
849 |
850 | anymatch@^3.0.3:
851 | version "3.1.1"
852 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
853 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
854 | dependencies:
855 | normalize-path "^3.0.0"
856 | picomatch "^2.0.4"
857 |
858 | argparse@^1.0.7:
859 | version "1.0.10"
860 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
861 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
862 | dependencies:
863 | sprintf-js "~1.0.2"
864 |
865 | asynckit@^0.4.0:
866 | version "0.4.0"
867 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
868 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
869 |
870 | babel-jest@^27.5.1:
871 | version "27.5.1"
872 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444"
873 | integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==
874 | dependencies:
875 | "@jest/transform" "^27.5.1"
876 | "@jest/types" "^27.5.1"
877 | "@types/babel__core" "^7.1.14"
878 | babel-plugin-istanbul "^6.1.1"
879 | babel-preset-jest "^27.5.1"
880 | chalk "^4.0.0"
881 | graceful-fs "^4.2.9"
882 | slash "^3.0.0"
883 |
884 | babel-plugin-istanbul@^6.1.1:
885 | version "6.1.1"
886 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
887 | integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
888 | dependencies:
889 | "@babel/helper-plugin-utils" "^7.0.0"
890 | "@istanbuljs/load-nyc-config" "^1.0.0"
891 | "@istanbuljs/schema" "^0.1.2"
892 | istanbul-lib-instrument "^5.0.4"
893 | test-exclude "^6.0.0"
894 |
895 | babel-plugin-jest-hoist@^27.5.1:
896 | version "27.5.1"
897 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e"
898 | integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==
899 | dependencies:
900 | "@babel/template" "^7.3.3"
901 | "@babel/types" "^7.3.3"
902 | "@types/babel__core" "^7.0.0"
903 | "@types/babel__traverse" "^7.0.6"
904 |
905 | babel-preset-current-node-syntax@^1.0.0:
906 | version "1.0.1"
907 | resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
908 | integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
909 | dependencies:
910 | "@babel/plugin-syntax-async-generators" "^7.8.4"
911 | "@babel/plugin-syntax-bigint" "^7.8.3"
912 | "@babel/plugin-syntax-class-properties" "^7.8.3"
913 | "@babel/plugin-syntax-import-meta" "^7.8.3"
914 | "@babel/plugin-syntax-json-strings" "^7.8.3"
915 | "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
916 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
917 | "@babel/plugin-syntax-numeric-separator" "^7.8.3"
918 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
919 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
920 | "@babel/plugin-syntax-optional-chaining" "^7.8.3"
921 | "@babel/plugin-syntax-top-level-await" "^7.8.3"
922 |
923 | babel-preset-jest@^27.5.1:
924 | version "27.5.1"
925 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81"
926 | integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==
927 | dependencies:
928 | babel-plugin-jest-hoist "^27.5.1"
929 | babel-preset-current-node-syntax "^1.0.0"
930 |
931 | balanced-match@^1.0.0:
932 | version "1.0.2"
933 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
934 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
935 |
936 | brace-expansion@^1.1.7:
937 | version "1.1.11"
938 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
939 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
940 | dependencies:
941 | balanced-match "^1.0.0"
942 | concat-map "0.0.1"
943 |
944 | braces@^3.0.2:
945 | version "3.0.2"
946 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
947 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
948 | dependencies:
949 | fill-range "^7.0.1"
950 |
951 | browser-process-hrtime@^1.0.0:
952 | version "1.0.0"
953 | resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
954 | integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
955 |
956 | browserslist@^4.21.3:
957 | version "4.21.5"
958 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
959 | integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
960 | dependencies:
961 | caniuse-lite "^1.0.30001449"
962 | electron-to-chromium "^1.4.284"
963 | node-releases "^2.0.8"
964 | update-browserslist-db "^1.0.10"
965 |
966 | bs-logger@0.x:
967 | version "0.2.6"
968 | resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
969 | integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
970 | dependencies:
971 | fast-json-stable-stringify "2.x"
972 |
973 | bser@2.1.1:
974 | version "2.1.1"
975 | resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
976 | integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
977 | dependencies:
978 | node-int64 "^0.4.0"
979 |
980 | buffer-from@^1.0.0:
981 | version "1.1.1"
982 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
983 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
984 |
985 | callsites@^3.0.0:
986 | version "3.1.0"
987 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
988 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
989 |
990 | camelcase@^5.3.1:
991 | version "5.3.1"
992 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
993 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
994 |
995 | camelcase@^6.2.0:
996 | version "6.3.0"
997 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
998 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
999 |
1000 | caniuse-lite@^1.0.30001449:
1001 | version "1.0.30001451"
1002 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz#2e197c698fc1373d63e1406d6607ea4617c613f1"
1003 | integrity sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==
1004 |
1005 | chalk@^2.0.0, chalk@^2.4.2:
1006 | version "2.4.2"
1007 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1008 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
1009 | dependencies:
1010 | ansi-styles "^3.2.1"
1011 | escape-string-regexp "^1.0.5"
1012 | supports-color "^5.3.0"
1013 |
1014 | chalk@^4.0.0:
1015 | version "4.1.0"
1016 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
1017 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
1018 | dependencies:
1019 | ansi-styles "^4.1.0"
1020 | supports-color "^7.1.0"
1021 |
1022 | char-regex@^1.0.2:
1023 | version "1.0.2"
1024 | resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
1025 | integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
1026 |
1027 | ci-info@^3.2.0:
1028 | version "3.7.1"
1029 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f"
1030 | integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==
1031 |
1032 | cjs-module-lexer@^1.0.0:
1033 | version "1.2.2"
1034 | resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40"
1035 | integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
1036 |
1037 | cliui@^7.0.2:
1038 | version "7.0.4"
1039 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
1040 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
1041 | dependencies:
1042 | string-width "^4.2.0"
1043 | strip-ansi "^6.0.0"
1044 | wrap-ansi "^7.0.0"
1045 |
1046 | co@^4.6.0:
1047 | version "4.6.0"
1048 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
1049 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
1050 |
1051 | collect-v8-coverage@^1.0.0:
1052 | version "1.0.1"
1053 | resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
1054 | integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
1055 |
1056 | color-convert@^1.9.0:
1057 | version "1.9.3"
1058 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1059 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1060 | dependencies:
1061 | color-name "1.1.3"
1062 |
1063 | color-convert@^2.0.1:
1064 | version "2.0.1"
1065 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1066 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1067 | dependencies:
1068 | color-name "~1.1.4"
1069 |
1070 | color-name@1.1.3:
1071 | version "1.1.3"
1072 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1073 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
1074 |
1075 | color-name@~1.1.4:
1076 | version "1.1.4"
1077 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1078 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1079 |
1080 | combined-stream@^1.0.8:
1081 | version "1.0.8"
1082 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
1083 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
1084 | dependencies:
1085 | delayed-stream "~1.0.0"
1086 |
1087 | concat-map@0.0.1:
1088 | version "0.0.1"
1089 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1090 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
1091 |
1092 | convert-source-map@^1.4.0:
1093 | version "1.9.0"
1094 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
1095 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
1096 |
1097 | convert-source-map@^1.6.0, convert-source-map@^1.7.0:
1098 | version "1.7.0"
1099 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
1100 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
1101 | dependencies:
1102 | safe-buffer "~5.1.1"
1103 |
1104 | cross-spawn@^7.0.3:
1105 | version "7.0.3"
1106 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
1107 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
1108 | dependencies:
1109 | path-key "^3.1.0"
1110 | shebang-command "^2.0.0"
1111 | which "^2.0.1"
1112 |
1113 | cssom@^0.4.4:
1114 | version "0.4.4"
1115 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
1116 | integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
1117 |
1118 | cssom@~0.3.6:
1119 | version "0.3.8"
1120 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
1121 | integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
1122 |
1123 | cssstyle@^2.3.0:
1124 | version "2.3.0"
1125 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
1126 | integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
1127 | dependencies:
1128 | cssom "~0.3.6"
1129 |
1130 | data-urls@^2.0.0:
1131 | version "2.0.0"
1132 | resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
1133 | integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
1134 | dependencies:
1135 | abab "^2.0.3"
1136 | whatwg-mimetype "^2.3.0"
1137 | whatwg-url "^8.0.0"
1138 |
1139 | debug@4:
1140 | version "4.3.4"
1141 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
1142 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
1143 | dependencies:
1144 | ms "2.1.2"
1145 |
1146 | debug@^4.1.0, debug@^4.1.1:
1147 | version "4.1.1"
1148 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
1149 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
1150 | dependencies:
1151 | ms "^2.1.1"
1152 |
1153 | decimal.js@^10.2.1:
1154 | version "10.4.3"
1155 | resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
1156 | integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
1157 |
1158 | dedent@^0.7.0:
1159 | version "0.7.0"
1160 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
1161 | integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
1162 |
1163 | deep-is@~0.1.3:
1164 | version "0.1.4"
1165 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
1166 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
1167 |
1168 | deepmerge@^4.2.2:
1169 | version "4.2.2"
1170 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
1171 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
1172 |
1173 | delayed-stream@~1.0.0:
1174 | version "1.0.0"
1175 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
1176 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
1177 |
1178 | detect-newline@^3.0.0:
1179 | version "3.1.0"
1180 | resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
1181 | integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
1182 |
1183 | diff-sequences@^27.5.1:
1184 | version "27.5.1"
1185 | resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327"
1186 | integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==
1187 |
1188 | domexception@^2.0.1:
1189 | version "2.0.1"
1190 | resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
1191 | integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
1192 | dependencies:
1193 | webidl-conversions "^5.0.0"
1194 |
1195 | electron-to-chromium@^1.4.284:
1196 | version "1.4.292"
1197 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.292.tgz#e3a3dca3780c8ce01e2c1866b5ec2fbe31c423e3"
1198 | integrity sha512-ESWOSyJy5odDlE8wvh5NNAMORv4r6assPwIPGHEMWrWD0SONXcG/xT+9aD9CQyeRwyYDPo6dJT4Bbeg5uevVQQ==
1199 |
1200 | emittery@^0.8.1:
1201 | version "0.8.1"
1202 | resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
1203 | integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==
1204 |
1205 | emoji-regex@^8.0.0:
1206 | version "8.0.0"
1207 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
1208 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
1209 |
1210 | error-ex@^1.3.1:
1211 | version "1.3.2"
1212 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
1213 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
1214 | dependencies:
1215 | is-arrayish "^0.2.1"
1216 |
1217 | escalade@^3.1.1:
1218 | version "3.1.1"
1219 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
1220 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
1221 |
1222 | escape-string-regexp@^1.0.5:
1223 | version "1.0.5"
1224 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1225 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
1226 |
1227 | escape-string-regexp@^2.0.0:
1228 | version "2.0.0"
1229 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
1230 | integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
1231 |
1232 | escodegen@^2.0.0:
1233 | version "2.0.0"
1234 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
1235 | integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
1236 | dependencies:
1237 | esprima "^4.0.1"
1238 | estraverse "^5.2.0"
1239 | esutils "^2.0.2"
1240 | optionator "^0.8.1"
1241 | optionalDependencies:
1242 | source-map "~0.6.1"
1243 |
1244 | esprima@^4.0.0, esprima@^4.0.1:
1245 | version "4.0.1"
1246 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
1247 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
1248 |
1249 | estraverse@^5.2.0:
1250 | version "5.3.0"
1251 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
1252 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1253 |
1254 | esutils@^2.0.2:
1255 | version "2.0.3"
1256 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1257 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1258 |
1259 | execa@^5.0.0:
1260 | version "5.1.1"
1261 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
1262 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
1263 | dependencies:
1264 | cross-spawn "^7.0.3"
1265 | get-stream "^6.0.0"
1266 | human-signals "^2.1.0"
1267 | is-stream "^2.0.0"
1268 | merge-stream "^2.0.0"
1269 | npm-run-path "^4.0.1"
1270 | onetime "^5.1.2"
1271 | signal-exit "^3.0.3"
1272 | strip-final-newline "^2.0.0"
1273 |
1274 | exit@^0.1.2:
1275 | version "0.1.2"
1276 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
1277 | integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
1278 |
1279 | expect@^27.5.1:
1280 | version "27.5.1"
1281 | resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74"
1282 | integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==
1283 | dependencies:
1284 | "@jest/types" "^27.5.1"
1285 | jest-get-type "^27.5.1"
1286 | jest-matcher-utils "^27.5.1"
1287 | jest-message-util "^27.5.1"
1288 |
1289 | fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
1290 | version "2.1.0"
1291 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1292 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1293 |
1294 | fast-levenshtein@~2.0.6:
1295 | version "2.0.6"
1296 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1297 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
1298 |
1299 | fb-watchman@^2.0.0:
1300 | version "2.0.1"
1301 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
1302 | integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
1303 | dependencies:
1304 | bser "2.1.1"
1305 |
1306 | fill-range@^7.0.1:
1307 | version "7.0.1"
1308 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
1309 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1310 | dependencies:
1311 | to-regex-range "^5.0.1"
1312 |
1313 | find-up@^4.0.0, find-up@^4.1.0:
1314 | version "4.1.0"
1315 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
1316 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
1317 | dependencies:
1318 | locate-path "^5.0.0"
1319 | path-exists "^4.0.0"
1320 |
1321 | form-data@^3.0.0:
1322 | version "3.0.1"
1323 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
1324 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
1325 | dependencies:
1326 | asynckit "^0.4.0"
1327 | combined-stream "^1.0.8"
1328 | mime-types "^2.1.12"
1329 |
1330 | fs.realpath@^1.0.0:
1331 | version "1.0.0"
1332 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1333 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
1334 |
1335 | fsevents@^2.3.2:
1336 | version "2.3.2"
1337 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1338 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1339 |
1340 | function-bind@^1.1.1:
1341 | version "1.1.1"
1342 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1343 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1344 |
1345 | gensync@^1.0.0-beta.2:
1346 | version "1.0.0-beta.2"
1347 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1348 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1349 |
1350 | get-caller-file@^2.0.5:
1351 | version "2.0.5"
1352 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
1353 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
1354 |
1355 | get-package-type@^0.1.0:
1356 | version "0.1.0"
1357 | resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
1358 | integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
1359 |
1360 | get-stream@^6.0.0:
1361 | version "6.0.1"
1362 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
1363 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
1364 |
1365 | glob@^7.1.1, glob@^7.1.2:
1366 | version "7.2.3"
1367 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1368 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1369 | dependencies:
1370 | fs.realpath "^1.0.0"
1371 | inflight "^1.0.4"
1372 | inherits "2"
1373 | minimatch "^3.1.1"
1374 | once "^1.3.0"
1375 | path-is-absolute "^1.0.0"
1376 |
1377 | glob@^7.1.3, glob@^7.1.4:
1378 | version "7.1.6"
1379 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
1380 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
1381 | dependencies:
1382 | fs.realpath "^1.0.0"
1383 | inflight "^1.0.4"
1384 | inherits "2"
1385 | minimatch "^3.0.4"
1386 | once "^1.3.0"
1387 | path-is-absolute "^1.0.0"
1388 |
1389 | globals@^11.1.0:
1390 | version "11.12.0"
1391 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1392 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1393 |
1394 | graceful-fs@^4.2.9:
1395 | version "4.2.10"
1396 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
1397 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
1398 |
1399 | has-flag@^3.0.0:
1400 | version "3.0.0"
1401 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1402 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
1403 |
1404 | has-flag@^4.0.0:
1405 | version "4.0.0"
1406 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1407 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1408 |
1409 | has@^1.0.3:
1410 | version "1.0.3"
1411 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1412 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1413 | dependencies:
1414 | function-bind "^1.1.1"
1415 |
1416 | html-encoding-sniffer@^2.0.1:
1417 | version "2.0.1"
1418 | resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
1419 | integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
1420 | dependencies:
1421 | whatwg-encoding "^1.0.5"
1422 |
1423 | html-escaper@^2.0.0:
1424 | version "2.0.2"
1425 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
1426 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
1427 |
1428 | http-proxy-agent@^4.0.1:
1429 | version "4.0.1"
1430 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
1431 | integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
1432 | dependencies:
1433 | "@tootallnate/once" "1"
1434 | agent-base "6"
1435 | debug "4"
1436 |
1437 | https-proxy-agent@^5.0.0:
1438 | version "5.0.1"
1439 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
1440 | integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
1441 | dependencies:
1442 | agent-base "6"
1443 | debug "4"
1444 |
1445 | human-signals@^2.1.0:
1446 | version "2.1.0"
1447 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
1448 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
1449 |
1450 | iconv-lite@0.4.24:
1451 | version "0.4.24"
1452 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
1453 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
1454 | dependencies:
1455 | safer-buffer ">= 2.1.2 < 3"
1456 |
1457 | import-local@^3.0.2:
1458 | version "3.0.2"
1459 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
1460 | integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
1461 | dependencies:
1462 | pkg-dir "^4.2.0"
1463 | resolve-cwd "^3.0.0"
1464 |
1465 | imurmurhash@^0.1.4:
1466 | version "0.1.4"
1467 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1468 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
1469 |
1470 | inflight@^1.0.4:
1471 | version "1.0.6"
1472 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1473 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1474 | dependencies:
1475 | once "^1.3.0"
1476 | wrappy "1"
1477 |
1478 | inherits@2:
1479 | version "2.0.4"
1480 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1481 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1482 |
1483 | is-arrayish@^0.2.1:
1484 | version "0.2.1"
1485 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1486 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
1487 |
1488 | is-core-module@^2.9.0:
1489 | version "2.11.0"
1490 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
1491 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
1492 | dependencies:
1493 | has "^1.0.3"
1494 |
1495 | is-fullwidth-code-point@^3.0.0:
1496 | version "3.0.0"
1497 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1498 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1499 |
1500 | is-generator-fn@^2.0.0:
1501 | version "2.1.0"
1502 | resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
1503 | integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
1504 |
1505 | is-number@^7.0.0:
1506 | version "7.0.0"
1507 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1508 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1509 |
1510 | is-potential-custom-element-name@^1.0.1:
1511 | version "1.0.1"
1512 | resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
1513 | integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
1514 |
1515 | is-stream@^2.0.0:
1516 | version "2.0.0"
1517 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
1518 | integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
1519 |
1520 | is-typedarray@^1.0.0:
1521 | version "1.0.0"
1522 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1523 | integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
1524 |
1525 | isexe@^2.0.0:
1526 | version "2.0.0"
1527 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1528 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1529 |
1530 | istanbul-lib-coverage@^3.0.0:
1531 | version "3.0.0"
1532 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
1533 | integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
1534 |
1535 | istanbul-lib-coverage@^3.2.0:
1536 | version "3.2.0"
1537 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
1538 | integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
1539 |
1540 | istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0:
1541 | version "5.2.1"
1542 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
1543 | integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
1544 | dependencies:
1545 | "@babel/core" "^7.12.3"
1546 | "@babel/parser" "^7.14.7"
1547 | "@istanbuljs/schema" "^0.1.2"
1548 | istanbul-lib-coverage "^3.2.0"
1549 | semver "^6.3.0"
1550 |
1551 | istanbul-lib-report@^3.0.0:
1552 | version "3.0.0"
1553 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
1554 | integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
1555 | dependencies:
1556 | istanbul-lib-coverage "^3.0.0"
1557 | make-dir "^3.0.0"
1558 | supports-color "^7.1.0"
1559 |
1560 | istanbul-lib-source-maps@^4.0.0:
1561 | version "4.0.0"
1562 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9"
1563 | integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==
1564 | dependencies:
1565 | debug "^4.1.1"
1566 | istanbul-lib-coverage "^3.0.0"
1567 | source-map "^0.6.1"
1568 |
1569 | istanbul-reports@^3.1.3:
1570 | version "3.1.5"
1571 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae"
1572 | integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==
1573 | dependencies:
1574 | html-escaper "^2.0.0"
1575 | istanbul-lib-report "^3.0.0"
1576 |
1577 | jest-changed-files@^27.5.1:
1578 | version "27.5.1"
1579 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5"
1580 | integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==
1581 | dependencies:
1582 | "@jest/types" "^27.5.1"
1583 | execa "^5.0.0"
1584 | throat "^6.0.1"
1585 |
1586 | jest-circus@^27.5.1:
1587 | version "27.5.1"
1588 | resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc"
1589 | integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==
1590 | dependencies:
1591 | "@jest/environment" "^27.5.1"
1592 | "@jest/test-result" "^27.5.1"
1593 | "@jest/types" "^27.5.1"
1594 | "@types/node" "*"
1595 | chalk "^4.0.0"
1596 | co "^4.6.0"
1597 | dedent "^0.7.0"
1598 | expect "^27.5.1"
1599 | is-generator-fn "^2.0.0"
1600 | jest-each "^27.5.1"
1601 | jest-matcher-utils "^27.5.1"
1602 | jest-message-util "^27.5.1"
1603 | jest-runtime "^27.5.1"
1604 | jest-snapshot "^27.5.1"
1605 | jest-util "^27.5.1"
1606 | pretty-format "^27.5.1"
1607 | slash "^3.0.0"
1608 | stack-utils "^2.0.3"
1609 | throat "^6.0.1"
1610 |
1611 | jest-cli@^27.5.1:
1612 | version "27.5.1"
1613 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145"
1614 | integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==
1615 | dependencies:
1616 | "@jest/core" "^27.5.1"
1617 | "@jest/test-result" "^27.5.1"
1618 | "@jest/types" "^27.5.1"
1619 | chalk "^4.0.0"
1620 | exit "^0.1.2"
1621 | graceful-fs "^4.2.9"
1622 | import-local "^3.0.2"
1623 | jest-config "^27.5.1"
1624 | jest-util "^27.5.1"
1625 | jest-validate "^27.5.1"
1626 | prompts "^2.0.1"
1627 | yargs "^16.2.0"
1628 |
1629 | jest-config@^27.5.1:
1630 | version "27.5.1"
1631 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41"
1632 | integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==
1633 | dependencies:
1634 | "@babel/core" "^7.8.0"
1635 | "@jest/test-sequencer" "^27.5.1"
1636 | "@jest/types" "^27.5.1"
1637 | babel-jest "^27.5.1"
1638 | chalk "^4.0.0"
1639 | ci-info "^3.2.0"
1640 | deepmerge "^4.2.2"
1641 | glob "^7.1.1"
1642 | graceful-fs "^4.2.9"
1643 | jest-circus "^27.5.1"
1644 | jest-environment-jsdom "^27.5.1"
1645 | jest-environment-node "^27.5.1"
1646 | jest-get-type "^27.5.1"
1647 | jest-jasmine2 "^27.5.1"
1648 | jest-regex-util "^27.5.1"
1649 | jest-resolve "^27.5.1"
1650 | jest-runner "^27.5.1"
1651 | jest-util "^27.5.1"
1652 | jest-validate "^27.5.1"
1653 | micromatch "^4.0.4"
1654 | parse-json "^5.2.0"
1655 | pretty-format "^27.5.1"
1656 | slash "^3.0.0"
1657 | strip-json-comments "^3.1.1"
1658 |
1659 | jest-diff@^27.5.1:
1660 | version "27.5.1"
1661 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def"
1662 | integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==
1663 | dependencies:
1664 | chalk "^4.0.0"
1665 | diff-sequences "^27.5.1"
1666 | jest-get-type "^27.5.1"
1667 | pretty-format "^27.5.1"
1668 |
1669 | jest-docblock@^27.5.1:
1670 | version "27.5.1"
1671 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0"
1672 | integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==
1673 | dependencies:
1674 | detect-newline "^3.0.0"
1675 |
1676 | jest-each@^27.5.1:
1677 | version "27.5.1"
1678 | resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e"
1679 | integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==
1680 | dependencies:
1681 | "@jest/types" "^27.5.1"
1682 | chalk "^4.0.0"
1683 | jest-get-type "^27.5.1"
1684 | jest-util "^27.5.1"
1685 | pretty-format "^27.5.1"
1686 |
1687 | jest-environment-jsdom@^27.5.1:
1688 | version "27.5.1"
1689 | resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546"
1690 | integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==
1691 | dependencies:
1692 | "@jest/environment" "^27.5.1"
1693 | "@jest/fake-timers" "^27.5.1"
1694 | "@jest/types" "^27.5.1"
1695 | "@types/node" "*"
1696 | jest-mock "^27.5.1"
1697 | jest-util "^27.5.1"
1698 | jsdom "^16.6.0"
1699 |
1700 | jest-environment-node@^27.5.1:
1701 | version "27.5.1"
1702 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e"
1703 | integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==
1704 | dependencies:
1705 | "@jest/environment" "^27.5.1"
1706 | "@jest/fake-timers" "^27.5.1"
1707 | "@jest/types" "^27.5.1"
1708 | "@types/node" "*"
1709 | jest-mock "^27.5.1"
1710 | jest-util "^27.5.1"
1711 |
1712 | jest-get-type@^27.5.1:
1713 | version "27.5.1"
1714 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1"
1715 | integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==
1716 |
1717 | jest-haste-map@^27.5.1:
1718 | version "27.5.1"
1719 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f"
1720 | integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==
1721 | dependencies:
1722 | "@jest/types" "^27.5.1"
1723 | "@types/graceful-fs" "^4.1.2"
1724 | "@types/node" "*"
1725 | anymatch "^3.0.3"
1726 | fb-watchman "^2.0.0"
1727 | graceful-fs "^4.2.9"
1728 | jest-regex-util "^27.5.1"
1729 | jest-serializer "^27.5.1"
1730 | jest-util "^27.5.1"
1731 | jest-worker "^27.5.1"
1732 | micromatch "^4.0.4"
1733 | walker "^1.0.7"
1734 | optionalDependencies:
1735 | fsevents "^2.3.2"
1736 |
1737 | jest-jasmine2@^27.5.1:
1738 | version "27.5.1"
1739 | resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4"
1740 | integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==
1741 | dependencies:
1742 | "@jest/environment" "^27.5.1"
1743 | "@jest/source-map" "^27.5.1"
1744 | "@jest/test-result" "^27.5.1"
1745 | "@jest/types" "^27.5.1"
1746 | "@types/node" "*"
1747 | chalk "^4.0.0"
1748 | co "^4.6.0"
1749 | expect "^27.5.1"
1750 | is-generator-fn "^2.0.0"
1751 | jest-each "^27.5.1"
1752 | jest-matcher-utils "^27.5.1"
1753 | jest-message-util "^27.5.1"
1754 | jest-runtime "^27.5.1"
1755 | jest-snapshot "^27.5.1"
1756 | jest-util "^27.5.1"
1757 | pretty-format "^27.5.1"
1758 | throat "^6.0.1"
1759 |
1760 | jest-leak-detector@^27.5.1:
1761 | version "27.5.1"
1762 | resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8"
1763 | integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==
1764 | dependencies:
1765 | jest-get-type "^27.5.1"
1766 | pretty-format "^27.5.1"
1767 |
1768 | jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1:
1769 | version "27.5.1"
1770 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab"
1771 | integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==
1772 | dependencies:
1773 | chalk "^4.0.0"
1774 | jest-diff "^27.5.1"
1775 | jest-get-type "^27.5.1"
1776 | pretty-format "^27.5.1"
1777 |
1778 | jest-message-util@^27.5.1:
1779 | version "27.5.1"
1780 | resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf"
1781 | integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==
1782 | dependencies:
1783 | "@babel/code-frame" "^7.12.13"
1784 | "@jest/types" "^27.5.1"
1785 | "@types/stack-utils" "^2.0.0"
1786 | chalk "^4.0.0"
1787 | graceful-fs "^4.2.9"
1788 | micromatch "^4.0.4"
1789 | pretty-format "^27.5.1"
1790 | slash "^3.0.0"
1791 | stack-utils "^2.0.3"
1792 |
1793 | jest-mock@^27.5.1:
1794 | version "27.5.1"
1795 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6"
1796 | integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==
1797 | dependencies:
1798 | "@jest/types" "^27.5.1"
1799 | "@types/node" "*"
1800 |
1801 | jest-pnp-resolver@^1.2.2:
1802 | version "1.2.2"
1803 | resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
1804 | integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
1805 |
1806 | jest-regex-util@^27.5.1:
1807 | version "27.5.1"
1808 | resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95"
1809 | integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==
1810 |
1811 | jest-resolve-dependencies@^27.5.1:
1812 | version "27.5.1"
1813 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8"
1814 | integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==
1815 | dependencies:
1816 | "@jest/types" "^27.5.1"
1817 | jest-regex-util "^27.5.1"
1818 | jest-snapshot "^27.5.1"
1819 |
1820 | jest-resolve@^27.5.1:
1821 | version "27.5.1"
1822 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384"
1823 | integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==
1824 | dependencies:
1825 | "@jest/types" "^27.5.1"
1826 | chalk "^4.0.0"
1827 | graceful-fs "^4.2.9"
1828 | jest-haste-map "^27.5.1"
1829 | jest-pnp-resolver "^1.2.2"
1830 | jest-util "^27.5.1"
1831 | jest-validate "^27.5.1"
1832 | resolve "^1.20.0"
1833 | resolve.exports "^1.1.0"
1834 | slash "^3.0.0"
1835 |
1836 | jest-runner@^27.5.1:
1837 | version "27.5.1"
1838 | resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5"
1839 | integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==
1840 | dependencies:
1841 | "@jest/console" "^27.5.1"
1842 | "@jest/environment" "^27.5.1"
1843 | "@jest/test-result" "^27.5.1"
1844 | "@jest/transform" "^27.5.1"
1845 | "@jest/types" "^27.5.1"
1846 | "@types/node" "*"
1847 | chalk "^4.0.0"
1848 | emittery "^0.8.1"
1849 | graceful-fs "^4.2.9"
1850 | jest-docblock "^27.5.1"
1851 | jest-environment-jsdom "^27.5.1"
1852 | jest-environment-node "^27.5.1"
1853 | jest-haste-map "^27.5.1"
1854 | jest-leak-detector "^27.5.1"
1855 | jest-message-util "^27.5.1"
1856 | jest-resolve "^27.5.1"
1857 | jest-runtime "^27.5.1"
1858 | jest-util "^27.5.1"
1859 | jest-worker "^27.5.1"
1860 | source-map-support "^0.5.6"
1861 | throat "^6.0.1"
1862 |
1863 | jest-runtime@^27.5.1:
1864 | version "27.5.1"
1865 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af"
1866 | integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==
1867 | dependencies:
1868 | "@jest/environment" "^27.5.1"
1869 | "@jest/fake-timers" "^27.5.1"
1870 | "@jest/globals" "^27.5.1"
1871 | "@jest/source-map" "^27.5.1"
1872 | "@jest/test-result" "^27.5.1"
1873 | "@jest/transform" "^27.5.1"
1874 | "@jest/types" "^27.5.1"
1875 | chalk "^4.0.0"
1876 | cjs-module-lexer "^1.0.0"
1877 | collect-v8-coverage "^1.0.0"
1878 | execa "^5.0.0"
1879 | glob "^7.1.3"
1880 | graceful-fs "^4.2.9"
1881 | jest-haste-map "^27.5.1"
1882 | jest-message-util "^27.5.1"
1883 | jest-mock "^27.5.1"
1884 | jest-regex-util "^27.5.1"
1885 | jest-resolve "^27.5.1"
1886 | jest-snapshot "^27.5.1"
1887 | jest-util "^27.5.1"
1888 | slash "^3.0.0"
1889 | strip-bom "^4.0.0"
1890 |
1891 | jest-serializer@^27.5.1:
1892 | version "27.5.1"
1893 | resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64"
1894 | integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==
1895 | dependencies:
1896 | "@types/node" "*"
1897 | graceful-fs "^4.2.9"
1898 |
1899 | jest-snapshot@^27.5.1:
1900 | version "27.5.1"
1901 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1"
1902 | integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==
1903 | dependencies:
1904 | "@babel/core" "^7.7.2"
1905 | "@babel/generator" "^7.7.2"
1906 | "@babel/plugin-syntax-typescript" "^7.7.2"
1907 | "@babel/traverse" "^7.7.2"
1908 | "@babel/types" "^7.0.0"
1909 | "@jest/transform" "^27.5.1"
1910 | "@jest/types" "^27.5.1"
1911 | "@types/babel__traverse" "^7.0.4"
1912 | "@types/prettier" "^2.1.5"
1913 | babel-preset-current-node-syntax "^1.0.0"
1914 | chalk "^4.0.0"
1915 | expect "^27.5.1"
1916 | graceful-fs "^4.2.9"
1917 | jest-diff "^27.5.1"
1918 | jest-get-type "^27.5.1"
1919 | jest-haste-map "^27.5.1"
1920 | jest-matcher-utils "^27.5.1"
1921 | jest-message-util "^27.5.1"
1922 | jest-util "^27.5.1"
1923 | natural-compare "^1.4.0"
1924 | pretty-format "^27.5.1"
1925 | semver "^7.3.2"
1926 |
1927 | jest-util@^27.0.0, jest-util@^27.5.1:
1928 | version "27.5.1"
1929 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9"
1930 | integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==
1931 | dependencies:
1932 | "@jest/types" "^27.5.1"
1933 | "@types/node" "*"
1934 | chalk "^4.0.0"
1935 | ci-info "^3.2.0"
1936 | graceful-fs "^4.2.9"
1937 | picomatch "^2.2.3"
1938 |
1939 | jest-validate@^27.5.1:
1940 | version "27.5.1"
1941 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067"
1942 | integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==
1943 | dependencies:
1944 | "@jest/types" "^27.5.1"
1945 | camelcase "^6.2.0"
1946 | chalk "^4.0.0"
1947 | jest-get-type "^27.5.1"
1948 | leven "^3.1.0"
1949 | pretty-format "^27.5.1"
1950 |
1951 | jest-watcher@^27.5.1:
1952 | version "27.5.1"
1953 | resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2"
1954 | integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==
1955 | dependencies:
1956 | "@jest/test-result" "^27.5.1"
1957 | "@jest/types" "^27.5.1"
1958 | "@types/node" "*"
1959 | ansi-escapes "^4.2.1"
1960 | chalk "^4.0.0"
1961 | jest-util "^27.5.1"
1962 | string-length "^4.0.1"
1963 |
1964 | jest-worker@^27.5.1:
1965 | version "27.5.1"
1966 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
1967 | integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
1968 | dependencies:
1969 | "@types/node" "*"
1970 | merge-stream "^2.0.0"
1971 | supports-color "^8.0.0"
1972 |
1973 | jest@^27.5.1:
1974 | version "27.5.1"
1975 | resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc"
1976 | integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==
1977 | dependencies:
1978 | "@jest/core" "^27.5.1"
1979 | import-local "^3.0.2"
1980 | jest-cli "^27.5.1"
1981 |
1982 | js-tokens@^4.0.0:
1983 | version "4.0.0"
1984 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1985 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1986 |
1987 | js-yaml@^3.13.1:
1988 | version "3.14.0"
1989 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
1990 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
1991 | dependencies:
1992 | argparse "^1.0.7"
1993 | esprima "^4.0.0"
1994 |
1995 | jsdom@^16.6.0:
1996 | version "16.7.0"
1997 | resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710"
1998 | integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==
1999 | dependencies:
2000 | abab "^2.0.5"
2001 | acorn "^8.2.4"
2002 | acorn-globals "^6.0.0"
2003 | cssom "^0.4.4"
2004 | cssstyle "^2.3.0"
2005 | data-urls "^2.0.0"
2006 | decimal.js "^10.2.1"
2007 | domexception "^2.0.1"
2008 | escodegen "^2.0.0"
2009 | form-data "^3.0.0"
2010 | html-encoding-sniffer "^2.0.1"
2011 | http-proxy-agent "^4.0.1"
2012 | https-proxy-agent "^5.0.0"
2013 | is-potential-custom-element-name "^1.0.1"
2014 | nwsapi "^2.2.0"
2015 | parse5 "6.0.1"
2016 | saxes "^5.0.1"
2017 | symbol-tree "^3.2.4"
2018 | tough-cookie "^4.0.0"
2019 | w3c-hr-time "^1.0.2"
2020 | w3c-xmlserializer "^2.0.0"
2021 | webidl-conversions "^6.1.0"
2022 | whatwg-encoding "^1.0.5"
2023 | whatwg-mimetype "^2.3.0"
2024 | whatwg-url "^8.5.0"
2025 | ws "^7.4.6"
2026 | xml-name-validator "^3.0.0"
2027 |
2028 | jsesc@^2.5.1:
2029 | version "2.5.2"
2030 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
2031 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
2032 |
2033 | json-parse-even-better-errors@^2.3.0:
2034 | version "2.3.0"
2035 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081"
2036 | integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q==
2037 |
2038 | json5@2.x, json5@^2.2.2:
2039 | version "2.2.3"
2040 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
2041 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
2042 |
2043 | kleur@^3.0.3:
2044 | version "3.0.3"
2045 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
2046 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
2047 |
2048 | leven@^3.1.0:
2049 | version "3.1.0"
2050 | resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
2051 | integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
2052 |
2053 | levn@~0.3.0:
2054 | version "0.3.0"
2055 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
2056 | integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
2057 | dependencies:
2058 | prelude-ls "~1.1.2"
2059 | type-check "~0.3.2"
2060 |
2061 | lines-and-columns@^1.1.6:
2062 | version "1.1.6"
2063 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
2064 | integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
2065 |
2066 | locate-path@^5.0.0:
2067 | version "5.0.0"
2068 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
2069 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
2070 | dependencies:
2071 | p-locate "^4.1.0"
2072 |
2073 | lodash.memoize@4.x:
2074 | version "4.1.2"
2075 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
2076 | integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
2077 |
2078 | lodash@^4.17.19, lodash@^4.7.0:
2079 | version "4.17.21"
2080 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
2081 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
2082 |
2083 | lru-cache@^5.1.1:
2084 | version "5.1.1"
2085 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
2086 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
2087 | dependencies:
2088 | yallist "^3.0.2"
2089 |
2090 | lru-cache@^6.0.0:
2091 | version "6.0.0"
2092 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
2093 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
2094 | dependencies:
2095 | yallist "^4.0.0"
2096 |
2097 | make-dir@^3.0.0:
2098 | version "3.1.0"
2099 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
2100 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
2101 | dependencies:
2102 | semver "^6.0.0"
2103 |
2104 | make-error@1.x:
2105 | version "1.3.6"
2106 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
2107 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
2108 |
2109 | makeerror@1.0.12:
2110 | version "1.0.12"
2111 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
2112 | integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
2113 | dependencies:
2114 | tmpl "1.0.5"
2115 |
2116 | merge-stream@^2.0.0:
2117 | version "2.0.0"
2118 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
2119 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
2120 |
2121 | micromatch@^4.0.4:
2122 | version "4.0.5"
2123 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
2124 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
2125 | dependencies:
2126 | braces "^3.0.2"
2127 | picomatch "^2.3.1"
2128 |
2129 | mime-db@1.52.0:
2130 | version "1.52.0"
2131 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
2132 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
2133 |
2134 | mime-types@^2.1.12:
2135 | version "2.1.35"
2136 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
2137 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
2138 | dependencies:
2139 | mime-db "1.52.0"
2140 |
2141 | mimic-fn@^2.1.0:
2142 | version "2.1.0"
2143 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
2144 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
2145 |
2146 | minimatch@^3.0.4, minimatch@^3.1.1:
2147 | version "3.1.2"
2148 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
2149 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
2150 | dependencies:
2151 | brace-expansion "^1.1.7"
2152 |
2153 | ms@2.1.2, ms@^2.1.1:
2154 | version "2.1.2"
2155 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
2156 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
2157 |
2158 | natural-compare@^1.4.0:
2159 | version "1.4.0"
2160 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
2161 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
2162 |
2163 | node-int64@^0.4.0:
2164 | version "0.4.0"
2165 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
2166 | integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
2167 |
2168 | node-releases@^2.0.8:
2169 | version "2.0.10"
2170 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
2171 | integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
2172 |
2173 | normalize-path@^3.0.0:
2174 | version "3.0.0"
2175 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
2176 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
2177 |
2178 | npm-run-path@^4.0.1:
2179 | version "4.0.1"
2180 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
2181 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
2182 | dependencies:
2183 | path-key "^3.0.0"
2184 |
2185 | nwsapi@^2.2.0:
2186 | version "2.2.2"
2187 | resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0"
2188 | integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==
2189 |
2190 | once@^1.3.0:
2191 | version "1.4.0"
2192 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2193 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
2194 | dependencies:
2195 | wrappy "1"
2196 |
2197 | onetime@^5.1.2:
2198 | version "5.1.2"
2199 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
2200 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
2201 | dependencies:
2202 | mimic-fn "^2.1.0"
2203 |
2204 | optionator@^0.8.1:
2205 | version "0.8.3"
2206 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
2207 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
2208 | dependencies:
2209 | deep-is "~0.1.3"
2210 | fast-levenshtein "~2.0.6"
2211 | levn "~0.3.0"
2212 | prelude-ls "~1.1.2"
2213 | type-check "~0.3.2"
2214 | word-wrap "~1.2.3"
2215 |
2216 | p-limit@^2.2.0:
2217 | version "2.3.0"
2218 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
2219 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
2220 | dependencies:
2221 | p-try "^2.0.0"
2222 |
2223 | p-locate@^4.1.0:
2224 | version "4.1.0"
2225 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
2226 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
2227 | dependencies:
2228 | p-limit "^2.2.0"
2229 |
2230 | p-try@^2.0.0:
2231 | version "2.2.0"
2232 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
2233 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
2234 |
2235 | parse-json@^5.2.0:
2236 | version "5.2.0"
2237 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
2238 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
2239 | dependencies:
2240 | "@babel/code-frame" "^7.0.0"
2241 | error-ex "^1.3.1"
2242 | json-parse-even-better-errors "^2.3.0"
2243 | lines-and-columns "^1.1.6"
2244 |
2245 | parse5@6.0.1:
2246 | version "6.0.1"
2247 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
2248 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
2249 |
2250 | path-exists@^4.0.0:
2251 | version "4.0.0"
2252 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
2253 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
2254 |
2255 | path-is-absolute@^1.0.0:
2256 | version "1.0.1"
2257 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2258 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
2259 |
2260 | path-key@^3.0.0, path-key@^3.1.0:
2261 | version "3.1.1"
2262 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
2263 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
2264 |
2265 | path-parse@^1.0.7:
2266 | version "1.0.7"
2267 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
2268 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
2269 |
2270 | picocolors@^1.0.0:
2271 | version "1.0.0"
2272 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
2273 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
2274 |
2275 | picomatch@^2.0.4:
2276 | version "2.2.2"
2277 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
2278 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
2279 |
2280 | picomatch@^2.2.3, picomatch@^2.3.1:
2281 | version "2.3.1"
2282 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
2283 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
2284 |
2285 | pirates@^4.0.4:
2286 | version "4.0.5"
2287 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
2288 | integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
2289 |
2290 | pkg-dir@^4.2.0:
2291 | version "4.2.0"
2292 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
2293 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
2294 | dependencies:
2295 | find-up "^4.0.0"
2296 |
2297 | prelude-ls@~1.1.2:
2298 | version "1.1.2"
2299 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
2300 | integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
2301 |
2302 | pretty-format@^27.0.0, pretty-format@^27.5.1:
2303 | version "27.5.1"
2304 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
2305 | integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
2306 | dependencies:
2307 | ansi-regex "^5.0.1"
2308 | ansi-styles "^5.0.0"
2309 | react-is "^17.0.1"
2310 |
2311 | prompts@^2.0.1:
2312 | version "2.3.2"
2313 | resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068"
2314 | integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==
2315 | dependencies:
2316 | kleur "^3.0.3"
2317 | sisteransi "^1.0.4"
2318 |
2319 | psl@^1.1.33:
2320 | version "1.9.0"
2321 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
2322 | integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
2323 |
2324 | punycode@^2.1.1:
2325 | version "2.3.0"
2326 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
2327 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
2328 |
2329 | querystringify@^2.1.1:
2330 | version "2.2.0"
2331 | resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
2332 | integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
2333 |
2334 | react-is@^17.0.1:
2335 | version "17.0.2"
2336 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
2337 | integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
2338 |
2339 | require-directory@^2.1.1:
2340 | version "2.1.1"
2341 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
2342 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
2343 |
2344 | requires-port@^1.0.0:
2345 | version "1.0.0"
2346 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
2347 | integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
2348 |
2349 | resolve-cwd@^3.0.0:
2350 | version "3.0.0"
2351 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
2352 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
2353 | dependencies:
2354 | resolve-from "^5.0.0"
2355 |
2356 | resolve-from@^5.0.0:
2357 | version "5.0.0"
2358 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
2359 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
2360 |
2361 | resolve.exports@^1.1.0:
2362 | version "1.1.1"
2363 | resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999"
2364 | integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==
2365 |
2366 | resolve@^1.20.0:
2367 | version "1.22.1"
2368 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
2369 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
2370 | dependencies:
2371 | is-core-module "^2.9.0"
2372 | path-parse "^1.0.7"
2373 | supports-preserve-symlinks-flag "^1.0.0"
2374 |
2375 | rimraf@^3.0.0:
2376 | version "3.0.2"
2377 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
2378 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
2379 | dependencies:
2380 | glob "^7.1.3"
2381 |
2382 | safe-buffer@~5.1.1:
2383 | version "5.1.2"
2384 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
2385 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
2386 |
2387 | "safer-buffer@>= 2.1.2 < 3":
2388 | version "2.1.2"
2389 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
2390 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
2391 |
2392 | saxes@^5.0.1:
2393 | version "5.0.1"
2394 | resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
2395 | integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
2396 | dependencies:
2397 | xmlchars "^2.2.0"
2398 |
2399 | semver@7.x:
2400 | version "7.3.4"
2401 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
2402 | integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
2403 | dependencies:
2404 | lru-cache "^6.0.0"
2405 |
2406 | semver@^6.0.0, semver@^6.3.0:
2407 | version "6.3.0"
2408 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
2409 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
2410 |
2411 | semver@^7.3.2:
2412 | version "7.3.8"
2413 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
2414 | integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
2415 | dependencies:
2416 | lru-cache "^6.0.0"
2417 |
2418 | shebang-command@^2.0.0:
2419 | version "2.0.0"
2420 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
2421 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
2422 | dependencies:
2423 | shebang-regex "^3.0.0"
2424 |
2425 | shebang-regex@^3.0.0:
2426 | version "3.0.0"
2427 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
2428 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
2429 |
2430 | signal-exit@^3.0.2, signal-exit@^3.0.3:
2431 | version "3.0.7"
2432 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
2433 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
2434 |
2435 | sisteransi@^1.0.4:
2436 | version "1.0.5"
2437 | resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
2438 | integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
2439 |
2440 | slash@^3.0.0:
2441 | version "3.0.0"
2442 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
2443 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
2444 |
2445 | source-map-support@^0.5.6:
2446 | version "0.5.21"
2447 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
2448 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
2449 | dependencies:
2450 | buffer-from "^1.0.0"
2451 | source-map "^0.6.0"
2452 |
2453 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
2454 | version "0.6.1"
2455 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2456 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
2457 |
2458 | source-map@^0.7.3:
2459 | version "0.7.4"
2460 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
2461 | integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
2462 |
2463 | sprintf-js@~1.0.2:
2464 | version "1.0.3"
2465 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2466 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
2467 |
2468 | stack-utils@^2.0.3:
2469 | version "2.0.6"
2470 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
2471 | integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
2472 | dependencies:
2473 | escape-string-regexp "^2.0.0"
2474 |
2475 | string-length@^4.0.1:
2476 | version "4.0.1"
2477 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1"
2478 | integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==
2479 | dependencies:
2480 | char-regex "^1.0.2"
2481 | strip-ansi "^6.0.0"
2482 |
2483 | string-width@^4.1.0, string-width@^4.2.0:
2484 | version "4.2.0"
2485 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
2486 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
2487 | dependencies:
2488 | emoji-regex "^8.0.0"
2489 | is-fullwidth-code-point "^3.0.0"
2490 | strip-ansi "^6.0.0"
2491 |
2492 | strip-ansi@^6.0.0:
2493 | version "6.0.0"
2494 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
2495 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
2496 | dependencies:
2497 | ansi-regex "^5.0.0"
2498 |
2499 | strip-bom@^4.0.0:
2500 | version "4.0.0"
2501 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
2502 | integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
2503 |
2504 | strip-final-newline@^2.0.0:
2505 | version "2.0.0"
2506 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
2507 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
2508 |
2509 | strip-json-comments@^3.1.1:
2510 | version "3.1.1"
2511 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
2512 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
2513 |
2514 | supports-color@^5.3.0:
2515 | version "5.5.0"
2516 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
2517 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
2518 | dependencies:
2519 | has-flag "^3.0.0"
2520 |
2521 | supports-color@^7.0.0:
2522 | version "7.2.0"
2523 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
2524 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
2525 | dependencies:
2526 | has-flag "^4.0.0"
2527 |
2528 | supports-color@^7.1.0:
2529 | version "7.1.0"
2530 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
2531 | integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
2532 | dependencies:
2533 | has-flag "^4.0.0"
2534 |
2535 | supports-color@^8.0.0:
2536 | version "8.1.1"
2537 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
2538 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
2539 | dependencies:
2540 | has-flag "^4.0.0"
2541 |
2542 | supports-hyperlinks@^2.0.0:
2543 | version "2.3.0"
2544 | resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624"
2545 | integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==
2546 | dependencies:
2547 | has-flag "^4.0.0"
2548 | supports-color "^7.0.0"
2549 |
2550 | supports-preserve-symlinks-flag@^1.0.0:
2551 | version "1.0.0"
2552 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
2553 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
2554 |
2555 | symbol-tree@^3.2.4:
2556 | version "3.2.4"
2557 | resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
2558 | integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
2559 |
2560 | terminal-link@^2.0.0:
2561 | version "2.1.1"
2562 | resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
2563 | integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
2564 | dependencies:
2565 | ansi-escapes "^4.2.1"
2566 | supports-hyperlinks "^2.0.0"
2567 |
2568 | test-exclude@^6.0.0:
2569 | version "6.0.0"
2570 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
2571 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
2572 | dependencies:
2573 | "@istanbuljs/schema" "^0.1.2"
2574 | glob "^7.1.4"
2575 | minimatch "^3.0.4"
2576 |
2577 | throat@^6.0.1:
2578 | version "6.0.2"
2579 | resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe"
2580 | integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==
2581 |
2582 | tmpl@1.0.5:
2583 | version "1.0.5"
2584 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
2585 | integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
2586 |
2587 | to-fast-properties@^2.0.0:
2588 | version "2.0.0"
2589 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
2590 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
2591 |
2592 | to-regex-range@^5.0.1:
2593 | version "5.0.1"
2594 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
2595 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
2596 | dependencies:
2597 | is-number "^7.0.0"
2598 |
2599 | tough-cookie@^4.0.0:
2600 | version "4.1.2"
2601 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874"
2602 | integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==
2603 | dependencies:
2604 | psl "^1.1.33"
2605 | punycode "^2.1.1"
2606 | universalify "^0.2.0"
2607 | url-parse "^1.5.3"
2608 |
2609 | tr46@^2.1.0:
2610 | version "2.1.0"
2611 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240"
2612 | integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==
2613 | dependencies:
2614 | punycode "^2.1.1"
2615 |
2616 | ts-jest@^27.1.5:
2617 | version "27.1.5"
2618 | resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.5.tgz#0ddf1b163fbaae3d5b7504a1e65c914a95cff297"
2619 | integrity sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==
2620 | dependencies:
2621 | bs-logger "0.x"
2622 | fast-json-stable-stringify "2.x"
2623 | jest-util "^27.0.0"
2624 | json5 "2.x"
2625 | lodash.memoize "4.x"
2626 | make-error "1.x"
2627 | semver "7.x"
2628 | yargs-parser "20.x"
2629 |
2630 | type-check@~0.3.2:
2631 | version "0.3.2"
2632 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
2633 | integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==
2634 | dependencies:
2635 | prelude-ls "~1.1.2"
2636 |
2637 | type-detect@4.0.8:
2638 | version "4.0.8"
2639 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
2640 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
2641 |
2642 | type-fest@^0.11.0:
2643 | version "0.11.0"
2644 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
2645 | integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
2646 |
2647 | typedarray-to-buffer@^3.1.5:
2648 | version "3.1.5"
2649 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
2650 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
2651 | dependencies:
2652 | is-typedarray "^1.0.0"
2653 |
2654 | typescript@^4.0.2:
2655 | version "4.0.2"
2656 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2"
2657 | integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==
2658 |
2659 | universalify@^0.2.0:
2660 | version "0.2.0"
2661 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
2662 | integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
2663 |
2664 | update-browserslist-db@^1.0.10:
2665 | version "1.0.10"
2666 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
2667 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
2668 | dependencies:
2669 | escalade "^3.1.1"
2670 | picocolors "^1.0.0"
2671 |
2672 | url-parse@^1.5.3:
2673 | version "1.5.10"
2674 | resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
2675 | integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
2676 | dependencies:
2677 | querystringify "^2.1.1"
2678 | requires-port "^1.0.0"
2679 |
2680 | v8-to-istanbul@^8.1.0:
2681 | version "8.1.1"
2682 | resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed"
2683 | integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==
2684 | dependencies:
2685 | "@types/istanbul-lib-coverage" "^2.0.1"
2686 | convert-source-map "^1.6.0"
2687 | source-map "^0.7.3"
2688 |
2689 | w3c-hr-time@^1.0.2:
2690 | version "1.0.2"
2691 | resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
2692 | integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
2693 | dependencies:
2694 | browser-process-hrtime "^1.0.0"
2695 |
2696 | w3c-xmlserializer@^2.0.0:
2697 | version "2.0.0"
2698 | resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
2699 | integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
2700 | dependencies:
2701 | xml-name-validator "^3.0.0"
2702 |
2703 | walker@^1.0.7:
2704 | version "1.0.8"
2705 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
2706 | integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
2707 | dependencies:
2708 | makeerror "1.0.12"
2709 |
2710 | webidl-conversions@^5.0.0:
2711 | version "5.0.0"
2712 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
2713 | integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
2714 |
2715 | webidl-conversions@^6.1.0:
2716 | version "6.1.0"
2717 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
2718 | integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
2719 |
2720 | whatwg-encoding@^1.0.5:
2721 | version "1.0.5"
2722 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
2723 | integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
2724 | dependencies:
2725 | iconv-lite "0.4.24"
2726 |
2727 | whatwg-mimetype@^2.3.0:
2728 | version "2.3.0"
2729 | resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
2730 | integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
2731 |
2732 | whatwg-url@^8.0.0, whatwg-url@^8.5.0:
2733 | version "8.7.0"
2734 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77"
2735 | integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==
2736 | dependencies:
2737 | lodash "^4.7.0"
2738 | tr46 "^2.1.0"
2739 | webidl-conversions "^6.1.0"
2740 |
2741 | which@^2.0.1:
2742 | version "2.0.2"
2743 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
2744 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
2745 | dependencies:
2746 | isexe "^2.0.0"
2747 |
2748 | word-wrap@~1.2.3:
2749 | version "1.2.3"
2750 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
2751 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
2752 |
2753 | wrap-ansi@^7.0.0:
2754 | version "7.0.0"
2755 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
2756 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
2757 | dependencies:
2758 | ansi-styles "^4.0.0"
2759 | string-width "^4.1.0"
2760 | strip-ansi "^6.0.0"
2761 |
2762 | wrappy@1:
2763 | version "1.0.2"
2764 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2765 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
2766 |
2767 | write-file-atomic@^3.0.0:
2768 | version "3.0.3"
2769 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
2770 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
2771 | dependencies:
2772 | imurmurhash "^0.1.4"
2773 | is-typedarray "^1.0.0"
2774 | signal-exit "^3.0.2"
2775 | typedarray-to-buffer "^3.1.5"
2776 |
2777 | ws@^7.4.6:
2778 | version "7.5.9"
2779 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
2780 | integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
2781 |
2782 | xml-name-validator@^3.0.0:
2783 | version "3.0.0"
2784 | resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
2785 | integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
2786 |
2787 | xmlchars@^2.2.0:
2788 | version "2.2.0"
2789 | resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
2790 | integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
2791 |
2792 | y18n@^5.0.5:
2793 | version "5.0.8"
2794 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
2795 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
2796 |
2797 | yallist@^3.0.2:
2798 | version "3.1.1"
2799 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
2800 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
2801 |
2802 | yallist@^4.0.0:
2803 | version "4.0.0"
2804 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
2805 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
2806 |
2807 | yargs-parser@20.x, yargs-parser@^20.2.2:
2808 | version "20.2.9"
2809 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
2810 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
2811 |
2812 | yargs@^16.2.0:
2813 | version "16.2.0"
2814 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
2815 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
2816 | dependencies:
2817 | cliui "^7.0.2"
2818 | escalade "^3.1.1"
2819 | get-caller-file "^2.0.5"
2820 | require-directory "^2.1.1"
2821 | string-width "^4.2.0"
2822 | y18n "^5.0.5"
2823 | yargs-parser "^20.2.2"
2824 |
--------------------------------------------------------------------------------