├── .devcontainer
└── devcontainer.json
├── .gitattributes
├── .github
├── dependabot.yml
└── workflows
│ ├── publish.yml
│ └── test.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── CODEOWNERS
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── SECURITY.md
├── __tests__
├── examples
│ ├── invalid
│ │ └── src
│ │ │ ├── invalidPropertyName
│ │ │ ├── devcontainer-feature.json
│ │ │ └── install.sh
│ │ │ ├── invalidPropertyValue
│ │ │ ├── devcontainer-feature.json
│ │ │ └── install.sh
│ │ │ └── missingProperty
│ │ │ ├── devcontainer-feature.json
│ │ │ └── install.sh
│ └── simple
│ │ └── src
│ │ ├── color
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
│ │ └── hello
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
├── main.test.ts
└── validateSchema.test.ts
├── action.yml
├── jest.config.js
├── package.json
├── src
├── contracts
│ ├── collection.ts
│ ├── features.ts
│ └── templates.ts
├── generateDocs.ts
├── main.ts
├── schemas
│ ├── README.md
│ └── devContainerFeature.schema.json
└── utils.ts
├── tsconfig.json
└── yarn.lock
/.devcontainer/devcontainer.json:
--------------------------------------------------------------------------------
1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2 | // README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
3 | {
4 | "name": "Node.js & TypeScript",
5 | // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6 | "image": "mcr.microsoft.com/devcontainers/typescript-node:1-20-bookworm",
7 |
8 | // Features to add to the dev container. More info: https://containers.dev/features.
9 | // "features": {},
10 |
11 | // Use 'forwardPorts' to make a list of ports inside the container available locally.
12 | // "forwardPorts": [],
13 |
14 | // Use 'postCreateCommand' to run commands after the container is created.
15 | "postCreateCommand": "yarn"
16 |
17 | // Configure tool-specific properties.
18 | // "customizations": {},
19 |
20 | // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
21 | // "remoteUser": "root"
22 | }
23 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | dist/** -diff linguist-generated=true
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: github-actions
4 | directory: /
5 | schedule:
6 | interval: daily
7 |
8 | - package-ecosystem: npm
9 | directory: /
10 | schedule:
11 | interval: daily
12 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish
2 |
3 | on:
4 | release:
5 | types: [published, edited]
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | permissions:
11 | contents: write
12 | steps:
13 | - name: Checkout
14 | uses: actions/checkout@v3
15 | with:
16 | ref: ${{ github.event.release.tag_name }}
17 |
18 | - name: Set Node.js 20.x
19 | uses: actions/setup-node@v3
20 | with:
21 | node-version: 20.x
22 |
23 | - name: Update Schemas
24 | run: yarn fetch-schemas
25 |
26 | - name: Install dependencies
27 | run: rm -rf node_modules && yarn
28 |
29 | - name: Run unit tests
30 | run: yarn test
31 |
32 | - name: Build
33 | run: yarn build
34 |
35 | - uses: JasonEtco/build-and-tag-action@v2
36 | env:
37 | GITHUB_TOKEN: ${{ github.token }}
38 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Test
2 |
3 | on:
4 | pull_request:
5 |
6 | jobs:
7 | build:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - name: Checkout
11 | uses: actions/checkout@v3
12 |
13 | - name: Set Node.js 20.x
14 | uses: actions/setup-node@v2.5.1
15 | with:
16 | node-version: 20.x
17 |
18 | - name: Update Schemas
19 | run: yarn fetch-schemas
20 |
21 | - name: Install dependencies
22 | run: rm -rf node_modules && yarn
23 |
24 | - name: Run unit tests
25 | run: yarn test
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependency directory
2 | node_modules
3 |
4 |
5 | dist
6 |
7 | # Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
8 | # Logs
9 | logs
10 | *.log
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | lerna-debug.log*
15 |
16 | # Diagnostic reports (https://nodejs.org/api/report.html)
17 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
18 |
19 | # Runtime data
20 | pids
21 | *.pid
22 | *.seed
23 | *.pid.lock
24 |
25 | # Directory for instrumented libs generated by jscoverage/JSCover
26 | lib-cov
27 |
28 | # Coverage directory used by tools like istanbul
29 | coverage
30 | *.lcov
31 |
32 | # nyc test coverage
33 | .nyc_output
34 |
35 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
36 | .grunt
37 |
38 | # Bower dependency directory (https://bower.io/)
39 | bower_components
40 |
41 | # node-waf configuration
42 | .lock-wscript
43 |
44 | # Compiled binary addons (https://nodejs.org/api/addons.html)
45 | build/Release
46 |
47 | # Dependency directories
48 | jspm_packages/
49 |
50 | # TypeScript v1 declaration files
51 | typings/
52 |
53 | # TypeScript cache
54 | *.tsbuildinfo
55 |
56 | # Optional npm cache directory
57 | .npm
58 |
59 | # Optional eslint cache
60 | .eslintcache
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # next.js build output
79 | .next
80 |
81 | # nuxt.js build output
82 | .nuxt
83 |
84 | # vuepress build output
85 | .vuepress/dist
86 |
87 | # Serverless directories
88 | .serverless/
89 |
90 | # FuseBox cache
91 | .fusebox/
92 |
93 | # DynamoDB Local files
94 | .dynamodb/
95 |
96 | # OS metadata
97 | .DS_Store
98 | Thumbs.db
99 |
100 | # Ignore built ts files
101 | __tests__/runner/*
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | dist/
2 | lib/
3 | node_modules/
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "tabWidth": 4,
4 | "useTabs": false,
5 | "semi": true,
6 | "singleQuote": true,
7 | "trailingComma": "none",
8 | "bracketSpacing": true,
9 | "arrowParens": "avoid"
10 | }
11 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @devcontainers/maintainers
2 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Microsoft Open Source Code of Conduct
2 |
3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4 |
5 | Resources:
6 |
7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Microsoft Corporation.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Development Container Action
2 |
3 |
4 |  |
5 |
6 | Development Container Action
7 | A GitHub Action to publish development container assets.
8 | |
9 |
10 |
11 | This action is used to package and generate documentation for dev container [Features](https://containers.dev/implementors/features/) and [Templates](https://containers.dev/implementors/templates/).
12 |
13 | Running this action will publish dev container Features and templates in accordance with following specifications:
14 |
15 | - [Dev container Feature distribution specification](https://containers.dev/implementors/features-distribution/)
16 | - [Dev container Template distribution specification](https://containers.dev/implementors/templates-distribution/)
17 |
18 | This action is used in the [`devcontainer/features`](https://github.com/devcontainers/features) repo, in the [release.yaml](https://github.com/devcontainers/features/blob/main/.github/workflows/release.yaml) workflow.
19 |
20 | ## Usage
21 |
22 | See the [action.yml](https://github.com/devcontainers/action/blob/main/action.yml) for available options.
23 |
24 | To best get started, create your own repo from the [`devcontainers/feature-starter`](https://github.com/devcontainers/feature-starter) or [`devcontainers/template-starter`](https://github.com/devcontainers/template-starter) repos, customize the provided examples, and trigger the `release.yaml` workflow.
25 |
26 | ### Permissions
27 |
28 | #### Workflow permissions
29 |
30 | Running this action requires the following [permissions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token) be granted:
31 |
32 | - `packages: write`
33 | - `contents: write`
34 | - `pull-requests: write`
35 |
36 | For example:
37 |
38 | ```yaml
39 | jobs:
40 | deploy:
41 | if: ${{ github.ref == 'refs/heads/main' }}
42 | runs-on: ubuntu-latest
43 | permissions:
44 | packages: write
45 | contents: write
46 | pull-requests: write
47 | steps:
48 | - uses: actions/checkout@v3
49 |
50 | - name: "Publish Templates"
51 | uses: devcontainers/action@v1
52 | with:
53 | publish-templates: "true"
54 | base-path-to-templates: "./src"
55 | ```
56 |
57 | #### Enable creation of pull requests
58 |
59 | This action will auto-generate documentation and create a pull request of those changes for your review.
60 |
61 | Ensure [**Allow GitHub Actions to create and approve pull requests**](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#preventing-github-actions-from-creating-or-approving-pull-requests) is enabled in your repo settings.
62 |
63 | #### Optional: Setting Features/Templates as public
64 |
65 | Features or Templates published to a registry are **private** by default. Access controls are managed by the registry. To share your Feature or Template with others outside your organization, you may update the visibility to public.
66 |
67 | To do so, publish your Feature or Template and navigate to its setting page. To see packages you have published to the GitHub Container Registry, navigate to the following URL:
68 |
69 | `https://github.com/?tab=packages`
70 |
71 | ### Pinning `devcontainer` CLI version
72 |
73 | This action heavily relies on the [devcontainers/cli](https://github.com/devcontainers/cli) for various operations. By default, this action will fetch the latest version published to [npm](https://www.npmjs.com/package/@devcontainers/cli). The `devcontainer-cli-version` property can be used to pin to a specific CLI release. Eg:
74 |
75 | ```yaml
76 | - name: "Publish Features"
77 | uses: devcontainers/action@v1
78 | with:
79 | publish-features: "true"
80 | base-path-to-features: "./src"
81 | devcontainer-cli-version: "0.53.0"
82 | ```
83 |
84 | The changelog for the CLI can always be found here: https://github.com/devcontainers/cli/blob/main/CHANGELOG.md
85 |
86 | ## Design
87 |
88 | Internally, this GitHub Action will fetch the latest published version of the [Dev Container CLI](https://github.com/devcontainers/cli) and execute the appropriate CLI commands - namely `devcontainer features publish` and `devcontainer templates publish`.
89 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Security
4 |
5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
6 |
7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below.
8 |
9 | ## Reporting Security Issues
10 |
11 | **Please do not report security vulnerabilities through public GitHub issues.**
12 |
13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
14 |
15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
16 |
17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc).
18 |
19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
20 |
21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22 | * Full paths of source file(s) related to the manifestation of the issue
23 | * The location of the affected source code (tag/branch/commit or direct URL)
24 | * Any special configuration required to reproduce the issue
25 | * Step-by-step instructions to reproduce the issue
26 | * Proof-of-concept or exploit code (if possible)
27 | * Impact of the issue, including how an attacker might exploit the issue
28 |
29 | This information will help us triage your report more quickly.
30 |
31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs.
32 |
33 | ## Preferred Languages
34 |
35 | We prefer all communications to be in English.
36 |
37 | ## Policy
38 |
39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).
40 |
41 |
--------------------------------------------------------------------------------
/__tests__/examples/invalid/src/invalidPropertyName/devcontainer-feature.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "My Favorite Color",
3 | "id": "color",
4 | "version": "1.0.3",
5 | "description": "A feature to remind you of your favorite color",
6 | "options": {
7 | "favorite": {
8 | "type": "string",
9 | "enum": [
10 | "red",
11 | "gold",
12 | "green"
13 | ],
14 | "default": "red",
15 | "description": "Choose your favorite color."
16 | }
17 | },
18 | "installAfter": []
19 | }
20 |
--------------------------------------------------------------------------------
/__tests__/examples/invalid/src/invalidPropertyName/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'install.sh....'
--------------------------------------------------------------------------------
/__tests__/examples/invalid/src/invalidPropertyValue/devcontainer-feature.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Hello, World!",
3 | "id": "hello",
4 | "version": "1.0.2",
5 | "description": "A hello world feature",
6 | "options": {
7 | "greeting": {
8 | "type": "string",
9 | "proposals": [
10 | "hey",
11 | "hello",
12 | "hi",
13 | "howdy"
14 | ],
15 | "default": "hey",
16 | "description": "Select a pre-made greeting, or enter your own"
17 | }
18 | },
19 | "installsAfter": {}
20 | }
21 |
--------------------------------------------------------------------------------
/__tests__/examples/invalid/src/invalidPropertyValue/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'install.sh....'
--------------------------------------------------------------------------------
/__tests__/examples/invalid/src/missingProperty/devcontainer-feature.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "My Favorite Color",
3 | "version": "1.0.3",
4 | "description": "A feature to remind you of your favorite color"
5 | }
6 |
--------------------------------------------------------------------------------
/__tests__/examples/invalid/src/missingProperty/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'install.sh....'
--------------------------------------------------------------------------------
/__tests__/examples/simple/src/color/devcontainer-feature.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "My Favorite Color",
3 | "id": "color",
4 | "version": "1.0.3",
5 | "description": "A feature to remind you of your favorite color",
6 | "options": {
7 | "favorite": {
8 | "type": "string",
9 | "enum": [
10 | "red",
11 | "gold",
12 | "green"
13 | ],
14 | "default": "red",
15 | "description": "Choose your favorite color."
16 | }
17 | },
18 | "installsAfter": []
19 | }
20 |
--------------------------------------------------------------------------------
/__tests__/examples/simple/src/color/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'install.sh....'
--------------------------------------------------------------------------------
/__tests__/examples/simple/src/hello/devcontainer-feature.json:
--------------------------------------------------------------------------------
1 | // comment out of the object
2 | {
3 | // single line comment
4 | "name": "Hello, World!",
5 | /*
6 | multi line comment
7 | 你好世界
8 | */
9 | "id": "hello", // comment at end
10 | "version": /* inline comment */ "1.0.2",
11 | "description": "A hello world feature",
12 | "options": {
13 | "greeting": {
14 | "type": "string",
15 | "proposals": [
16 | "hey",
17 | "hello",
18 | "hi",
19 | "howdy"
20 | ],
21 | "default": "hey",
22 | "description": "Select a pre-made greeting, or enter your own"
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/__tests__/examples/simple/src/hello/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'install.sh....'
--------------------------------------------------------------------------------
/__tests__/main.test.ts:
--------------------------------------------------------------------------------
1 | import * as process from 'process';
2 | import * as cp from 'child_process';
3 | import * as path from 'path';
4 | import { expect, test } from '@jest/globals';
5 |
6 | test('dummyTest', async () => {
7 | expect(5 === 5);
8 | });
9 |
--------------------------------------------------------------------------------
/__tests__/validateSchema.test.ts:
--------------------------------------------------------------------------------
1 | import { expect, test } from '@jest/globals';
2 | import * as path from 'path';
3 | import { validateFeatureSchema } from '../src/utils';
4 |
5 | test('validateSchema', async () => {
6 | const exampleRepos = path.join(__dirname, 'examples');
7 |
8 | {
9 | // VALID
10 | const result = await validateFeatureSchema(path.join(exampleRepos, 'simple', 'src', 'color'));
11 | expect(result).toBe(true);
12 | }
13 |
14 | {
15 | // VALID
16 | const result = await validateFeatureSchema(path.join(exampleRepos, 'simple', 'src', 'hello'));
17 | expect(result).toBe(true);
18 | }
19 |
20 | {
21 | // WRONG: 'installAfter' should be changed to 'installsAfter'
22 | const result = await validateFeatureSchema(path.join(exampleRepos, 'invalid', 'src', 'invalidPropertyName'));
23 | expect(result).toBe(false);
24 | }
25 |
26 | {
27 | // WRONG: 'installsAfter' value should be an array, but is an object
28 | const result = await validateFeatureSchema(path.join(exampleRepos, 'invalid', 'src', 'invalidPropertyValue'));
29 | expect(result).toBe(false);
30 | }
31 |
32 | {
33 | // WRONG: missing required 'id' property
34 | const result = await validateFeatureSchema(path.join(exampleRepos, 'invalid', 'src', 'missingProperty'));
35 | expect(result).toBe(false);
36 | }
37 | });
38 |
--------------------------------------------------------------------------------
/action.yml:
--------------------------------------------------------------------------------
1 | name: Dev Container Publish
2 | description: Package and publish development container assets
3 | author: devcontainers
4 | branding:
5 | icon: box
6 | color: blue
7 | inputs:
8 | generate-docs:
9 | required: false
10 | default: 'false'
11 | description: >-
12 | Parse machine-readable (.json) configuration files and commit standardized
13 | documentation
14 | disable-schema-validation:
15 | required: false
16 | default: 'false'
17 | description: >-
18 | Disables validation of the schema of metadata files (devcontainer-feature.json)
19 | validate-only:
20 | required: false
21 | default: 'false'
22 | description: >-
23 | Validate the schema of metadata files (devcontainer-feature.json)
24 | and exit without publishing. (Cannot be combined with any publishing step).
25 | disable-repo-tagging:
26 | required: false
27 | default: 'false'
28 | description: >-
29 | Disables adding a git repo tag for each Feature or Template release.
30 | devcontainer-cli-version:
31 | required: false
32 | default: ''
33 | description: >-
34 | Override the version of the devcontainer CLI to use. Defaults to the latest published version.
35 | # Feature specific inputs
36 | publish-features:
37 | required: false
38 | default: 'false'
39 | description: >-
40 | (true/false) Enable publishing Dev Container Feature(s).
41 | Cannot be combined with publish-templates.
42 | base-path-to-features:
43 | required: false
44 | default: ''
45 | description: Relative path to the folder containing Dev Container Feature(s)
46 | oci-registry:
47 | required: false
48 | description: >-
49 | Name of the OCI registry that implements the OCI Artifact Distribution
50 | Specification
51 | features-namespace:
52 | required: false
53 | description: >-
54 | Published Feature IDs will be prefixed with the namespace.
55 | If omitted, this value will default to the source repo name
56 | # Template specific inputs
57 | publish-templates:
58 | required: false
59 | default: 'false'
60 | description: >-
61 | (true/false) Enable publishing Dev Container Template(s).
62 | Cannot be combined with publish-features.
63 | base-path-to-templates:
64 | required: false
65 | default: ''
66 | description: Relative path to the folder containing Dev Container Template(s)
67 | oci-registry-for-templates:
68 | required: false
69 | description: >-
70 | Name of the OCI registry that implements the OCI Artifact Distribution
71 | Specification
72 | templates-namespace:
73 | required: false
74 | description: >-
75 | Published Template IDs will be prefixed with the namespace.
76 | If omitted, this value will default to the source repo name
77 | runs:
78 | using: node20
79 | main: dist/index.js
80 |
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | clearMocks: true,
3 | moduleFileExtensions: ['js', 'ts'],
4 | testMatch: ['**/*.test.ts'],
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.ts$': 'ts-jest'
8 | },
9 | verbose: true
10 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dev-container",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Action to help build/lint/publish self-authored dev container assets",
6 | "main": "dist/index.js",
7 | "scripts": {
8 | "format": "prettier --write '**/*.ts'",
9 | "format-check": "prettier --check '**/*.ts'",
10 | "build": "ncc build ./src/main.ts",
11 | "test": "jest",
12 | "fetch-schemas": "wget https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainerFeature.schema.json -O src/schemas/devContainerFeature.schema.json"
13 | },
14 | "repository": {
15 | "type": "git",
16 | "url": "git+https://github.com/devcontainers/action"
17 | },
18 | "keywords": [
19 | "actions",
20 | "node",
21 | "setup",
22 | "devcontainer",
23 | "devcontainers",
24 | "dev container"
25 | ],
26 | "author": "GitHub",
27 | "license": "MIT",
28 | "dependencies": {
29 | "@actions/core": "^1.10.0",
30 | "@actions/exec": "^1.1.1",
31 | "@actions/github": "^5.1.1",
32 | "ajv": "^8.11.2",
33 | "json5": "^2.2.3"
34 | },
35 | "devDependencies": {
36 | "@types/ajv": "^1.0.0",
37 | "@types/node": "^18.11.18",
38 | "@vercel/ncc": "^0.34.0",
39 | "eslint": "^8.32.0",
40 | "jest": "^28.1.3",
41 | "prettier": "2.8.3",
42 | "ts-jest": "^28.0.8",
43 | "typescript": "^4.9.4"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/contracts/collection.ts:
--------------------------------------------------------------------------------
1 | import { Feature } from './features';
2 | import { Template } from './templates';
3 |
4 | export interface GitHubMetadata {
5 | owner?: string;
6 | repo?: string;
7 | tag?: string;
8 | ref?: string;
9 | sha?: string;
10 | }
11 |
12 | export interface PublishResult {
13 | publishedTags: string[];
14 | digest: string;
15 | version: string;
16 | }
17 | export interface DevContainerCollectionMetadata {
18 | sourceInformation: GitHubMetadata;
19 | features: Feature[];
20 | templates: Template[];
21 | }
22 |
23 | export type IOption =
24 | | {
25 | type: 'boolean';
26 | default?: boolean;
27 | description?: string;
28 | }
29 | | {
30 | type: 'string';
31 | enum?: string[];
32 | default?: string;
33 | description?: string;
34 | }
35 | | {
36 | type: 'string';
37 | proposals?: string[];
38 | default?: string;
39 | description?: string;
40 | };
41 |
--------------------------------------------------------------------------------
/src/contracts/features.ts:
--------------------------------------------------------------------------------
1 | import { IOption } from './collection';
2 |
3 | export interface Feature {
4 | id: string;
5 | name: string;
6 | description?: string;
7 | filename?: string;
8 | runApp?: string;
9 | runParams?: string;
10 | infoString?: string;
11 | tempLocalPath?: string;
12 | consecutiveId?: string;
13 | install?: Record;
14 | documentationURL?: string;
15 | licenseURL?: string;
16 | options?: Record;
17 | containerEnv?: Record;
18 | mounts?: Mount[];
19 | init?: boolean;
20 | privileged?: boolean;
21 | capAdd?: string[];
22 | securityOpt?: string[];
23 | entrypoint?: string;
24 | include?: string[];
25 | exclude?: string[];
26 | }
27 |
28 | export interface Mount {
29 | type: 'bind' | 'volume';
30 | source: string;
31 | target: string;
32 | external?: boolean;
33 | }
34 |
--------------------------------------------------------------------------------
/src/contracts/templates.ts:
--------------------------------------------------------------------------------
1 | import { IOption } from './collection';
2 |
3 | export interface Template {
4 | id: string;
5 | name: string;
6 | description?: string;
7 | categories: string[];
8 | options?: Record;
9 | type: 'singleContainer' | 'dockerCompose';
10 | image?: {
11 | manifest?: string;
12 | };
13 | }
14 |
--------------------------------------------------------------------------------
/src/generateDocs.ts:
--------------------------------------------------------------------------------
1 | import * as fs from 'fs';
2 | import * as core from '@actions/core';
3 | import * as path from 'path';
4 | import JSON from 'json5';
5 | import { getGitHubMetadata } from './utils';
6 |
7 | const FEATURES_README_TEMPLATE = `
8 | # #{Name}
9 |
10 | #{Description}
11 |
12 | ## Example Usage
13 |
14 | \`\`\`json
15 | "features": {
16 | "#{Registry}/#{Namespace}/#{Id}:#{Version}": {}
17 | }
18 | \`\`\`
19 |
20 | #{OptionsTable}
21 | #{Customizations}
22 | #{Notes}
23 |
24 | ---
25 |
26 | _Note: This file was auto-generated from the [devcontainer-feature.json](#{RepoUrl}). Add additional notes to a \`NOTES.md\`._
27 | `;
28 |
29 | const TEMPLATE_README_TEMPLATE = `
30 | # #{Name}
31 |
32 | #{Description}
33 |
34 | #{OptionsTable}
35 |
36 | #{Notes}
37 |
38 | ---
39 |
40 | _Note: This file was auto-generated from the [devcontainer-template.json](#{RepoUrl}). Add additional notes to a \`NOTES.md\`._
41 | `;
42 |
43 | export async function generateFeaturesDocumentation(basePath: string, ociRegistry: string, namespace: string) {
44 | await _generateDocumentation(basePath, FEATURES_README_TEMPLATE, 'devcontainer-feature.json', ociRegistry, namespace);
45 | }
46 |
47 | export async function generateTemplateDocumentation(basePath: string) {
48 | await _generateDocumentation(basePath, TEMPLATE_README_TEMPLATE, 'devcontainer-template.json');
49 | }
50 |
51 | async function _generateDocumentation(basePath: string, readmeTemplate: string, metadataFile: string, ociRegistry: string = '', namespace: string = '') {
52 | const directories = fs.readdirSync(basePath);
53 |
54 | await Promise.all(
55 | directories.map(async (f: string) => {
56 | if (!f.startsWith('.')) {
57 | const readmePath = path.join(basePath, f, 'README.md');
58 |
59 | // Reads in feature.json
60 | const jsonPath = path.join(basePath, f, metadataFile);
61 |
62 | if (!fs.existsSync(jsonPath)) {
63 | core.info(`(!) Warning: ${metadataFile} not found at path '${jsonPath}'. Skipping...`);
64 | return;
65 | }
66 |
67 | let parsedJson: any | undefined = undefined;
68 | try {
69 | parsedJson = JSON.parse(fs.readFileSync(jsonPath, 'utf8'));
70 | } catch (err) {
71 | core.error(`Failed to parse ${jsonPath}: ${err}`);
72 | return;
73 | }
74 |
75 | if (!parsedJson || !parsedJson?.id) {
76 | core.error(`${metadataFile} for '${f}' does not contain an 'id'`);
77 | return;
78 | }
79 |
80 | const srcInfo = getGitHubMetadata();
81 |
82 | // Add version
83 | let version = 'latest';
84 | const parsedVersion: string = parsedJson?.version;
85 | if (parsedVersion) {
86 | // example - 1.0.0
87 | const splitVersion = parsedVersion.split('.');
88 | version = splitVersion[0];
89 | }
90 |
91 | const generateOptionsMarkdown = () => {
92 | const options = parsedJson?.options;
93 | if (!options) {
94 | return '';
95 | }
96 |
97 | const keys = Object.keys(options);
98 | const contents = keys
99 | .map(k => {
100 | const val = options[k];
101 |
102 | const desc = val.description || '-';
103 | const type = val.type || '-';
104 | const def = val.default !== '' ? val.default : '-';
105 |
106 | return `| ${k} | ${desc} | ${type} | ${def} |`;
107 | })
108 | .join('\n');
109 |
110 | return '## Options\n\n' + '| Options Id | Description | Type | Default Value |\n' + '|-----|-----|-----|-----|\n' + contents;
111 | };
112 |
113 | const generateNotesMarkdown = () => {
114 | const notesPath = path.join(basePath, f, 'NOTES.md');
115 | return fs.existsSync(notesPath) ? fs.readFileSync(path.join(notesPath), 'utf8') : '';
116 | };
117 |
118 | let urlToConfig = `${metadataFile}`;
119 | const basePathTrimmed = basePath.startsWith('./') ? basePath.substring(2) : basePath;
120 | if (srcInfo.owner && srcInfo.repo) {
121 | urlToConfig = `https://github.com/${srcInfo.owner}/${srcInfo.repo}/blob/main/${basePathTrimmed}/${f}/${metadataFile}`;
122 | }
123 |
124 | let header;
125 | const isDeprecated = parsedJson?.deprecated;
126 | const hasLegacyIds = parsedJson?.legacyIds && parsedJson?.legacyIds.length > 0;
127 |
128 | if (isDeprecated || hasLegacyIds) {
129 | header = '### **IMPORTANT NOTE**\n';
130 |
131 | if (isDeprecated) {
132 | header += `- **This Feature is deprecated, and will no longer receive any further updates/support.**\n`;
133 | }
134 |
135 | if (hasLegacyIds) {
136 | const formattedLegacyIds = parsedJson.legacyIds.map((legacyId: string) => `'${legacyId}'`);
137 | header += `- **Ids used to publish this Feature in the past - ${formattedLegacyIds.join(', ')}**\n`;
138 | }
139 | }
140 |
141 | let extensions = '';
142 | if (parsedJson?.customizations?.vscode?.extensions) {
143 | const extensionsList = parsedJson.customizations.vscode.extensions;
144 | if (extensionsList && extensionsList.length > 0) {
145 | extensions =
146 | '\n## Customizations\n\n### VS Code Extensions\n\n' + extensionsList.map((ext: string) => `- \`${ext}\``).join('\n') + '\n';
147 | }
148 | }
149 |
150 | let newReadme = readmeTemplate
151 | // Templates & Features
152 | .replace('#{Id}', parsedJson.id)
153 | .replace('#{Name}', parsedJson.name ? `${parsedJson.name} (${parsedJson.id})` : `${parsedJson.id}`)
154 | .replace('#{Description}', parsedJson.description ?? '')
155 | .replace('#{OptionsTable}', generateOptionsMarkdown())
156 | .replace('#{Notes}', generateNotesMarkdown())
157 | .replace('#{RepoUrl}', urlToConfig)
158 | // Features Only
159 | .replace('#{Registry}', ociRegistry)
160 | .replace('#{Namespace}', namespace)
161 | .replace('#{Version}', version)
162 | .replace('#{Customizations}', extensions);
163 |
164 | if (header) {
165 | newReadme = header + newReadme;
166 | }
167 |
168 | // Remove previous readme
169 | if (fs.existsSync(readmePath)) {
170 | fs.unlinkSync(readmePath);
171 | }
172 |
173 | // Write new readme
174 | fs.writeFileSync(readmePath, newReadme);
175 | }
176 | })
177 | );
178 | }
179 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | /*--------------------------------------------------------------------------------------------------------------
2 | * Copyright (c) Microsoft Corporation. All rights reserved.
3 | * Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
4 | *-------------------------------------------------------------------------------------------------------------*/
5 |
6 | import * as core from '@actions/core';
7 | import * as exec from '@actions/exec';
8 | import * as path from 'path';
9 | import JSON from 'json5';
10 |
11 | import { PublishResult } from './contracts/collection';
12 | import { generateFeaturesDocumentation, generateTemplateDocumentation } from './generateDocs';
13 | import { addRepoTagForPublishedTag, ensureDevcontainerCliPresent, getGitHubMetadata, readdirLocal, validateFeatureSchema } from './utils';
14 |
15 | async function run(): Promise {
16 | core.debug('Reading input parameters...');
17 |
18 | // Read inputs
19 | const shouldGenerateDocumentation = core.getInput('generate-docs').toLowerCase() === 'true';
20 | const sourceMetadata = getGitHubMetadata();
21 |
22 | // Read inputs - Features
23 | const shouldPublishFeatures = core.getInput('publish-features').toLowerCase() === 'true';
24 |
25 | const featuresBasePath = core.getInput('base-path-to-features');
26 |
27 | const inputFeaturesOciRegistry = core.getInput('oci-registry');
28 | const featuresOciRegistry = !!inputFeaturesOciRegistry ? inputFeaturesOciRegistry : 'ghcr.io';
29 |
30 | const inputFeaturesNamespace = core.getInput('features-namespace');
31 | const featuresNamespace = !!inputFeaturesNamespace ? inputFeaturesNamespace : `${sourceMetadata.owner}/${sourceMetadata.repo}`;
32 |
33 | // Read inputs - Templates
34 | const shouldPublishTemplates = core.getInput('publish-templates').toLowerCase() === 'true';
35 |
36 | const templatesBasePath = core.getInput('base-path-to-templates');
37 |
38 | const inputTemplatesOciRegistry = core.getInput('oci-registry-for-templates');
39 | const templatesOciRegistry = !!inputTemplatesOciRegistry ? inputTemplatesOciRegistry : 'ghcr.io';
40 |
41 | const inputTemplateNamespace = core.getInput('templates-namespace');
42 | const templatesNamespace = !!inputTemplateNamespace ? inputTemplateNamespace : `${sourceMetadata.owner}/${sourceMetadata.repo}`;
43 |
44 | const cliDebugMode = core.getInput('devcontainer-cli-debug-mode').toLowerCase() === 'true';
45 |
46 | const disableSchemaValidationAsError = core.getInput('disable-schema-validation').toLowerCase() === 'true';
47 | const validateOnly = core.getInput('validate-only').toLowerCase() === 'true';
48 |
49 | const disableRepoTagging = core.getInput('disable-repo-tagging').toLowerCase() === 'true';
50 |
51 | // -- Publish
52 |
53 | if (shouldPublishFeatures && shouldPublishTemplates) {
54 | core.setFailed('(!) Features and Templates should be published from different repositories.');
55 | return;
56 | }
57 |
58 | if ((shouldPublishFeatures && validateOnly) || (shouldPublishTemplates && validateOnly)) {
59 | core.setFailed('(!) publishing steps and "validateOnly" are mutually exclusive.');
60 | return;
61 | }
62 |
63 | if (shouldGenerateDocumentation && featuresBasePath && templatesBasePath) {
64 | core.setFailed('(!) Features and Templates should exist in different repositories.');
65 | return;
66 | }
67 |
68 | if (shouldPublishFeatures || validateOnly) {
69 | core.info('Validating Feature metadata...');
70 | if (!(await prePublish('feature', featuresBasePath))) {
71 | if (disableSchemaValidationAsError) {
72 | core.warning('Failed to validate Feature metadata. NOTE: This warning will be a fatal error in future releases.');
73 | } else {
74 | core.setFailed('(!) Failed to validate Feature metadata.');
75 | return;
76 | }
77 | }
78 | }
79 |
80 | if (shouldPublishFeatures) {
81 | core.info('Publishing Features...');
82 | const publishedFeatures = await publish('feature', featuresBasePath, featuresOciRegistry, featuresNamespace, cliDebugMode);
83 | if (!publishedFeatures) {
84 | core.setFailed('(!) Failed to publish Features.');
85 | return;
86 | }
87 |
88 | // Add repo tag for this version at the current commit.
89 | if (!disableRepoTagging) {
90 | for (const featureId in publishedFeatures) {
91 | const version = publishedFeatures[featureId]?.version;
92 | if (!version) {
93 | core.debug(`No version available for '${featureId}', so no repo tag was added for Feature`);
94 | continue;
95 | }
96 | if (!(await addRepoTagForPublishedTag('feature', featureId, version))) {
97 | continue;
98 | }
99 | }
100 | }
101 | }
102 |
103 | if (shouldPublishTemplates) {
104 | core.info('Publishing Templates...');
105 | const publishedTemplates = await publish('template', templatesBasePath, templatesOciRegistry, templatesNamespace, cliDebugMode);
106 | if (!publishedTemplates) {
107 | core.setFailed('(!) Failed to publish Templates.');
108 | return;
109 | }
110 |
111 | // Add repo tag for this version at the current commit.
112 | if (!disableRepoTagging) {
113 | for (const templateId in publishedTemplates) {
114 | const version = publishedTemplates[templateId]?.version;
115 | if (!version) {
116 | core.debug(`No version available for '${templateId}', so no repo tag was added for Feature`);
117 | continue;
118 | }
119 | if (!(await addRepoTagForPublishedTag('template', templateId, version))) {
120 | continue;
121 | }
122 | }
123 | }
124 | }
125 |
126 | // -- Generate Documentation
127 |
128 | if (shouldGenerateDocumentation && featuresBasePath) {
129 | core.info('Generating documentation for Features...');
130 | await generateFeaturesDocumentation(featuresBasePath, featuresOciRegistry, featuresNamespace);
131 | }
132 |
133 | if (shouldGenerateDocumentation && templatesBasePath) {
134 | core.info('Generating documentation for Templates...');
135 | await generateTemplateDocumentation(templatesBasePath);
136 | }
137 | }
138 |
139 | async function prePublish(collectionType: 'feature' | 'template', basePath: string): Promise {
140 | let hasFailed = false;
141 |
142 | // Iterate each (Feature|Template) in 'basePath'
143 | for (const folder of await readdirLocal(basePath)) {
144 | const pathToArtifact = path.join(basePath, folder);
145 |
146 | if (collectionType === 'feature') {
147 | if (!(await validateFeatureSchema(pathToArtifact))) {
148 | hasFailed = true;
149 | }
150 | }
151 |
152 | // if (collectionType == 'template') { }
153 | }
154 |
155 | return !hasFailed;
156 | }
157 |
158 | async function publish(
159 | collectionType: 'feature' | 'template',
160 | basePath: string,
161 | ociRegistry: string,
162 | namespace: string,
163 | cliDebugMode = false
164 | ): Promise<{ [featureId: string]: PublishResult } | undefined> {
165 | // Ensures we have the devcontainer CLI installed.
166 | if (!(await ensureDevcontainerCliPresent(cliDebugMode))) {
167 | core.setFailed('Failed to install devcontainer CLI');
168 | return;
169 | }
170 |
171 | try {
172 | let cmd: string = 'devcontainer';
173 | let args: string[] = [`${collectionType}s`, 'publish', '-r', ociRegistry, '-n', namespace, basePath];
174 | if (cliDebugMode) {
175 | cmd = 'npx';
176 | args = ['-y', './devcontainer.tgz', ...args];
177 | }
178 |
179 | // Fails on non-zero exit code from the invoked process
180 | const res = await exec.getExecOutput(cmd, args, {});
181 | const result: { [featureId: string]: PublishResult } = JSON.parse(res.stdout);
182 | return result;
183 | } catch (err: any) {
184 | core.setFailed(err?.message);
185 | return;
186 | }
187 | }
188 |
189 | run();
190 |
--------------------------------------------------------------------------------
/src/schemas/README.md:
--------------------------------------------------------------------------------
1 | # Schemas
2 |
3 | Schemas can be updated by running `yarn fetch-schemas` from the root of the project.
4 |
5 | The following schemas are synced:
6 |
7 | - `src/schemas/devContainerFeature.schema.json` - Defines a Feature's `devcontainer-feature.json` metadata file
8 |
--------------------------------------------------------------------------------
/src/schemas/devContainerFeature.schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://json-schema.org/draft-07/schema#",
3 | "title": "Development Container Feature Metadata",
4 | "description": "Development Container Features Metadata (devcontainer-feature.json). See https://containers.dev/implementors/features/ for more information.",
5 | "definitions": {
6 | "Feature": {
7 | "additionalProperties": false,
8 | "properties": {
9 | "capAdd": {
10 | "description": "Passes docker capabilities to include when creating the dev container.",
11 | "examples": [
12 | "SYS_PTRACE"
13 | ],
14 | "items": {
15 | "type": "string"
16 | },
17 | "type": "array"
18 | },
19 | "containerEnv": {
20 | "description": "Container environment variables.",
21 | "additionalProperties": {
22 | "type": "string"
23 | },
24 | "type": "object"
25 | },
26 | "customizations": {
27 | "description": "Tool-specific configuration. Each tool should use a JSON object subproperty with a unique name to group its customizations.",
28 | "additionalProperties": true,
29 | "type": "object"
30 | },
31 | "description": {
32 | "description": "Description of the Feature. For the best appearance in an implementing tool, refrain from including markdown or HTML in the description.",
33 | "type": "string"
34 | },
35 | "documentationURL": {
36 | "description": "URL to documentation for the Feature.",
37 | "type": "string"
38 | },
39 | "keywords": {
40 | "description": "List of strings relevant to a user that would search for this definition/Feature.",
41 | "items": {
42 | "type": "string"
43 | },
44 | "type": "array"
45 | },
46 | "entrypoint": {
47 | "description": "Entrypoint script that should fire at container start up.",
48 | "type": "string"
49 | },
50 | "id": {
51 | "description": "ID of the Feature. The id should be unique in the context of the repository/published package where the feature exists and must match the name of the directory where the devcontainer-feature.json resides.",
52 | "type": "string"
53 | },
54 | "init": {
55 | "description": "Adds the tiny init process to the container (--init) when the Feature is used.",
56 | "type": "boolean"
57 | },
58 | "installsAfter": {
59 | "description": "Array of ID's of Features that should execute before this one. Allows control for feature authors on soft dependencies between different Features.",
60 | "items": {
61 | "type": "string"
62 | },
63 | "type": "array"
64 | },
65 | "dependsOn": {
66 | "description": "An object of Feature dependencies that must be satisified before this Feature is installed. Elements follow the same semantics of the features object in devcontainer.json",
67 | "additionalProperties": true,
68 | "type": "object"
69 | },
70 | "licenseURL": {
71 | "description": "URL to the license for the Feature.",
72 | "type": "string"
73 | },
74 | "mounts": {
75 | "description": "Mounts a volume or bind mount into the container.",
76 | "items": {
77 | "$ref": "#/definitions/Mount"
78 | },
79 | "type": "array"
80 | },
81 | "name": {
82 | "description": "Display name of the Feature.",
83 | "type": "string"
84 | },
85 | "options": {
86 | "description": "Possible user-configurable options for this Feature. The selected options will be passed as environment variables when installing the Feature into the container.",
87 | "additionalProperties": {
88 | "$ref": "#/definitions/FeatureOption"
89 | },
90 | "type": "object"
91 | },
92 | "privileged": {
93 | "description": "Sets privileged mode (--privileged) for the container.",
94 | "type": "boolean"
95 | },
96 | "securityOpt": {
97 | "description": "Sets container security options to include when creating the container.",
98 | "items": {
99 | "type": "string"
100 | },
101 | "type": "array"
102 | },
103 | "version": {
104 | "description": "The version of the Feature. Follows the semanatic versioning (semver) specification.",
105 | "type": "string"
106 | },
107 | "legacyIds": {
108 | "description": "Array of old IDs used to publish this Feature. The property is useful for renaming a currently published Feature within a single namespace.",
109 | "items": {
110 | "type": "string"
111 | },
112 | "type": "array"
113 | },
114 | "deprecated": {
115 | "description": "Indicates that the Feature is deprecated, and will not receive any further updates/support. This property is intended to be used by the supporting tools for highlighting Feature deprecation.",
116 | "type": "boolean"
117 | },
118 | "onCreateCommand": {
119 | "type": [
120 | "string",
121 | "array",
122 | "object"
123 | ],
124 | "description": "A command to run when creating the container. This command is run after \"initializeCommand\" and before \"updateContentCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
125 | "items": {
126 | "type": "string"
127 | },
128 | "additionalProperties": {
129 | "type": [
130 | "string",
131 | "array"
132 | ],
133 | "items": {
134 | "type": "string"
135 | }
136 | }
137 | },
138 | "updateContentCommand": {
139 | "type": [
140 | "string",
141 | "array",
142 | "object"
143 | ],
144 | "description": "A command to run when creating the container and rerun when the workspace content was updated while creating the container. This command is run after \"onCreateCommand\" and before \"postCreateCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
145 | "items": {
146 | "type": "string"
147 | },
148 | "additionalProperties": {
149 | "type": [
150 | "string",
151 | "array"
152 | ],
153 | "items": {
154 | "type": "string"
155 | }
156 | }
157 | },
158 | "postCreateCommand": {
159 | "type": [
160 | "string",
161 | "array",
162 | "object"
163 | ],
164 | "description": "A command to run after creating the container. This command is run after \"updateContentCommand\" and before \"postStartCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
165 | "items": {
166 | "type": "string"
167 | },
168 | "additionalProperties": {
169 | "type": [
170 | "string",
171 | "array"
172 | ],
173 | "items": {
174 | "type": "string"
175 | }
176 | }
177 | },
178 | "postStartCommand": {
179 | "type": [
180 | "string",
181 | "array",
182 | "object"
183 | ],
184 | "description": "A command to run after starting the container. This command is run after \"postCreateCommand\" and before \"postAttachCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
185 | "items": {
186 | "type": "string"
187 | },
188 | "additionalProperties": {
189 | "type": [
190 | "string",
191 | "array"
192 | ],
193 | "items": {
194 | "type": "string"
195 | }
196 | }
197 | },
198 | "postAttachCommand": {
199 | "type": [
200 | "string",
201 | "array",
202 | "object"
203 | ],
204 | "description": "A command to run when attaching to the container. This command is run after \"postStartCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
205 | "items": {
206 | "type": "string"
207 | },
208 | "additionalProperties": {
209 | "type": [
210 | "string",
211 | "array"
212 | ],
213 | "items": {
214 | "type": "string"
215 | }
216 | }
217 | }
218 | },
219 | "required": [
220 | "id",
221 | "version"
222 | ],
223 | "type": "object"
224 | },
225 | "FeatureOption": {
226 | "anyOf": [
227 | {
228 | "description": "Option value is represented with a boolean value.",
229 | "additionalProperties": false,
230 | "properties": {
231 | "default": {
232 | "description": "Default value if the user omits this option from their configuration.",
233 | "type": "boolean"
234 | },
235 | "description": {
236 | "description": "A description of the option displayed to the user by a supporting tool.",
237 | "type": "string"
238 | },
239 | "type": {
240 | "description": "The type of the option. Can be 'boolean' or 'string'. Options of type 'string' should use the 'enum' or 'proposals' property to provide a list of allowed values.",
241 | "const": "boolean",
242 | "type": "string"
243 | }
244 | },
245 | "required": [
246 | "type",
247 | "default"
248 | ],
249 | "type": "object"
250 | },
251 | {
252 | "additionalProperties": false,
253 | "properties": {
254 | "default": {
255 | "description": "Default value if the user omits this option from their configuration.",
256 | "type": "string"
257 | },
258 | "description": {
259 | "description": "A description of the option displayed to the user by a supporting tool.",
260 | "type": "string"
261 | },
262 | "enum": {
263 | "description": "Allowed values for this option. Unlike 'proposals', the user cannot provide a custom value not included in the 'enum' array.",
264 | "items": {
265 | "type": "string"
266 | },
267 | "type": "array"
268 | },
269 | "type": {
270 | "description": "The type of the option. Can be 'boolean' or 'string'. Options of type 'string' should use the 'enum' or 'proposals' property to provide a list of allowed values.",
271 | "const": "string",
272 | "type": "string"
273 | }
274 | },
275 | "required": [
276 | "type",
277 | "enum",
278 | "default"
279 | ],
280 | "type": "object"
281 | },
282 | {
283 | "additionalProperties": false,
284 | "properties": {
285 | "default": {
286 | "description": "Default value if the user omits this option from their configuration.",
287 | "type": "string"
288 | },
289 | "description": {
290 | "description": "A description of the option displayed to the user by a supporting tool.",
291 | "type": "string"
292 | },
293 | "proposals": {
294 | "description": "Suggested values for this option. Unlike 'enum', the 'proposals' attribute indicates the installation script can handle arbitrary values provided by the user.",
295 | "items": {
296 | "type": "string"
297 | },
298 | "type": "array"
299 | },
300 | "type": {
301 | "description": "The type of the option. Can be 'boolean' or 'string'. Options of type 'string' should use the 'enum' or 'proposals' property to provide a list of allowed values.",
302 | "const": "string",
303 | "type": "string"
304 | }
305 | },
306 | "required": [
307 | "type",
308 | "default"
309 | ],
310 | "type": "object"
311 | }
312 | ]
313 | },
314 | "Mount": {
315 | "description": "Mounts a volume or bind mount into the container.",
316 | "additionalProperties": false,
317 | "properties": {
318 | "source": {
319 | "description": "Mount source.",
320 | "type": "string"
321 | },
322 | "target": {
323 | "description": "Mount target.",
324 | "type": "string"
325 | },
326 | "type": {
327 | "description": "Type of mount. Can be 'bind' or 'volume'.",
328 | "enum": [
329 | "bind",
330 | "volume"
331 | ],
332 | "type": "string"
333 | }
334 | },
335 | "required": [
336 | "type",
337 | "target"
338 | ],
339 | "type": "object"
340 | }
341 | },
342 | "oneOf": [
343 | {
344 | "type": "object",
345 | "$ref": "#/definitions/Feature"
346 | }
347 | ]
348 | }
349 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | import * as github from '@actions/github';
2 | import * as fs from 'fs';
3 | import * as core from '@actions/core';
4 | import * as exec from '@actions/exec';
5 | import Ajv from 'ajv';
6 | import * as path from 'path';
7 | import JSON from 'json5';
8 |
9 | import { promisify } from 'util';
10 | import { GitHubMetadata } from './contracts/collection';
11 | import devContainerFeatureSchema from './schemas/devContainerFeature.schema.json';
12 |
13 | export const readLocalFile = promisify(fs.readFile);
14 | export const writeLocalFile = promisify(fs.writeFile);
15 | export const mkdirLocal = promisify(fs.mkdir);
16 | export const renameLocal = promisify(fs.rename);
17 | export const readdirLocal = promisify(fs.readdir);
18 |
19 | export function getGitHubMetadata() {
20 | // Insert github repo metadata
21 | const ref = github.context.ref;
22 |
23 | let metadata: GitHubMetadata = {
24 | owner: github.context.repo.owner,
25 | repo: github.context.repo.repo,
26 | ref,
27 | sha: github.context.sha
28 | };
29 |
30 | // Add tag if parseable
31 | if (ref.includes('refs/tags/')) {
32 | const tag = ref.replace('refs/tags/', '');
33 | metadata = { ...metadata, tag };
34 | }
35 | return metadata;
36 | }
37 |
38 | export async function isDevcontainerCliAvailable(cliDebugMode = false): Promise {
39 | try {
40 | let cmd = 'devcontainer';
41 | let args = ['--version'];
42 | if (cliDebugMode) {
43 | cmd = 'npx';
44 | args = ['-y', './devcontainer.tgz', ...args];
45 | }
46 | const res = await exec.getExecOutput(cmd, args, {
47 | ignoreReturnCode: true,
48 | silent: true
49 | });
50 | core.info(`Devcontainer CLI version '${res.stdout}' is installed.`);
51 | return res.exitCode === 0;
52 | } catch (err) {
53 | return false;
54 | }
55 | }
56 |
57 | export async function addRepoTagForPublishedTag(type: string, id: string, version: string): Promise {
58 | const octokit = github.getOctokit(process.env.GITHUB_TOKEN || '');
59 | const tag = `${type}_${id}_${version}`;
60 | core.info(`Adding repo tag '${tag}'...`);
61 |
62 | try {
63 | await octokit.rest.git.createRef({
64 | owner: github.context.repo.owner,
65 | repo: github.context.repo.repo,
66 | ref: `refs/tags/${tag}`,
67 | sha: github.context.sha
68 | });
69 |
70 | await octokit.rest.git.createTag({
71 | owner: github.context.repo.owner,
72 | repo: github.context.repo.repo,
73 | tag,
74 | message: `${tag}`,
75 | object: github.context.sha,
76 | type: 'commit'
77 | });
78 | } catch (err) {
79 | core.warning(`Failed to automatically add repo tag, manually tag with: 'git tag ${tag} ${github.context.sha}'`);
80 | core.debug(`${err}`);
81 | return false;
82 | }
83 |
84 | core.info(`Tag '${tag}' added.`);
85 | return true;
86 | }
87 |
88 | export async function ensureDevcontainerCliPresent(cliDebugMode = false): Promise {
89 | if (await isDevcontainerCliAvailable(cliDebugMode)) {
90 | return true;
91 | }
92 |
93 | if (cliDebugMode) {
94 | core.error('Cannot remotely fetch CLI in debug mode');
95 | return false;
96 | }
97 |
98 | // Unless this override is set,
99 | // we'll fetch the latest version of the CLI published to NPM
100 | const cliVersion = core.getInput('devcontainer-cli-version');
101 | let cli = '@devcontainers/cli';
102 | if (cliVersion) {
103 | core.info(`Manually overriding CLI version to '${cliVersion}'`);
104 | cli = `${cli}@${cliVersion}`;
105 | }
106 |
107 | try {
108 | core.info('Fetching the latest @devcontainer/cli...');
109 | const res = await exec.getExecOutput('npm', ['install', '-g', cli], {
110 | ignoreReturnCode: true,
111 | silent: true
112 | });
113 | return res.exitCode === 0;
114 | } catch (err) {
115 | core.error(`Failed to fetch @devcontainer/cli: ${err}`);
116 | return false;
117 | }
118 | }
119 |
120 | export async function validateFeatureSchema(pathToAFeatureDir: string): Promise {
121 | const ajv = new Ajv();
122 | ajv.addSchema(devContainerFeatureSchema);
123 | const validate = ajv.compile(devContainerFeatureSchema);
124 |
125 | const devContainerFeaturePath = path.join(pathToAFeatureDir, 'devcontainer-feature.json');
126 |
127 | // Read this Feature's devcontainer-feature.json
128 | if (!fs.existsSync(devContainerFeaturePath)) {
129 | core.error(`(!) ERR: devcontainer-feature.json not found at path '${devContainerFeaturePath}'.`);
130 | return false;
131 | }
132 |
133 | const featureJson = await readLocalFile(devContainerFeaturePath, 'utf8');
134 |
135 | const isValid = validate(JSON.parse(featureJson));
136 | if (!isValid) {
137 | core.error(`(!) ERR: '${devContainerFeaturePath}' is not valid:`);
138 |
139 | const output = JSON.stringify(validate.errors, undefined, 4);
140 | core.info(output);
141 | return false;
142 | }
143 |
144 | // No parse errors.
145 | return true;
146 | }
147 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
4 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
5 | "outDir": "./lib", /* Redirect output structure to the directory. */
6 | "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
7 | "strict": true, /* Enable all strict type-checking options. */
8 | "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
9 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
10 | "resolveJsonModule": true,
11 | },
12 | "exclude": [
13 | "node_modules",
14 | "**/*.test.ts"
15 | ]
16 | }
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@actions/core@^1.10.0":
6 | version "1.10.0"
7 | resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.0.tgz#44551c3c71163949a2f06e94d9ca2157a0cfac4f"
8 | integrity sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==
9 | dependencies:
10 | "@actions/http-client" "^2.0.1"
11 | uuid "^8.3.2"
12 |
13 | "@actions/exec@^1.1.1":
14 | version "1.1.1"
15 | resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611"
16 | integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==
17 | dependencies:
18 | "@actions/io" "^1.0.1"
19 |
20 | "@actions/github@^5.1.1":
21 | version "5.1.1"
22 | resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.1.1.tgz#40b9b9e1323a5efcf4ff7dadd33d8ea51651bbcb"
23 | integrity sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==
24 | dependencies:
25 | "@actions/http-client" "^2.0.1"
26 | "@octokit/core" "^3.6.0"
27 | "@octokit/plugin-paginate-rest" "^2.17.0"
28 | "@octokit/plugin-rest-endpoint-methods" "^5.13.0"
29 |
30 | "@actions/http-client@^2.0.1":
31 | version "2.0.1"
32 | resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c"
33 | integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==
34 | dependencies:
35 | tunnel "^0.0.6"
36 |
37 | "@actions/io@^1.0.1":
38 | version "1.1.2"
39 | resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.2.tgz#766ac09674a289ce0f1550ffe0a6eac9261a8ea9"
40 | integrity sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==
41 |
42 | "@ampproject/remapping@^2.1.0":
43 | version "2.2.0"
44 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
45 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
46 | dependencies:
47 | "@jridgewell/gen-mapping" "^0.1.0"
48 | "@jridgewell/trace-mapping" "^0.3.9"
49 |
50 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
51 | version "7.18.6"
52 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
53 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
54 | dependencies:
55 | "@babel/highlight" "^7.18.6"
56 |
57 | "@babel/compat-data@^7.18.8":
58 | version "7.18.8"
59 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d"
60 | integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==
61 |
62 | "@babel/core@^7.11.6", "@babel/core@^7.12.3":
63 | version "7.18.10"
64 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8"
65 | integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==
66 | dependencies:
67 | "@ampproject/remapping" "^2.1.0"
68 | "@babel/code-frame" "^7.18.6"
69 | "@babel/generator" "^7.18.10"
70 | "@babel/helper-compilation-targets" "^7.18.9"
71 | "@babel/helper-module-transforms" "^7.18.9"
72 | "@babel/helpers" "^7.18.9"
73 | "@babel/parser" "^7.18.10"
74 | "@babel/template" "^7.18.10"
75 | "@babel/traverse" "^7.18.10"
76 | "@babel/types" "^7.18.10"
77 | convert-source-map "^1.7.0"
78 | debug "^4.1.0"
79 | gensync "^1.0.0-beta.2"
80 | json5 "^2.2.1"
81 | semver "^6.3.0"
82 |
83 | "@babel/generator@^7.18.10", "@babel/generator@^7.7.2":
84 | version "7.18.12"
85 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4"
86 | integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==
87 | dependencies:
88 | "@babel/types" "^7.18.10"
89 | "@jridgewell/gen-mapping" "^0.3.2"
90 | jsesc "^2.5.1"
91 |
92 | "@babel/helper-compilation-targets@^7.18.9":
93 | version "7.18.9"
94 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf"
95 | integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==
96 | dependencies:
97 | "@babel/compat-data" "^7.18.8"
98 | "@babel/helper-validator-option" "^7.18.6"
99 | browserslist "^4.20.2"
100 | semver "^6.3.0"
101 |
102 | "@babel/helper-environment-visitor@^7.18.9":
103 | version "7.18.9"
104 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
105 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
106 |
107 | "@babel/helper-function-name@^7.18.9":
108 | version "7.18.9"
109 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0"
110 | integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==
111 | dependencies:
112 | "@babel/template" "^7.18.6"
113 | "@babel/types" "^7.18.9"
114 |
115 | "@babel/helper-hoist-variables@^7.18.6":
116 | version "7.18.6"
117 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
118 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
119 | dependencies:
120 | "@babel/types" "^7.18.6"
121 |
122 | "@babel/helper-module-imports@^7.18.6":
123 | version "7.18.6"
124 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
125 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
126 | dependencies:
127 | "@babel/types" "^7.18.6"
128 |
129 | "@babel/helper-module-transforms@^7.18.9":
130 | version "7.18.9"
131 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712"
132 | integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==
133 | dependencies:
134 | "@babel/helper-environment-visitor" "^7.18.9"
135 | "@babel/helper-module-imports" "^7.18.6"
136 | "@babel/helper-simple-access" "^7.18.6"
137 | "@babel/helper-split-export-declaration" "^7.18.6"
138 | "@babel/helper-validator-identifier" "^7.18.6"
139 | "@babel/template" "^7.18.6"
140 | "@babel/traverse" "^7.18.9"
141 | "@babel/types" "^7.18.9"
142 |
143 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.8.0":
144 | version "7.18.9"
145 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f"
146 | integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==
147 |
148 | "@babel/helper-simple-access@^7.18.6":
149 | version "7.18.6"
150 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea"
151 | integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==
152 | dependencies:
153 | "@babel/types" "^7.18.6"
154 |
155 | "@babel/helper-split-export-declaration@^7.18.6":
156 | version "7.18.6"
157 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
158 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
159 | dependencies:
160 | "@babel/types" "^7.18.6"
161 |
162 | "@babel/helper-string-parser@^7.18.10":
163 | version "7.18.10"
164 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
165 | integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
166 |
167 | "@babel/helper-validator-identifier@^7.18.6":
168 | version "7.18.6"
169 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
170 | integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
171 |
172 | "@babel/helper-validator-option@^7.18.6":
173 | version "7.18.6"
174 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
175 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
176 |
177 | "@babel/helpers@^7.18.9":
178 | version "7.18.9"
179 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9"
180 | integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==
181 | dependencies:
182 | "@babel/template" "^7.18.6"
183 | "@babel/traverse" "^7.18.9"
184 | "@babel/types" "^7.18.9"
185 |
186 | "@babel/highlight@^7.18.6":
187 | version "7.18.6"
188 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
189 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
190 | dependencies:
191 | "@babel/helper-validator-identifier" "^7.18.6"
192 | chalk "^2.0.0"
193 | js-tokens "^4.0.0"
194 |
195 | "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.18.11":
196 | version "7.18.11"
197 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9"
198 | integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==
199 |
200 | "@babel/plugin-syntax-async-generators@^7.8.4":
201 | version "7.8.4"
202 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
203 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
204 | dependencies:
205 | "@babel/helper-plugin-utils" "^7.8.0"
206 |
207 | "@babel/plugin-syntax-bigint@^7.8.3":
208 | version "7.8.3"
209 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
210 | integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
211 | dependencies:
212 | "@babel/helper-plugin-utils" "^7.8.0"
213 |
214 | "@babel/plugin-syntax-class-properties@^7.8.3":
215 | version "7.12.13"
216 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
217 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
218 | dependencies:
219 | "@babel/helper-plugin-utils" "^7.12.13"
220 |
221 | "@babel/plugin-syntax-import-meta@^7.8.3":
222 | version "7.10.4"
223 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
224 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
225 | dependencies:
226 | "@babel/helper-plugin-utils" "^7.10.4"
227 |
228 | "@babel/plugin-syntax-json-strings@^7.8.3":
229 | version "7.8.3"
230 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
231 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
232 | dependencies:
233 | "@babel/helper-plugin-utils" "^7.8.0"
234 |
235 | "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
236 | version "7.10.4"
237 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
238 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
239 | dependencies:
240 | "@babel/helper-plugin-utils" "^7.10.4"
241 |
242 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
243 | version "7.8.3"
244 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
245 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
246 | dependencies:
247 | "@babel/helper-plugin-utils" "^7.8.0"
248 |
249 | "@babel/plugin-syntax-numeric-separator@^7.8.3":
250 | version "7.10.4"
251 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
252 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
253 | dependencies:
254 | "@babel/helper-plugin-utils" "^7.10.4"
255 |
256 | "@babel/plugin-syntax-object-rest-spread@^7.8.3":
257 | version "7.8.3"
258 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
259 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
260 | dependencies:
261 | "@babel/helper-plugin-utils" "^7.8.0"
262 |
263 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
264 | version "7.8.3"
265 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
266 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
267 | dependencies:
268 | "@babel/helper-plugin-utils" "^7.8.0"
269 |
270 | "@babel/plugin-syntax-optional-chaining@^7.8.3":
271 | version "7.8.3"
272 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
273 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
274 | dependencies:
275 | "@babel/helper-plugin-utils" "^7.8.0"
276 |
277 | "@babel/plugin-syntax-top-level-await@^7.8.3":
278 | version "7.14.5"
279 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
280 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
281 | dependencies:
282 | "@babel/helper-plugin-utils" "^7.14.5"
283 |
284 | "@babel/plugin-syntax-typescript@^7.7.2":
285 | version "7.18.6"
286 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285"
287 | integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==
288 | dependencies:
289 | "@babel/helper-plugin-utils" "^7.18.6"
290 |
291 | "@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3":
292 | version "7.18.10"
293 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
294 | integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
295 | dependencies:
296 | "@babel/code-frame" "^7.18.6"
297 | "@babel/parser" "^7.18.10"
298 | "@babel/types" "^7.18.10"
299 |
300 | "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2":
301 | version "7.18.11"
302 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f"
303 | integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==
304 | dependencies:
305 | "@babel/code-frame" "^7.18.6"
306 | "@babel/generator" "^7.18.10"
307 | "@babel/helper-environment-visitor" "^7.18.9"
308 | "@babel/helper-function-name" "^7.18.9"
309 | "@babel/helper-hoist-variables" "^7.18.6"
310 | "@babel/helper-split-export-declaration" "^7.18.6"
311 | "@babel/parser" "^7.18.11"
312 | "@babel/types" "^7.18.10"
313 | debug "^4.1.0"
314 | globals "^11.1.0"
315 |
316 | "@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
317 | version "7.18.10"
318 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6"
319 | integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==
320 | dependencies:
321 | "@babel/helper-string-parser" "^7.18.10"
322 | "@babel/helper-validator-identifier" "^7.18.6"
323 | to-fast-properties "^2.0.0"
324 |
325 | "@bcoe/v8-coverage@^0.2.3":
326 | version "0.2.3"
327 | resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
328 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
329 |
330 | "@eslint/eslintrc@^1.4.1":
331 | version "1.4.1"
332 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
333 | integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
334 | dependencies:
335 | ajv "^6.12.4"
336 | debug "^4.3.2"
337 | espree "^9.4.0"
338 | globals "^13.19.0"
339 | ignore "^5.2.0"
340 | import-fresh "^3.2.1"
341 | js-yaml "^4.1.0"
342 | minimatch "^3.1.2"
343 | strip-json-comments "^3.1.1"
344 |
345 | "@humanwhocodes/config-array@^0.11.8":
346 | version "0.11.8"
347 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
348 | integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
349 | dependencies:
350 | "@humanwhocodes/object-schema" "^1.2.1"
351 | debug "^4.1.1"
352 | minimatch "^3.0.5"
353 |
354 | "@humanwhocodes/module-importer@^1.0.1":
355 | version "1.0.1"
356 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
357 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
358 |
359 | "@humanwhocodes/object-schema@^1.2.1":
360 | version "1.2.1"
361 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
362 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
363 |
364 | "@istanbuljs/load-nyc-config@^1.0.0":
365 | version "1.1.0"
366 | resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
367 | integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
368 | dependencies:
369 | camelcase "^5.3.1"
370 | find-up "^4.1.0"
371 | get-package-type "^0.1.0"
372 | js-yaml "^3.13.1"
373 | resolve-from "^5.0.0"
374 |
375 | "@istanbuljs/schema@^0.1.2":
376 | version "0.1.3"
377 | resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
378 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
379 |
380 | "@jest/console@^28.1.3":
381 | version "28.1.3"
382 | resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df"
383 | integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==
384 | dependencies:
385 | "@jest/types" "^28.1.3"
386 | "@types/node" "*"
387 | chalk "^4.0.0"
388 | jest-message-util "^28.1.3"
389 | jest-util "^28.1.3"
390 | slash "^3.0.0"
391 |
392 | "@jest/core@^28.1.3":
393 | version "28.1.3"
394 | resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7"
395 | integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==
396 | dependencies:
397 | "@jest/console" "^28.1.3"
398 | "@jest/reporters" "^28.1.3"
399 | "@jest/test-result" "^28.1.3"
400 | "@jest/transform" "^28.1.3"
401 | "@jest/types" "^28.1.3"
402 | "@types/node" "*"
403 | ansi-escapes "^4.2.1"
404 | chalk "^4.0.0"
405 | ci-info "^3.2.0"
406 | exit "^0.1.2"
407 | graceful-fs "^4.2.9"
408 | jest-changed-files "^28.1.3"
409 | jest-config "^28.1.3"
410 | jest-haste-map "^28.1.3"
411 | jest-message-util "^28.1.3"
412 | jest-regex-util "^28.0.2"
413 | jest-resolve "^28.1.3"
414 | jest-resolve-dependencies "^28.1.3"
415 | jest-runner "^28.1.3"
416 | jest-runtime "^28.1.3"
417 | jest-snapshot "^28.1.3"
418 | jest-util "^28.1.3"
419 | jest-validate "^28.1.3"
420 | jest-watcher "^28.1.3"
421 | micromatch "^4.0.4"
422 | pretty-format "^28.1.3"
423 | rimraf "^3.0.0"
424 | slash "^3.0.0"
425 | strip-ansi "^6.0.0"
426 |
427 | "@jest/environment@^28.1.3":
428 | version "28.1.3"
429 | resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e"
430 | integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==
431 | dependencies:
432 | "@jest/fake-timers" "^28.1.3"
433 | "@jest/types" "^28.1.3"
434 | "@types/node" "*"
435 | jest-mock "^28.1.3"
436 |
437 | "@jest/expect-utils@^28.1.3":
438 | version "28.1.3"
439 | resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525"
440 | integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==
441 | dependencies:
442 | jest-get-type "^28.0.2"
443 |
444 | "@jest/expect@^28.1.3":
445 | version "28.1.3"
446 | resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72"
447 | integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==
448 | dependencies:
449 | expect "^28.1.3"
450 | jest-snapshot "^28.1.3"
451 |
452 | "@jest/fake-timers@^28.1.3":
453 | version "28.1.3"
454 | resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e"
455 | integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==
456 | dependencies:
457 | "@jest/types" "^28.1.3"
458 | "@sinonjs/fake-timers" "^9.1.2"
459 | "@types/node" "*"
460 | jest-message-util "^28.1.3"
461 | jest-mock "^28.1.3"
462 | jest-util "^28.1.3"
463 |
464 | "@jest/globals@^28.1.3":
465 | version "28.1.3"
466 | resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333"
467 | integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==
468 | dependencies:
469 | "@jest/environment" "^28.1.3"
470 | "@jest/expect" "^28.1.3"
471 | "@jest/types" "^28.1.3"
472 |
473 | "@jest/reporters@^28.1.3":
474 | version "28.1.3"
475 | resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a"
476 | integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==
477 | dependencies:
478 | "@bcoe/v8-coverage" "^0.2.3"
479 | "@jest/console" "^28.1.3"
480 | "@jest/test-result" "^28.1.3"
481 | "@jest/transform" "^28.1.3"
482 | "@jest/types" "^28.1.3"
483 | "@jridgewell/trace-mapping" "^0.3.13"
484 | "@types/node" "*"
485 | chalk "^4.0.0"
486 | collect-v8-coverage "^1.0.0"
487 | exit "^0.1.2"
488 | glob "^7.1.3"
489 | graceful-fs "^4.2.9"
490 | istanbul-lib-coverage "^3.0.0"
491 | istanbul-lib-instrument "^5.1.0"
492 | istanbul-lib-report "^3.0.0"
493 | istanbul-lib-source-maps "^4.0.0"
494 | istanbul-reports "^3.1.3"
495 | jest-message-util "^28.1.3"
496 | jest-util "^28.1.3"
497 | jest-worker "^28.1.3"
498 | slash "^3.0.0"
499 | string-length "^4.0.1"
500 | strip-ansi "^6.0.0"
501 | terminal-link "^2.0.0"
502 | v8-to-istanbul "^9.0.1"
503 |
504 | "@jest/schemas@^28.1.3":
505 | version "28.1.3"
506 | resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905"
507 | integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==
508 | dependencies:
509 | "@sinclair/typebox" "^0.24.1"
510 |
511 | "@jest/source-map@^28.1.2":
512 | version "28.1.2"
513 | resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24"
514 | integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==
515 | dependencies:
516 | "@jridgewell/trace-mapping" "^0.3.13"
517 | callsites "^3.0.0"
518 | graceful-fs "^4.2.9"
519 |
520 | "@jest/test-result@^28.1.3":
521 | version "28.1.3"
522 | resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5"
523 | integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==
524 | dependencies:
525 | "@jest/console" "^28.1.3"
526 | "@jest/types" "^28.1.3"
527 | "@types/istanbul-lib-coverage" "^2.0.0"
528 | collect-v8-coverage "^1.0.0"
529 |
530 | "@jest/test-sequencer@^28.1.3":
531 | version "28.1.3"
532 | resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3"
533 | integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==
534 | dependencies:
535 | "@jest/test-result" "^28.1.3"
536 | graceful-fs "^4.2.9"
537 | jest-haste-map "^28.1.3"
538 | slash "^3.0.0"
539 |
540 | "@jest/transform@^28.1.3":
541 | version "28.1.3"
542 | resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0"
543 | integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==
544 | dependencies:
545 | "@babel/core" "^7.11.6"
546 | "@jest/types" "^28.1.3"
547 | "@jridgewell/trace-mapping" "^0.3.13"
548 | babel-plugin-istanbul "^6.1.1"
549 | chalk "^4.0.0"
550 | convert-source-map "^1.4.0"
551 | fast-json-stable-stringify "^2.0.0"
552 | graceful-fs "^4.2.9"
553 | jest-haste-map "^28.1.3"
554 | jest-regex-util "^28.0.2"
555 | jest-util "^28.1.3"
556 | micromatch "^4.0.4"
557 | pirates "^4.0.4"
558 | slash "^3.0.0"
559 | write-file-atomic "^4.0.1"
560 |
561 | "@jest/types@^28.1.3":
562 | version "28.1.3"
563 | resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b"
564 | integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==
565 | dependencies:
566 | "@jest/schemas" "^28.1.3"
567 | "@types/istanbul-lib-coverage" "^2.0.0"
568 | "@types/istanbul-reports" "^3.0.0"
569 | "@types/node" "*"
570 | "@types/yargs" "^17.0.8"
571 | chalk "^4.0.0"
572 |
573 | "@jridgewell/gen-mapping@^0.1.0":
574 | version "0.1.1"
575 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
576 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
577 | dependencies:
578 | "@jridgewell/set-array" "^1.0.0"
579 | "@jridgewell/sourcemap-codec" "^1.4.10"
580 |
581 | "@jridgewell/gen-mapping@^0.3.2":
582 | version "0.3.2"
583 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
584 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
585 | dependencies:
586 | "@jridgewell/set-array" "^1.0.1"
587 | "@jridgewell/sourcemap-codec" "^1.4.10"
588 | "@jridgewell/trace-mapping" "^0.3.9"
589 |
590 | "@jridgewell/resolve-uri@^3.0.3":
591 | version "3.1.0"
592 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
593 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
594 |
595 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
596 | version "1.1.2"
597 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
598 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
599 |
600 | "@jridgewell/sourcemap-codec@^1.4.10":
601 | version "1.4.14"
602 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
603 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
604 |
605 | "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9":
606 | version "0.3.15"
607 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
608 | integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
609 | dependencies:
610 | "@jridgewell/resolve-uri" "^3.0.3"
611 | "@jridgewell/sourcemap-codec" "^1.4.10"
612 |
613 | "@nodelib/fs.scandir@2.1.5":
614 | version "2.1.5"
615 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
616 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
617 | dependencies:
618 | "@nodelib/fs.stat" "2.0.5"
619 | run-parallel "^1.1.9"
620 |
621 | "@nodelib/fs.stat@2.0.5":
622 | version "2.0.5"
623 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
624 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
625 |
626 | "@nodelib/fs.walk@^1.2.8":
627 | version "1.2.8"
628 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
629 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
630 | dependencies:
631 | "@nodelib/fs.scandir" "2.1.5"
632 | fastq "^1.6.0"
633 |
634 | "@octokit/auth-token@^2.4.4":
635 | version "2.5.0"
636 | resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36"
637 | integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==
638 | dependencies:
639 | "@octokit/types" "^6.0.3"
640 |
641 | "@octokit/core@^3.6.0":
642 | version "3.6.0"
643 | resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085"
644 | integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==
645 | dependencies:
646 | "@octokit/auth-token" "^2.4.4"
647 | "@octokit/graphql" "^4.5.8"
648 | "@octokit/request" "^5.6.3"
649 | "@octokit/request-error" "^2.0.5"
650 | "@octokit/types" "^6.0.3"
651 | before-after-hook "^2.2.0"
652 | universal-user-agent "^6.0.0"
653 |
654 | "@octokit/endpoint@^6.0.1":
655 | version "6.0.12"
656 | resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658"
657 | integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==
658 | dependencies:
659 | "@octokit/types" "^6.0.3"
660 | is-plain-object "^5.0.0"
661 | universal-user-agent "^6.0.0"
662 |
663 | "@octokit/graphql@^4.5.8":
664 | version "4.8.0"
665 | resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3"
666 | integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==
667 | dependencies:
668 | "@octokit/request" "^5.6.0"
669 | "@octokit/types" "^6.0.3"
670 | universal-user-agent "^6.0.0"
671 |
672 | "@octokit/openapi-types@^12.11.0":
673 | version "12.11.0"
674 | resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0"
675 | integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==
676 |
677 | "@octokit/plugin-paginate-rest@^2.17.0":
678 | version "2.21.3"
679 | resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e"
680 | integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==
681 | dependencies:
682 | "@octokit/types" "^6.40.0"
683 |
684 | "@octokit/plugin-rest-endpoint-methods@^5.13.0":
685 | version "5.16.2"
686 | resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342"
687 | integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==
688 | dependencies:
689 | "@octokit/types" "^6.39.0"
690 | deprecation "^2.3.1"
691 |
692 | "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0":
693 | version "2.1.0"
694 | resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677"
695 | integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==
696 | dependencies:
697 | "@octokit/types" "^6.0.3"
698 | deprecation "^2.0.0"
699 | once "^1.4.0"
700 |
701 | "@octokit/request@^5.6.0", "@octokit/request@^5.6.3":
702 | version "5.6.3"
703 | resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0"
704 | integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==
705 | dependencies:
706 | "@octokit/endpoint" "^6.0.1"
707 | "@octokit/request-error" "^2.1.0"
708 | "@octokit/types" "^6.16.1"
709 | is-plain-object "^5.0.0"
710 | node-fetch "^2.6.7"
711 | universal-user-agent "^6.0.0"
712 |
713 | "@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0":
714 | version "6.41.0"
715 | resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04"
716 | integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==
717 | dependencies:
718 | "@octokit/openapi-types" "^12.11.0"
719 |
720 | "@sinclair/typebox@^0.24.1":
721 | version "0.24.28"
722 | resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.28.tgz#15aa0b416f82c268b1573ab653e4413c965fe794"
723 | integrity sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==
724 |
725 | "@sinonjs/commons@^1.7.0":
726 | version "1.8.3"
727 | resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
728 | integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==
729 | dependencies:
730 | type-detect "4.0.8"
731 |
732 | "@sinonjs/fake-timers@^9.1.2":
733 | version "9.1.2"
734 | resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c"
735 | integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==
736 | dependencies:
737 | "@sinonjs/commons" "^1.7.0"
738 |
739 | "@types/ajv@^1.0.0":
740 | version "1.0.0"
741 | resolved "https://registry.yarnpkg.com/@types/ajv/-/ajv-1.0.0.tgz#4fb2440742f2f6c30e7fb0797b839fc6f696682a"
742 | integrity sha512-yGSqw9/QKd5FXbTNrSANcJ6IHWeNhA+gokXqmlPquJgLDC87d4g2FGPs+AlCeGG0GuZXmPq42hOFA2hnPymCLw==
743 | dependencies:
744 | ajv "*"
745 |
746 | "@types/babel__core@^7.1.14":
747 | version "7.1.19"
748 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460"
749 | integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==
750 | dependencies:
751 | "@babel/parser" "^7.1.0"
752 | "@babel/types" "^7.0.0"
753 | "@types/babel__generator" "*"
754 | "@types/babel__template" "*"
755 | "@types/babel__traverse" "*"
756 |
757 | "@types/babel__generator@*":
758 | version "7.6.4"
759 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7"
760 | integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==
761 | dependencies:
762 | "@babel/types" "^7.0.0"
763 |
764 | "@types/babel__template@*":
765 | version "7.4.1"
766 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969"
767 | integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==
768 | dependencies:
769 | "@babel/parser" "^7.1.0"
770 | "@babel/types" "^7.0.0"
771 |
772 | "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
773 | version "7.18.0"
774 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.0.tgz#8134fd78cb39567465be65b9fdc16d378095f41f"
775 | integrity sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==
776 | dependencies:
777 | "@babel/types" "^7.3.0"
778 |
779 | "@types/graceful-fs@^4.1.3":
780 | version "4.1.5"
781 | resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
782 | integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
783 | dependencies:
784 | "@types/node" "*"
785 |
786 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
787 | version "2.0.4"
788 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
789 | integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
790 |
791 | "@types/istanbul-lib-report@*":
792 | version "3.0.0"
793 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
794 | integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
795 | dependencies:
796 | "@types/istanbul-lib-coverage" "*"
797 |
798 | "@types/istanbul-reports@^3.0.0":
799 | version "3.0.1"
800 | resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff"
801 | integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==
802 | dependencies:
803 | "@types/istanbul-lib-report" "*"
804 |
805 | "@types/node@*", "@types/node@^18.11.18":
806 | version "18.11.18"
807 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f"
808 | integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==
809 |
810 | "@types/prettier@^2.1.5":
811 | version "2.7.0"
812 | resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc"
813 | integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==
814 |
815 | "@types/stack-utils@^2.0.0":
816 | version "2.0.1"
817 | resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
818 | integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
819 |
820 | "@types/yargs-parser@*":
821 | version "21.0.0"
822 | resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
823 | integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
824 |
825 | "@types/yargs@^17.0.8":
826 | version "17.0.11"
827 | resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.11.tgz#5e10ca33e219807c0eee0f08b5efcba9b6a42c06"
828 | integrity sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==
829 | dependencies:
830 | "@types/yargs-parser" "*"
831 |
832 | "@vercel/ncc@^0.34.0":
833 | version "0.34.0"
834 | resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.34.0.tgz#d0139528320e46670d949c82967044a8f66db054"
835 | integrity sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==
836 |
837 | acorn-jsx@^5.3.2:
838 | version "5.3.2"
839 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
840 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
841 |
842 | acorn@^8.8.0:
843 | version "8.8.0"
844 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
845 | integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
846 |
847 | ajv@*, ajv@^8.11.2:
848 | version "8.11.2"
849 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78"
850 | integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==
851 | dependencies:
852 | fast-deep-equal "^3.1.1"
853 | json-schema-traverse "^1.0.0"
854 | require-from-string "^2.0.2"
855 | uri-js "^4.2.2"
856 |
857 | ajv@^6.10.0, ajv@^6.12.4:
858 | version "6.12.6"
859 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
860 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
861 | dependencies:
862 | fast-deep-equal "^3.1.1"
863 | fast-json-stable-stringify "^2.0.0"
864 | json-schema-traverse "^0.4.1"
865 | uri-js "^4.2.2"
866 |
867 | ansi-escapes@^4.2.1:
868 | version "4.3.2"
869 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
870 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
871 | dependencies:
872 | type-fest "^0.21.3"
873 |
874 | ansi-regex@^5.0.1:
875 | version "5.0.1"
876 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
877 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
878 |
879 | ansi-styles@^3.2.1:
880 | version "3.2.1"
881 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
882 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
883 | dependencies:
884 | color-convert "^1.9.0"
885 |
886 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
887 | version "4.3.0"
888 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
889 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
890 | dependencies:
891 | color-convert "^2.0.1"
892 |
893 | ansi-styles@^5.0.0:
894 | version "5.2.0"
895 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
896 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
897 |
898 | anymatch@^3.0.3:
899 | version "3.1.2"
900 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
901 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
902 | dependencies:
903 | normalize-path "^3.0.0"
904 | picomatch "^2.0.4"
905 |
906 | argparse@^1.0.7:
907 | version "1.0.10"
908 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
909 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
910 | dependencies:
911 | sprintf-js "~1.0.2"
912 |
913 | argparse@^2.0.1:
914 | version "2.0.1"
915 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
916 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
917 |
918 | babel-jest@^28.1.3:
919 | version "28.1.3"
920 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5"
921 | integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==
922 | dependencies:
923 | "@jest/transform" "^28.1.3"
924 | "@types/babel__core" "^7.1.14"
925 | babel-plugin-istanbul "^6.1.1"
926 | babel-preset-jest "^28.1.3"
927 | chalk "^4.0.0"
928 | graceful-fs "^4.2.9"
929 | slash "^3.0.0"
930 |
931 | babel-plugin-istanbul@^6.1.1:
932 | version "6.1.1"
933 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
934 | integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
935 | dependencies:
936 | "@babel/helper-plugin-utils" "^7.0.0"
937 | "@istanbuljs/load-nyc-config" "^1.0.0"
938 | "@istanbuljs/schema" "^0.1.2"
939 | istanbul-lib-instrument "^5.0.4"
940 | test-exclude "^6.0.0"
941 |
942 | babel-plugin-jest-hoist@^28.1.3:
943 | version "28.1.3"
944 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe"
945 | integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==
946 | dependencies:
947 | "@babel/template" "^7.3.3"
948 | "@babel/types" "^7.3.3"
949 | "@types/babel__core" "^7.1.14"
950 | "@types/babel__traverse" "^7.0.6"
951 |
952 | babel-preset-current-node-syntax@^1.0.0:
953 | version "1.0.1"
954 | resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
955 | integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
956 | dependencies:
957 | "@babel/plugin-syntax-async-generators" "^7.8.4"
958 | "@babel/plugin-syntax-bigint" "^7.8.3"
959 | "@babel/plugin-syntax-class-properties" "^7.8.3"
960 | "@babel/plugin-syntax-import-meta" "^7.8.3"
961 | "@babel/plugin-syntax-json-strings" "^7.8.3"
962 | "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
963 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
964 | "@babel/plugin-syntax-numeric-separator" "^7.8.3"
965 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
966 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
967 | "@babel/plugin-syntax-optional-chaining" "^7.8.3"
968 | "@babel/plugin-syntax-top-level-await" "^7.8.3"
969 |
970 | babel-preset-jest@^28.1.3:
971 | version "28.1.3"
972 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d"
973 | integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==
974 | dependencies:
975 | babel-plugin-jest-hoist "^28.1.3"
976 | babel-preset-current-node-syntax "^1.0.0"
977 |
978 | balanced-match@^1.0.0:
979 | version "1.0.2"
980 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
981 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
982 |
983 | before-after-hook@^2.2.0:
984 | version "2.2.2"
985 | resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e"
986 | integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==
987 |
988 | brace-expansion@^1.1.7:
989 | version "1.1.11"
990 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
991 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
992 | dependencies:
993 | balanced-match "^1.0.0"
994 | concat-map "0.0.1"
995 |
996 | braces@^3.0.2:
997 | version "3.0.2"
998 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
999 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
1000 | dependencies:
1001 | fill-range "^7.0.1"
1002 |
1003 | browserslist@^4.20.2:
1004 | version "4.21.3"
1005 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
1006 | integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
1007 | dependencies:
1008 | caniuse-lite "^1.0.30001370"
1009 | electron-to-chromium "^1.4.202"
1010 | node-releases "^2.0.6"
1011 | update-browserslist-db "^1.0.5"
1012 |
1013 | bs-logger@0.x:
1014 | version "0.2.6"
1015 | resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
1016 | integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
1017 | dependencies:
1018 | fast-json-stable-stringify "2.x"
1019 |
1020 | bser@2.1.1:
1021 | version "2.1.1"
1022 | resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
1023 | integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
1024 | dependencies:
1025 | node-int64 "^0.4.0"
1026 |
1027 | buffer-from@^1.0.0:
1028 | version "1.1.2"
1029 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
1030 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
1031 |
1032 | callsites@^3.0.0:
1033 | version "3.1.0"
1034 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
1035 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
1036 |
1037 | camelcase@^5.3.1:
1038 | version "5.3.1"
1039 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
1040 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
1041 |
1042 | camelcase@^6.2.0:
1043 | version "6.3.0"
1044 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
1045 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
1046 |
1047 | caniuse-lite@^1.0.30001370:
1048 | version "1.0.30001377"
1049 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001377.tgz#fa446cef27f25decb0c7420759c9ea17a2221a70"
1050 | integrity sha512-I5XeHI1x/mRSGl96LFOaSk528LA/yZG3m3iQgImGujjO8gotd/DL8QaI1R1h1dg5ATeI2jqPblMpKq4Tr5iKfQ==
1051 |
1052 | chalk@^2.0.0:
1053 | version "2.4.2"
1054 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1055 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
1056 | dependencies:
1057 | ansi-styles "^3.2.1"
1058 | escape-string-regexp "^1.0.5"
1059 | supports-color "^5.3.0"
1060 |
1061 | chalk@^4.0.0:
1062 | version "4.1.2"
1063 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
1064 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
1065 | dependencies:
1066 | ansi-styles "^4.1.0"
1067 | supports-color "^7.1.0"
1068 |
1069 | char-regex@^1.0.2:
1070 | version "1.0.2"
1071 | resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
1072 | integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
1073 |
1074 | ci-info@^3.2.0:
1075 | version "3.3.2"
1076 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128"
1077 | integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==
1078 |
1079 | cjs-module-lexer@^1.0.0:
1080 | version "1.2.2"
1081 | resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40"
1082 | integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
1083 |
1084 | cliui@^7.0.2:
1085 | version "7.0.4"
1086 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
1087 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
1088 | dependencies:
1089 | string-width "^4.2.0"
1090 | strip-ansi "^6.0.0"
1091 | wrap-ansi "^7.0.0"
1092 |
1093 | co@^4.6.0:
1094 | version "4.6.0"
1095 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
1096 | integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
1097 |
1098 | collect-v8-coverage@^1.0.0:
1099 | version "1.0.1"
1100 | resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
1101 | integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
1102 |
1103 | color-convert@^1.9.0:
1104 | version "1.9.3"
1105 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1106 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1107 | dependencies:
1108 | color-name "1.1.3"
1109 |
1110 | color-convert@^2.0.1:
1111 | version "2.0.1"
1112 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1113 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1114 | dependencies:
1115 | color-name "~1.1.4"
1116 |
1117 | color-name@1.1.3:
1118 | version "1.1.3"
1119 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1120 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
1121 |
1122 | color-name@~1.1.4:
1123 | version "1.1.4"
1124 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1125 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1126 |
1127 | concat-map@0.0.1:
1128 | version "0.0.1"
1129 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1130 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
1131 |
1132 | convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
1133 | version "1.8.0"
1134 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
1135 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
1136 | dependencies:
1137 | safe-buffer "~5.1.1"
1138 |
1139 | cross-spawn@^7.0.2, cross-spawn@^7.0.3:
1140 | version "7.0.3"
1141 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
1142 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
1143 | dependencies:
1144 | path-key "^3.1.0"
1145 | shebang-command "^2.0.0"
1146 | which "^2.0.1"
1147 |
1148 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
1149 | version "4.3.4"
1150 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
1151 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
1152 | dependencies:
1153 | ms "2.1.2"
1154 |
1155 | dedent@^0.7.0:
1156 | version "0.7.0"
1157 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
1158 | integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
1159 |
1160 | deep-is@^0.1.3:
1161 | version "0.1.4"
1162 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
1163 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
1164 |
1165 | deepmerge@^4.2.2:
1166 | version "4.2.2"
1167 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
1168 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
1169 |
1170 | deprecation@^2.0.0, deprecation@^2.3.1:
1171 | version "2.3.1"
1172 | resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
1173 | integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
1174 |
1175 | detect-newline@^3.0.0:
1176 | version "3.1.0"
1177 | resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
1178 | integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
1179 |
1180 | diff-sequences@^28.1.1:
1181 | version "28.1.1"
1182 | resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6"
1183 | integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==
1184 |
1185 | doctrine@^3.0.0:
1186 | version "3.0.0"
1187 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
1188 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
1189 | dependencies:
1190 | esutils "^2.0.2"
1191 |
1192 | electron-to-chromium@^1.4.202:
1193 | version "1.4.221"
1194 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.221.tgz#1ff8425d257a8bfc8269d552a426993c5b525471"
1195 | integrity sha512-aWg2mYhpxZ6Q6Xvyk7B2ziBca4YqrCDlXzmcD7wuRs65pVEVkMT1u2ifdjpAQais2O2o0rW964ZWWWYRlAL/kw==
1196 |
1197 | emittery@^0.10.2:
1198 | version "0.10.2"
1199 | resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933"
1200 | integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==
1201 |
1202 | emoji-regex@^8.0.0:
1203 | version "8.0.0"
1204 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
1205 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
1206 |
1207 | error-ex@^1.3.1:
1208 | version "1.3.2"
1209 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
1210 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
1211 | dependencies:
1212 | is-arrayish "^0.2.1"
1213 |
1214 | escalade@^3.1.1:
1215 | version "3.1.1"
1216 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
1217 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
1218 |
1219 | escape-string-regexp@^1.0.5:
1220 | version "1.0.5"
1221 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1222 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
1223 |
1224 | escape-string-regexp@^2.0.0:
1225 | version "2.0.0"
1226 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
1227 | integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
1228 |
1229 | escape-string-regexp@^4.0.0:
1230 | version "4.0.0"
1231 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
1232 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
1233 |
1234 | eslint-scope@^7.1.1:
1235 | version "7.1.1"
1236 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
1237 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
1238 | dependencies:
1239 | esrecurse "^4.3.0"
1240 | estraverse "^5.2.0"
1241 |
1242 | eslint-utils@^3.0.0:
1243 | version "3.0.0"
1244 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
1245 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
1246 | dependencies:
1247 | eslint-visitor-keys "^2.0.0"
1248 |
1249 | eslint-visitor-keys@^2.0.0:
1250 | version "2.1.0"
1251 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
1252 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
1253 |
1254 | eslint-visitor-keys@^3.3.0:
1255 | version "3.3.0"
1256 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
1257 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
1258 |
1259 | eslint@^8.32.0:
1260 | version "8.32.0"
1261 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861"
1262 | integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==
1263 | dependencies:
1264 | "@eslint/eslintrc" "^1.4.1"
1265 | "@humanwhocodes/config-array" "^0.11.8"
1266 | "@humanwhocodes/module-importer" "^1.0.1"
1267 | "@nodelib/fs.walk" "^1.2.8"
1268 | ajv "^6.10.0"
1269 | chalk "^4.0.0"
1270 | cross-spawn "^7.0.2"
1271 | debug "^4.3.2"
1272 | doctrine "^3.0.0"
1273 | escape-string-regexp "^4.0.0"
1274 | eslint-scope "^7.1.1"
1275 | eslint-utils "^3.0.0"
1276 | eslint-visitor-keys "^3.3.0"
1277 | espree "^9.4.0"
1278 | esquery "^1.4.0"
1279 | esutils "^2.0.2"
1280 | fast-deep-equal "^3.1.3"
1281 | file-entry-cache "^6.0.1"
1282 | find-up "^5.0.0"
1283 | glob-parent "^6.0.2"
1284 | globals "^13.19.0"
1285 | grapheme-splitter "^1.0.4"
1286 | ignore "^5.2.0"
1287 | import-fresh "^3.0.0"
1288 | imurmurhash "^0.1.4"
1289 | is-glob "^4.0.0"
1290 | is-path-inside "^3.0.3"
1291 | js-sdsl "^4.1.4"
1292 | js-yaml "^4.1.0"
1293 | json-stable-stringify-without-jsonify "^1.0.1"
1294 | levn "^0.4.1"
1295 | lodash.merge "^4.6.2"
1296 | minimatch "^3.1.2"
1297 | natural-compare "^1.4.0"
1298 | optionator "^0.9.1"
1299 | regexpp "^3.2.0"
1300 | strip-ansi "^6.0.1"
1301 | strip-json-comments "^3.1.0"
1302 | text-table "^0.2.0"
1303 |
1304 | espree@^9.4.0:
1305 | version "9.4.1"
1306 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd"
1307 | integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==
1308 | dependencies:
1309 | acorn "^8.8.0"
1310 | acorn-jsx "^5.3.2"
1311 | eslint-visitor-keys "^3.3.0"
1312 |
1313 | esprima@^4.0.0:
1314 | version "4.0.1"
1315 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
1316 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
1317 |
1318 | esquery@^1.4.0:
1319 | version "1.4.0"
1320 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
1321 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
1322 | dependencies:
1323 | estraverse "^5.1.0"
1324 |
1325 | esrecurse@^4.3.0:
1326 | version "4.3.0"
1327 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
1328 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
1329 | dependencies:
1330 | estraverse "^5.2.0"
1331 |
1332 | estraverse@^5.1.0, estraverse@^5.2.0:
1333 | version "5.3.0"
1334 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
1335 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1336 |
1337 | esutils@^2.0.2:
1338 | version "2.0.3"
1339 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1340 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1341 |
1342 | execa@^5.0.0:
1343 | version "5.1.1"
1344 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
1345 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
1346 | dependencies:
1347 | cross-spawn "^7.0.3"
1348 | get-stream "^6.0.0"
1349 | human-signals "^2.1.0"
1350 | is-stream "^2.0.0"
1351 | merge-stream "^2.0.0"
1352 | npm-run-path "^4.0.1"
1353 | onetime "^5.1.2"
1354 | signal-exit "^3.0.3"
1355 | strip-final-newline "^2.0.0"
1356 |
1357 | exit@^0.1.2:
1358 | version "0.1.2"
1359 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
1360 | integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
1361 |
1362 | expect@^28.1.3:
1363 | version "28.1.3"
1364 | resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec"
1365 | integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==
1366 | dependencies:
1367 | "@jest/expect-utils" "^28.1.3"
1368 | jest-get-type "^28.0.2"
1369 | jest-matcher-utils "^28.1.3"
1370 | jest-message-util "^28.1.3"
1371 | jest-util "^28.1.3"
1372 |
1373 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
1374 | version "3.1.3"
1375 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1376 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1377 |
1378 | fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
1379 | version "2.1.0"
1380 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1381 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1382 |
1383 | fast-levenshtein@^2.0.6:
1384 | version "2.0.6"
1385 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1386 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
1387 |
1388 | fastq@^1.6.0:
1389 | version "1.13.0"
1390 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
1391 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
1392 | dependencies:
1393 | reusify "^1.0.4"
1394 |
1395 | fb-watchman@^2.0.0:
1396 | version "2.0.1"
1397 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
1398 | integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
1399 | dependencies:
1400 | bser "2.1.1"
1401 |
1402 | file-entry-cache@^6.0.1:
1403 | version "6.0.1"
1404 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
1405 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
1406 | dependencies:
1407 | flat-cache "^3.0.4"
1408 |
1409 | fill-range@^7.0.1:
1410 | version "7.0.1"
1411 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
1412 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1413 | dependencies:
1414 | to-regex-range "^5.0.1"
1415 |
1416 | find-up@^4.0.0, find-up@^4.1.0:
1417 | version "4.1.0"
1418 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
1419 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
1420 | dependencies:
1421 | locate-path "^5.0.0"
1422 | path-exists "^4.0.0"
1423 |
1424 | find-up@^5.0.0:
1425 | version "5.0.0"
1426 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
1427 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
1428 | dependencies:
1429 | locate-path "^6.0.0"
1430 | path-exists "^4.0.0"
1431 |
1432 | flat-cache@^3.0.4:
1433 | version "3.0.4"
1434 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
1435 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
1436 | dependencies:
1437 | flatted "^3.1.0"
1438 | rimraf "^3.0.2"
1439 |
1440 | flatted@^3.1.0:
1441 | version "3.2.6"
1442 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2"
1443 | integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==
1444 |
1445 | fs.realpath@^1.0.0:
1446 | version "1.0.0"
1447 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1448 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1449 |
1450 | fsevents@^2.3.2:
1451 | version "2.3.2"
1452 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1453 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1454 |
1455 | function-bind@^1.1.1:
1456 | version "1.1.1"
1457 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1458 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1459 |
1460 | gensync@^1.0.0-beta.2:
1461 | version "1.0.0-beta.2"
1462 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1463 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1464 |
1465 | get-caller-file@^2.0.5:
1466 | version "2.0.5"
1467 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
1468 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
1469 |
1470 | get-package-type@^0.1.0:
1471 | version "0.1.0"
1472 | resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
1473 | integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
1474 |
1475 | get-stream@^6.0.0:
1476 | version "6.0.1"
1477 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
1478 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
1479 |
1480 | glob-parent@^6.0.2:
1481 | version "6.0.2"
1482 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
1483 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
1484 | dependencies:
1485 | is-glob "^4.0.3"
1486 |
1487 | glob@^7.1.3, glob@^7.1.4:
1488 | version "7.2.3"
1489 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1490 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1491 | dependencies:
1492 | fs.realpath "^1.0.0"
1493 | inflight "^1.0.4"
1494 | inherits "2"
1495 | minimatch "^3.1.1"
1496 | once "^1.3.0"
1497 | path-is-absolute "^1.0.0"
1498 |
1499 | globals@^11.1.0:
1500 | version "11.12.0"
1501 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1502 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1503 |
1504 | globals@^13.19.0:
1505 | version "13.19.0"
1506 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8"
1507 | integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==
1508 | dependencies:
1509 | type-fest "^0.20.2"
1510 |
1511 | graceful-fs@^4.2.9:
1512 | version "4.2.10"
1513 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
1514 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
1515 |
1516 | grapheme-splitter@^1.0.4:
1517 | version "1.0.4"
1518 | resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
1519 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
1520 |
1521 | has-flag@^3.0.0:
1522 | version "3.0.0"
1523 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1524 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
1525 |
1526 | has-flag@^4.0.0:
1527 | version "4.0.0"
1528 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1529 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1530 |
1531 | has@^1.0.3:
1532 | version "1.0.3"
1533 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1534 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1535 | dependencies:
1536 | function-bind "^1.1.1"
1537 |
1538 | html-escaper@^2.0.0:
1539 | version "2.0.2"
1540 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
1541 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
1542 |
1543 | human-signals@^2.1.0:
1544 | version "2.1.0"
1545 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
1546 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
1547 |
1548 | ignore@^5.2.0:
1549 | version "5.2.0"
1550 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
1551 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
1552 |
1553 | import-fresh@^3.0.0, import-fresh@^3.2.1:
1554 | version "3.3.0"
1555 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1556 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1557 | dependencies:
1558 | parent-module "^1.0.0"
1559 | resolve-from "^4.0.0"
1560 |
1561 | import-local@^3.0.2:
1562 | version "3.1.0"
1563 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
1564 | integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
1565 | dependencies:
1566 | pkg-dir "^4.2.0"
1567 | resolve-cwd "^3.0.0"
1568 |
1569 | imurmurhash@^0.1.4:
1570 | version "0.1.4"
1571 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1572 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1573 |
1574 | inflight@^1.0.4:
1575 | version "1.0.6"
1576 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1577 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1578 | dependencies:
1579 | once "^1.3.0"
1580 | wrappy "1"
1581 |
1582 | inherits@2:
1583 | version "2.0.4"
1584 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1585 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1586 |
1587 | is-arrayish@^0.2.1:
1588 | version "0.2.1"
1589 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1590 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
1591 |
1592 | is-core-module@^2.9.0:
1593 | version "2.10.0"
1594 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed"
1595 | integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
1596 | dependencies:
1597 | has "^1.0.3"
1598 |
1599 | is-extglob@^2.1.1:
1600 | version "2.1.1"
1601 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1602 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1603 |
1604 | is-fullwidth-code-point@^3.0.0:
1605 | version "3.0.0"
1606 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1607 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1608 |
1609 | is-generator-fn@^2.0.0:
1610 | version "2.1.0"
1611 | resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
1612 | integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
1613 |
1614 | is-glob@^4.0.0, is-glob@^4.0.3:
1615 | version "4.0.3"
1616 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1617 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1618 | dependencies:
1619 | is-extglob "^2.1.1"
1620 |
1621 | is-number@^7.0.0:
1622 | version "7.0.0"
1623 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1624 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1625 |
1626 | is-path-inside@^3.0.3:
1627 | version "3.0.3"
1628 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
1629 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
1630 |
1631 | is-plain-object@^5.0.0:
1632 | version "5.0.0"
1633 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
1634 | integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
1635 |
1636 | is-stream@^2.0.0:
1637 | version "2.0.1"
1638 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
1639 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
1640 |
1641 | isexe@^2.0.0:
1642 | version "2.0.0"
1643 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1644 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1645 |
1646 | istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
1647 | version "3.2.0"
1648 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
1649 | integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
1650 |
1651 | istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0:
1652 | version "5.2.0"
1653 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f"
1654 | integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==
1655 | dependencies:
1656 | "@babel/core" "^7.12.3"
1657 | "@babel/parser" "^7.14.7"
1658 | "@istanbuljs/schema" "^0.1.2"
1659 | istanbul-lib-coverage "^3.2.0"
1660 | semver "^6.3.0"
1661 |
1662 | istanbul-lib-report@^3.0.0:
1663 | version "3.0.0"
1664 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
1665 | integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
1666 | dependencies:
1667 | istanbul-lib-coverage "^3.0.0"
1668 | make-dir "^3.0.0"
1669 | supports-color "^7.1.0"
1670 |
1671 | istanbul-lib-source-maps@^4.0.0:
1672 | version "4.0.1"
1673 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
1674 | integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
1675 | dependencies:
1676 | debug "^4.1.1"
1677 | istanbul-lib-coverage "^3.0.0"
1678 | source-map "^0.6.1"
1679 |
1680 | istanbul-reports@^3.1.3:
1681 | version "3.1.5"
1682 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae"
1683 | integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==
1684 | dependencies:
1685 | html-escaper "^2.0.0"
1686 | istanbul-lib-report "^3.0.0"
1687 |
1688 | jest-changed-files@^28.1.3:
1689 | version "28.1.3"
1690 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831"
1691 | integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==
1692 | dependencies:
1693 | execa "^5.0.0"
1694 | p-limit "^3.1.0"
1695 |
1696 | jest-circus@^28.1.3:
1697 | version "28.1.3"
1698 | resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4"
1699 | integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==
1700 | dependencies:
1701 | "@jest/environment" "^28.1.3"
1702 | "@jest/expect" "^28.1.3"
1703 | "@jest/test-result" "^28.1.3"
1704 | "@jest/types" "^28.1.3"
1705 | "@types/node" "*"
1706 | chalk "^4.0.0"
1707 | co "^4.6.0"
1708 | dedent "^0.7.0"
1709 | is-generator-fn "^2.0.0"
1710 | jest-each "^28.1.3"
1711 | jest-matcher-utils "^28.1.3"
1712 | jest-message-util "^28.1.3"
1713 | jest-runtime "^28.1.3"
1714 | jest-snapshot "^28.1.3"
1715 | jest-util "^28.1.3"
1716 | p-limit "^3.1.0"
1717 | pretty-format "^28.1.3"
1718 | slash "^3.0.0"
1719 | stack-utils "^2.0.3"
1720 |
1721 | jest-cli@^28.1.3:
1722 | version "28.1.3"
1723 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2"
1724 | integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==
1725 | dependencies:
1726 | "@jest/core" "^28.1.3"
1727 | "@jest/test-result" "^28.1.3"
1728 | "@jest/types" "^28.1.3"
1729 | chalk "^4.0.0"
1730 | exit "^0.1.2"
1731 | graceful-fs "^4.2.9"
1732 | import-local "^3.0.2"
1733 | jest-config "^28.1.3"
1734 | jest-util "^28.1.3"
1735 | jest-validate "^28.1.3"
1736 | prompts "^2.0.1"
1737 | yargs "^17.3.1"
1738 |
1739 | jest-config@^28.1.3:
1740 | version "28.1.3"
1741 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60"
1742 | integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==
1743 | dependencies:
1744 | "@babel/core" "^7.11.6"
1745 | "@jest/test-sequencer" "^28.1.3"
1746 | "@jest/types" "^28.1.3"
1747 | babel-jest "^28.1.3"
1748 | chalk "^4.0.0"
1749 | ci-info "^3.2.0"
1750 | deepmerge "^4.2.2"
1751 | glob "^7.1.3"
1752 | graceful-fs "^4.2.9"
1753 | jest-circus "^28.1.3"
1754 | jest-environment-node "^28.1.3"
1755 | jest-get-type "^28.0.2"
1756 | jest-regex-util "^28.0.2"
1757 | jest-resolve "^28.1.3"
1758 | jest-runner "^28.1.3"
1759 | jest-util "^28.1.3"
1760 | jest-validate "^28.1.3"
1761 | micromatch "^4.0.4"
1762 | parse-json "^5.2.0"
1763 | pretty-format "^28.1.3"
1764 | slash "^3.0.0"
1765 | strip-json-comments "^3.1.1"
1766 |
1767 | jest-diff@^28.1.3:
1768 | version "28.1.3"
1769 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f"
1770 | integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==
1771 | dependencies:
1772 | chalk "^4.0.0"
1773 | diff-sequences "^28.1.1"
1774 | jest-get-type "^28.0.2"
1775 | pretty-format "^28.1.3"
1776 |
1777 | jest-docblock@^28.1.1:
1778 | version "28.1.1"
1779 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8"
1780 | integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==
1781 | dependencies:
1782 | detect-newline "^3.0.0"
1783 |
1784 | jest-each@^28.1.3:
1785 | version "28.1.3"
1786 | resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81"
1787 | integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==
1788 | dependencies:
1789 | "@jest/types" "^28.1.3"
1790 | chalk "^4.0.0"
1791 | jest-get-type "^28.0.2"
1792 | jest-util "^28.1.3"
1793 | pretty-format "^28.1.3"
1794 |
1795 | jest-environment-node@^28.1.3:
1796 | version "28.1.3"
1797 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5"
1798 | integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==
1799 | dependencies:
1800 | "@jest/environment" "^28.1.3"
1801 | "@jest/fake-timers" "^28.1.3"
1802 | "@jest/types" "^28.1.3"
1803 | "@types/node" "*"
1804 | jest-mock "^28.1.3"
1805 | jest-util "^28.1.3"
1806 |
1807 | jest-get-type@^28.0.2:
1808 | version "28.0.2"
1809 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203"
1810 | integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==
1811 |
1812 | jest-haste-map@^28.1.3:
1813 | version "28.1.3"
1814 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b"
1815 | integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==
1816 | dependencies:
1817 | "@jest/types" "^28.1.3"
1818 | "@types/graceful-fs" "^4.1.3"
1819 | "@types/node" "*"
1820 | anymatch "^3.0.3"
1821 | fb-watchman "^2.0.0"
1822 | graceful-fs "^4.2.9"
1823 | jest-regex-util "^28.0.2"
1824 | jest-util "^28.1.3"
1825 | jest-worker "^28.1.3"
1826 | micromatch "^4.0.4"
1827 | walker "^1.0.8"
1828 | optionalDependencies:
1829 | fsevents "^2.3.2"
1830 |
1831 | jest-leak-detector@^28.1.3:
1832 | version "28.1.3"
1833 | resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d"
1834 | integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==
1835 | dependencies:
1836 | jest-get-type "^28.0.2"
1837 | pretty-format "^28.1.3"
1838 |
1839 | jest-matcher-utils@^28.1.3:
1840 | version "28.1.3"
1841 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e"
1842 | integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==
1843 | dependencies:
1844 | chalk "^4.0.0"
1845 | jest-diff "^28.1.3"
1846 | jest-get-type "^28.0.2"
1847 | pretty-format "^28.1.3"
1848 |
1849 | jest-message-util@^28.1.3:
1850 | version "28.1.3"
1851 | resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d"
1852 | integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==
1853 | dependencies:
1854 | "@babel/code-frame" "^7.12.13"
1855 | "@jest/types" "^28.1.3"
1856 | "@types/stack-utils" "^2.0.0"
1857 | chalk "^4.0.0"
1858 | graceful-fs "^4.2.9"
1859 | micromatch "^4.0.4"
1860 | pretty-format "^28.1.3"
1861 | slash "^3.0.0"
1862 | stack-utils "^2.0.3"
1863 |
1864 | jest-mock@^28.1.3:
1865 | version "28.1.3"
1866 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da"
1867 | integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==
1868 | dependencies:
1869 | "@jest/types" "^28.1.3"
1870 | "@types/node" "*"
1871 |
1872 | jest-pnp-resolver@^1.2.2:
1873 | version "1.2.2"
1874 | resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
1875 | integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
1876 |
1877 | jest-regex-util@^28.0.2:
1878 | version "28.0.2"
1879 | resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead"
1880 | integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==
1881 |
1882 | jest-resolve-dependencies@^28.1.3:
1883 | version "28.1.3"
1884 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66"
1885 | integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==
1886 | dependencies:
1887 | jest-regex-util "^28.0.2"
1888 | jest-snapshot "^28.1.3"
1889 |
1890 | jest-resolve@^28.1.3:
1891 | version "28.1.3"
1892 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8"
1893 | integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==
1894 | dependencies:
1895 | chalk "^4.0.0"
1896 | graceful-fs "^4.2.9"
1897 | jest-haste-map "^28.1.3"
1898 | jest-pnp-resolver "^1.2.2"
1899 | jest-util "^28.1.3"
1900 | jest-validate "^28.1.3"
1901 | resolve "^1.20.0"
1902 | resolve.exports "^1.1.0"
1903 | slash "^3.0.0"
1904 |
1905 | jest-runner@^28.1.3:
1906 | version "28.1.3"
1907 | resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1"
1908 | integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==
1909 | dependencies:
1910 | "@jest/console" "^28.1.3"
1911 | "@jest/environment" "^28.1.3"
1912 | "@jest/test-result" "^28.1.3"
1913 | "@jest/transform" "^28.1.3"
1914 | "@jest/types" "^28.1.3"
1915 | "@types/node" "*"
1916 | chalk "^4.0.0"
1917 | emittery "^0.10.2"
1918 | graceful-fs "^4.2.9"
1919 | jest-docblock "^28.1.1"
1920 | jest-environment-node "^28.1.3"
1921 | jest-haste-map "^28.1.3"
1922 | jest-leak-detector "^28.1.3"
1923 | jest-message-util "^28.1.3"
1924 | jest-resolve "^28.1.3"
1925 | jest-runtime "^28.1.3"
1926 | jest-util "^28.1.3"
1927 | jest-watcher "^28.1.3"
1928 | jest-worker "^28.1.3"
1929 | p-limit "^3.1.0"
1930 | source-map-support "0.5.13"
1931 |
1932 | jest-runtime@^28.1.3:
1933 | version "28.1.3"
1934 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f"
1935 | integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==
1936 | dependencies:
1937 | "@jest/environment" "^28.1.3"
1938 | "@jest/fake-timers" "^28.1.3"
1939 | "@jest/globals" "^28.1.3"
1940 | "@jest/source-map" "^28.1.2"
1941 | "@jest/test-result" "^28.1.3"
1942 | "@jest/transform" "^28.1.3"
1943 | "@jest/types" "^28.1.3"
1944 | chalk "^4.0.0"
1945 | cjs-module-lexer "^1.0.0"
1946 | collect-v8-coverage "^1.0.0"
1947 | execa "^5.0.0"
1948 | glob "^7.1.3"
1949 | graceful-fs "^4.2.9"
1950 | jest-haste-map "^28.1.3"
1951 | jest-message-util "^28.1.3"
1952 | jest-mock "^28.1.3"
1953 | jest-regex-util "^28.0.2"
1954 | jest-resolve "^28.1.3"
1955 | jest-snapshot "^28.1.3"
1956 | jest-util "^28.1.3"
1957 | slash "^3.0.0"
1958 | strip-bom "^4.0.0"
1959 |
1960 | jest-snapshot@^28.1.3:
1961 | version "28.1.3"
1962 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668"
1963 | integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==
1964 | dependencies:
1965 | "@babel/core" "^7.11.6"
1966 | "@babel/generator" "^7.7.2"
1967 | "@babel/plugin-syntax-typescript" "^7.7.2"
1968 | "@babel/traverse" "^7.7.2"
1969 | "@babel/types" "^7.3.3"
1970 | "@jest/expect-utils" "^28.1.3"
1971 | "@jest/transform" "^28.1.3"
1972 | "@jest/types" "^28.1.3"
1973 | "@types/babel__traverse" "^7.0.6"
1974 | "@types/prettier" "^2.1.5"
1975 | babel-preset-current-node-syntax "^1.0.0"
1976 | chalk "^4.0.0"
1977 | expect "^28.1.3"
1978 | graceful-fs "^4.2.9"
1979 | jest-diff "^28.1.3"
1980 | jest-get-type "^28.0.2"
1981 | jest-haste-map "^28.1.3"
1982 | jest-matcher-utils "^28.1.3"
1983 | jest-message-util "^28.1.3"
1984 | jest-util "^28.1.3"
1985 | natural-compare "^1.4.0"
1986 | pretty-format "^28.1.3"
1987 | semver "^7.3.5"
1988 |
1989 | jest-util@^28.0.0, jest-util@^28.1.3:
1990 | version "28.1.3"
1991 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0"
1992 | integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==
1993 | dependencies:
1994 | "@jest/types" "^28.1.3"
1995 | "@types/node" "*"
1996 | chalk "^4.0.0"
1997 | ci-info "^3.2.0"
1998 | graceful-fs "^4.2.9"
1999 | picomatch "^2.2.3"
2000 |
2001 | jest-validate@^28.1.3:
2002 | version "28.1.3"
2003 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df"
2004 | integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==
2005 | dependencies:
2006 | "@jest/types" "^28.1.3"
2007 | camelcase "^6.2.0"
2008 | chalk "^4.0.0"
2009 | jest-get-type "^28.0.2"
2010 | leven "^3.1.0"
2011 | pretty-format "^28.1.3"
2012 |
2013 | jest-watcher@^28.1.3:
2014 | version "28.1.3"
2015 | resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4"
2016 | integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==
2017 | dependencies:
2018 | "@jest/test-result" "^28.1.3"
2019 | "@jest/types" "^28.1.3"
2020 | "@types/node" "*"
2021 | ansi-escapes "^4.2.1"
2022 | chalk "^4.0.0"
2023 | emittery "^0.10.2"
2024 | jest-util "^28.1.3"
2025 | string-length "^4.0.1"
2026 |
2027 | jest-worker@^28.1.3:
2028 | version "28.1.3"
2029 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98"
2030 | integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==
2031 | dependencies:
2032 | "@types/node" "*"
2033 | merge-stream "^2.0.0"
2034 | supports-color "^8.0.0"
2035 |
2036 | jest@^28.1.3:
2037 | version "28.1.3"
2038 | resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b"
2039 | integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==
2040 | dependencies:
2041 | "@jest/core" "^28.1.3"
2042 | "@jest/types" "^28.1.3"
2043 | import-local "^3.0.2"
2044 | jest-cli "^28.1.3"
2045 |
2046 | js-sdsl@^4.1.4:
2047 | version "4.2.0"
2048 | resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0"
2049 | integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==
2050 |
2051 | js-tokens@^4.0.0:
2052 | version "4.0.0"
2053 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
2054 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
2055 |
2056 | js-yaml@^3.13.1:
2057 | version "3.14.1"
2058 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
2059 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
2060 | dependencies:
2061 | argparse "^1.0.7"
2062 | esprima "^4.0.0"
2063 |
2064 | js-yaml@^4.1.0:
2065 | version "4.1.0"
2066 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
2067 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
2068 | dependencies:
2069 | argparse "^2.0.1"
2070 |
2071 | jsesc@^2.5.1:
2072 | version "2.5.2"
2073 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
2074 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
2075 |
2076 | json-parse-even-better-errors@^2.3.0:
2077 | version "2.3.1"
2078 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
2079 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
2080 |
2081 | json-schema-traverse@^0.4.1:
2082 | version "0.4.1"
2083 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
2084 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
2085 |
2086 | json-schema-traverse@^1.0.0:
2087 | version "1.0.0"
2088 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
2089 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
2090 |
2091 | json-stable-stringify-without-jsonify@^1.0.1:
2092 | version "1.0.1"
2093 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
2094 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
2095 |
2096 | json5@^2.2.1:
2097 | version "2.2.1"
2098 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
2099 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
2100 |
2101 | json5@^2.2.3:
2102 | version "2.2.3"
2103 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
2104 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
2105 |
2106 | kleur@^3.0.3:
2107 | version "3.0.3"
2108 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
2109 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
2110 |
2111 | leven@^3.1.0:
2112 | version "3.1.0"
2113 | resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
2114 | integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
2115 |
2116 | levn@^0.4.1:
2117 | version "0.4.1"
2118 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
2119 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
2120 | dependencies:
2121 | prelude-ls "^1.2.1"
2122 | type-check "~0.4.0"
2123 |
2124 | lines-and-columns@^1.1.6:
2125 | version "1.2.4"
2126 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
2127 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
2128 |
2129 | locate-path@^5.0.0:
2130 | version "5.0.0"
2131 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
2132 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
2133 | dependencies:
2134 | p-locate "^4.1.0"
2135 |
2136 | locate-path@^6.0.0:
2137 | version "6.0.0"
2138 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
2139 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
2140 | dependencies:
2141 | p-locate "^5.0.0"
2142 |
2143 | lodash.memoize@4.x:
2144 | version "4.1.2"
2145 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
2146 | integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
2147 |
2148 | lodash.merge@^4.6.2:
2149 | version "4.6.2"
2150 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
2151 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
2152 |
2153 | lru-cache@^6.0.0:
2154 | version "6.0.0"
2155 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
2156 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
2157 | dependencies:
2158 | yallist "^4.0.0"
2159 |
2160 | make-dir@^3.0.0:
2161 | version "3.1.0"
2162 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
2163 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
2164 | dependencies:
2165 | semver "^6.0.0"
2166 |
2167 | make-error@1.x:
2168 | version "1.3.6"
2169 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
2170 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
2171 |
2172 | makeerror@1.0.12:
2173 | version "1.0.12"
2174 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
2175 | integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
2176 | dependencies:
2177 | tmpl "1.0.5"
2178 |
2179 | merge-stream@^2.0.0:
2180 | version "2.0.0"
2181 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
2182 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
2183 |
2184 | micromatch@^4.0.4:
2185 | version "4.0.5"
2186 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
2187 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
2188 | dependencies:
2189 | braces "^3.0.2"
2190 | picomatch "^2.3.1"
2191 |
2192 | mimic-fn@^2.1.0:
2193 | version "2.1.0"
2194 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
2195 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
2196 |
2197 | minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
2198 | version "3.1.2"
2199 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
2200 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
2201 | dependencies:
2202 | brace-expansion "^1.1.7"
2203 |
2204 | ms@2.1.2:
2205 | version "2.1.2"
2206 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
2207 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
2208 |
2209 | natural-compare@^1.4.0:
2210 | version "1.4.0"
2211 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
2212 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
2213 |
2214 | node-fetch@^2.6.7:
2215 | version "2.6.7"
2216 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
2217 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
2218 | dependencies:
2219 | whatwg-url "^5.0.0"
2220 |
2221 | node-int64@^0.4.0:
2222 | version "0.4.0"
2223 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
2224 | integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
2225 |
2226 | node-releases@^2.0.6:
2227 | version "2.0.6"
2228 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
2229 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
2230 |
2231 | normalize-path@^3.0.0:
2232 | version "3.0.0"
2233 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
2234 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
2235 |
2236 | npm-run-path@^4.0.1:
2237 | version "4.0.1"
2238 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
2239 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
2240 | dependencies:
2241 | path-key "^3.0.0"
2242 |
2243 | once@^1.3.0, once@^1.4.0:
2244 | version "1.4.0"
2245 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2246 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
2247 | dependencies:
2248 | wrappy "1"
2249 |
2250 | onetime@^5.1.2:
2251 | version "5.1.2"
2252 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
2253 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
2254 | dependencies:
2255 | mimic-fn "^2.1.0"
2256 |
2257 | optionator@^0.9.1:
2258 | version "0.9.1"
2259 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
2260 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
2261 | dependencies:
2262 | deep-is "^0.1.3"
2263 | fast-levenshtein "^2.0.6"
2264 | levn "^0.4.1"
2265 | prelude-ls "^1.2.1"
2266 | type-check "^0.4.0"
2267 | word-wrap "^1.2.3"
2268 |
2269 | p-limit@^2.2.0:
2270 | version "2.3.0"
2271 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
2272 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
2273 | dependencies:
2274 | p-try "^2.0.0"
2275 |
2276 | p-limit@^3.0.2, p-limit@^3.1.0:
2277 | version "3.1.0"
2278 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
2279 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
2280 | dependencies:
2281 | yocto-queue "^0.1.0"
2282 |
2283 | p-locate@^4.1.0:
2284 | version "4.1.0"
2285 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
2286 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
2287 | dependencies:
2288 | p-limit "^2.2.0"
2289 |
2290 | p-locate@^5.0.0:
2291 | version "5.0.0"
2292 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
2293 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
2294 | dependencies:
2295 | p-limit "^3.0.2"
2296 |
2297 | p-try@^2.0.0:
2298 | version "2.2.0"
2299 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
2300 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
2301 |
2302 | parent-module@^1.0.0:
2303 | version "1.0.1"
2304 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
2305 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
2306 | dependencies:
2307 | callsites "^3.0.0"
2308 |
2309 | parse-json@^5.2.0:
2310 | version "5.2.0"
2311 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
2312 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
2313 | dependencies:
2314 | "@babel/code-frame" "^7.0.0"
2315 | error-ex "^1.3.1"
2316 | json-parse-even-better-errors "^2.3.0"
2317 | lines-and-columns "^1.1.6"
2318 |
2319 | path-exists@^4.0.0:
2320 | version "4.0.0"
2321 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
2322 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
2323 |
2324 | path-is-absolute@^1.0.0:
2325 | version "1.0.1"
2326 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2327 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
2328 |
2329 | path-key@^3.0.0, path-key@^3.1.0:
2330 | version "3.1.1"
2331 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
2332 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
2333 |
2334 | path-parse@^1.0.7:
2335 | version "1.0.7"
2336 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
2337 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
2338 |
2339 | picocolors@^1.0.0:
2340 | version "1.0.0"
2341 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
2342 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
2343 |
2344 | picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
2345 | version "2.3.1"
2346 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
2347 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
2348 |
2349 | pirates@^4.0.4:
2350 | version "4.0.5"
2351 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
2352 | integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
2353 |
2354 | pkg-dir@^4.2.0:
2355 | version "4.2.0"
2356 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
2357 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
2358 | dependencies:
2359 | find-up "^4.0.0"
2360 |
2361 | prelude-ls@^1.2.1:
2362 | version "1.2.1"
2363 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
2364 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
2365 |
2366 | prettier@2.8.3:
2367 | version "2.8.3"
2368 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632"
2369 | integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==
2370 |
2371 | pretty-format@^28.1.3:
2372 | version "28.1.3"
2373 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5"
2374 | integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==
2375 | dependencies:
2376 | "@jest/schemas" "^28.1.3"
2377 | ansi-regex "^5.0.1"
2378 | ansi-styles "^5.0.0"
2379 | react-is "^18.0.0"
2380 |
2381 | prompts@^2.0.1:
2382 | version "2.4.2"
2383 | resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
2384 | integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
2385 | dependencies:
2386 | kleur "^3.0.3"
2387 | sisteransi "^1.0.5"
2388 |
2389 | punycode@^2.1.0:
2390 | version "2.1.1"
2391 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
2392 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
2393 |
2394 | queue-microtask@^1.2.2:
2395 | version "1.2.3"
2396 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
2397 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
2398 |
2399 | react-is@^18.0.0:
2400 | version "18.2.0"
2401 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
2402 | integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
2403 |
2404 | regexpp@^3.2.0:
2405 | version "3.2.0"
2406 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
2407 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
2408 |
2409 | require-directory@^2.1.1:
2410 | version "2.1.1"
2411 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
2412 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
2413 |
2414 | require-from-string@^2.0.2:
2415 | version "2.0.2"
2416 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
2417 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
2418 |
2419 | resolve-cwd@^3.0.0:
2420 | version "3.0.0"
2421 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
2422 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
2423 | dependencies:
2424 | resolve-from "^5.0.0"
2425 |
2426 | resolve-from@^4.0.0:
2427 | version "4.0.0"
2428 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
2429 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
2430 |
2431 | resolve-from@^5.0.0:
2432 | version "5.0.0"
2433 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
2434 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
2435 |
2436 | resolve.exports@^1.1.0:
2437 | version "1.1.0"
2438 | resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9"
2439 | integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==
2440 |
2441 | resolve@^1.20.0:
2442 | version "1.22.1"
2443 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
2444 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
2445 | dependencies:
2446 | is-core-module "^2.9.0"
2447 | path-parse "^1.0.7"
2448 | supports-preserve-symlinks-flag "^1.0.0"
2449 |
2450 | reusify@^1.0.4:
2451 | version "1.0.4"
2452 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
2453 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
2454 |
2455 | rimraf@^3.0.0, rimraf@^3.0.2:
2456 | version "3.0.2"
2457 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
2458 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
2459 | dependencies:
2460 | glob "^7.1.3"
2461 |
2462 | run-parallel@^1.1.9:
2463 | version "1.2.0"
2464 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
2465 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
2466 | dependencies:
2467 | queue-microtask "^1.2.2"
2468 |
2469 | safe-buffer@~5.1.1:
2470 | version "5.1.2"
2471 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
2472 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
2473 |
2474 | semver@7.x, semver@^7.3.5:
2475 | version "7.3.7"
2476 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
2477 | integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
2478 | dependencies:
2479 | lru-cache "^6.0.0"
2480 |
2481 | semver@^6.0.0, semver@^6.3.0:
2482 | version "6.3.0"
2483 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
2484 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
2485 |
2486 | shebang-command@^2.0.0:
2487 | version "2.0.0"
2488 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
2489 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
2490 | dependencies:
2491 | shebang-regex "^3.0.0"
2492 |
2493 | shebang-regex@^3.0.0:
2494 | version "3.0.0"
2495 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
2496 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
2497 |
2498 | signal-exit@^3.0.3, signal-exit@^3.0.7:
2499 | version "3.0.7"
2500 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
2501 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
2502 |
2503 | sisteransi@^1.0.5:
2504 | version "1.0.5"
2505 | resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
2506 | integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
2507 |
2508 | slash@^3.0.0:
2509 | version "3.0.0"
2510 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
2511 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
2512 |
2513 | source-map-support@0.5.13:
2514 | version "0.5.13"
2515 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
2516 | integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
2517 | dependencies:
2518 | buffer-from "^1.0.0"
2519 | source-map "^0.6.0"
2520 |
2521 | source-map@^0.6.0, source-map@^0.6.1:
2522 | version "0.6.1"
2523 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2524 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
2525 |
2526 | sprintf-js@~1.0.2:
2527 | version "1.0.3"
2528 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2529 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
2530 |
2531 | stack-utils@^2.0.3:
2532 | version "2.0.5"
2533 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5"
2534 | integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==
2535 | dependencies:
2536 | escape-string-regexp "^2.0.0"
2537 |
2538 | string-length@^4.0.1:
2539 | version "4.0.2"
2540 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
2541 | integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
2542 | dependencies:
2543 | char-regex "^1.0.2"
2544 | strip-ansi "^6.0.0"
2545 |
2546 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
2547 | version "4.2.3"
2548 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
2549 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
2550 | dependencies:
2551 | emoji-regex "^8.0.0"
2552 | is-fullwidth-code-point "^3.0.0"
2553 | strip-ansi "^6.0.1"
2554 |
2555 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
2556 | version "6.0.1"
2557 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
2558 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
2559 | dependencies:
2560 | ansi-regex "^5.0.1"
2561 |
2562 | strip-bom@^4.0.0:
2563 | version "4.0.0"
2564 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
2565 | integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
2566 |
2567 | strip-final-newline@^2.0.0:
2568 | version "2.0.0"
2569 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
2570 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
2571 |
2572 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
2573 | version "3.1.1"
2574 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
2575 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
2576 |
2577 | supports-color@^5.3.0:
2578 | version "5.5.0"
2579 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
2580 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
2581 | dependencies:
2582 | has-flag "^3.0.0"
2583 |
2584 | supports-color@^7.0.0, supports-color@^7.1.0:
2585 | version "7.2.0"
2586 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
2587 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
2588 | dependencies:
2589 | has-flag "^4.0.0"
2590 |
2591 | supports-color@^8.0.0:
2592 | version "8.1.1"
2593 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
2594 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
2595 | dependencies:
2596 | has-flag "^4.0.0"
2597 |
2598 | supports-hyperlinks@^2.0.0:
2599 | version "2.2.0"
2600 | resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
2601 | integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
2602 | dependencies:
2603 | has-flag "^4.0.0"
2604 | supports-color "^7.0.0"
2605 |
2606 | supports-preserve-symlinks-flag@^1.0.0:
2607 | version "1.0.0"
2608 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
2609 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
2610 |
2611 | terminal-link@^2.0.0:
2612 | version "2.1.1"
2613 | resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
2614 | integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
2615 | dependencies:
2616 | ansi-escapes "^4.2.1"
2617 | supports-hyperlinks "^2.0.0"
2618 |
2619 | test-exclude@^6.0.0:
2620 | version "6.0.0"
2621 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
2622 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
2623 | dependencies:
2624 | "@istanbuljs/schema" "^0.1.2"
2625 | glob "^7.1.4"
2626 | minimatch "^3.0.4"
2627 |
2628 | text-table@^0.2.0:
2629 | version "0.2.0"
2630 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2631 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
2632 |
2633 | tmpl@1.0.5:
2634 | version "1.0.5"
2635 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
2636 | integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
2637 |
2638 | to-fast-properties@^2.0.0:
2639 | version "2.0.0"
2640 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
2641 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
2642 |
2643 | to-regex-range@^5.0.1:
2644 | version "5.0.1"
2645 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
2646 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
2647 | dependencies:
2648 | is-number "^7.0.0"
2649 |
2650 | tr46@~0.0.3:
2651 | version "0.0.3"
2652 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
2653 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
2654 |
2655 | ts-jest@^28.0.8:
2656 | version "28.0.8"
2657 | resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.8.tgz#cd204b8e7a2f78da32cf6c95c9a6165c5b99cc73"
2658 | integrity sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==
2659 | dependencies:
2660 | bs-logger "0.x"
2661 | fast-json-stable-stringify "2.x"
2662 | jest-util "^28.0.0"
2663 | json5 "^2.2.1"
2664 | lodash.memoize "4.x"
2665 | make-error "1.x"
2666 | semver "7.x"
2667 | yargs-parser "^21.0.1"
2668 |
2669 | tunnel@^0.0.6:
2670 | version "0.0.6"
2671 | resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
2672 | integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
2673 |
2674 | type-check@^0.4.0, type-check@~0.4.0:
2675 | version "0.4.0"
2676 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
2677 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
2678 | dependencies:
2679 | prelude-ls "^1.2.1"
2680 |
2681 | type-detect@4.0.8:
2682 | version "4.0.8"
2683 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
2684 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
2685 |
2686 | type-fest@^0.20.2:
2687 | version "0.20.2"
2688 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
2689 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
2690 |
2691 | type-fest@^0.21.3:
2692 | version "0.21.3"
2693 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
2694 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
2695 |
2696 | typescript@^4.9.4:
2697 | version "4.9.4"
2698 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
2699 | integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==
2700 |
2701 | universal-user-agent@^6.0.0:
2702 | version "6.0.0"
2703 | resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
2704 | integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
2705 |
2706 | update-browserslist-db@^1.0.5:
2707 | version "1.0.5"
2708 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
2709 | integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
2710 | dependencies:
2711 | escalade "^3.1.1"
2712 | picocolors "^1.0.0"
2713 |
2714 | uri-js@^4.2.2:
2715 | version "4.4.1"
2716 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
2717 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
2718 | dependencies:
2719 | punycode "^2.1.0"
2720 |
2721 | uuid@^8.3.2:
2722 | version "8.3.2"
2723 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
2724 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
2725 |
2726 | v8-to-istanbul@^9.0.1:
2727 | version "9.0.1"
2728 | resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4"
2729 | integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==
2730 | dependencies:
2731 | "@jridgewell/trace-mapping" "^0.3.12"
2732 | "@types/istanbul-lib-coverage" "^2.0.1"
2733 | convert-source-map "^1.6.0"
2734 |
2735 | walker@^1.0.8:
2736 | version "1.0.8"
2737 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
2738 | integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
2739 | dependencies:
2740 | makeerror "1.0.12"
2741 |
2742 | webidl-conversions@^3.0.0:
2743 | version "3.0.1"
2744 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
2745 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
2746 |
2747 | whatwg-url@^5.0.0:
2748 | version "5.0.0"
2749 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
2750 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
2751 | dependencies:
2752 | tr46 "~0.0.3"
2753 | webidl-conversions "^3.0.0"
2754 |
2755 | which@^2.0.1:
2756 | version "2.0.2"
2757 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
2758 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
2759 | dependencies:
2760 | isexe "^2.0.0"
2761 |
2762 | word-wrap@^1.2.3:
2763 | version "1.2.3"
2764 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
2765 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
2766 |
2767 | wrap-ansi@^7.0.0:
2768 | version "7.0.0"
2769 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
2770 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
2771 | dependencies:
2772 | ansi-styles "^4.0.0"
2773 | string-width "^4.1.0"
2774 | strip-ansi "^6.0.0"
2775 |
2776 | wrappy@1:
2777 | version "1.0.2"
2778 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2779 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
2780 |
2781 | write-file-atomic@^4.0.1:
2782 | version "4.0.2"
2783 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
2784 | integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
2785 | dependencies:
2786 | imurmurhash "^0.1.4"
2787 | signal-exit "^3.0.7"
2788 |
2789 | y18n@^5.0.5:
2790 | version "5.0.8"
2791 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
2792 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
2793 |
2794 | yallist@^4.0.0:
2795 | version "4.0.0"
2796 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
2797 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
2798 |
2799 | yargs-parser@^21.0.0, yargs-parser@^21.0.1:
2800 | version "21.1.1"
2801 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
2802 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
2803 |
2804 | yargs@^17.3.1:
2805 | version "17.5.1"
2806 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e"
2807 | integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==
2808 | dependencies:
2809 | cliui "^7.0.2"
2810 | escalade "^3.1.1"
2811 | get-caller-file "^2.0.5"
2812 | require-directory "^2.1.1"
2813 | string-width "^4.2.3"
2814 | y18n "^5.0.5"
2815 | yargs-parser "^21.0.0"
2816 |
2817 | yocto-queue@^0.1.0:
2818 | version "0.1.0"
2819 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
2820 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
2821 |
--------------------------------------------------------------------------------