diff --git a/.aliases.zsh b/.aliases.zsh deleted file mode 100644 index 3925ad5..0000000 --- a/.aliases.zsh +++ /dev/null @@ -1,3 +0,0 @@ -alias bpub='yarn build && npx baldrick-dev-ts release ci' -alias gcf='git add . && git commit -F .message && rm .message' -alias yig='yarn global add $PWD' \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index abe6628..529c3a6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -32,6 +32,7 @@ body: label: On which platform(s) do you have the issue ? multiple: true options: + - Any - Node.js - Typescript node - Firefox @@ -47,5 +48,5 @@ body: attributes: label: Relevant log output description: Please copy and paste any relevant log output. This will be - automatically formatted into code, so no need for backticks. + automatically formatted into code, so no need for back ticks. render: shell diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a2c296f..e0481f4 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,15 +4,16 @@ Fixes: # (issue) ## Code check -- [ ] `yarn ready` does not show any concerning issues -- [ ] the project can be built -- [ ] the documentation has been updated -- [ ] the version has been updated in `package.json` +- [x] `npx baldrick-broth@latest release ready` does not show any + concerning issues ## Type of change - [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] Safe refactoring (non-breaking change which improves the code or + documentation) + - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing @@ -24,10 +25,12 @@ Fixes: # (issue) - [ ] improve consistency - [ ] improve security - [ ] improve documentation +- [ ] improve code - [ ] reduce risk for unfamiliar tasks - [ ] automate repetitive tasks ## How Has This Been Tested -- [ ] Unit tests +- [x] Unit tests +- [ ] Automated browser tests - [ ] Manual tests diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a319865..791ceb1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,25 +8,41 @@ jobs: strategy: matrix: node: - - 14.x - - 16.x + - 18.x os: - - ubuntu-latest - macOS-latest + - ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Use Node ${{ matrix.node }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} - name: Installation run: yarn install - - name: Static code analysis - run: yarn lint:ci - - name: Test - run: yarn test:ci + - name: Create temp folder + run: mkdir temp + - name: Run zest unit tests + run: | + if [ -d "spec" ]; then + npx npx baldrick-broth@latest test spec + else + echo "No zest files. Skipping" + fi + - name: Run pest integration tests + run: | + if [ -d "pest-spec" ]; then + npx npx baldrick-broth@latest test pest + else + echo "No pest files. Skipping" + fi - name: Build run: yarn build - - name: Version - run: yarn release:check + - name: Test Report + uses: dorny/test-reporter@v1 + if: success() || failure() + with: + name: Pest + path: report/*.pest.mocha.json + reporter: mocha-json diff --git a/.gitignore b/.gitignore index 8caf5d5..275cee2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ node_modules/ dist/ report/ -.message \ No newline at end of file +temp/ +.message +.todo.yaml \ No newline at end of file diff --git a/.remarkrc.yml b/.remarkrc.yml new file mode 100644 index 0000000..f2b131b --- /dev/null +++ b/.remarkrc.yml @@ -0,0 +1,6 @@ +settings: + bullet: "*" +plugins: + - remark-preset-lint-consistent + - remark-preset-lint-recommended + - remark-preset-lint-markdown-style-guide diff --git a/.vscode/baldrick.code-snippets b/.vscode/baldrick.code-snippets index b5b78e8..b7352a9 100644 --- a/.vscode/baldrick.code-snippets +++ b/.vscode/baldrick.code-snippets @@ -21,9 +21,9 @@ "scope": "javascript,typescript", "prefix": "jest-regression-inline", "body": [ - "import { $1 } from '../src/$TM_FILENAME_BASE';", + "import { $1 } from '../src/${TM_FILENAME_BASE/.test//}';", "", - "describe('$TM_FILENAME_BASE', () => {", + "describe('${TM_FILENAME_BASE/.test//}', () => {", " it('should provide', () => {", " const opts = {};", " const actual = $1(opts);", @@ -48,5 +48,59 @@ " JSON.stringify(value, null, 2);" ], "description": "stringify an object" + }, + "error-message-id": { + "scope": "javascript,typescript", + "prefix": "error-message-id", + "body": [ + "($RANDOM)" + ], + "description": "Generate an error message id" + }, + "add decision": { + "scope": "markdown,md", + "prefix": "add decision", + "body": [ + "## Title Fixme", + "", + "* MUST-HAVE.", + "* Created: ${CURRENT_MONTH_NAME} ${CURRENT_YEAR}", + "", + "### Context and Problem Statement", + "", + "> Fixme", + "", + "### Decision Drivers", + "", + "* Fixme", + "", + "### Considered Options", + "", + "* Fixme", + "", + "### Decision Outcome", + "", + "Chosen option: Fixme", + "", + "#### Positive Consequences", + "", + "* Fixme", + "", + "#### Negative Consequences", + "", + "* Fixme", + "", + "### Pros and Cons of the Options", + "", + "#### Option title fixme", + "", + "Description fixme", + "", + "* Pros: ", + " * Fixme", + "* Cons:", + " * Fixme" + ], + "description": "Adds architecture decision record" } } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a6ecf0f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "makefile.extensionOutputFolder": "./.vscode", + "yaml.schemas": { + "./script/schema/project.schema.json": "script/data/project.yaml", + "https://raw.githubusercontent.com/flarebyte/baldrick-reserve/main/reserve-schema/ts-broth.schema.json": "baldrick-broth.yaml" + } +} \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 36cf394..aff488f 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,12 +60,12 @@ project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at -[Flarebyte.com](https://github.com/flarebyte). The project team will review -and investigate all complaints, and will respond in a way that it deems -appropriate to the circumstances. The project team is obligated to maintain -confidentiality with regard to the reporter of an incident. Further details -of specific enforcement policies may be posted separately. +reported by contacting the project team at [](https://github.com/). The +project team will review and investigate all complaints, and will respond in +a way that it deems appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an +incident. Further details of specific enforcement policies may be posted +separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other diff --git a/CODE_VOCABULARY.md b/CODE_VOCABULARY.md index d4208e6..7bad337 100644 --- a/CODE_VOCABULARY.md +++ b/CODE_VOCABULARY.md @@ -2,13 +2,11 @@ > Overview of the code base vocabulary for baldrick-doc-ts -This document has been generated automatically by -[baldrick-doc-ts](https://github.com/flarebyte/baldrick-doc-ts) +This document has been generated automatically by [baldrick-doc-ts](https://github.com/flarebyte/baldrick-doc-ts) ## Code base vocabulary Table of vocabulary found in the code base - | Identifier | Word count | Filename | | --------------------------------- | ---------- | ---------------------- | | run client | 2 | client.ts | @@ -66,6 +64,7 @@ Table of vocabulary found in the code base | parse markdown | 2 | markdown.ts | | section to string | 3 | markdown.ts | | markdown to string | 3 | markdown.ts | +| supported feature | 2 | model.ts | | generate typedoc action opts | 4 | model.ts | | parse action opts | 3 | model.ts | | generate typedoc raw opts | 4 | model.ts | @@ -75,14 +74,13 @@ Table of vocabulary found in the code base | md section | 2 | model.ts | | md document | 2 | model.ts | | cmd option | 2 | model.ts | -| term formatter params | 3 | model.ts | -| err term formatter params | 4 | model.ts | -| runner context | 2 | model.ts | -| supported feature | 2 | model.ts | | term formatter kind | 3 | model.ts | | term formatter format | 3 | model.ts | +| term formatter params | 3 | model.ts | +| err term formatter params | 4 | model.ts | | term formatter | 2 | model.ts | | err term formatter | 3 | model.ts | +| runner context | 2 | model.ts | | generate typedoc action | 3 | model.ts | | parse action | 2 | model.ts | | create doc dir | 3 | parse-action.ts | @@ -101,7 +99,7 @@ Table of vocabulary found in the code base | project vocabulary | 2 | parser-model.ts | | vocabulary ngram | 2 | parser-model.ts | | project ngram | 2 | parser-model.ts | -| simplify obj | 2 | term-formatter.ts | +| simplify object | 2 | term-formatter.ts | | simplify json | 2 | term-formatter.ts | | to jsonish | 2 | term-formatter.ts | | basic formatter | 2 | term-formatter.ts | @@ -131,7 +129,6 @@ Table of vocabulary found in the code base ## Popularity of sequence of words Table showing the popularity of some n-gram in the code base - | n-gram | Frequency | | ------------ | --------- | | to | 30 | @@ -230,4 +227,4 @@ Table showing the popularity of some n-gram in the code base | count | 2 | | commander | 2 | | camel | 2 | -| alias | 2 | +| alias | 2 | \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6a2c70b..f49f058 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,39 +17,58 @@ in all your interactions with the project. The following commands should get you started: +Setup an alias: + +``` +alias broth='npx baldrick-broth' +``` + +or if you prefer to always use the latest version: + +``` +alias broth='npx baldrick-broth@latest' +``` + +Install the `npm` dependencies: + ```bash yarn install -yarn test ``` -A list of [most used commands](MAINTENANCE.md) is available: +Run the `zest` unit tests: ```bash -yarn h +broth test spec ``` -Please keep an eye on test coverage, bundle size and documentation. -When you are ready for a pull request: +Run the `pest` CLI integration tests: + +```bash +broth test pest +``` + +A list of [most used commands](MAINTENANCE.md) is available: ```bash -yarn ready +broth ``` -And please check that building is still working: +Please keep an eye on test coverage, bundle size and documentation. +When you are ready for a pull request: ```bash -yarn build +broth release ready ``` You can also simulate [Github actions](https://docs.github.com/en/actions) locally with [act](https://github.com/nektos/act). You will need to setup `.actrc` with the node.js docker image `-P -ubuntu-latest=node:14-buster` +ubuntu-latest=node:16-buster` To run the pipeline: ```bash -act +broth github act ``` ## Pull Request Process @@ -62,9 +81,6 @@ act This would be done by the main maintainers of the project. Locally for now as updates are pretty infrequent, and some of tests have to be done manually. -Assuming you have zsh installed, you can just do: - ```bash -source .aliases.zsh -bpub +broth release publish ``` diff --git a/DECISIONS.md b/DECISIONS.md new file mode 100644 index 0000000..b7695c1 --- /dev/null +++ b/DECISIONS.md @@ -0,0 +1,11 @@ +# Architecture decision records + +An [architecture +decision](https://cloud.google.com/architecture/architecture-decision-records) +is a software design choice that evaluates: + +- a functional requirement (features). +- a non-functional requirement (technologies, methodologies, libraries). + +The purpose is to understand the reasons behind the current architecture, so +they can be carried-on or re-visited in the future. diff --git a/GLOSSARY.md b/GLOSSARY.md index 8756546..2d4ca4d 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -83,3 +83,43 @@ Point-Free Style allows to chain functions in a very linear way More about [Point-Free Style](https://en.wikipedia.org/wiki/Tacit_programming) + +## Railway oriented programming + +Functional approach for composing functions + +**Motivation:** + +- Each function will always yield a failure or a success +- Composition of happy paths +- Failure path short-circuits and forwards any previous errors + +More about [Railway oriented +programming](https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/recipe-part2.html) + +## Reactive programming + +Declarative programming paradigm concerned with data streams and the +propagation of change + +**Motivation:** + +- Cleaner code, more concise +- Easier to scale + +More about [Reactive +programming](https://en.wikipedia.org/wiki/Reactive_programming) + +## Functional reactive programming + +Programming paradigm for reactive programming using the building blocks of +functional programming + +**Motivation:** + +- Well defined semantic model +- The dynamical behavior of a value is specified at declaration time +- Stop working on individual events and work with event streams instead + +More about [Functional reactive +programming](https://en.wikipedia.org/wiki/Functional_reactive_programming) diff --git a/INTERNAL.md b/INTERNAL.md index 20ce0a2..25c1378 100644 --- a/INTERNAL.md +++ b/INTERNAL.md @@ -2,8 +2,7 @@ > Overview of the code base of baldrick-doc-ts -This document has been generated automatically by -[baldrick-doc-ts](https://github.com/flarebyte/baldrick-doc-ts) +This document has been generated automatically by [baldrick-doc-ts](https://github.com/flarebyte/baldrick-doc-ts) ## Diagram of the dependencies @@ -18,8 +17,8 @@ class `commanding-action.ts`{ } class `commanding-data.ts` class `commanding-helper.ts`{ - - capitalize() - - decapitalize() + -capitalize() + -decapitalize() +toCamelCase() +toCommanderOption() +splitDocBase() @@ -29,46 +28,46 @@ class `env-helper.ts`{ +getPackageName() } class `feature-helper.ts`{ - - isFeature() - - toFeature() + -isFeature() + -toFeature() +toFeatures() } class `fp-diagram.ts`{ - - functionInfoToDiagram() - - importInfoToDiagrams() - - importInfoToRelationships() + -functionInfoToDiagram() + -importInfoToDiagrams() + -importInfoToRelationships() +toFunctionalProgrammingDiagram() - - functionToMermaid() - - entityToMermaid() - - relationshipToMermaid() - - noDuplicateFunctionDiagram() - - mergeFunctionDiagrams() + -functionToMermaid() + -entityToMermaid() + -relationshipToMermaid() + -noDuplicateFunctionDiagram() + -mergeFunctionDiagrams() +mergeSourceDiagrams() - - noDuplicateRelationshipDiagram() + -noDuplicateRelationshipDiagram() +toFunctionalProgrammingMermaid() } class `fp-vocabulary.ts`{ - - extractWordsFromName() - - asVocabulary() - - extractSource() + -extractWordsFromName() + -asVocabulary() + -extractSource() +toProjectVocabulary() - - convertToNgram() - - byCountDesc() + -convertToNgram() + -byCountDesc() +toProjectVocabularyRank() } class `index.ts` class `io-sfx.ts`{ - - readTypedocJson() - - writeApiMd() - - createDocDir() + -readTypedocJson() + -writeApiMd() + -createDocDir() +updateAll() } class `markdown-api.ts`{ - - apiFilename() - - parameterToString() - - functionToMdSection() - - variableToMdSection() - - titleToRef() + -apiFilename() + -parameterToString() + -functionToMdSection() + -variableToMdSection() + -titleToRef() +toTypedocApiMd() } class `markdown-internal.ts`{ @@ -80,40 +79,40 @@ class `markdown-vocabulary.ts`{ +toMarkdownVocabulary() } class `markdown.ts`{ - - findHeader() - - getMainSection() - - discardHeader2() - - linesToSection() - - detectSecondaryHeader() - - getSecondarySections() - - keepHeaderBody() + -findHeader() + -getMainSection() + -discardHeader2() + -linesToSection() + -detectSecondaryHeader() + -getSecondarySections() + -keepHeaderBody() +parseMarkdown() - - sectionToString() + -sectionToString() +markdownToString() } class `model.ts` class `parse-action.ts`{ - - createDocDir() - - generateMarkdowns() + -createDocDir() + -generateMarkdowns() +parseAction() } class `parser-model.ts` class `term-formatter.ts`{ - - simplifyObj() - - simplifyJson() - - toJsonish() + -simplifyObject() + -simplifyJson() + -toJsonish() +basicFormatter() +errorFormatter() } class `ts-parser.ts`{ - - extractImportInfo() - - toUniqueStringArray() - - extractFunctionInfo() - - extractFunctionExpressionInfo() - - extractInterfaceInfo() - - extractTypeAliasInfo() + -extractImportInfo() + -toUniqueStringArray() + -extractFunctionInfo() + -extractFunctionExpressionInfo() + -extractInterfaceInfo() + -extractTypeAliasInfo() +createProject() - - isFunctionInfo() + -isFunctionInfo() +parseTsContent() +parseProject() } @@ -126,22 +125,22 @@ class `./io-sfx.js`{ +updateAll() } class `./model.js`{ - +TermFormatterParams() - +TermFormatterFormat() - +ErrTermFormatterParams() - +RunnerContext() - +ParseActionOpts() - +MdSection() - +MdDocument() - +GenerateTypedocActionOpts() - +SupportedFeature() - +ParseRawOpts() - +ParseAction() - +GenerateTypedocRawOpts() - +GenerateTypedocAction() - +CmdOption() - +CmdOptionsParser() - +CmdOptionsGeneratorTypedoc() + +type TermFormatterParams() + +type TermFormatterFormat() + +type ErrTermFormatterParams() + +type RunnerContext() + +type ParseActionOpts() + +type MdSection() + +type MdDocument() + +type GenerateTypedocActionOpts() + +type SupportedFeature() + +type ParseRawOpts() + +type ParseAction() + +type GenerateTypedocRawOpts() + +type GenerateTypedocAction() + +type CmdOption() + +type CmdOptionsParser() + +type CmdOptionsGeneratorTypedoc() } class `./parse-action.js`{ +parseAction() @@ -175,19 +174,19 @@ class `./version.js`{ +version() } class `./parser-model.js`{ - +SourceInfo() - +ModuleInfo() - +InterfaceInfo() - +ImportInfo() - +FunctionInfo() - +ProjectVocabulary() - +ProjectNgram() - +VocabularyNGram() - +Vocabulary() - +FunctionDiagram() - +RelationshipDiagram() - +SourceDiagram() - +FunctionalProgrammingDiagram() + +type SourceInfo() + +type ModuleInfo() + +type InterfaceInfo() + +type ImportInfo() + +type FunctionInfo() + +type ProjectVocabulary() + +type ProjectNgram() + +type VocabularyNGram() + +type Vocabulary() + +type FunctionDiagram() + +type RelationshipDiagram() + +type SourceDiagram() + +type FunctionalProgrammingDiagram() } class `./commanding-action.js`{ +cmdParseAction() @@ -205,9 +204,9 @@ class `./markdown-api.js`{ +toTypedocApiMd() } class `./typedoc-json-model.js`{ - +TypedocJson() - +TypedocChild() - +Parameter() + +type TypedocJson() + +type TypedocChild() + +type Parameter() } class `./markdown.js`{ +markdownToString() @@ -234,12 +233,12 @@ class `./ts-parser.js`{ +createProject() } class `ts-morph`{ - +TypeAliasDeclaration() - +InterfaceDeclaration() - +VariableDeclaration() - +FunctionDeclaration() - +ImportDeclaration() - +SourceFile() + +type TypeAliasDeclaration() + +type InterfaceDeclaration() + +type VariableDeclaration() + +type FunctionDeclaration() + +type ImportDeclaration() + +type SourceFile() +Project() } `client.ts`-->`./index.js` @@ -288,4 +287,4 @@ class `ts-morph`{ `term-formatter.ts`-->`./model.js` `ts-parser.ts`-->`ts-morph` `ts-parser.ts`-->`./parser-model.js` -``` +``` \ No newline at end of file diff --git a/LICENSE b/LICENSE index 2ccecc1..31f3b90 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,6 @@ - MIT License -Copyright (c) 2021-2022 Flarebyte.com +Copyright (c) 2021 Flarebyte.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/MAINTENANCE.md b/MAINTENANCE.md index 2b383cc..03009a5 100644 --- a/MAINTENANCE.md +++ b/MAINTENANCE.md @@ -1,373 +1,250 @@ # Maintenance of the code -## Overall workflow - -The typical developer workflow goes as follow: - -| Mode | Code analysis | Testing | Building | Publishing | -| ---------------------- | ------------- | -------------------------- | ------------ | --------------------------------- | -| Checking | yarn lint | yarn test or yarn test:cov | yarn build | yarn ready and yarn release:check | -| Fixing | yarn lint:fix | yarn test:fix | Fix the code | Update dependencies and yarn doc | -| Continuous integration | yarn lint:ci | yarn test:ci | yarn build | bpub | - ## Commands -### Run GitHub Actions locally - -> Run GitHub Actions inside a docker container - -**Motivation:** Test GitHub Actions locally - -**When to use it:** When changing github actions - -**Run:** `act` - -**From package:** [act](https://github.com/nektos/act) of -[brew](https://docs.brew.sh/) : Run GitHub Actions locally - -*** - -### Build the library - -> Transpile all the typescript source code to javascript +### Run the unit tests with Jest -**Motivation:** ESM library should be written in javascript +**Run:** `npx baldrick-broth test jest` -**When to use it:** Before building +See also: -**Run:** `yarn build` - -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management - -*** - -### Generate the documentation - -> Generate the markdown documentation for the typescript project - -**Motivation:** Good documentation is essential for developer experience - -**When to use it:** Before publishing - -**Run:** `yarn doc` - -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management +- [Jest is a JavaScript Testing Framework](https://jestjs.io/) *** -### Update github repository +### Run unit tests declaratively -> Enable useful features for the github project repository +> Run unit tests for pure functions declaratively using YAML files -**Motivation:** Create consistent settings +**Motivation:** Check that the units of code behave as intended -**When to use it:** After creating +**Run:** `npx baldrick-broth test spec` -**Run:** `yarn github` +See also: -**From package:** [gh](https://cli.github.com/) of -[brew](https://docs.brew.sh/) : GitHub CLI brings GitHub to your terminal +- [Baldrick Zest run tests + declaratively](https://github.com/flarebyte/baldrick-zest-engine) *** -### Static code analysis for continuous integration +### Run node.js unit tests -> Find problems in Typescript code +> Run traditional unit tests -**Motivation:** Make the code more consistent and avoid bugs +**Motivation:** Test what is not easily covered with zest -**When to use it:** When pushing code to github, before testing +**Run:** `npx baldrick-broth test unit` -**Run:** `yarn lint:ci` +See also: -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +- [JavaScript tests that report results in TAP + format](https://nodejs.org/dist/latest-v18.x/docs/api/test.html) *** -### Static code analysis +### Run acceptance tests for the CLI -> Find problems in Typescript code +> Run acceptance tests declaratively using YAML files -**Motivation:** Make the code more consistent and avoid bugs +**Motivation:** Check that the CLI application behaves as intended -**When to use it:** Before compilation +**Run:** `npx baldrick-broth test pest` -**Run:** `yarn lint` +See also: -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +- [Testing with + baldrick-pest](https://github.com/flarebyte/baldrick-pest) *** -### Fix static code analysis +### Run one acceptance tests for the CLI -> Fix problems in Typescript code +> Run one acceptance tests declaratively using YAML files -**Motivation:** Facilitate routine maintenance of code +**Motivation:** Check that the CLI application behaves as intended -**When to use it:** Before compilation +**Run:** `npx baldrick-broth test pest1` -**Run:** `yarn lint:fix` +See also: -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +- [Testing with + baldrick-pest](https://github.com/flarebyte/baldrick-pest) *** -### Markdown check +### Count lines of code -> Checks that the markdown documents follows some consistent guidelines +> Count lines of code -**Motivation:** Make the markdown documents consistent in style +**Motivation:** Count lines of code -**When to use it:** Before publishing +**Run:** `npx baldrick-broth test scc` -**Run:** `yarn md` +See also: -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management +- [Counting lines of code in many programming + languages](https://github.com/boyter/scc) *** -### Markdown fix - -> Modify the markdown documents to ensure they follow some consistent -> guidelines - -**Motivation:** Make the markdown documents consistent in style - -**When to use it:** Before publishing - -**Run:** `yarn md:fix` - -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management - -*** - -### Clear previous build - -> Delete the dist and report folder +### Run client directly -**Motivation:** Start from a clean slate +> Run the client with ts-node during development -**When to use it:** Before building +**Motivation:** Simulate a CLI app in development without the need to install +it globally -**Run:** `yarn prebuild` - -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management +**Run:** `npx baldrick-broth test cli` *** -### Ready for publishing +### Transpile typescript -> Run a sequence of commands to check that the library is ready to be -> published +> Generate javascript from the typescript source code -**Motivation:** Detect quality flaws before pushing the code +**Motivation:** Javascript code is more portable and can be consumed by other +projects -**When to use it:** Before pushing a branch +**Run:** `npx baldrick-broth transpile ts` -**Run:** `yarn ready` +See also: -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management +- [tsc compiles typescript defined by a + tsconfig.json](https://www.typescriptlang.org/docs/handbook/compiler-options.html) *** -### Reset distribution and report folders - -> Delete the dist and report folder +### Upgrade to latest dependencies -**Motivation:** Start from a clean slate +> Upgrade to latest npm dependencies -**When to use it:** Before building +**Motivation:** Keep up with security and improvements -**Run:** `yarn reset` - -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management +**Run:** `npx baldrick-broth deps upgrade` *** -### Unit testing code and coverage for continuous integration +### Generate documentation -> Test and verify the coverage of the code +> Generate the markdown documentation for the typescript project -**Motivation:** Check that the units of code behave as intended and ensure -that every code branch and function is executed +**Motivation:** Good documentation is essential for developer experience -**When to use it:** When pushing code to github +**Run:** `npx baldrick-broth doc ts` -**Run:** `yarn test:ci` +See also: -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +- [TypeDoc converts comments in Typescript into a JSON + model](https://typedoc.org/) +- [baldrick-doc-ts produces markdown + documentation](https://github.com/flarebyte/baldrick-doc-ts) +- [baldrick-doc-ts produces markdown + documentation](https://github.com/flarebyte/baldrick-doc-ts) +- [Package development of Typescript library in ESM + format](https://github.com/flarebyte/baldrick-dev-ts) *** -### Unit testing - -> Run the unit tests - -**Motivation:** Check that the units of code behave as intended +### Standardize the github repository -**When to use it:** After compilation, before build +> Enable useful features for the github project repository -**Run:** `yarn test` +**Motivation:** Create consistent settings -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +**Run:** `npx baldrick-broth github standard` *** -### Unit testing code coverage - -> Verify the extent to which the code has been executed. This does not -> include any threshold, but it is recommended to maximize the coverage +### Static code analysis of Typescript code -**Motivation:** Ensure that every code branch and function is executed - -**When to use it:** After compilation, before build +> Find problems in Typescript code -**Run:** `yarn test:cov` +**Motivation:** Make the code more consistent and avoid bugs -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +**Run:** `npx baldrick-broth lint check` *** -### Fix unit testing snapshots - -> Run the unit tests and update the snapshots - -**Motivation:** Facilitate routine maintenance of unit test snapshots +### Fix static code analysis -**When to use it:** After compilation, before build +> Fix problems in Typescript code -**Run:** `yarn test:fix` +**Motivation:** Facilitate routine maintenance of code -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +**Run:** `npx baldrick-broth lint fix` *** -### Release check - -> Checks if a release could be created +### Check Markdown files -**Motivation:** Avoid failing the release - -**When to use it:** After publishing +> Checks that the markdown documents follows some consistent guidelines -**Run:** `yarn release:check` +**Motivation:** Make the markdown documents consistent in style -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +**Run:** `npx baldrick-broth md check` *** -### Release +### Fix Markdown files -> Creates a github release - -**Motivation:** Save releases in github - -**When to use it:** After publishing +> Modify the markdown documents to ensure they follow some consistent +> guidelines -**Run:** `bpub` +**Motivation:** Make the markdown documents consistent in style -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +**Run:** `npx baldrick-broth md fix` *** -### Help for commands - -> Summarize all the yarn and shell commands - -**Motivation:** Assist the developer in quickly finding commands +### Ready for publishing -**When to use it:** Before running a command +> Run a sequence of commands to check that the library is ready to be +> published -**Run:** `yarn h` +**Motivation:** Detect quality flaws before pushing the code -**From package:** [baldrick](https://github.com/flarebyte/baldrick-dev-ts) of -[npm](https://www.npmjs.com/) : Zero-config CLI for TypeScript package -development +**Run:** `npx baldrick-broth release ready` *** -### Git commit from file - -> Git commit a message that has been saved in the .message file +### Publish the current library -**Motivation:** Quicker commit for pre-defined use cases +> Publih the current library to npm -**When to use it:** When commit to github - -**Run:** `gcf` +**Motivation:** Detect quality flaws before pushing the code -**From package:** [zsh](https://www.zsh.org/) of -[brew](https://docs.brew.sh/) : Shell designed for interactive use +**Run:** `npx baldrick-broth release publish` *** -### Install the local project globally - -> Install this local project/script globally on the dev machine for -> development or testing purpose +### Upgrade baldrick-broth configuration to latest version -**Motivation:** Test global project locally before publishing +> Gets the latest version of this configuration file -**When to use it:** When testing locally +**Motivation:** Always apply the latest project conventions -**Run:** `yig` - -**From package:** [yarn](https://classic.yarnpkg.com/en/) of -[npm](https://www.npmjs.com/) : Dependency management +**Run:** `npx baldrick-broth scaffold upgrade` *** -### Normalize the code structure using latest - -> Normalize the code structure using baldrick (npx version) - -**Motivation:** Create a consistent developer experience +### Normalize the project -**When to use it:** When changing github actions +> Normalize the project in a similar fashion that the other typescript +> projects -**Run:** `yarn norm` +**Motivation:** Make the project structure consistent and easier to navigate -**From package:** [baldrick-ts](https://github.com/flarebyte/baldrick-ts) of -[npm](https://www.npmjs.com/) : Typescript scaffolding assistant +**Run:** `npx baldrick-broth scaffold norm` *** -### Normalize the code structure - -> Normalize the code structure using baldrick (global version) - -**Motivation:** Create a consistent developer experience +### Normalize the project -**When to use it:** When changing github actions +> Normalize the project in a similar fashion that the other typescript +> projects -**Run:** `yarn norm:g` +**Motivation:** Make the project structure consistent and easier to navigate -**From package:** [baldrick-ts](https://github.com/flarebyte/baldrick-ts) of -[npm](https://www.npmjs.com/) : Typescript scaffolding assistant +**Run:** `npx baldrick-broth scaffold norm-package` *** diff --git a/README.md b/README.md index 287747a..b0ca071 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Baldrick-doc-ts +# baldrick-doc-ts ![npm](https://img.shields.io/npm/v/baldrick-doc-ts) ![Build status](https://github.com/flarebyte/baldrick-doc-ts/actions/workflows/main.yml/badge.svg) @@ -10,8 +10,11 @@ status](https://github.com/flarebyte/baldrick-doc-ts/actions/workflows/main.yml/ > Documentation generator for typescript projects -The main motivation is to streamline the generation of documentation for -node.js libraries written in Typescript: +Generation of documentation for node.js libraries written in Typescript + +Highlights: + +- Written in `Typescript` - It relies on [typedoc](https://typedoc.org/s) under the hood. @@ -25,62 +28,6 @@ node.js libraries written in Typescript: - It is part of the `baldrick` suite of tools, and is optimized to work alongside these. -## Usage - -Generate typedoc documentation - -`npx baldrick-doc-ts typedoc [options]` - -Typical use: - -`npx typedoc --json doc.json --pretty src/index.ts && npx baldrick-doc-ts -typedoc --json-source doc.json` - -It is recommended to add it a script in your `package.json` - -### Options - -Generate typedoc documentation as markdown - -```bash -Usage: baldrick-doc-ts typedoc [options] - -Generate typedoc documentation - -Options: - - f, --feature [feature...] List of features (choices: "md", - default: ["md"]) - - s, --json-source [jsonSource] Typedoc json filename (default: - "doc.json") - - db, --doc-base [docBase] Specify the base name for -documentation - (doc/api) (default: "") - - sd, --src-directory [srcDirectory] Directory of the source code that -will - be used for links (default: "src") - - h, --help display help for command -``` - -Generate diagram of internal code base - -```bash -Usage: baldrick-doc-ts parse [options] - -Parse typescript and extract documentation - -Options: - - f, --feature [feature...] List of features (choices: -"internal", - "ngram", default: ["internal","ngram"]) - - db, --doc-base [docBase] Specify the base name for -documentation - (doc/api) (default: "") - - sd, --src-directory [srcDirectory] Directory of the source code that -will - be used for links (default: "src") - - h, --help display help for command -``` - ## Documentation and links - [Code Maintenance](MAINTENANCE.md) @@ -88,8 +35,17 @@ will - [Api for baldrick-doc-ts](API.md) - [Contributing](CONTRIBUTING.md) - [Glossary](GLOSSARY.md) +- [Diagram for the code base](INTERNAL.md) +- [Vocabulary used in the code base](CODE_VOCABULARY.md) +- [Architectural Decision Records](DECISIONS.md) - [Contributors](https://github.com/flarebyte/baldrick-doc-ts/graphs/contributors) - [Dependencies](https://github.com/flarebyte/baldrick-doc-ts/network/dependencies) +- [Usage](USAGE.md) + +## Related + +- [baldrick-zest-engine](https://github.com/flarebyte/baldrick-zest-engine) + Run tests declaratively with a few cunning plans ## Installation diff --git a/TECHNICAL_DESIGN.md b/TECHNICAL_DESIGN.md index 7164eb5..320aab9 100644 --- a/TECHNICAL_DESIGN.md +++ b/TECHNICAL_DESIGN.md @@ -3,17 +3,18 @@ > Guide for the implementation, including detailed design, priorities, > coding conventions, and testing -- This project is part of the `baldrick` suite of tools and should work - in synergy with these tools. +Highlights: ## Code structure - **src**: Typescript source code -- **test**: Jest unit tests +- **script**: Folder for bash, python, zx or ts-node scripts - **dist**: Temporary folder for building distribution code +- **temp**: Temporary folder used by some of the tooling (tests...) + - **report**: Temporary folder for reporting; usually for continuous integration diff --git a/baldrick-broth.yaml b/baldrick-broth.yaml new file mode 100644 index 0000000..a29133a --- /dev/null +++ b/baldrick-broth.yaml @@ -0,0 +1,624 @@ +--- +model: + project: + title: Documentation generator for typescript projects + description: Generation of documentation for node.js libraries written in Typescript + version: 0.10.0 + keywords: + - CLI + readme: + highlights: + - Written in `Typescript` + - It relies on [typedoc](https://typedoc.org/s) under the hood. + - It can be run directly using `npx`. + - | + It generate the documentation as **markdown**. This provides a more + basic documentation that the default `typedoc` but does not generate + any html or css that would become part of the source code, and may + raise some warnings with many linters. + - It is part of the `baldrick` suite of tools, and is optimized to work alongside these. + links: + - "[Usage](USAGE.md)" + related: + - "[baldrick-zest-engine](https://github.com/flarebyte/baldrick-zest-engi\ + ne) Run tests declaratively with a few cunning plans" + github: + account: flarebyte + name: baldrick-doc-ts + copyright: + holder: Flarebyte.com + startYear: 2021 + license: MIT + author: + name: Olivier Huin + url: https://github.com/olih + implementation: + tags: + - cli + - commander + workflowVersion: 0.3.0 +workflows: + test: + title: Test the library + description: Test the library for defects + tasks: + jest: + title: Run the unit tests with Jest + description: Use the Jest framework to run unit test (deprecated) + links: + - title: Jest is a JavaScript Testing Framework + url: https://jestjs.io/ + main: + commands: + - title: Test all test files in test folder + run: npx baldrick-dev-ts test check + spec: + title: Run unit tests declaratively + description: Run unit tests for pure functions declaratively using YAML files + motivation: Check that the units of code behave as intended + links: + - title: Baldrick Zest run tests declaratively + url: https://github.com/flarebyte/baldrick-zest-engine + main: + commands: + - title: Run all baldrick zest files + run: node --loader ts-node/esm .baldrick-zest.ts + unit: + title: Run node.js unit tests + description: Run traditional unit tests + motivation: Test what is not easily covered with zest + links: + - title: JavaScript tests that report results in TAP format + url: https://nodejs.org/dist/latest-v18.x/docs/api/test.html + main: + commands: + - title: Run unit tests + run: yarn test + pest: + title: Run acceptance tests for the CLI + description: Run acceptance tests declaratively using YAML files + motivation: Check that the CLI application behaves as intended + links: + - title: Testing with baldrick-pest + url: https://github.com/flarebyte/baldrick-pest + before: + commands: + - title: List pest files + name: pest-files-string + run: find . -type f -name *.pest.yaml + onSuccess: + - save + - silent + - a: split-lines + name: pest-files + title: Split the list of pest files + value: data.pest-files-string + main: + each: + - name: pest-file + values: data.pest-files + commands: + - title: Run regression on file + name: Run regression on {{_.pest-file}} + run: npx baldrick-pest@latest test --spec-file {{_.pest-file}} + pest1: + title: Run one acceptance tests for the CLI + description: Run one acceptance tests declaratively using YAML files + motivation: Check that the CLI application behaves as intended + links: + - title: Testing with baldrick-pest + url: https://github.com/flarebyte/baldrick-pest + main: + commands: + - title: List pest files + name: pest-files-string + run: find . -type f -name *.pest.yaml + onSuccess: + - save + - silent + - a: split-lines + name: pest-files + title: Split the list of pest files + value: data.pest-files-string + - a: prompt-select + title: Prompt for pest filename + message: Select pest file + name: pest-file + select: data.pest-files + - title: Run pest file + name: run + run: npx baldrick-pest@latest test --spec-file {{_.pest-file}} + scc: + title: Count lines of code + description: Count lines of code + motivation: Count lines of code + links: + - title: Counting lines of code in many programming languages + url: https://github.com/boyter/scc + before: + commands: + - name: pest-files + title: List pest yaml files + run: scc pest-spec --include-ext yaml --by-file --format csv + onSuccess: + - save + - csv + - silent + main: + each: + - name: pest-file + values: data.test::pest::pest-files + commands: + - title: Display info + name: Display info {{pest-file.Location}} + run: echo {{pest-file.Location}} + cli: + title: Run client directly + description: Run the client with ts-node during development + motivation: + Simulate a CLI app in development without the need to install it + globally + main: + commands: + - title: Run the CLI locally + run: node --loader ts-node/esm src/cli.mts + transpile: + title: Transpile the source code + description: Transpile source code + tasks: + ts: + title: Transpile typescript + description: Generate javascript from the typescript source code + motivation: Javascript code is more portable and can be consumed by other projects + links: + - title: tsc compiles typescript defined by a tsconfig.json + url: https://www.typescriptlang.org/docs/handbook/compiler-options.html + main: + commands: + - title: Delete dist folder + run: rm -rf dist + - title: Compile with typescript + run: tsc --outDir dist + deps: + title: Library dependencies + description: Npm dependencies + tasks: + upgrade: + title: Upgrade to latest dependencies + description: Upgrade to latest npm dependencies + motivation: Keep up with security and improvements + main: + commands: + - title: Upgrade to latest dependencies + run: yarn upgrade --latest + - title: Display advice about yarn upgrade-interactive + run: echo "❐ You could also use yarn upgrade-interactive --latest" + doc: + title: Generate the documentation + description: Generate the documentation automatically + tasks: + ts: + title: Generate documentation + description: Generate the markdown documentation for the typescript project + motivation: Good documentation is essential for developer experience + links: + - title: TypeDoc converts comments in Typescript into a JSON model + url: https://typedoc.org/ + - title: baldrick-doc-ts produces markdown documentation + url: https://github.com/flarebyte/baldrick-doc-ts + - title: baldrick-doc-ts produces markdown documentation + url: https://github.com/flarebyte/baldrick-doc-ts + - title: Package development of Typescript library in ESM format + url: https://github.com/flarebyte/baldrick-dev-ts + main: + commands: + - name: report-folder + title: Ensure that we have a report folder + run: mkdir -p report + - name: typedoc + title: Generate typedoc doc.json + run: npx typedoc@latest --json report/doc.json --pretty src/index.ts + - name: api + title: Generate markdown files for the Api + run: npx baldrick-doc-ts@latest typedoc --json-source report/doc.json + - name: ngram + title: Generate some markdown files with ngram + run: npx baldrick-doc-ts@latest parse -f internal ngram + - name: fix + title: Fix all the markdown files + run: npx baldrick-dev-ts@latest markdown fix + - name: github + title: Fixes markdown in github folder + run: npx baldrick-dev-ts@latest markdown fix -s .github/ + github: + title: Management of the github project + description: Generate the documentation based on the source code + tasks: + standard: + title: Standardize the github repository + description: Enable useful features for the github project repository + motivation: Create consistent settings + main: + commands: + - name: edit + title: Configure usual settings for github project + run: gh repo edit --delete-branch-on-merge --enable-squash-merge + lint: + title: Static code analysis + description: Find problems in the code base + tasks: + check: + title: Static code analysis of Typescript code + description: Find problems in Typescript code + motivation: Make the code more consistent and avoid bugs + main: + commands: + - name: check + title: Lint check sources + run: npx xo + fix: + title: Fix static code analysis + description: Fix problems in Typescript code + motivation: Facilitate routine maintenance of code + main: + commands: + - name: fix + title: Fix source code + run: npx xo --fix + md: + title: Markdown documentation + description: Manage markdown documentation + tasks: + check: + title: Check Markdown files + description: Checks that the markdown documents follows some consistent guidelines + motivation: Make the markdown documents consistent in style + main: + commands: + - name: check + title: Check markdown files + run: baldrick markdown check + - name: github + title: Check markdown files in github + run: npx baldrick-dev-ts@latest markdown check -s .github/ + fix: + title: Fix Markdown files + description: + Modify the markdown documents to ensure they follow some consistent + guidelines + motivation: Make the markdown documents consistent in style + main: + commands: + - title: Fix markdown files + run: npx baldrick-dev-ts@latest markdown fix + - title: Fix markdown files in github + run: npx baldrick-dev-ts@latest markdown fix -s .github/ + release: + title: Release of the library + tasks: + ready: + title: Ready for publishing + description: + Run a sequence of commands to check that the library is ready to be + published + motivation: Detect quality flaws before pushing the code + parameters: + - description: | + Pull request mode. + Run the pest and zest tests. + flags: -pr, --pull-request + main: + commands: + - name: remove-build + title: Remove previous build + run: rm -rf dist + - name: build + title: Build the project + run: yarn build + - name: release-check + title: Checks that the version has been incremented + run: npx baldrick-dev-ts@latest release check + - name: lint + title: Check linting + run: npx xo + - name: markdown + title: Check markdown files + run: npx baldrick-dev-ts@latest markdown check + - name: markdown-github + title: Check markdown files in github + run: npx baldrick-dev-ts@latest markdown check -s .github/ + - name: outdated + title: Check whether some libraries are outdated + run: yarn outdated + - name: audit + title: Audit some libraries + run: yarn audit + - name: has-pest-files + title: Check if there are any pest files + run: find . -type f -name *.pest.yaml + onSuccess: + - save + - silent + - a: every-truthy + name: should-run-pest + title: Is this a PR and is there some pest files + values: + - data.has-pest-files + - runtime.parameters.pullRequest + - name: pest + title: Run the integration pest tests + if: data.should-run-pest + run: npx baldrick-broth@latest test pest + - name: has-zest-files + title: Check if there are any zest files + run: find . -type f -name *.zest.yaml + onSuccess: + - save + - silent + - a: every-truthy + name: should-run-zest + title: Is this a PR and is there some zest files + values: + - data.has-zest-files + - runtime.parameters.pullRequest + - name: zest + title: Run the unit zest tests + if: data.should-run-zest + run: npx npx baldrick-broth@latest test spec + - name: rm-report + title: Remove previous report + run: rm -f temp/pull_request_relevant.md + - name: report + a: template + title: Create a report + template: | + # Summary of the change + + ## Code check + + {{#if _.result-of-build}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} Transpile to javascript + {{#if _.result-of-release-check}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} The version has been incremented to "v{{build.model.project.version}}" + {{#if _.result-of-lint}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} Static analysis and linting + {{#if _.result-of-markdown}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} Markdown formatting + {{#if _.result-of-outdated}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} No outdated NPM libraries + {{#if _.result-of-audit}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} Security audit + {{#if _.result-of-pest}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} Integration tests with baldrick-pest {{#unless _.should-run-pest}}(Not supported yet){{/unless}} + {{#if _.result-of-zest}}- :heavy_check_mark:{{else}}- :heavy_exclamation_mark:{{/if}} Unit tests with baldrick-zest {{#unless _.should-run-zest}}(Not supported yet){{/unless}} + - name: write-report + a: append-to-file + title: Write the report + value: data.report + filename: temp/pull_request_relevant.md + pr: + title: Pull request for the project + description: Create a pull request for the branch + motivation: Automate the body of pull request + main: + commands: + - a: prompt-choices + name: category + title: Category for the pull request + message: Classify the pull request + choices: + - feat + - fix + - chore + - docs + - style + - refactor + - a: prompt-input + name: title + title: Title for the pull request + description: A short title used for the pull request + message: Short title describing the pull request + - run: gh pr create --title '{{_.category}}:{{_.title}}' --body-file temp/pull_request_relevant.md + title: Create the pull request + publish: + title: Publish the current library + description: Publih the current library to npm + motivation: Detect quality flaws before pushing the code + main: + commands: + - name: checkout-main + title: Checkout main + run: git checkout main + - name: fetch-all + title: Fetch all + run: git fetch --all + - name: rebase-main + title: Rebase main + run: git rebase + - name: status + title: Git status + run: git status + - name: remove-build + title: Remove previous build + run: rm -rf dist + - name: build + title: Build the project + run: yarn build + - name: publish + title: Publish to NPM + run: npm publish + - name: release + title: Release the library to Github + run: gh release create "v{{build.model.project.version}}" --generate-notes + - name: refresh + title: Get the latest tag from Github + run: git fetch --all + scaffold: + title: Scaffolding for the project + tasks: + upgrade: + title: Upgrade baldrick-broth configuration to latest version + description: Gets the latest version of this configuration file + motivation: Always apply the latest project conventions + main: + commands: + - title: Remove previous temporary directory + run: rm -rf temp/broth + - title: Create temporary directory + run: mkdir -p temp/broth + - a: mask-object + name: broth-model + title: Extract model from this baldrick-broth.yaml + value: build + mask: model + - title: Save baldrick-broth file with existing model + stdin: data.scaffold::upgrade::broth-model + run: sponge temp/broth/baldrick-broth-model.json + links: + - title: sponge from MoreUtils homepage + url: https://formulae.brew.sh/formula/moreutils + - title: merge model with new workflow + run: npx baldrick-whisker@latest object baldrick-broth.yaml + temp/broth/baldrick-broth-model.json + github:flarebyte:baldrick-reserve:data/ts/baldrick-broth.yaml + norm: + title: Normalize the project + description: Normalize the project in a similar fashion that the other + typescript projects + motivation: Make the project structure consistent and easier to navigate + main: + commands: + - title: Create all github repositories + run: mkdir -p .github/workflows .github/ISSUE_TEMPLATE + - title: Github - create bug report form + run: + npx baldrick-whisker@latest object .github/ISSUE_TEMPLATE/bug_report.yaml + github:flarebyte:baldrick-reserve:data/ts/bug-report.yaml + - title: Github - create feature request form + run: npx baldrick-whisker@latest object + .github/ISSUE_TEMPLATE/feature_request.yaml + github:flarebyte:baldrick-reserve:data/ts/feature-request.yaml + - title: Github - create main workflow + run: npx baldrick-whisker@latest object .github/workflows/main.yml + github:flarebyte:baldrick-reserve:data/ts/workflow-main.yml + - title: Github - create pull request configuration + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/pull-request-template.hbs + .github/pull_request_template.md + - title: Create all needed repositories + run: mkdir -p .vscode src test spec script script/data script/schema + - title: Install default vscode snippets + run: npx baldrick-whisker@latest object --no-ext + .vscode/baldrick.code-snippets.json + github:flarebyte:baldrick-reserve:data/ts/snippet.yaml + - title: Create .gitignore + links: + - title: Specify files to ignore in source control + url: https://git-scm.com/docs/gitignore + run: + npx baldrick-whisker@latest render --no-ext baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/gitignore.hbs + .gitignore.sh + - title: Create .editorconfig + run: + npx baldrick-whisker@latest render --no-ext baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/editorconfig.hbs + .editorconfig.sh + links: + - title: Maintain consistent coding styles for spaces + url: https://editorconfig.org/ + - title: Create a starter .vscode/settings.json + run: npx baldrick-whisker@latest object .vscode/settings.json + github:flarebyte:baldrick-reserve:data/ts/vscode-settings.json + --no-overwrite + - title: Create tsconfig.json + run: npx baldrick-whisker@latest object tsconfig.json + github:flarebyte:baldrick-reserve:data/ts/tsconfig-2021.yaml + - title: Create .prettierrc.json + run: npx baldrick-whisker@latest object .prettierrc.json + github:flarebyte:baldrick-reserve:data/ts/prettierrc.json + - title: Create .remarkrc.yml + run: npx baldrick-whisker@latest object .remarkrc.yml + github:flarebyte:baldrick-reserve:data/ts/remarkrc.yml + - title: Create CONTRIBUTING.md with contribution guidelines + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/contributing.hbs + CONTRIBUTING.md + - title: Create CODE_OF_CONDUCT.md with code of conduct guidelines + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/code-of-conduct.hbs + CODE_OF_CONDUCT.md + - title: Create GLOSSARY.md with project vocabulary + run: npx baldrick-whisker@latest render + github:flarebyte:baldrick-reserve:data/glossary.yaml + github:flarebyte:baldrick-reserve:template/glossary.hbs + GLOSSARY.md + - title: Create a starter DECISIONS.md + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/decisions.hbs + DECISIONS.md --no-overwrite + - title: Create README.md + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/readme.hbs + README.md + - title: Create TECHNICAL_DESIGN.md + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/technical-design.hbs + TECHNICAL_DESIGN.md + - title: Create MAINTENANCE.md + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/maintenance.hbs + MAINTENANCE.md + - title: Create LICENSE + run: + npx baldrick-whisker@latest render --no-ext baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/license.hbs + LICENSE.md + - title: Fix markdown + run: npx baldrick-broth@latest md fix + - name: package-json + title: Backup dependencies + run: cat package.json + onSuccess: + - save + - silent + - json + - a: mask-object + title: Extracts dependencies from package.json + name: package-json-deps + value: data.package-json + mask: dependencies,devDependencies,peerDependencies + - name: save-package-json-deps + title: Save package.json with only dependencies + stdin: data.package-json-deps + run: sponge temp/broth/package-deps.json + - title: Create package.json metadata from broth model + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/package.hbs + temp/broth/package-specific.json + - title: merge dependencies with broth model info + run: npx baldrick-whisker@latest object package.json + temp/broth/package-specific.json temp/broth/package-deps.json + norm-package: + title: Normalize the project + description: Normalize the project in a similar fashion that the other + typescript projects + motivation: Make the project structure consistent and easier to navigate + main: + commands: + - name: package-json + title: Backup dependencies + run: cat package.json + onSuccess: + - save + - silent + - json + - a: mask-object + title: Extracts dependencies from package.json + name: package-json-deps + value: data.package-json + mask: dependencies,devDependencies,peerDependencies + - name: save-package-json-deps + title: Save package.json with only dependencies + stdin: data.package-json-deps + run: sponge temp/broth/package-deps.json + - title: Create package.json metadata from broth model + run: npx baldrick-whisker@latest render baldrick-broth.yaml + github:flarebyte:baldrick-reserve:template/ts/package.hbs + temp/broth/package-specific.json + - title: merge dependencies with broth model info + run: npx baldrick-whisker@latest object package.json + temp/broth/package-specific.json temp/broth/package-deps.json diff --git a/commands.txt b/commands.txt deleted file mode 100644 index 6081cfe..0000000 --- a/commands.txt +++ /dev/null @@ -1,24 +0,0 @@ -Commands: -act Run GitHub Actions inside a docker container -bpub Creates a github release -gcf Git commit a message that has been saved in the .message file -yarn build Transpile all the typescript source code to javascript -yarn doc Generate the markdown documentation for the typescript project -yarn github Enable useful features for the github project repository -yarn h Summarize all the yarn and shell commands -yarn lint Find problems in Typescript code -yarn lint:ci Find problems in Typescript code -yarn lint:fix Fix problems in Typescript code -yarn md Checks that the markdown documents follows some consistent guidelines -yarn md:fix Modify the markdown documents to ensure they follow some consistent guidelines -yarn norm Normalize the code structure using baldrick (npx version) -yarn norm:g Normalize the code structure using baldrick (global version) -yarn prebuild Delete the dist and report folder -yarn ready Run a sequence of commands to check that the library is ready to be published -yarn release:check Checks if a release could be created -yarn reset Delete the dist and report folder -yarn test Run the unit tests -yarn test:ci Test and verify the coverage of the code -yarn test:cov Verify the extent to which the code has been executed. This does not include any threshold, but it is recommended to maximize the coverage -yarn test:fix Run the unit tests and update the snapshots -yig Install this local project/script globally on the dev machine for development or testing purpose \ No newline at end of file diff --git a/package.json b/package.json index a0f2caa..1760140 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { "name": "baldrick-doc-ts", "description": "Documentation generator for typescript projects", - "keywords": [ - "cli" - ], - "version": "0.9.0", + "version": "0.10.0", "author": { "name": "Olivier Huin", "url": "https://github.com/olih" }, + "keywords": [ + "CLI" + ], "license": "MIT", "homepage": "https://github.com/flarebyte/baldrick-doc-ts", "repository": { @@ -16,6 +16,9 @@ "url": "https://github.com/flarebyte/baldrick-doc-ts.git" }, "bugs": "https://github.com/flarebyte/baldrick-doc-ts/issues", + "bin": { + "baldrick-doc-ts": "dist/src/cli.mjs" + }, "type": "module", "exports": { ".": { @@ -32,44 +35,26 @@ "dist/src", "src" ], - "bin": { - "baldrick-doc-ts": "dist/src/cli.mjs" - }, "engines": { - "node": ">=14" + "node": ">=18" }, "scripts": { "build": "tsc --outDir dist", - "doc": "npx typedoc --json report/doc.json --pretty src/index.ts && npx baldrick-doc-ts typedoc --json-source report/doc.json", - "github": "gh repo edit --delete-branch-on-merge --enable-squash-merge", - "lint:ci": "baldrick lint ci", - "lint": "baldrick lint check -s src test", - "lint:fix": "baldrick lint fix -s src test", - "md": "baldrick markdown check && baldrick markdown check -s .github/", - "md:fix": "baldrick markdown fix && baldrick markdown fix -s .github/", - "prebuild": "yarn reset", - "ready": "yarn lint && yarn test:cov && yarn md && yarn outdated && yarn audit", - "reset": "rm -rf dist; rm -rf report", - "test:ci": "baldrick test ci", - "test": "baldrick test check", - "test:cov": "baldrick test cov", - "test:fix": "baldrick test fix", - "release:check": "baldrick release check", - "release:ci": "baldrick release ci", - "h": "cat commands.txt", - "norm": "npx baldrick-ts generate -f cli -ga 'flarebyte' -ch 'Flarebyte.com' -cy 2021 -l MIT && yarn md:fix", - "norm:g": "baldrick-ts generate -f cli -ga 'flarebyte' -ch 'Flarebyte.com' -cy 2021 -l MIT && yarn md:fix", - "doc:int": "baldrick-doc-ts parse -f internal ngram" + "test": "node --test --loader ts-node/esm test/*.test.ts", + "cli": "node --loader ts-node/esm src/cli.mts", + "spec": "node --loader ts-node/esm .baldrick-zest.ts" }, "dependencies": { - "markdown-table": "^3.0.2", - "ts-morph": "13.0.3" + "commander": "^10.0.0", + "markdown-table": "^3.0.3", + "ts-morph": "^18.0.0" }, "devDependencies": { - "baldrick-dev-ts": "0.15.0", - "typescript": "^4.5.4" + "@types/node": "^18.15.11", + "ts-node": "^10.9.1", + "typescript": "^5.0.2" }, "peerDependencies": { - "typescript": "4.x" + "typescript": "5.x" } } diff --git a/pest-spec/cli-help.pest.yaml b/pest-spec/cli-help.pest.yaml new file mode 100644 index 0000000..f00fb51 --- /dev/null +++ b/pest-spec/cli-help.pest.yaml @@ -0,0 +1,40 @@ +--- +title: baldrick-doc-ts help +description: Acceptance testing of baldrick-doc-ts CLI application +cases: + general-help: + title: Display general help + steps: + - title: Run help + run: yarn cli --help + - title: Discard changing info for help + run: sed -f pest-spec/scripts/cleaning.sed + stdin: + step: 0 + receiving: stdout + stderr + expect: + snapshot: help.txt + typedoc-help: + title: Display help for a specific command + steps: + - title: Run help test typedoc + run: yarn cli typedoc --help + - title: Discard changing info for typedoc help + run: sed -f pest-spec/scripts/cleaning.sed + stdin: + step: 0 + receiving: stdout + stderr + expect: + snapshot: typedoc-help.txt + parse-help: + title: Display help for a specific command + steps: + - title: Run help test parse + run: yarn cli parse --help + - title: Discard changing info for parse help + run: sed -f pest-spec/scripts/cleaning.sed + stdin: + step: 0 + receiving: stdout + stderr + expect: + snapshot: parse-help.txt \ No newline at end of file diff --git a/pest-spec/cli.pest.yaml b/pest-spec/cli.pest.yaml new file mode 100644 index 0000000..2736117 --- /dev/null +++ b/pest-spec/cli.pest.yaml @@ -0,0 +1,28 @@ +--- +title: baldrick-doc-ts +description: Acceptance testing of baldrick-doc-ts CLI application +cases: + typedoc: + title: Generate markdown files for the from a typedoc json file + steps: + - title: Generate markdown using typedoc input + run: yarn cli typedoc --json-source pest-spec/fixture/typedoc.json --doc-base temp/PEST + - title: Save the markdown API file + run: cat temp/PEST_API.md + # stdin: + # step: 0 + # receiving: stdout + # expect: + # snapshot: typedoc.md + parse: + title: Generate with a list of ngram from source code + steps: + - title: Generate some markdown files with ngram + run: yarn cli parse --feature internal ngram --doc-base temp/PEST + - title: Save the markdown internal file + run: cat temp/PEST_INTERNAL.md + # stdin: + # step: 0 + # receiving: stdout + # expect: + # snapshot: INTERNAL.md diff --git a/pest-spec/fixture/typedoc.json b/pest-spec/fixture/typedoc.json new file mode 100644 index 0000000..d7a2f98 --- /dev/null +++ b/pest-spec/fixture/typedoc.json @@ -0,0 +1,460 @@ +{ + "id": 0, + "name": "object-crumble", + "kind": 1, + "kindString": "Project", + "flags": {}, + "originalName": "", + "children": [ + { + "id": 17, + "name": "mutatorRules", + "kind": 32, + "kindString": "Variable", + "flags": {}, + "comment": { + "shortText": "Basic mutator rules that can be used out of the box" + }, + "sources": [ + { + "fileName": "obj-mutator.ts", + "line": 38, + "character": 13 + } + ], + "type": { + "type": "array", + "elementType": { + "type": "reference", + "name": "CrumbleFieldMutation" + } + }, + "defaultValue": "..." + }, + { + "id": 1, + "name": "abstractObject", + "kind": 64, + "kindString": "Function", + "flags": { + "isConst": true + }, + "sources": [ + { + "fileName": "obj-abstractor.ts", + "line": 58, + "character": 13 + } + ], + "signatures": [ + { + "id": 2, + "name": "abstractObject", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "comment": { + "shortText": "Convert any object to an abstract representation of the object structure\n```\nabstractObject({name: \"Jane\"})\n```", + "returns": "an array of `CrumbleAbstractedValue` representing each `path` `kind` pair.\n" + }, + "parameters": [ + { + "id": 3, + "name": "rules", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "comment": { + "shortText": "a list of rules used to infer the kind of value of each property in the object" + }, + "type": { + "type": "array", + "elementType": { + "type": "reference", + "name": "StringAbstractionRule" + } + } + }, + { + "id": 4, + "name": "prefix", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "comment": { + "shortText": "path of the object in the enclosing object, or empty if none" + }, + "type": { + "type": "intrinsic", + "name": "string" + }, + "defaultValue": "''" + } + ], + "type": { + "type": "reflection", + "declaration": { + "id": 5, + "name": "__type", + "kind": 65536, + "kindString": "Type literal", + "flags": {}, + "signatures": [ + { + "id": 6, + "name": "__type", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "parameters": [ + { + "id": 7, + "name": "value", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "type": { + "type": "reference", + "name": "CrumbleObject" + } + } + ], + "type": { + "type": "array", + "elementType": { + "type": "reference", + "name": "CrumbleAbstractedValue" + } + } + } + ] + } + } + } + ] + }, + { + "id": 21, + "name": "anyOfString", + "kind": 64, + "kindString": "Function", + "flags": { + "isConst": true + }, + "sources": [ + { + "fileName": "string-abstractor.ts", + "line": 19, + "character": 13 + } + ], + "signatures": [ + { + "id": 22, + "name": "anyOfString", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "comment": { + "shortText": "Detect a a string from a given list of string", + "returns": "the `name` keyword or false\n" + }, + "parameters": [ + { + "id": 23, + "name": "name", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "comment": { + "shortText": "the keyword to return if the detection happens" + }, + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "id": 24, + "name": "options", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "comment": { + "shortText": "a list of string that would satisfy the detection" + }, + "type": { + "type": "array", + "elementType": { + "type": "intrinsic", + "name": "string" + } + } + } + ], + "type": { + "type": "reflection", + "declaration": { + "id": 25, + "name": "__type", + "kind": 65536, + "kindString": "Type literal", + "flags": {}, + "signatures": [ + { + "id": 26, + "name": "__type", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "parameters": [ + { + "id": 27, + "name": "value", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "type": { + "type": "union", + "types": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "literal", + "value": false + } + ] + } + } + ] + } + } + } + ] + }, + { + "id": 8, + "name": "mutateObject", + "kind": 64, + "kindString": "Function", + "flags": { + "isConst": true + }, + "sources": [ + { + "fileName": "obj-mutator.ts", + "line": 104, + "character": 13 + } + ], + "signatures": [ + { + "id": 9, + "name": "mutateObject", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "comment": { + "shortText": "Mutates an object applying a list of mutation.\nWe are using currying to provide the list of mutations rules.\nOnly a single mutation is applied to facilitate the studying of the impact.", + "returns": "a `CrumbleObject` representing most javascript objects\n" + }, + "parameters": [ + { + "id": 10, + "name": "rules", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "comment": { + "shortText": "a list of rules used to infer the kind of value of each property in the object" + }, + "type": { + "type": "array", + "elementType": { + "type": "reference", + "name": "CrumbleFieldMutation" + } + } + } + ], + "type": { + "type": "reflection", + "declaration": { + "id": 11, + "name": "__type", + "kind": 65536, + "kindString": "Type literal", + "flags": {}, + "signatures": [ + { + "id": 12, + "name": "__type", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "parameters": [ + { + "id": 13, + "name": "mutation", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "type": { + "type": "reference", + "name": "OakObjApplicableMutation" + } + } + ], + "type": { + "type": "reflection", + "declaration": { + "id": 14, + "name": "__type", + "kind": 65536, + "kindString": "Type literal", + "flags": {}, + "signatures": [ + { + "id": 15, + "name": "__type", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "parameters": [ + { + "id": 16, + "name": "content", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "type": { + "type": "reference", + "name": "CrumbleObject" + } + } + ], + "type": { + "type": "reference", + "name": "CrumbleObject" + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "id": 18, + "name": "someUrl", + "kind": 64, + "kindString": "Function", + "flags": { + "isConst": true + }, + "sources": [ + { + "fileName": "string-abstractor.ts", + "line": 9, + "character": 13 + } + ], + "signatures": [ + { + "id": 19, + "name": "someUrl", + "kind": 4096, + "kindString": "Call signature", + "flags": {}, + "comment": { + "shortText": "Detect an url", + "returns": "the `url` keyword or false\n" + }, + "parameters": [ + { + "id": 20, + "name": "value", + "kind": 32768, + "kindString": "Parameter", + "flags": {}, + "comment": { + "shortText": "the text to check" + }, + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "type": { + "type": "union", + "types": [ + { + "type": "intrinsic", + "name": "string" + }, + { + "type": "literal", + "value": false + } + ] + } + } + ] + } + ], + "groups": [ + { + "title": "Variables", + "kind": 32, + "children": [ + 17 + ] + }, + { + "title": "Functions", + "kind": 64, + "children": [ + 1, + 21, + 8, + 18 + ], + "categories": [ + { + "title": "Other", + "children": [ + 1, + 8 + ] + }, + { + "title": "String abstractor", + "children": [ + 21, + 18 + ] + } + ] + } + ], + "sources": [ + { + "fileName": "index.ts", + "line": 1, + "character": 0 + } + ] + } \ No newline at end of file diff --git a/pest-spec/scripts/cleaning.sed b/pest-spec/scripts/cleaning.sed new file mode 100644 index 0000000..a32266e --- /dev/null +++ b/pest-spec/scripts/cleaning.sed @@ -0,0 +1,4 @@ +/Done/d +/ExperimentalWarning/d +/yarn run/d +/trace-warnings/d \ No newline at end of file diff --git a/pest-spec/snapshots/cli--parse--INTERNAL.md b/pest-spec/snapshots/cli--parse--INTERNAL.md new file mode 100644 index 0000000..25c1378 --- /dev/null +++ b/pest-spec/snapshots/cli--parse--INTERNAL.md @@ -0,0 +1,290 @@ +# Internal + +> Overview of the code base of baldrick-doc-ts + +This document has been generated automatically by [baldrick-doc-ts](https://github.com/flarebyte/baldrick-doc-ts) + +## Diagram of the dependencies + +```mermaid +classDiagram +class `client.ts`{ + +runClient() +} +class `commanding-action.ts`{ + +cmdGenerateTypedocAction() + +cmdParseAction() +} +class `commanding-data.ts` +class `commanding-helper.ts`{ + -capitalize() + -decapitalize() + +toCamelCase() + +toCommanderOption() + +splitDocBase() +} +class `commanding.ts` +class `env-helper.ts`{ + +getPackageName() +} +class `feature-helper.ts`{ + -isFeature() + -toFeature() + +toFeatures() +} +class `fp-diagram.ts`{ + -functionInfoToDiagram() + -importInfoToDiagrams() + -importInfoToRelationships() + +toFunctionalProgrammingDiagram() + -functionToMermaid() + -entityToMermaid() + -relationshipToMermaid() + -noDuplicateFunctionDiagram() + -mergeFunctionDiagrams() + +mergeSourceDiagrams() + -noDuplicateRelationshipDiagram() + +toFunctionalProgrammingMermaid() +} +class `fp-vocabulary.ts`{ + -extractWordsFromName() + -asVocabulary() + -extractSource() + +toProjectVocabulary() + -convertToNgram() + -byCountDesc() + +toProjectVocabularyRank() +} +class `index.ts` +class `io-sfx.ts`{ + -readTypedocJson() + -writeApiMd() + -createDocDir() + +updateAll() +} +class `markdown-api.ts`{ + -apiFilename() + -parameterToString() + -functionToMdSection() + -variableToMdSection() + -titleToRef() + +toTypedocApiMd() +} +class `markdown-internal.ts`{ + +toMarkdownInternal() +} +class `markdown-vocabulary.ts`{ + +toVocabularyTable() + +toVocabularyRankTable() + +toMarkdownVocabulary() +} +class `markdown.ts`{ + -findHeader() + -getMainSection() + -discardHeader2() + -linesToSection() + -detectSecondaryHeader() + -getSecondarySections() + -keepHeaderBody() + +parseMarkdown() + -sectionToString() + +markdownToString() +} +class `model.ts` +class `parse-action.ts`{ + -createDocDir() + -generateMarkdowns() + +parseAction() +} +class `parser-model.ts` +class `term-formatter.ts`{ + -simplifyObject() + -simplifyJson() + -toJsonish() + +basicFormatter() + +errorFormatter() +} +class `ts-parser.ts`{ + -extractImportInfo() + -toUniqueStringArray() + -extractFunctionInfo() + -extractFunctionExpressionInfo() + -extractInterfaceInfo() + -extractTypeAliasInfo() + +createProject() + -isFunctionInfo() + +parseTsContent() + +parseProject() +} +class `typedoc-json-model.ts` +class `version.ts` +class `./index.js`{ + +commanding() +} +class `./io-sfx.js`{ + +updateAll() +} +class `./model.js`{ + +type TermFormatterParams() + +type TermFormatterFormat() + +type ErrTermFormatterParams() + +type RunnerContext() + +type ParseActionOpts() + +type MdSection() + +type MdDocument() + +type GenerateTypedocActionOpts() + +type SupportedFeature() + +type ParseRawOpts() + +type ParseAction() + +type GenerateTypedocRawOpts() + +type GenerateTypedocAction() + +type CmdOption() + +type CmdOptionsParser() + +type CmdOptionsGeneratorTypedoc() +} +class `./parse-action.js`{ + +parseAction() +} +class `node:path`{ + +path() +} +class `commander`{ + +Command() + +Option() +} +class `./commanding-data.js`{ + +cmdOptionsParser() + +cmdOptionsGenerator() +} +class `./commanding-helper.js`{ + +toCommanderOption() + +splitDocBase() +} +class `./env-helper.js`{ + +getPackageName() +} +class `./feature-helper.js`{ + +toFeatures() +} +class `./term-formatter.js`{ + +errorFormatter() + +basicFormatter() +} +class `./version.js`{ + +version() +} +class `./parser-model.js`{ + +type SourceInfo() + +type ModuleInfo() + +type InterfaceInfo() + +type ImportInfo() + +type FunctionInfo() + +type ProjectVocabulary() + +type ProjectNgram() + +type VocabularyNGram() + +type Vocabulary() + +type FunctionDiagram() + +type RelationshipDiagram() + +type SourceDiagram() + +type FunctionalProgrammingDiagram() +} +class `./commanding-action.js`{ + +cmdParseAction() + +cmdGenerateTypedocAction() +} +class `./commanding.js`{ + +Commanding() +} +class `node:fs/promises`{ + +mkdir() + +writeFile() + +readFile() +} +class `./markdown-api.js`{ + +toTypedocApiMd() +} +class `./typedoc-json-model.js`{ + +type TypedocJson() + +type TypedocChild() + +type Parameter() +} +class `./markdown.js`{ + +markdownToString() +} +class `./fp-diagram.js`{ + +toFunctionalProgrammingMermaid() + +toFunctionalProgrammingDiagram() +} +class `markdown-table`{ + +markdownTable() +} +class `./fp-vocabulary.js`{ + +toProjectVocabularyRank() + +toProjectVocabulary() +} +class `./markdown-internal.js`{ + +toMarkdownInternal() +} +class `./markdown-vocabulary.js`{ + +toMarkdownVocabulary() +} +class `./ts-parser.js`{ + +parseProject() + +createProject() +} +class `ts-morph`{ + +type TypeAliasDeclaration() + +type InterfaceDeclaration() + +type VariableDeclaration() + +type FunctionDeclaration() + +type ImportDeclaration() + +type SourceFile() + +Project() +} +`client.ts`-->`./index.js` +`commanding-action.ts`-->`./io-sfx.js` +`commanding-action.ts`-->`./model.js` +`commanding-action.ts`-->`./parse-action.js` +`commanding-data.ts`-->`./model.js` +`commanding-helper.ts`-->`node:path` +`commanding-helper.ts`-->`commander` +`commanding-helper.ts`-->`./model.js` +`commanding.ts`-->`commander` +`commanding.ts`-->`./commanding-data.js` +`commanding.ts`-->`./commanding-helper.js` +`commanding.ts`-->`./env-helper.js` +`commanding.ts`-->`./feature-helper.js` +`commanding.ts`-->`./model.js` +`commanding.ts`-->`./term-formatter.js` +`commanding.ts`-->`./version.js` +`feature-helper.ts`-->`./model.js` +`fp-diagram.ts`-->`./parser-model.js` +`fp-vocabulary.ts`-->`./parser-model.js` +`index.ts`-->`./commanding-action.js` +`index.ts`-->`./commanding.js` +`io-sfx.ts`-->`node:fs/promises` +`io-sfx.ts`-->`./markdown-api.js` +`io-sfx.ts`-->`./model.js` +`io-sfx.ts`-->`./typedoc-json-model.js` +`markdown-api.ts`-->`./markdown.js` +`markdown-api.ts`-->`./model.js` +`markdown-api.ts`-->`./typedoc-json-model.js` +`markdown-internal.ts`-->`./fp-diagram.js` +`markdown-internal.ts`-->`./markdown.js` +`markdown-internal.ts`-->`./model.js` +`markdown-internal.ts`-->`./parser-model.js` +`markdown-vocabulary.ts`-->`markdown-table` +`markdown-vocabulary.ts`-->`./fp-vocabulary.js` +`markdown-vocabulary.ts`-->`./markdown.js` +`markdown-vocabulary.ts`-->`./model.js` +`markdown-vocabulary.ts`-->`./parser-model.js` +`markdown.ts`-->`./model.js` +`parse-action.ts`-->`node:fs/promises` +`parse-action.ts`-->`./markdown-internal.js` +`parse-action.ts`-->`./markdown-vocabulary.js` +`parse-action.ts`-->`./model.js` +`parse-action.ts`-->`./ts-parser.js` +`term-formatter.ts`-->`./model.js` +`ts-parser.ts`-->`ts-morph` +`ts-parser.ts`-->`./parser-model.js` +``` \ No newline at end of file diff --git a/pest-spec/snapshots/cli--typedoc--typedoc.md b/pest-spec/snapshots/cli--typedoc--typedoc.md new file mode 100644 index 0000000..b7f5cae --- /dev/null +++ b/pest-spec/snapshots/cli--typedoc--typedoc.md @@ -0,0 +1,92 @@ +# API of object-crumble + +> List of functions and variables for `object-crumble` + +__Functions:__ + +* [abstractObject](temp/PEST_API.md#abstractObject) +* [anyOfString](temp/PEST_API.md#anyOfString) +* [mutateObject](temp/PEST_API.md#mutateObject) +* [someUrl](temp/PEST_API.md#someUrl) + + +__Variables:__ + +* [mutatorRules](temp/PEST_API.md#mutatorRules) + +## abstractObject + +⎔ Convert any object to an abstract representation of the object structure +``` +abstractObject({name: "Jane"}) +``` + +### Parameters + +* rules: Array of `StringAbstractionRule`: a list of rules used to infer the kind of value of each property in the object + +* prefix: `string`: path of the object in the enclosing object, or empty if none + +### Returns + +an array of `CrumbleAbstractedValue` representing each `path` `kind` pair. + + +See [obj-abstractor.ts - L58](https://github.com/flarebyte/baldrick-doc-ts/blob/main/src/obj-abstractor.ts#L58) + +## anyOfString + +⎔ Detect a a string from a given list of string + +### Parameters + +* name: `string`: the keyword to return if the detection happens + +* options: Array of `string`: a list of string that would satisfy the detection + +### Returns + +the `name` keyword or false + + +See [string-abstractor.ts - L19](https://github.com/flarebyte/baldrick-doc-ts/blob/main/src/string-abstractor.ts#L19) + +## mutateObject + +⎔ Mutates an object applying a list of mutation. +We are using currying to provide the list of mutations rules. +Only a single mutation is applied to facilitate the studying of the impact. + +### Parameters + +* rules: Array of `CrumbleFieldMutation`: a list of rules used to infer the kind of value of each property in the object + +### Returns + +a `CrumbleObject` representing most javascript objects + + +See [obj-mutator.ts - L104](https://github.com/flarebyte/baldrick-doc-ts/blob/main/src/obj-mutator.ts#L104) + +## someUrl + +⎔ Detect an url + +### Parameters + +* value: `string`: the text to check + +### Returns + +the `url` keyword or false + + +See [string-abstractor.ts - L9](https://github.com/flarebyte/baldrick-doc-ts/blob/main/src/string-abstractor.ts#L9) + +## mutatorRules + +Array of `CrumbleFieldMutation` + +Basic mutator rules that can be used out of the box + +See [obj-mutator.ts - L38](https://github.com/flarebyte/baldrick-doc-ts/blob/main/src/obj-mutator.ts#L38) \ No newline at end of file diff --git a/pest-spec/snapshots/cli-help--general-help--help.txt b/pest-spec/snapshots/cli-help--general-help--help.txt new file mode 100644 index 0000000..a9b6afa --- /dev/null +++ b/pest-spec/snapshots/cli-help--general-help--help.txt @@ -0,0 +1,11 @@ +$ node --loader ts-node/esm src/cli.mts --help +Usage: cli [options] [command] + +Options: + -V, --version output the version number + -h, --help display help for command + +Commands: + typedoc [options] Generate typedoc documentation + parse [options] Parse typescript and extract documentation + help [command] display help for command \ No newline at end of file diff --git a/pest-spec/snapshots/cli-help--parse-help--parse-help.txt b/pest-spec/snapshots/cli-help--parse-help--parse-help.txt new file mode 100644 index 0000000..a8d0d62 --- /dev/null +++ b/pest-spec/snapshots/cli-help--parse-help--parse-help.txt @@ -0,0 +1,13 @@ +$ node --loader ts-node/esm src/cli.mts parse --help +Usage: cli parse [options] + +Parse typescript and extract documentation + +Options: + -f, --feature [feature...] List of features (choices: "internal", + "ngram", default: ["internal","ngram"]) + -db, --doc-base [docBase] Specify the base name for documentation + (doc/api) (default: "") + -sd, --src-directory [srcDirectory] Directory of the source code that will + be used for links (default: "src") + -h, --help display help for command \ No newline at end of file diff --git a/pest-spec/snapshots/cli-help--typedoc-help--typedoc-help.txt b/pest-spec/snapshots/cli-help--typedoc-help--typedoc-help.txt new file mode 100644 index 0000000..cd8e831 --- /dev/null +++ b/pest-spec/snapshots/cli-help--typedoc-help--typedoc-help.txt @@ -0,0 +1,15 @@ +$ node --loader ts-node/esm src/cli.mts typedoc --help +Usage: cli typedoc [options] + +Generate typedoc documentation + +Options: + -f, --feature [feature...] List of features (choices: "md", + default: ["md"]) + -s, --json-source [jsonSource] Typedoc json filename (default: + "doc.json") + -db, --doc-base [docBase] Specify the base name for documentation + (doc/api) (default: "") + -sd, --src-directory [srcDirectory] Directory of the source code that will + be used for links (default: "src") + -h, --help display help for command \ No newline at end of file diff --git a/src/client.ts b/src/client.ts index 65ee878..c3c2f5f 100644 --- a/src/client.ts +++ b/src/client.ts @@ -1,14 +1,14 @@ -import { commanding } from './index.js'; +import {commanding} from './index.js'; /** * This function may be merged in the future when the linter does a better job at recognizing .mts files */ export async function runClient() { - try { - await commanding.parseAsyncArgv(); - } catch (error) { - console.log('baldrick-doc-ts generator will exit with error code 1'); - console.error(error); - process.exit(1); // eslint-disable-line unicorn/no-process-exit - } + try { + await commanding.parseAsyncArgv(); + } catch (error) { + console.log('baldrick-doc-ts generator will exit with error code 1'); + console.error(error); + process.exit(1); // eslint-disable-line unicorn/no-process-exit + } } diff --git a/src/commanding-action.ts b/src/commanding-action.ts index 56c2297..aaf758f 100644 --- a/src/commanding-action.ts +++ b/src/commanding-action.ts @@ -1,35 +1,35 @@ -import { updateAll } from './io-sfx.js'; +import {updateAll} from './io-sfx.js'; import { - GenerateTypedocAction, - GenerateTypedocActionOpts, - ParseAction, - ParseActionOpts, - RunnerContext, + type GenerateTypedocAction, + type GenerateTypedocActionOpts, + type ParseAction, + type ParseActionOpts, + type RunnerContext, } from './model.js'; -import { parseAction } from './parse-action.js'; +import {parseAction} from './parse-action.js'; export const cmdGenerateTypedocAction: GenerateTypedocAction = async ( - ctx: RunnerContext, - options: GenerateTypedocActionOpts + ctx: RunnerContext, + options: GenerateTypedocActionOpts, ) => { - await updateAll(ctx, options); - ctx.termFormatter({ - title: 'Generated typedoc documentation', - detail: ['Check the generated API.md'].join('\n'), - kind: 'info', - format: 'default', - }); + await updateAll(ctx, options); + ctx.termFormatter({ + title: 'Generated typedoc documentation', + detail: ['Check the generated API.md'].join('\n'), + kind: 'info', + format: 'default', + }); }; export const cmdParseAction: ParseAction = async ( - ctx: RunnerContext, - options: ParseActionOpts + ctx: RunnerContext, + options: ParseActionOpts, ) => { - await parseAction(ctx, options); - ctx.termFormatter({ - title: 'Parse typescript for documentation', - detail: ['Check the generated INTERNAL.md'].join('\n'), - kind: 'info', - format: 'default', - }); + await parseAction(ctx, options); + ctx.termFormatter({ + title: 'Parse typescript for documentation', + detail: ['Check the generated INTERNAL.md'].join('\n'), + kind: 'info', + format: 'default', + }); }; diff --git a/src/commanding-data.ts b/src/commanding-data.ts index 69abcf5..da31c00 100644 --- a/src/commanding-data.ts +++ b/src/commanding-data.ts @@ -1,66 +1,66 @@ import { - CmdOption, - CmdOptionsGeneratorTypedoc, - CmdOptionsParser, + type CmdOption, + type CmdOptionsGeneratorTypedoc, + type CmdOptionsParser, } from './model.js'; const feature: CmdOption = { - shortFlag: 'f', - longFlag: 'feature', - description: 'List of features', - choices: ['md'], - mandatory: false, - variadic: true, - defaultValue: ['md'], + shortFlag: 'f', + longFlag: 'feature', + description: 'List of features', + choices: ['md'], + mandatory: false, + variadic: true, + defaultValue: ['md'], }; const jsonSource: CmdOption = { - shortFlag: 's', - longFlag: 'json-source', - description: 'Typedoc json filename', - defaultValue: 'doc.json', - choices: [], - mandatory: false, - variadic: false, + shortFlag: 's', + longFlag: 'json-source', + description: 'Typedoc json filename', + defaultValue: 'doc.json', + choices: [], + mandatory: false, + variadic: false, }; const docBase: CmdOption = { - shortFlag: 'db', - longFlag: 'doc-base', - description: 'Specify the base name for documentation (doc/api)', - defaultValue: '', - choices: [], - mandatory: false, - variadic: false, + shortFlag: 'db', + longFlag: 'doc-base', + description: 'Specify the base name for documentation (doc/api)', + defaultValue: '', + choices: [], + mandatory: false, + variadic: false, }; const srcDirectory: CmdOption = { - shortFlag: 'sd', - longFlag: 'src-directory', - description: 'Directory of the source code that will be used for links', - choices: [], - mandatory: true, - variadic: false, - defaultValue: 'src', + shortFlag: 'sd', + longFlag: 'src-directory', + description: 'Directory of the source code that will be used for links', + choices: [], + mandatory: true, + variadic: false, + defaultValue: 'src', }; export const cmdOptionsGenerator: CmdOptionsGeneratorTypedoc = { - feature, - jsonSource, - docBase, - srcDirectory, + feature, + jsonSource, + docBase, + srcDirectory, }; const featureParser: CmdOption = { - shortFlag: 'f', - longFlag: 'feature', - description: 'List of features', - choices: ['internal', 'ngram'], - mandatory: false, - variadic: true, - defaultValue: ['internal', 'ngram'], + shortFlag: 'f', + longFlag: 'feature', + description: 'List of features', + choices: ['internal', 'ngram'], + mandatory: false, + variadic: true, + defaultValue: ['internal', 'ngram'], }; export const cmdOptionsParser: CmdOptionsParser = { - feature: featureParser, - docBase, - srcDirectory, + feature: featureParser, + docBase, + srcDirectory, }; diff --git a/src/commanding-helper.ts b/src/commanding-helper.ts index aeb329f..07814b3 100644 --- a/src/commanding-helper.ts +++ b/src/commanding-helper.ts @@ -1,36 +1,37 @@ import path from 'node:path'; -import { Option } from 'commander'; -import { CmdOption } from './model.js'; +import {Option} from 'commander'; +import {type CmdOption} from './model.js'; const capitalize = (value: string): string => - value.length > 0 ? (value[0] || '').toUpperCase() + value.slice(1) : ''; + value.length > 0 ? (value[0] || '').toUpperCase() + value.slice(1) : ''; const decapitalize = (value: string): string => - value.length > 0 ? (value[0] || '').toLowerCase() + value.slice(1) : ''; + value.length > 0 ? (value[0] || '').toLowerCase() + value.slice(1) : ''; export const toCamelCase = (longFlag: string): string => - decapitalize(longFlag.split('-').map(capitalize).join('')); + decapitalize(longFlag.split('-').map(capitalize).join('')); export const toCommanderOption = (option: CmdOption): Option => { - const dot3 = option.variadic ? '...' : ''; - const flags = `-${option.shortFlag}, --${option.longFlag} [${toCamelCase( - option.longFlag - )}${dot3}]`; - const opts = new Option(flags, option.description); - opts.defaultValue = option.defaultValue; - if (option.choices.length > 0) { - opts.choices(option.choices); - } - opts.mandatory = option.mandatory; - return opts; + const dot3 = option.variadic ? '...' : ''; + const flags = `-${option.shortFlag}, --${option.longFlag} [${toCamelCase( + option.longFlag, + )}${dot3}]`; + const options = new Option(flags, option.description); + options.defaultValue = option.defaultValue; + if (option.choices.length > 0) { + options.choices(option.choices); + } + + options.mandatory = option.mandatory; + return options; }; export const splitDocBase = ( - base: string -): { docDirectory: string; docPrefix: string } => - base === '' - ? { docDirectory: '', docPrefix: '' } - : { - docDirectory: path.dirname(base), - docPrefix: path.basename(base), - }; + base: string, +): {docDirectory: string; docPrefix: string} => + base === '' + ? {docDirectory: '', docPrefix: ''} + : { + docDirectory: path.dirname(base), + docPrefix: path.basename(base), + }; diff --git a/src/commanding.ts b/src/commanding.ts index ad25942..40b4ea8 100644 --- a/src/commanding.ts +++ b/src/commanding.ts @@ -1,85 +1,85 @@ -import { Command } from 'commander'; -import { cmdOptionsGenerator, cmdOptionsParser } from './commanding-data.js'; -import { splitDocBase, toCommanderOption } from './commanding-helper.js'; -import { getPackageName } from './env-helper.js'; -import { toFeatures } from './feature-helper.js'; +import {Command} from 'commander'; +import {cmdOptionsGenerator, cmdOptionsParser} from './commanding-data.js'; +import {splitDocBase, toCommanderOption} from './commanding-helper.js'; +import {getPackageName} from './env-helper.js'; +import {toFeatures} from './feature-helper.js'; import { - GenerateTypedocAction, - GenerateTypedocActionOpts, - GenerateTypedocRawOpts, - ParseAction, - ParseActionOpts, - ParseRawOpts, - RunnerContext, + type GenerateTypedocAction, + type GenerateTypedocActionOpts, + type GenerateTypedocRawOpts, + type ParseAction, + type ParseActionOpts, + type ParseRawOpts, + type RunnerContext, } from './model.js'; -import { basicFormatter, errorFormatter } from './term-formatter.js'; -import { version } from './version.js'; +import {basicFormatter, errorFormatter} from './term-formatter.js'; +import {version} from './version.js'; export class Commanding { - _program: Command = new Command(); - constructor() { - this._program.version(version); - } + _program: Command = new Command(); + constructor() { + this._program.version(version); + } - declareGenerateAction(genAction: GenerateTypedocAction) { - this._program - .command('typedoc') - .description('Generate typedoc documentation') - .addOption(toCommanderOption(cmdOptionsGenerator.feature)) - .addOption(toCommanderOption(cmdOptionsGenerator.jsonSource)) - .addOption(toCommanderOption(cmdOptionsGenerator.docBase)) - .addOption(toCommanderOption(cmdOptionsGenerator.srcDirectory)) + declareGenerateAction(genAction: GenerateTypedocAction) { + this._program + .command('typedoc') + .description('Generate typedoc documentation') + .addOption(toCommanderOption(cmdOptionsGenerator.feature)) + .addOption(toCommanderOption(cmdOptionsGenerator.jsonSource)) + .addOption(toCommanderOption(cmdOptionsGenerator.docBase)) + .addOption(toCommanderOption(cmdOptionsGenerator.srcDirectory)) - .action(async (options: GenerateTypedocRawOpts) => { - const { feature, jsonSource, docBase, srcDirectory } = options; - const generateTypedocOpts: GenerateTypedocActionOpts = { - feature: toFeatures(feature), - jsonSource, - docBase, - ...splitDocBase(docBase), - homepage: process.env['npm_package_homepage'], - srcDirectory, - }; - const ctx: RunnerContext = { - currentPath: process.cwd(), - termFormatter: basicFormatter, - errTermFormatter: errorFormatter, - }; - await genAction(ctx, generateTypedocOpts); - }); - } + .action(async (options: GenerateTypedocRawOpts) => { + const {feature, jsonSource, docBase, srcDirectory} = options; + const generateTypedocOptions: GenerateTypedocActionOpts = { + feature: toFeatures(feature), + jsonSource, + docBase, + ...splitDocBase(docBase), + homepage: process.env['npm_package_homepage'], + srcDirectory, + }; + const ctx: RunnerContext = { + currentPath: process.cwd(), + termFormatter: basicFormatter, + errTermFormatter: errorFormatter, + }; + await genAction(ctx, generateTypedocOptions); + }); + } - declareParseAction(parseAction: ParseAction) { - this._program - .command('parse') - .description('Parse typescript and extract documentation') - .addOption(toCommanderOption(cmdOptionsParser.feature)) - .addOption(toCommanderOption(cmdOptionsParser.docBase)) - .addOption(toCommanderOption(cmdOptionsParser.srcDirectory)) + declareParseAction(parseAction: ParseAction) { + this._program + .command('parse') + .description('Parse typescript and extract documentation') + .addOption(toCommanderOption(cmdOptionsParser.feature)) + .addOption(toCommanderOption(cmdOptionsParser.docBase)) + .addOption(toCommanderOption(cmdOptionsParser.srcDirectory)) - .action(async (options: ParseRawOpts) => { - const { feature, docBase, srcDirectory } = options; - const parseOpts: ParseActionOpts = { - feature: toFeatures(feature), - docBase, - ...splitDocBase(docBase), - srcDirectory, - packageName: getPackageName(), - }; - const ctx: RunnerContext = { - currentPath: process.cwd(), - termFormatter: basicFormatter, - errTermFormatter: errorFormatter, - }; - await parseAction(ctx, parseOpts); - }); - } + .action(async (options: ParseRawOpts) => { + const {feature, docBase, srcDirectory} = options; + const parseOptions: ParseActionOpts = { + feature: toFeatures(feature), + docBase, + ...splitDocBase(docBase), + srcDirectory, + packageName: getPackageName(), + }; + const ctx: RunnerContext = { + currentPath: process.cwd(), + termFormatter: basicFormatter, + errTermFormatter: errorFormatter, + }; + await parseAction(ctx, parseOptions); + }); + } - async parseAsync(argv: string[]) { - return await this._program.parseAsync(argv, { from: 'node' }); - } + async parseAsync(argv: string[]) { + return this._program.parseAsync(argv, {from: 'node'}); + } - async parseAsyncArgv() { - return await this.parseAsync(process.argv); - } + async parseAsyncArgv() { + return this.parseAsync(process.argv); + } } diff --git a/src/env-helper.ts b/src/env-helper.ts index 31b82f6..6d0ceac 100644 --- a/src/env-helper.ts +++ b/src/env-helper.ts @@ -1,2 +1,2 @@ export const getPackageName = (): string => - process.env['npm_package_name'] || 'package'; + process.env['npm_package_name'] || 'package'; diff --git a/src/feature-helper.ts b/src/feature-helper.ts index 344c147..8634aa4 100644 --- a/src/feature-helper.ts +++ b/src/feature-helper.ts @@ -1,15 +1,16 @@ -import { SupportedFeature } from './model.js'; +import {type SupportedFeature} from './model.js'; function isFeature(value: string): value is SupportedFeature { - return ['md', 'internal', 'ngram'].includes(value); + return ['md', 'internal', 'ngram'].includes(value); } + const toFeature = (feature: string): SupportedFeature => { - if (isFeature(feature)) { - return feature; - } else { - throw new Error(`Internal feature is not supported ${feature}`); - } + if (isFeature(feature)) { + return feature; + } + + throw new Error(`Internal feature is not supported ${feature}`); }; export const toFeatures = (features: string[]): SupportedFeature[] => - features.map(toFeature); + features.map(toFeature); diff --git a/src/fp-diagram.ts b/src/fp-diagram.ts index 59d8bf2..08029b0 100644 --- a/src/fp-diagram.ts +++ b/src/fp-diagram.ts @@ -1,124 +1,125 @@ import { - FunctionalProgrammingDiagram, - ModuleInfo, - SourceInfo, - SourceDiagram, - RelationshipDiagram, - FunctionDiagram, + type FunctionalProgrammingDiagram, + type ModuleInfo, + type SourceInfo, + type SourceDiagram, + type RelationshipDiagram, + type FunctionDiagram, } from './parser-model.js'; const functionInfoToDiagram = (source: SourceInfo): SourceDiagram => ({ - filename: source.filename, - external: false, - functions: source.functions.map((f) => ({ - identifier: f.identifier, - exported: f.exported, - })), + filename: source.filename, + external: false, + functions: source.functions.map(f => ({ + identifier: f.identifier, + exported: f.exported, + })), }); const importInfoToDiagrams = (source: SourceInfo): SourceDiagram[] => - source.imports.map((i) => ({ - filename: i.from, - external: true, - functions: [{ identifier: i.identifier, exported: true }], - })); + source.imports.map(i => ({ + filename: i.from, + external: true, + functions: [{identifier: i.identifier, exported: true}], + })); const importInfoToRelationships = (source: SourceInfo): RelationshipDiagram[] => - source.imports.map((i) => ({ - from: source.filename, - to: i.from, - })); + source.imports.map(i => ({ + from: source.filename, + to: i.from, + })); export const toFunctionalProgrammingDiagram = ( - moduleInfo: ModuleInfo + moduleInfo: ModuleInfo, ): FunctionalProgrammingDiagram => { - const localSources: SourceDiagram[] = moduleInfo.sources.map( - functionInfoToDiagram - ); - const importedSources: SourceDiagram[] = - moduleInfo.sources.flatMap(importInfoToDiagrams); - - const relationships = moduleInfo.sources.flatMap(importInfoToRelationships); - - const fpDiagram: FunctionalProgrammingDiagram = { - name: moduleInfo.name, - entities: [...localSources, ...importedSources], - relationships, - }; - return fpDiagram; + const localSources: SourceDiagram[] = moduleInfo.sources.map( + functionInfoToDiagram, + ); + const importedSources: SourceDiagram[] + = moduleInfo.sources.flatMap(importInfoToDiagrams); + + const relationships = moduleInfo.sources.flatMap(importInfoToRelationships); + + const fpDiagram: FunctionalProgrammingDiagram = { + name: moduleInfo.name, + entities: [...localSources, ...importedSources], + relationships, + }; + return fpDiagram; }; const bq = '`'; const functionToMermaid = (func: FunctionDiagram): string => - `${func.exported ? ' +' : ' -'}${func.identifier}()`; + `${func.exported ? ' +' : ' -'}${func.identifier}()`; const entityToMermaid = (entity: SourceDiagram): string[] => - entity.functions.length === 0 - ? [`class ${bq}${entity.filename}${bq}`] - : [ - `class ${bq}${entity.filename}${bq}{`, - ...entity.functions.map(functionToMermaid), - '}', - ]; + entity.functions.length === 0 + ? [`class ${bq}${entity.filename}${bq}`] + : [ + `class ${bq}${entity.filename}${bq}{`, + ...entity.functions.map(functionToMermaid), + '}', + ]; const relationshipToMermaid = (relationship: RelationshipDiagram): string => - `${bq}${relationship.from}${bq}-->${bq}${relationship.to}${bq}`; + `${bq}${relationship.from}${bq}-->${bq}${relationship.to}${bq}`; const noDuplicateFunctionDiagram = ( - functionDiagram: FunctionDiagram, - index: number, - functionDiagrams: FunctionDiagram[] + functionDiagram: FunctionDiagram, + index: number, + functionDiagrams: FunctionDiagram[], ): boolean => - functionDiagrams.findIndex( - (d) => d.identifier === functionDiagram.identifier - ) === index; + functionDiagrams.findIndex( + d => d.identifier === functionDiagram.identifier, + ) === index; const mergeFunctionDiagrams = ( - a: FunctionDiagram[], - b: FunctionDiagram[] + a: FunctionDiagram[], + b: FunctionDiagram[], ): FunctionDiagram[] => [...a, ...b].filter(noDuplicateFunctionDiagram); export const mergeSourceDiagrams = ( - sources: SourceDiagram[] + sources: SourceDiagram[], ): SourceDiagram[] => { - const results = new Map(); - for (const source of sources) { - const previous = results.get(source.filename); - const newSource: SourceDiagram = previous - ? { - ...source, - functions: mergeFunctionDiagrams( - source.functions, - previous.functions - ), - } - : source; - - results.set(source.filename, newSource); - } - return [...results.values()]; + const results = new Map(); + for (const source of sources) { + const previous = results.get(source.filename); + const newSource: SourceDiagram = previous + ? { + ...source, + functions: mergeFunctionDiagrams( + source.functions, + previous.functions, + ), + } + : source; + + results.set(source.filename, newSource); + } + + return [...results.values()]; }; const noDuplicateRelationshipDiagram = ( - relationshipDiagram: RelationshipDiagram, - index: number, - relationshipDiagrams: RelationshipDiagram[] + relationshipDiagram: RelationshipDiagram, + index: number, + relationshipDiagrams: RelationshipDiagram[], ): boolean => - relationshipDiagrams.findIndex( - (rel) => - rel.from === relationshipDiagram.from && rel.to === relationshipDiagram.to - ) === index; + relationshipDiagrams.findIndex( + rel => + rel.from === relationshipDiagram.from && rel.to === relationshipDiagram.to, + ) === index; export const toFunctionalProgrammingMermaid = ( - diagram: FunctionalProgrammingDiagram + diagram: FunctionalProgrammingDiagram, ): string => { - const entities = mergeSourceDiagrams(diagram.entities); - const lines = [ - 'classDiagram', - ...entities.flatMap(entityToMermaid), - ...diagram.relationships - .filter(noDuplicateRelationshipDiagram) - .flatMap(relationshipToMermaid), - ]; - return lines.join('\n'); + const entities = mergeSourceDiagrams(diagram.entities); + const lines = [ + 'classDiagram', + ...entities.flatMap(entityToMermaid), + ...diagram.relationships + .filter(noDuplicateRelationshipDiagram) + .flatMap(relationshipToMermaid), + ]; + return lines.join('\n'); }; diff --git a/src/fp-vocabulary.ts b/src/fp-vocabulary.ts index d8d832b..e320de0 100644 --- a/src/fp-vocabulary.ts +++ b/src/fp-vocabulary.ts @@ -1,89 +1,97 @@ import { - ModuleInfo, - ProjectNgram, - ProjectVocabulary, - SourceInfo, - Vocabulary, - VocabularyNGram, + type ModuleInfo, + type ProjectNgram, + type ProjectVocabulary, + type SourceInfo, + type Vocabulary, + type VocabularyNGram, } from './parser-model.js'; + const extractWordsFromName = (text: string): string[] => - text.replace(/([\da-z])([A-Z])/g, '$1 $2').split(' '); + text.replace(/([\da-z])([A-Z])/g, '$1 $2').split(' '); -const asVocabulary = - (filename: string) => - (withId: { identifier: string }): Vocabulary => ({ - words: extractWordsFromName(withId.identifier), - filename, - }); +const asVocabulary + = (filename: string) => + (withId: {identifier: string}): Vocabulary => ({ + words: extractWordsFromName(withId.identifier), + filename, + }); const extractSource = (source: SourceInfo): Vocabulary[] => { - const functions: Vocabulary[] = source.functions.map( - asVocabulary(source.filename) - ); - const interfaces: Vocabulary[] = source.interfaces.map( - asVocabulary(source.filename) - ); - return [...functions, ...interfaces]; + const functions: Vocabulary[] = source.functions.map( + asVocabulary(source.filename), + ); + const interfaces: Vocabulary[] = source.interfaces.map( + asVocabulary(source.filename), + ); + return [...functions, ...interfaces]; }; export const toProjectVocabulary = ( - moduleInfo: ModuleInfo + moduleInfo: ModuleInfo, ): ProjectVocabulary => ({ - vocabulary: moduleInfo.sources.flatMap(extractSource), + vocabulary: moduleInfo.sources.flatMap(extractSource), }); const convertToNgram = (words: string[]): VocabularyNGram[] => { - const results = new Array(); - for (const word of words) { - results.push({ ngram: [word], count: 1 }); - } - for (let index = 0; words.length >= 2 && index < words.length - 1; index++) { - const bigram = { ngram: words.slice(index, index + 1), count: 1 }; - results.push(bigram); - } - return [...results]; + const results = new Array(); + for (const word of words) { + results.push({ngram: [word], count: 1}); + } + + for (let index = 0; words.length >= 2 && index < words.length - 1; index++) { + const bigram = {ngram: words.slice(index, index + 1), count: 1}; + results.push(bigram); + } + + return [...results]; }; const byCountDesc = (a: VocabularyNGram, b: VocabularyNGram): number => { - if (a.count < b.count) { - return 1; - } - if (a.count > b.count) { - return -1; - } - const aa = a.ngram.join('/'); - const bb = b.ngram.join('/'); - if (aa < bb) { - return 1; - } - if (aa > bb) { - return -1; - } - return 0; + if (a.count < b.count) { + return 1; + } + + if (a.count > b.count) { + return -1; + } + + const aa = a.ngram.join('/'); + const bb = b.ngram.join('/'); + if (aa < bb) { + return 1; + } + + if (aa > bb) { + return -1; + } + + return 0; }; export const toProjectVocabularyRank = ( - projectVocabulary: ProjectVocabulary + projectVocabulary: ProjectVocabulary, ): ProjectNgram => { - const allNgrams = projectVocabulary.vocabulary.flatMap((v) => - convertToNgram(v.words) - ); - const counter = new Map(); - for (const ngram of allNgrams) { - const previous = counter.get(ngram.ngram.join('/')); - const newCount = previous === undefined ? 1 : previous + ngram.count; - counter.set(ngram.ngram.join('/'), newCount); - } - const aggregate: VocabularyNGram[] = [...counter.entries()].map((kv) => ({ - ngram: kv[0].split('/'), - count: kv[1], - })); - - const filtered = aggregate - .filter((ngram) => ngram.count > 1) - .sort(byCountDesc); - - return { - ngram: filtered, - }; + const allNgrams = projectVocabulary.vocabulary.flatMap(v => + convertToNgram(v.words), + ); + const counter = new Map(); + for (const ngram of allNgrams) { + const previous = counter.get(ngram.ngram.join('/')); + const newCount = previous === undefined ? 1 : previous + ngram.count; + counter.set(ngram.ngram.join('/'), newCount); + } + + const aggregate: VocabularyNGram[] = [...counter.entries()].map(kv => ({ + ngram: kv[0].split('/'), + count: kv[1], + })); + + const filtered = aggregate + .filter(ngram => ngram.count > 1) + .sort(byCountDesc); + + return { + ngram: filtered, + }; }; diff --git a/src/index.ts b/src/index.ts index aa3ecd1..ac9b296 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,12 +1,12 @@ import { - cmdGenerateTypedocAction, - cmdParseAction, + cmdGenerateTypedocAction, + cmdParseAction, } from './commanding-action.js'; -import { Commanding } from './commanding.js'; +import {Commanding} from './commanding.js'; const commanding = new Commanding(); commanding.declareGenerateAction(cmdGenerateTypedocAction); commanding.declareParseAction(cmdParseAction); -export { commanding }; +export {commanding}; diff --git a/src/io-sfx.ts b/src/io-sfx.ts index e3723bd..ab5a814 100644 --- a/src/io-sfx.ts +++ b/src/io-sfx.ts @@ -1,44 +1,44 @@ -import { readFile, writeFile, mkdir } from 'node:fs/promises'; -import { toTypedocApiMd } from './markdown-api.js'; -import { GenerateTypedocActionOpts, RunnerContext } from './model.js'; -import { TypedocJson } from './typedoc-json-model.js'; +import {readFile, writeFile, mkdir} from 'node:fs/promises'; +import {toTypedocApiMd} from './markdown-api.js'; +import {type GenerateTypedocActionOpts, type RunnerContext} from './model.js'; +import {type TypedocJson} from './typedoc-json-model.js'; const readTypedocJson = async ( - opts: GenerateTypedocActionOpts + options: GenerateTypedocActionOpts, ): Promise => { - const content = await readFile(opts.jsonSource, 'utf8'); - return JSON.parse(content); + const content = await readFile(options.jsonSource, 'utf8'); + return JSON.parse(content); }; const writeApiMd = async ( - opts: GenerateTypedocActionOpts, - typedocJson: TypedocJson + options: GenerateTypedocActionOpts, + typedocJson: TypedocJson, ) => { - const content = toTypedocApiMd(opts, typedocJson); - const filename = - opts.docBase.length > 0 ? `${opts.docBase}_API.md` : 'API.md'; - await writeFile(filename, content, 'utf8'); + const content = toTypedocApiMd(options, typedocJson); + const filename + = options.docBase.length > 0 ? `${options.docBase}_API.md` : 'API.md'; + await writeFile(filename, content, 'utf8'); }; -const createDocDir = async (opts: GenerateTypedocActionOpts) => { - await (opts.docDirectory.length === 0 || opts.docDirectory === '.' - ? Promise.resolve('no directory') - : mkdir(opts.docDirectory, { recursive: true })); +const createDocDir = async (options: GenerateTypedocActionOpts) => { + await (options.docDirectory.length === 0 || options.docDirectory === '.' + ? Promise.resolve('no directory') + : mkdir(options.docDirectory, {recursive: true})); }; export const updateAll = async ( - ctx: RunnerContext, - opts: GenerateTypedocActionOpts + ctx: RunnerContext, + options: GenerateTypedocActionOpts, ) => { - try { - const typedocJson = await readTypedocJson(opts); - await createDocDir(opts); - await writeApiMd(opts, typedocJson); - } catch (error) { - ctx.errTermFormatter({ - title: 'Generating typedoc - update error', - detail: error, - }); - throw error; - } + try { + const typedocJson = await readTypedocJson(options); + await createDocDir(options); + await writeApiMd(options, typedocJson); + } catch (error) { + ctx.errTermFormatter({ + title: 'Generating typedoc - update error', + detail: error, + }); + throw error; + } }; diff --git a/src/markdown-api.ts b/src/markdown-api.ts index 2fea7d8..9a8c0dc 100644 --- a/src/markdown-api.ts +++ b/src/markdown-api.ts @@ -1,110 +1,111 @@ -import { markdownToString } from './markdown.js'; -import { GenerateTypedocActionOpts, MdSection } from './model.js'; -import { Parameter, TypedocChild, TypedocJson } from './typedoc-json-model.js'; +import {markdownToString} from './markdown.js'; +import {type GenerateTypedocActionOpts, type MdSection} from './model.js'; +import {type Parameter, type TypedocChild, type TypedocJson} from './typedoc-json-model.js'; + const bq = '`'; -const apiFilename = (opts: GenerateTypedocActionOpts) => - opts.docBase.length > 0 ? `${opts.docBase}_API.md` : 'API.md'; +const apiFilename = (options: GenerateTypedocActionOpts) => + options.docBase.length > 0 ? `${options.docBase}_API.md` : 'API.md'; -const parameterToString = (param: Parameter): string => { - const { name, type, comment } = param; - const description = comment?.shortText || 'fixme: Adds a description'; +const parameterToString = (parameter: Parameter): string => { + const {name, type, comment} = parameter; + const description = comment?.shortText || 'fixme: Adds a description'; - const isArray = type.type === 'array'; - const arrayMarker = isArray ? 'Array of ' : ''; - const typeName = type.name || type.elementType?.name || 'fixme'; - return `* ${name}: ${arrayMarker}${bq}${typeName}${bq}: ${description}`; + const isArray = type.type === 'array'; + const arrayMarker = isArray ? 'Array of ' : ''; + const typeName = type.name || type.elementType?.name || 'fixme'; + return `* ${name}: ${arrayMarker}${bq}${typeName}${bq}: ${description}`; }; -const functionToMdSection = - (opts: GenerateTypedocActionOpts) => - (child: TypedocChild): MdSection => { - const sourceFilename = child.sources[0]?.fileName || 'which-file.ts'; - const sourceFileLine = child.sources[0]?.line || 1; - const srcHref = opts.homepage - ? `${opts.homepage}/blob/main/${opts.srcDirectory}/${sourceFilename}#L${sourceFileLine}` - : `${opts.srcDirectory}/${sourceFilename}`; - const fileRef = `See [${sourceFilename} - L${sourceFileLine}](${srcHref})`; - const signatures = child.signatures || []; - const [signature] = signatures; - const params = (signature?.parameters || []).map(parameterToString); - const description = - signature?.comment?.shortText || 'fixme: Adds a description'; - const returns = signature?.comment?.returns; - const functionReturn = returns ? ['### Returns', returns] : []; +const functionToMdSection + = (options: GenerateTypedocActionOpts) => + (child: TypedocChild): MdSection => { + const sourceFilename = child.sources[0]?.fileName || 'which-file.ts'; + const sourceFileLine = child.sources[0]?.line || 1; + const srcHref = options.homepage + ? `${options.homepage}/blob/main/${options.srcDirectory}/${sourceFilename}#L${sourceFileLine}` + : `${options.srcDirectory}/${sourceFilename}`; + const fileRef = `See [${sourceFilename} - L${sourceFileLine}](${srcHref})`; + const signatures = child.signatures || []; + const [signature] = signatures; + const parameters = (signature?.parameters || []).map(parameterToString); + const description + = signature?.comment?.shortText || 'fixme: Adds a description'; + const returns = signature?.comment?.returns; + const functionReturn = returns ? ['### Returns', returns] : []; - const section: MdSection = { - title: `${child.name}`, - body: [ - `⎔ ${description}`, - '### Parameters', - ...params, - ...functionReturn, - fileRef, - ].join('\n\n'), - }; - return section; - }; + const section: MdSection = { + title: `${child.name}`, + body: [ + `⎔ ${description}`, + '### Parameters', + ...parameters, + ...functionReturn, + fileRef, + ].join('\n\n'), + }; + return section; + }; -const variableToMdSection = - (opts: GenerateTypedocActionOpts) => - (child: TypedocChild): MdSection => { - const sourceFilename = child.sources[0]?.fileName || 'which-file.ts'; - const sourceFileLine = child.sources[0]?.line || 1; - const srcHref = opts.homepage - ? `${opts.homepage}/blob/main/${opts.srcDirectory}/${sourceFilename}#L${sourceFileLine}` - : `${opts.srcDirectory}/${sourceFilename}`; - const fileRef = `See [${sourceFilename} - L${sourceFileLine}](${srcHref})`; - const description = - child?.comment?.shortText || 'fixme: Adds a description'; - const isArray = child?.type?.type === 'array'; - const arrayMarker = isArray ? 'Array of ' : ''; +const variableToMdSection + = (options: GenerateTypedocActionOpts) => + (child: TypedocChild): MdSection => { + const sourceFilename = child.sources[0]?.fileName || 'which-file.ts'; + const sourceFileLine = child.sources[0]?.line || 1; + const srcHref = options.homepage + ? `${options.homepage}/blob/main/${options.srcDirectory}/${sourceFilename}#L${sourceFileLine}` + : `${options.srcDirectory}/${sourceFilename}`; + const fileRef = `See [${sourceFilename} - L${sourceFileLine}](${srcHref})`; + const description + = child?.comment?.shortText || 'fixme: Adds a description'; + const isArray = child?.type?.type === 'array'; + const arrayMarker = isArray ? 'Array of ' : ''; - const name = child?.type?.elementType?.name; - const signature = `${arrayMarker}${bq}${name}${bq}`; + const name = child?.type?.elementType?.name; + const signature = `${arrayMarker}${bq}${name}${bq}`; - const section: MdSection = { - title: `${child.name}`, - body: [signature, description, fileRef].join('\n\n'), - }; - return section; - }; + const section: MdSection = { + title: `${child.name}`, + body: [signature, description, fileRef].join('\n\n'), + }; + return section; + }; -const titleToRef = - (opts: GenerateTypedocActionOpts) => - (section: MdSection): string => - `* [${section.title}](${apiFilename(opts)}#${section.title})`; +const titleToRef + = (options: GenerateTypedocActionOpts) => + (section: MdSection): string => + `* [${section.title}](${apiFilename(options)}#${section.title})`; export const toTypedocApiMd = ( - opts: GenerateTypedocActionOpts, - typedocJson: TypedocJson + options: GenerateTypedocActionOpts, + typedocJson: TypedocJson, ): string => { - const allFunctions = typedocJson.children.filter( - (child) => child.kindString === 'Function' - ); - const allVariables = typedocJson.children.filter( - (child) => child.kindString === 'Variable' - ); - const functionSections = allFunctions.map(functionToMdSection(opts)); - const varSections = allVariables.map(variableToMdSection(opts)); - const idxFunctions = functionSections.map(titleToRef(opts)); - const idxVars = varSections.map(titleToRef(opts)); - const mainSectionFunctions = - idxFunctions.length === 0 - ? [] - : ['__Functions:__', '', ...idxFunctions, '']; - const mainSectionVariables = - idxVars.length === 0 ? [] : ['', '__Variables:__', '', ...idxVars]; + const allFunctions = typedocJson.children.filter( + child => child.kindString === 'Function', + ); + const allVariables = typedocJson.children.filter( + child => child.kindString === 'Variable', + ); + const functionSections = allFunctions.map(functionToMdSection(options)); + const varSections = allVariables.map(variableToMdSection(options)); + const idxFunctions = functionSections.map(titleToRef(options)); + const idxVars = varSections.map(titleToRef(options)); + const mainSectionFunctions + = idxFunctions.length === 0 + ? [] + : ['__Functions:__', '', ...idxFunctions, '']; + const mainSectionVariables + = idxVars.length === 0 ? [] : ['', '__Variables:__', '', ...idxVars]; - const mainSection = [...mainSectionFunctions, ...mainSectionVariables].join( - '\n' - ); + const mainSection = [...mainSectionFunctions, ...mainSectionVariables].join( + '\n', + ); - const mdDoc = { - title: `API of ${typedocJson.name}`, - description: `List of functions and variables for ${bq}${typedocJson.name}${bq}`, - mainSection, - sections: [...functionSections, ...varSections], - }; - return markdownToString(mdDoc); + const mdDoc = { + title: `API of ${typedocJson.name}`, + description: `List of functions and variables for ${bq}${typedocJson.name}${bq}`, + mainSection, + sections: [...functionSections, ...varSections], + }; + return markdownToString(mdDoc); }; diff --git a/src/markdown-internal.ts b/src/markdown-internal.ts index f0f9e76..cba2ea1 100644 --- a/src/markdown-internal.ts +++ b/src/markdown-internal.ts @@ -1,25 +1,25 @@ import { - toFunctionalProgrammingDiagram, - toFunctionalProgrammingMermaid, + toFunctionalProgrammingDiagram, + toFunctionalProgrammingMermaid, } from './fp-diagram.js'; -import { markdownToString } from './markdown.js'; -import { MdDocument, MdSection } from './model.js'; -import { ModuleInfo } from './parser-model.js'; +import {markdownToString} from './markdown.js'; +import {type MdDocument, type MdSection} from './model.js'; +import {type ModuleInfo} from './parser-model.js'; export const toMarkdownInternal = (module: ModuleInfo): string => { - const fpDiagram = toFunctionalProgrammingDiagram(module); - const mermaidDiagram = toFunctionalProgrammingMermaid(fpDiagram); - const bq3 = '```'; - const fpDiagramSection: MdSection = { - title: 'Diagram of the dependencies', - body: [`${bq3}mermaid`, mermaidDiagram, bq3].join('\n'), - }; - const doc: MdDocument = { - title: 'Internal', - description: `Overview of the code base of ${module.name}`, - mainSection: + const fpDiagram = toFunctionalProgrammingDiagram(module); + const mermaidDiagram = toFunctionalProgrammingMermaid(fpDiagram); + const bq3 = '```'; + const fpDiagramSection: MdSection = { + title: 'Diagram of the dependencies', + body: [`${bq3}mermaid`, mermaidDiagram, bq3].join('\n'), + }; + const doc: MdDocument = { + title: 'Internal', + description: `Overview of the code base of ${module.name}`, + mainSection: 'This document has been generated automatically by [baldrick-doc-ts](https://github.com/flarebyte/baldrick-doc-ts)', - sections: [fpDiagramSection], - }; - return markdownToString(doc); + sections: [fpDiagramSection], + }; + return markdownToString(doc); }; diff --git a/src/markdown-vocabulary.ts b/src/markdown-vocabulary.ts index 50ecc58..34b122e 100644 --- a/src/markdown-vocabulary.ts +++ b/src/markdown-vocabulary.ts @@ -1,53 +1,53 @@ -import { markdownTable } from 'markdown-table'; +import {markdownTable} from 'markdown-table'; import { - toProjectVocabulary, - toProjectVocabularyRank, + toProjectVocabulary, + toProjectVocabularyRank, } from './fp-vocabulary.js'; -import { markdownToString } from './markdown.js'; -import { MdDocument, MdSection } from './model.js'; -import { ModuleInfo, ProjectNgram, ProjectVocabulary } from './parser-model.js'; +import {markdownToString} from './markdown.js'; +import {type MdDocument, type MdSection} from './model.js'; +import {type ModuleInfo, type ProjectNgram, type ProjectVocabulary} from './parser-model.js'; export const toVocabularyTable = ( - projectVocabulary: ProjectVocabulary + projectVocabulary: ProjectVocabulary, ): string => { - const rows: [string, string, string][] = projectVocabulary.vocabulary.map( - (v) => [v.words.join(' ').toLowerCase(), `${v.words.length}`, v.filename] - ); - return markdownTable([['Identifier', 'Word count', 'Filename'], ...rows]); + const rows: Array<[string, string, string]> = projectVocabulary.vocabulary.map( + v => [v.words.join(' ').toLowerCase(), `${v.words.length}`, v.filename], + ); + return markdownTable([['Identifier', 'Word count', 'Filename'], ...rows]); }; export const toVocabularyRankTable = (projectNgram: ProjectNgram): string => { - const rows: [string, string][] = projectNgram.ngram.map((v) => [ - v.ngram.join(' ').toLowerCase(), - `${v.count}`, - ]); - return markdownTable([['n-gram', 'Frequency'], ...rows]); + const rows: Array<[string, string]> = projectNgram.ngram.map(v => [ + v.ngram.join(' ').toLowerCase(), + `${v.count}`, + ]); + return markdownTable([['n-gram', 'Frequency'], ...rows]); }; export const toMarkdownVocabulary = (module: ModuleInfo): string => { - const projectVocabulary = toProjectVocabulary(module); - const vocabularyTable = toVocabularyTable(projectVocabulary); - const vocabularyRank = toProjectVocabularyRank(projectVocabulary); - const vocabularyRankTable = toVocabularyRankTable(vocabularyRank); - const fpDiagramSection: MdSection = { - title: 'Code base vocabulary', - body: ['Table of vocabulary found in the code base', vocabularyTable].join( - '\n' - ), - }; - const fpNgramSection: MdSection = { - title: 'Popularity of sequence of words', - body: [ - 'Table showing the popularity of some n-gram in the code base', - vocabularyRankTable, - ].join('\n'), - }; - const doc: MdDocument = { - title: 'Code base vocabulary', - description: `Overview of the code base vocabulary for ${module.name}`, - mainSection: + const projectVocabulary = toProjectVocabulary(module); + const vocabularyTable = toVocabularyTable(projectVocabulary); + const vocabularyRank = toProjectVocabularyRank(projectVocabulary); + const vocabularyRankTable = toVocabularyRankTable(vocabularyRank); + const fpDiagramSection: MdSection = { + title: 'Code base vocabulary', + body: ['Table of vocabulary found in the code base', vocabularyTable].join( + '\n', + ), + }; + const fpNgramSection: MdSection = { + title: 'Popularity of sequence of words', + body: [ + 'Table showing the popularity of some n-gram in the code base', + vocabularyRankTable, + ].join('\n'), + }; + const doc: MdDocument = { + title: 'Code base vocabulary', + description: `Overview of the code base vocabulary for ${module.name}`, + mainSection: 'This document has been generated automatically by [baldrick-doc-ts](https://github.com/flarebyte/baldrick-doc-ts)', - sections: [fpDiagramSection, fpNgramSection], - }; - return markdownToString(doc); + sections: [fpDiagramSection, fpNgramSection], + }; + return markdownToString(doc); }; diff --git a/src/markdown.ts b/src/markdown.ts index 124d24a..1ec9e17 100644 --- a/src/markdown.ts +++ b/src/markdown.ts @@ -1,69 +1,69 @@ -import { MdDocument, MdSection } from './model.js'; +import {type MdDocument, type MdSection} from './model.js'; const findHeader = (prefix: string) => (lines: string[]) => - (lines.find((line) => line.startsWith(prefix)) || prefix).slice( - prefix.length - ); + (lines.find(line => line.startsWith(prefix)) || prefix).slice( + prefix.length, + ); const getMainSection = (lines: string[]): string[] => { - const idx = lines.findIndex((line) => line.startsWith('## ')); - return idx === -1 ? lines : lines.slice(0, idx); + const idx = lines.findIndex(line => line.startsWith('## ')); + return idx === -1 ? lines : lines.slice(0, idx); }; const discardHeader2 = (line: string): boolean => !line.startsWith('## '); const linesToSection = (lines: string[]): MdSection => { - const title = findHeader('## ')(lines); - const body = lines.filter(discardHeader2).join('\n'); - return { - title, - body, - }; + const title = findHeader('## ')(lines); + const body = lines.filter(discardHeader2).join('\n'); + return { + title, + body, + }; }; const detectSecondaryHeader = (line: string, index: number): number => - line.startsWith('## ') ? index : -1; + line.startsWith('## ') ? index : -1; const getSecondarySections = (lines: string[]): MdSection[] => { - const foundIndexes = lines - .map(detectSecondaryHeader) - .filter((index) => index >= 0); - const indexes = [...foundIndexes, lines.length - 1]; - const idxRange = [...Array.from({ length: foundIndexes.length }).keys()]; - const sections = idxRange.map((idx) => - linesToSection(lines.slice(indexes[idx], indexes[idx + 1])) - ); - return sections; + const foundIndexes = lines + .map(detectSecondaryHeader) + .filter(index => index >= 0); + const indexes = [...foundIndexes, lines.length - 1]; + const idxRange = [...Array.from({length: foundIndexes.length}).keys()]; + const sections = idxRange.map(idx => + linesToSection(lines.slice(indexes[idx], indexes[idx + 1])), + ); + return sections; }; const keepHeaderBody = (line: string): boolean => - !(line.startsWith('# ') || line.startsWith('![') || line.startsWith('> ')); + !(line.startsWith('# ') || line.startsWith('![') || line.startsWith('> ')); export const parseMarkdown = (content: string): MdDocument => { - const lines = content.split('\n').map((line) => line.trim()); - const mainSect = getMainSection(lines); + const lines = content.split('\n').map(line => line.trim()); + const mainSect = getMainSection(lines); - const title = findHeader('# ')(mainSect); - const description = findHeader('> ')(mainSect); - const mainSection = mainSect.filter(keepHeaderBody).join('\n'); - const sections = getSecondarySections(lines); - return { - title, - description, - mainSection, - sections, - }; + const title = findHeader('# ')(mainSect); + const description = findHeader('> ')(mainSect); + const mainSection = mainSect.filter(keepHeaderBody).join('\n'); + const sections = getSecondarySections(lines); + return { + title, + description, + mainSection, + sections, + }; }; const sectionToString = (section: MdSection): string => - [`## ${section.title}`, section.body].join('\n\n'); + [`## ${section.title}`, section.body].join('\n\n'); export const markdownToString = (doc: MdDocument): string => { - const parts = [ - `# ${doc.title}`, - `> ${doc.description}`, - doc.mainSection, - ...doc.sections.map(sectionToString), - ]; - return parts.join('\n\n'); + const parts = [ + `# ${doc.title}`, + `> ${doc.description}`, + doc.mainSection, + ...doc.sections.map(sectionToString), + ]; + return parts.join('\n\n'); }; diff --git a/src/model.ts b/src/model.ts index 960dd6e..2d16234 100644 --- a/src/model.ts +++ b/src/model.ts @@ -1,102 +1,102 @@ export type SupportedFeature = 'md' | 'internal' | 'ngram'; -export interface GenerateTypedocActionOpts { - feature: SupportedFeature[]; - jsonSource: string; - docBase: string; - docPrefix: string; - docDirectory: string; - srcDirectory: string; - homepage?: string; -} - -export interface ParseActionOpts { - feature: SupportedFeature[]; - docBase: string; - docPrefix: string; - docDirectory: string; - srcDirectory: string; - packageName: string; -} - -export interface GenerateTypedocRawOpts { - feature: string[]; - jsonSource: string; - docBase: string; - srcDirectory: string; -} - -export interface ParseRawOpts { - feature: string[]; - docBase: string; - srcDirectory: string; -} - -export interface CmdOptionsGeneratorTypedoc { - feature: CmdOption; - jsonSource: CmdOption; - docBase: CmdOption; - srcDirectory: CmdOption; -} - -export interface CmdOptionsParser { - feature: CmdOption; - docBase: CmdOption; - srcDirectory: CmdOption; -} - -export interface MdSection { - title: string; - body: string; -} - -export interface MdDocument { - title: string; - description: string; - mainSection: string; - sections: MdSection[]; -} - -export interface CmdOption { - shortFlag: string; - longFlag: string; - description: string; - defaultValue?: string | string[]; - choices: string[]; - mandatory: boolean; - variadic: boolean; -} +export type GenerateTypedocActionOpts = { + feature: SupportedFeature[]; + jsonSource: string; + docBase: string; + docPrefix: string; + docDirectory: string; + srcDirectory: string; + homepage?: string; +}; + +export type ParseActionOpts = { + feature: SupportedFeature[]; + docBase: string; + docPrefix: string; + docDirectory: string; + srcDirectory: string; + packageName: string; +}; + +export type GenerateTypedocRawOpts = { + feature: string[]; + jsonSource: string; + docBase: string; + srcDirectory: string; +}; + +export type ParseRawOpts = { + feature: string[]; + docBase: string; + srcDirectory: string; +}; + +export type CmdOptionsGeneratorTypedoc = { + feature: CmdOption; + jsonSource: CmdOption; + docBase: CmdOption; + srcDirectory: CmdOption; +}; + +export type CmdOptionsParser = { + feature: CmdOption; + docBase: CmdOption; + srcDirectory: CmdOption; +}; + +export type MdSection = { + title: string; + body: string; +}; + +export type MdDocument = { + title: string; + description: string; + mainSection: string; + sections: MdSection[]; +}; + +export type CmdOption = { + shortFlag: string; + longFlag: string; + description: string; + defaultValue?: string | string[]; + choices: string[]; + mandatory: boolean; + variadic: boolean; +}; type TermFormatterKind = 'intro' | 'info'; export type TermFormatterFormat = 'default' | 'human'; -export interface TermFormatterParams { - title: string; - detail: string | object; - kind: TermFormatterKind; - format: TermFormatterFormat; -} +export type TermFormatterParams = { + title: string; + detail: string | Record; + kind: TermFormatterKind; + format: TermFormatterFormat; +}; -export interface ErrTermFormatterParams { - title: string; - detail: unknown; -} +export type ErrTermFormatterParams = { + title: string; + detail: unknown; +}; -export type TermFormatter = (params: TermFormatterParams) => void; +export type TermFormatter = (parameters: TermFormatterParams) => void; -export type ErrTermFormatter = (params: ErrTermFormatterParams) => void; +export type ErrTermFormatter = (parameters: ErrTermFormatterParams) => void; -export interface RunnerContext { - currentPath: string; - termFormatter: TermFormatter; - errTermFormatter: ErrTermFormatter; -} +export type RunnerContext = { + currentPath: string; + termFormatter: TermFormatter; + errTermFormatter: ErrTermFormatter; +}; export type GenerateTypedocAction = ( - ctx: RunnerContext, - options: GenerateTypedocActionOpts + ctx: RunnerContext, + options: GenerateTypedocActionOpts ) => Promise; export type ParseAction = ( - ctx: RunnerContext, - options: ParseActionOpts + ctx: RunnerContext, + options: ParseActionOpts ) => Promise; diff --git a/src/parse-action.ts b/src/parse-action.ts index ed38c56..5723568 100644 --- a/src/parse-action.ts +++ b/src/parse-action.ts @@ -1,47 +1,48 @@ -import { writeFile, mkdir } from 'node:fs/promises'; -import { toMarkdownInternal } from './markdown-internal.js'; -import { toMarkdownVocabulary } from './markdown-vocabulary.js'; -import { ParseActionOpts, RunnerContext } from './model.js'; -import { createProject, parseProject } from './ts-parser.js'; +import {writeFile, mkdir} from 'node:fs/promises'; +import {toMarkdownInternal} from './markdown-internal.js'; +import {toMarkdownVocabulary} from './markdown-vocabulary.js'; +import {type ParseActionOpts, type RunnerContext} from './model.js'; +import {createProject, parseProject} from './ts-parser.js'; -const createDocDir = async (opts: ParseActionOpts) => { - await (opts.docDirectory.length === 0 || opts.docDirectory === '.' - ? Promise.resolve('no directory') - : mkdir(opts.docDirectory, { recursive: true })); +const createDocDir = async (options: ParseActionOpts) => { + await (options.docDirectory.length === 0 || options.docDirectory === '.' + ? Promise.resolve('no directory') + : mkdir(options.docDirectory, {recursive: true})); }; -const generateMarkdowns = async (opts: ParseActionOpts) => { - const internalFilename = - opts.docBase.length > 0 ? `${opts.docBase}_INTERNAL.md` : 'INTERNAL.md'; - const vocabularyFilename = - opts.docBase.length > 0 - ? `${opts.docBase}_CODE_VOCABULARY.md` - : 'CODE_VOCABULARY.md'; - const project = createProject(); - project.addSourceFilesAtPaths('src/**/*{.d.ts,.ts}'); - const moduleInfo = parseProject(opts.packageName, project); - const internalContent = toMarkdownInternal(moduleInfo); - if (opts.feature.includes('internal')) { - await writeFile(internalFilename, internalContent, 'utf8'); - } - const vocabularyContent = toMarkdownVocabulary(moduleInfo); - if (opts.feature.includes('ngram')) { - await writeFile(vocabularyFilename, vocabularyContent, 'utf8'); - } +const generateMarkdowns = async (options: ParseActionOpts) => { + const internalFilename + = options.docBase.length > 0 ? `${options.docBase}_INTERNAL.md` : 'INTERNAL.md'; + const vocabularyFilename + = options.docBase.length > 0 + ? `${options.docBase}_CODE_VOCABULARY.md` + : 'CODE_VOCABULARY.md'; + const project = createProject(); + project.addSourceFilesAtPaths('src/**/*{.d.ts,.ts}'); + const moduleInfo = parseProject(options.packageName, project); + const internalContent = toMarkdownInternal(moduleInfo); + if (options.feature.includes('internal')) { + await writeFile(internalFilename, internalContent, 'utf8'); + } + + const vocabularyContent = toMarkdownVocabulary(moduleInfo); + if (options.feature.includes('ngram')) { + await writeFile(vocabularyFilename, vocabularyContent, 'utf8'); + } }; export const parseAction = async ( - ctx: RunnerContext, - opts: ParseActionOpts + ctx: RunnerContext, + options: ParseActionOpts, ) => { - try { - await createDocDir(opts); - await generateMarkdowns(opts); - } catch (error) { - ctx.errTermFormatter({ - title: 'Parsing - parse error', - detail: error, - }); - throw error; - } + try { + await createDocDir(options); + await generateMarkdowns(options); + } catch (error) { + ctx.errTermFormatter({ + title: 'Parsing - parse error', + detail: error, + }); + throw error; + } }; diff --git a/src/parser-model.ts b/src/parser-model.ts index df06405..00015d6 100644 --- a/src/parser-model.ts +++ b/src/parser-model.ts @@ -1,70 +1,70 @@ -export interface ImportInfo { - identifier: string; - from: string; -} +export type ImportInfo = { + identifier: string; + from: string; +}; -export interface FunctionInfo { - identifier: string; - bodyWidth: number; - keywords: string[]; - description: string; - exported: boolean; - descendantCount: number; - expression: boolean; -} +export type FunctionInfo = { + identifier: string; + bodyWidth: number; + keywords: string[]; + description: string; + exported: boolean; + descendantCount: number; + expression: boolean; +}; -export interface InterfaceInfo { - identifier: string; - exported: boolean; -} +export type InterfaceInfo = { + identifier: string; + exported: boolean; +}; -export interface SourceInfo { - filename: string; - imports: ImportInfo[]; - functions: FunctionInfo[]; - interfaces: InterfaceInfo[]; -} +export type SourceInfo = { + filename: string; + imports: ImportInfo[]; + functions: FunctionInfo[]; + interfaces: InterfaceInfo[]; +}; -export interface ModuleInfo { - name: string; - sources: SourceInfo[]; -} +export type ModuleInfo = { + name: string; + sources: SourceInfo[]; +}; -export interface FunctionDiagram { - identifier: string; - exported: boolean; -} +export type FunctionDiagram = { + identifier: string; + exported: boolean; +}; -export interface RelationshipDiagram { - from: string; - to: string; -} +export type RelationshipDiagram = { + from: string; + to: string; +}; -export interface SourceDiagram { - filename: string; - external: boolean; - functions: FunctionDiagram[]; -} +export type SourceDiagram = { + filename: string; + external: boolean; + functions: FunctionDiagram[]; +}; -export interface FunctionalProgrammingDiagram { - name: string; - entities: SourceDiagram[]; - relationships: RelationshipDiagram[]; -} +export type FunctionalProgrammingDiagram = { + name: string; + entities: SourceDiagram[]; + relationships: RelationshipDiagram[]; +}; -export interface Vocabulary { - words: string[]; - filename: string; -} +export type Vocabulary = { + words: string[]; + filename: string; +}; -export interface ProjectVocabulary { - vocabulary: Vocabulary[]; -} +export type ProjectVocabulary = { + vocabulary: Vocabulary[]; +}; -export interface VocabularyNGram { - ngram: string[]; - count: number; -} -export interface ProjectNgram { - ngram: VocabularyNGram[]; -} +export type VocabularyNGram = { + ngram: string[]; + count: number; +}; +export type ProjectNgram = { + ngram: VocabularyNGram[]; +}; diff --git a/src/term-formatter.ts b/src/term-formatter.ts index 13a67ca..7a7d26d 100644 --- a/src/term-formatter.ts +++ b/src/term-formatter.ts @@ -1,33 +1,33 @@ import { - ErrTermFormatterParams, - TermFormatterFormat, - TermFormatterParams, + type ErrTermFormatterParams, + type TermFormatterFormat, + type TermFormatterParams, } from './model.js'; -const simplifyObj = (obj: object): object => { - const values = Object.entries(obj); - const relevantValues = values.filter( - (keyObj) => !['[]', '', 'null'].includes(`${keyObj[1]}`) - ); - return Object.fromEntries(relevantValues); +const simplifyObject = (object: Record): Record => { + const values = Object.entries(object); + const relevantValues = values.filter( + keyObject => !['[]', '', 'null'].includes(`${keyObject[1]}`), + ); + return Object.fromEntries(relevantValues); }; const simplifyJson = (value: string): string => value.replace(/["']/g, ' '); -const toJsonish = (format: TermFormatterFormat, value: object): string => - format === 'human' - ? simplifyJson(JSON.stringify(simplifyObj(value))) - : JSON.stringify(value); +const toJsonish = (format: TermFormatterFormat, value: Record): string => + format === 'human' + ? simplifyJson(JSON.stringify(simplifyObject(value))) + : JSON.stringify(value); -export const basicFormatter = (params: TermFormatterParams) => { - const detail = - typeof params.detail === 'string' - ? params.detail - : toJsonish(params.format, params.detail); +export const basicFormatter = (parameters: TermFormatterParams) => { + const detail + = typeof parameters.detail === 'string' + ? parameters.detail + : toJsonish(parameters.format, parameters.detail); - console.info(` ★ ${params.title} ⇨`, detail); + console.info(` ★ ${parameters.title} ⇨`, detail); }; -export const errorFormatter = (params: ErrTermFormatterParams) => { - console.error(` ★ ${params.title} ⇨`, params.detail); +export const errorFormatter = (parameters: ErrTermFormatterParams) => { + console.error(` ★ ${parameters.title} ⇨`, parameters.detail); }; diff --git a/src/ts-parser.ts b/src/ts-parser.ts index aef274f..5ff82c2 100644 --- a/src/ts-parser.ts +++ b/src/ts-parser.ts @@ -1,102 +1,103 @@ import { - Project, - SourceFile, - ImportDeclaration, - FunctionDeclaration, - VariableDeclaration, - InterfaceDeclaration, - TypeAliasDeclaration, + Project, + type SourceFile, + type ImportDeclaration, + type FunctionDeclaration, + type VariableDeclaration, + type InterfaceDeclaration, + type TypeAliasDeclaration, } from 'ts-morph'; import { - FunctionInfo, - ImportInfo, - InterfaceInfo, - ModuleInfo, - SourceInfo, + type FunctionInfo, + type ImportInfo, + type InterfaceInfo, + type ModuleInfo, + type SourceInfo, } from './parser-model.js'; const extractImportInfo = (importDecl: ImportDeclaration): ImportInfo[] => { - const namedImports = - importDecl - .getImportClause() - ?.getNamedImports() - .map((ni) => ni.getText()) || []; - const from = importDecl.getModuleSpecifierValue(); - const defaultImport = importDecl.getDefaultImport(); - if (defaultImport !== undefined) { - return [ - { - identifier: defaultImport.getText(), - from, - }, - ]; - } - return namedImports.map((ni) => ({ - identifier: ni, - from, - })); + const namedImports + = importDecl + .getImportClause() + ?.getNamedImports() + .map(ni => ni.getText()) || []; + const from = importDecl.getModuleSpecifierValue(); + const defaultImport = importDecl.getDefaultImport(); + if (defaultImport !== undefined) { + return [ + { + identifier: defaultImport.getText(), + from, + }, + ]; + } + + return namedImports.map(ni => ({ + identifier: ni, + from, + })); }; const toUniqueStringArray = (values: string[]): string[] => - [...new Set(values)].sort(); + [...new Set(values)].sort(); const extractFunctionInfo = ( - functionDecl: FunctionDeclaration + functionDecl: FunctionDeclaration, ): FunctionInfo => { - const descendantsNodes = functionDecl.forEachDescendantAsArray(); - const keywords = toUniqueStringArray( - descendantsNodes.map((node) => node.getKindName()) - ); - return { - identifier: functionDecl.getName() || '', - bodyWidth: functionDecl.getWidth(false), - exported: functionDecl.isExported(), - expression: false, - description: functionDecl - .getJsDocs() - .map((doc) => doc.getDescription().trim()) - .join('\n'), - keywords, - descendantCount: descendantsNodes.length, - }; + const descendantsNodes = functionDecl.forEachDescendantAsArray(); + const keywords = toUniqueStringArray( + descendantsNodes.map(node => node.getKindName()), + ); + return { + identifier: functionDecl.getName() || '', + bodyWidth: functionDecl.getWidth(false), + exported: functionDecl.isExported(), + expression: false, + description: functionDecl + .getJsDocs() + .map(doc => doc.getDescription().trim()) + .join('\n'), + keywords, + descendantCount: descendantsNodes.length, + }; }; const extractFunctionExpressionInfo = ( - varDecl: VariableDeclaration + varDecl: VariableDeclaration, ): FunctionInfo | undefined => { - const descendantsNodes = varDecl.forEachDescendantAsArray(); - const keywords = toUniqueStringArray( - descendantsNodes.map((node) => node.getKindName()) - ); - const isFunctionExp = keywords.includes('ArrowFunction'); - return isFunctionExp - ? { - identifier: varDecl.getName() || '', - bodyWidth: varDecl.getWidth(false), - exported: varDecl.isExported(), - expression: true, - description: varDecl - .getLeadingCommentRanges() - .map((cr) => cr.getText()) - .join('\n'), - keywords, - descendantCount: descendantsNodes.length, - } - : undefined; + const descendantsNodes = varDecl.forEachDescendantAsArray(); + const keywords = toUniqueStringArray( + descendantsNodes.map(node => node.getKindName()), + ); + const isFunctionExp = keywords.includes('ArrowFunction'); + return isFunctionExp + ? { + identifier: varDecl.getName() || '', + bodyWidth: varDecl.getWidth(false), + exported: varDecl.isExported(), + expression: true, + description: varDecl + .getLeadingCommentRanges() + .map(cr => cr.getText()) + .join('\n'), + keywords, + descendantCount: descendantsNodes.length, + } + : undefined; }; const extractInterfaceInfo = ( - interfaceDecl: InterfaceDeclaration + interfaceDecl: InterfaceDeclaration, ): InterfaceInfo => ({ - identifier: interfaceDecl.getName(), - exported: interfaceDecl.isExported(), + identifier: interfaceDecl.getName(), + exported: interfaceDecl.isExported(), }); const extractTypeAliasInfo = ( - typeAliasDecl: TypeAliasDeclaration + typeAliasDecl: TypeAliasDeclaration, ): InterfaceInfo => ({ - identifier: typeAliasDecl.getName(), - exported: typeAliasDecl.isExported(), + identifier: typeAliasDecl.getName(), + exported: typeAliasDecl.isExported(), }); export const createProject = () => new Project(); @@ -107,28 +108,28 @@ const isFunctionInfo = ( return !!item; }; export const parseTsContent = (current: SourceFile): SourceInfo => { - const currentImports = current?.getImportDeclarations() || []; - const currentFunctions = current?.getFunctions() || []; - const classicFunctions = currentFunctions.map(extractFunctionInfo); - const currentInterfaces = current?.getInterfaces() || []; - const currentTypeAliases = current?.getTypeAliases() || []; - const expressionFunctions = current - .getVariableDeclarations() - .map(extractFunctionExpressionInfo) - .filter(isFunctionInfo); - const parsed: SourceInfo = { - filename: current.getBaseName(), - imports: currentImports.flatMap(extractImportInfo), - functions: [...classicFunctions, ...expressionFunctions], - interfaces: [ - ...currentInterfaces.map(extractInterfaceInfo), - ...currentTypeAliases.map(extractTypeAliasInfo), - ], - }; - return parsed; + const currentImports = current?.getImportDeclarations() || []; + const currentFunctions = current?.getFunctions() || []; + const classicFunctions = currentFunctions.map(extractFunctionInfo); + const currentInterfaces = current?.getInterfaces() || []; + const currentTypeAliases = current?.getTypeAliases() || []; + const expressionFunctions = current + .getVariableDeclarations() + .map(extractFunctionExpressionInfo) + .filter(isFunctionInfo); + const parsed: SourceInfo = { + filename: current.getBaseName(), + imports: currentImports.flatMap(extractImportInfo), + functions: [...classicFunctions, ...expressionFunctions], + interfaces: [ + ...currentInterfaces.map(extractInterfaceInfo), + ...currentTypeAliases.map(extractTypeAliasInfo), + ], + }; + return parsed; }; export const parseProject = (name: string, project: Project): ModuleInfo => ({ - name, - sources: project.getSourceFiles().map(parseTsContent), + name, + sources: project.getSourceFiles().map(parseTsContent), }); diff --git a/src/typedoc-json-model.ts b/src/typedoc-json-model.ts index ee9ce78..84a2df0 100644 --- a/src/typedoc-json-model.ts +++ b/src/typedoc-json-model.ts @@ -1,80 +1,80 @@ -export interface TypedocJson { - name: string; - originalName: string; - children: TypedocChild[]; - groups: Group[]; -} +export type TypedocJson = { + name: string; + originalName: string; + children: TypedocChild[]; + groups: Group[]; +}; -export interface TypedocChild { - id: number; - name: string; - kindString: string; - flags: ChildFlags; - sources: Source[]; - type?: Type; - defaultValue?: string; - signatures?: Signature[]; - comment?: Comment; -} +export type TypedocChild = { + id: number; + name: string; + kindString: string; + flags: ChildFlags; + sources: Source[]; + type?: Type; + defaultValue?: string; + signatures?: Signature[]; + comment?: Comment; +}; -interface ChildFlags { - isConst?: boolean; -} +type ChildFlags = { + isConst?: boolean; +}; -interface Source { - fileName: string; - line: number; - character: number; -} +type Source = { + fileName: string; + line: number; + character: number; +}; -interface Type { - type: string; - name?: string; - elementType?: ElementType; - declaration?: Declaration; - value?: boolean; -} +type Type = { + type: string; + name?: string; + elementType?: ElementType; + declaration?: Declaration; + value?: boolean; +}; -interface ElementType { - type: string; - name: string; -} +type ElementType = { + type: string; + name: string; +}; -interface Signature { - id: number; - name: string; - kind: number; - kindString: string; - parameters: Parameter[]; - type: Type; - comment?: Comment; -} +type Signature = { + id: number; + name: string; + kind: number; + kindString: string; + parameters: Parameter[]; + type: Type; + comment?: Comment; +}; -export interface Parameter { - id: number; - name: string; - kind: number; - kindString: string; - type: Type; - comment?: Comment; - defaultValue?: string; -} +export type Parameter = { + id: number; + name: string; + kind: number; + kindString: string; + type: Type; + comment?: Comment; + defaultValue?: string; +}; -interface Declaration { - id: number; - name: string; - kind: number; - kindString: string; - signatures: Signature[]; -} +type Declaration = { + id: number; + name: string; + kind: number; + kindString: string; + signatures: Signature[]; +}; -interface Comment { - shortText: string; - returns: string; -} +type Comment = { + shortText: string; + returns: string; +}; -interface Group { - title: string; - kind: number; - children: number[]; -} +type Group = { + title: string; + kind: number; + children: number[]; +}; diff --git a/src/version.ts b/src/version.ts index b7abd0b..6b9f1bb 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const version = '0.9.0'; +export const version = '0.10.0'; diff --git a/test/__snapshots__/fp-diagram.test.ts.snap b/test/__snapshots__/fp-diagram.test.ts.snap deleted file mode 100644 index 1febacb..0000000 --- a/test/__snapshots__/fp-diagram.test.ts.snap +++ /dev/null @@ -1,162 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`fp-diagram should convert diagram to a diagram structure 1`] = ` -Object { - "entities": Array [ - Object { - "external": false, - "filename": "filename-7.js", - "functions": Array [ - Object { - "exported": true, - "identifier": "create-7", - }, - Object { - "exported": false, - "identifier": "update-7", - }, - Object { - "exported": true, - "identifier": "delete-7", - }, - ], - }, - Object { - "external": false, - "filename": "filename-11.js", - "functions": Array [ - Object { - "exported": true, - "identifier": "create-11", - }, - Object { - "exported": false, - "identifier": "update-11", - }, - Object { - "exported": true, - "identifier": "delete-11", - }, - ], - }, - Object { - "external": false, - "filename": "filename-17.js", - "functions": Array [ - Object { - "exported": true, - "identifier": "create-17", - }, - Object { - "exported": false, - "identifier": "update-17", - }, - Object { - "exported": true, - "identifier": "delete-17", - }, - ], - }, - Object { - "external": false, - "filename": "filename-21.js", - "functions": Array [], - }, - Object { - "external": true, - "filename": "external-7", - "functions": Array [ - Object { - "exported": true, - "identifier": "import-7-function1", - }, - ], - }, - Object { - "external": true, - "filename": "external-11", - "functions": Array [ - Object { - "exported": true, - "identifier": "import-11-function1", - }, - ], - }, - Object { - "external": true, - "filename": "external-17", - "functions": Array [ - Object { - "exported": true, - "identifier": "import-17-function1", - }, - ], - }, - Object { - "external": true, - "filename": "external-21", - "functions": Array [ - Object { - "exported": true, - "identifier": "import-21-function1", - }, - ], - }, - ], - "name": "this-project", - "relationships": Array [ - Object { - "from": "filename-7.js", - "to": "external-7", - }, - Object { - "from": "filename-11.js", - "to": "external-11", - }, - Object { - "from": "filename-17.js", - "to": "external-17", - }, - Object { - "from": "filename-21.js", - "to": "external-21", - }, - ], -} -`; - -exports[`fp-diagram should convert diagram to a diagram structure 2`] = ` -"classDiagram -class \`filename-7.js\`{ - +create-7() - -update-7() - +delete-7() -} -class \`filename-11.js\`{ - +create-11() - -update-11() - +delete-11() -} -class \`filename-17.js\`{ - +create-17() - -update-17() - +delete-17() -} -class \`filename-21.js\` -class \`external-7\`{ - +import-7-function1() -} -class \`external-11\`{ - +import-11-function1() -} -class \`external-17\`{ - +import-17-function1() -} -class \`external-21\`{ - +import-21-function1() -} -\`filename-7.js\`-->\`external-7\` -\`filename-11.js\`-->\`external-11\` -\`filename-17.js\`-->\`external-17\` -\`filename-21.js\`-->\`external-21\`" -`; diff --git a/test/__snapshots__/markdown-api.test.ts.snap b/test/__snapshots__/markdown-api.test.ts.snap deleted file mode 100644 index 41d2604..0000000 --- a/test/__snapshots__/markdown-api.test.ts.snap +++ /dev/null @@ -1,286 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`markdown-api should provide markdown for a docBase 1`] = ` -"# API of object-crumble - -> List of functions and variables for \`object-crumble\` - -__Functions:__ - -* [abstractObject](docs/my-_API.md#abstractObject) -* [anyOfString](docs/my-_API.md#anyOfString) -* [mutateObject](docs/my-_API.md#mutateObject) -* [someUrl](docs/my-_API.md#someUrl) - - -__Variables:__ - -* [mutatorRules](docs/my-_API.md#mutatorRules) - -## abstractObject - -⎔ Convert any object to an abstract representation of the object structure -\`\`\` -abstractObject({name: \\"Jane\\"}) -\`\`\` - -### Parameters - -* rules: Array of \`StringAbstractionRule\`: a list of rules used to infer the kind of value of each property in the object - -* prefix: \`string\`: path of the object in the enclosing object, or empty if none - -### Returns - -an array of \`CrumbleAbstractedValue\` representing each \`path\` \`kind\` pair. - - -See [obj-abstractor.ts - L58](https://github.com/mycompany/my-project/blob/main/src/obj-abstractor.ts#L58) - -## anyOfString - -⎔ Detect a a string from a given list of string - -### Parameters - -* name: \`string\`: the keyword to return if the detection happens - -* options: Array of \`string\`: a list of string that would satisfy the detection - -### Returns - -the \`name\` keyword or false - - -See [string-abstractor.ts - L19](https://github.com/mycompany/my-project/blob/main/src/string-abstractor.ts#L19) - -## mutateObject - -⎔ Mutates an object applying a list of mutation. -We are using currying to provide the list of mutations rules. -Only a single mutation is applied to facilitate the studying of the impact. - -### Parameters - -* rules: Array of \`CrumbleFieldMutation\`: a list of rules used to infer the kind of value of each property in the object - -### Returns - -a \`CrumbleObject\` representing most javascript objects - - -See [obj-mutator.ts - L104](https://github.com/mycompany/my-project/blob/main/src/obj-mutator.ts#L104) - -## someUrl - -⎔ Detect an url - -### Parameters - -* value: \`string\`: the text to check - -### Returns - -the \`url\` keyword or false - - -See [string-abstractor.ts - L9](https://github.com/mycompany/my-project/blob/main/src/string-abstractor.ts#L9) - -## mutatorRules - -Array of \`CrumbleFieldMutation\` - -Basic mutator rules that can be used out of the box - -See [obj-mutator.ts - L38](https://github.com/mycompany/my-project/blob/main/src/obj-mutator.ts#L38)" -`; - -exports[`markdown-api should provide markdown for homepage 1`] = ` -"# API of object-crumble - -> List of functions and variables for \`object-crumble\` - -__Functions:__ - -* [abstractObject](API.md#abstractObject) -* [anyOfString](API.md#anyOfString) -* [mutateObject](API.md#mutateObject) -* [someUrl](API.md#someUrl) - - -__Variables:__ - -* [mutatorRules](API.md#mutatorRules) - -## abstractObject - -⎔ Convert any object to an abstract representation of the object structure -\`\`\` -abstractObject({name: \\"Jane\\"}) -\`\`\` - -### Parameters - -* rules: Array of \`StringAbstractionRule\`: a list of rules used to infer the kind of value of each property in the object - -* prefix: \`string\`: path of the object in the enclosing object, or empty if none - -### Returns - -an array of \`CrumbleAbstractedValue\` representing each \`path\` \`kind\` pair. - - -See [obj-abstractor.ts - L58](https://github.com/mycompany/my-project/blob/main/src/obj-abstractor.ts#L58) - -## anyOfString - -⎔ Detect a a string from a given list of string - -### Parameters - -* name: \`string\`: the keyword to return if the detection happens - -* options: Array of \`string\`: a list of string that would satisfy the detection - -### Returns - -the \`name\` keyword or false - - -See [string-abstractor.ts - L19](https://github.com/mycompany/my-project/blob/main/src/string-abstractor.ts#L19) - -## mutateObject - -⎔ Mutates an object applying a list of mutation. -We are using currying to provide the list of mutations rules. -Only a single mutation is applied to facilitate the studying of the impact. - -### Parameters - -* rules: Array of \`CrumbleFieldMutation\`: a list of rules used to infer the kind of value of each property in the object - -### Returns - -a \`CrumbleObject\` representing most javascript objects - - -See [obj-mutator.ts - L104](https://github.com/mycompany/my-project/blob/main/src/obj-mutator.ts#L104) - -## someUrl - -⎔ Detect an url - -### Parameters - -* value: \`string\`: the text to check - -### Returns - -the \`url\` keyword or false - - -See [string-abstractor.ts - L9](https://github.com/mycompany/my-project/blob/main/src/string-abstractor.ts#L9) - -## mutatorRules - -Array of \`CrumbleFieldMutation\` - -Basic mutator rules that can be used out of the box - -See [obj-mutator.ts - L38](https://github.com/mycompany/my-project/blob/main/src/obj-mutator.ts#L38)" -`; - -exports[`markdown-api should provide markdown without homepage 1`] = ` -"# API of object-crumble - -> List of functions and variables for \`object-crumble\` - -__Functions:__ - -* [abstractObject](API.md#abstractObject) -* [anyOfString](API.md#anyOfString) -* [mutateObject](API.md#mutateObject) -* [someUrl](API.md#someUrl) - - -__Variables:__ - -* [mutatorRules](API.md#mutatorRules) - -## abstractObject - -⎔ Convert any object to an abstract representation of the object structure -\`\`\` -abstractObject({name: \\"Jane\\"}) -\`\`\` - -### Parameters - -* rules: Array of \`StringAbstractionRule\`: a list of rules used to infer the kind of value of each property in the object - -* prefix: \`string\`: path of the object in the enclosing object, or empty if none - -### Returns - -an array of \`CrumbleAbstractedValue\` representing each \`path\` \`kind\` pair. - - -See [obj-abstractor.ts - L58](src/obj-abstractor.ts) - -## anyOfString - -⎔ Detect a a string from a given list of string - -### Parameters - -* name: \`string\`: the keyword to return if the detection happens - -* options: Array of \`string\`: a list of string that would satisfy the detection - -### Returns - -the \`name\` keyword or false - - -See [string-abstractor.ts - L19](src/string-abstractor.ts) - -## mutateObject - -⎔ Mutates an object applying a list of mutation. -We are using currying to provide the list of mutations rules. -Only a single mutation is applied to facilitate the studying of the impact. - -### Parameters - -* rules: Array of \`CrumbleFieldMutation\`: a list of rules used to infer the kind of value of each property in the object - -### Returns - -a \`CrumbleObject\` representing most javascript objects - - -See [obj-mutator.ts - L104](src/obj-mutator.ts) - -## someUrl - -⎔ Detect an url - -### Parameters - -* value: \`string\`: the text to check - -### Returns - -the \`url\` keyword or false - - -See [string-abstractor.ts - L9](src/string-abstractor.ts) - -## mutatorRules - -Array of \`CrumbleFieldMutation\` - -Basic mutator rules that can be used out of the box - -See [obj-mutator.ts - L38](src/obj-mutator.ts)" -`; diff --git a/test/fixture-typedoc.ts b/test/fixture-typedoc.ts deleted file mode 100644 index be2ad6b..0000000 --- a/test/fixture-typedoc.ts +++ /dev/null @@ -1,455 +0,0 @@ -const typedocExample = { - id: 0, - name: 'object-crumble', - kind: 1, - kindString: 'Project', - flags: {}, - originalName: '', - children: [ - { - id: 17, - name: 'mutatorRules', - kind: 32, - kindString: 'Variable', - flags: {}, - comment: { - shortText: 'Basic mutator rules that can be used out of the box', - }, - sources: [ - { - fileName: 'obj-mutator.ts', - line: 38, - character: 13, - }, - ], - type: { - type: 'array', - elementType: { - type: 'reference', - name: 'CrumbleFieldMutation', - }, - }, - defaultValue: '...', - }, - { - id: 1, - name: 'abstractObject', - kind: 64, - kindString: 'Function', - flags: { - isConst: true, - }, - sources: [ - { - fileName: 'obj-abstractor.ts', - line: 58, - character: 13, - }, - ], - signatures: [ - { - id: 2, - name: 'abstractObject', - kind: 4096, - kindString: 'Call signature', - flags: {}, - comment: { - shortText: - 'Convert any object to an abstract representation of the object structure\n```\nabstractObject({name: "Jane"})\n```', - returns: - 'an array of `CrumbleAbstractedValue` representing each `path` `kind` pair.\n', - }, - parameters: [ - { - id: 3, - name: 'rules', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - comment: { - shortText: - 'a list of rules used to infer the kind of value of each property in the object', - }, - type: { - type: 'array', - elementType: { - type: 'reference', - name: 'StringAbstractionRule', - }, - }, - }, - { - id: 4, - name: 'prefix', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - comment: { - shortText: - 'path of the object in the enclosing object, or empty if none', - }, - type: { - type: 'intrinsic', - name: 'string', - }, - defaultValue: "''", - }, - ], - type: { - type: 'reflection', - declaration: { - id: 5, - name: '__type', - kind: 65_536, - kindString: 'Type literal', - flags: {}, - signatures: [ - { - id: 6, - name: '__type', - kind: 4096, - kindString: 'Call signature', - flags: {}, - parameters: [ - { - id: 7, - name: 'value', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - type: { - type: 'reference', - name: 'CrumbleObject', - }, - }, - ], - type: { - type: 'array', - elementType: { - type: 'reference', - name: 'CrumbleAbstractedValue', - }, - }, - }, - ], - }, - }, - }, - ], - }, - { - id: 21, - name: 'anyOfString', - kind: 64, - kindString: 'Function', - flags: { - isConst: true, - }, - sources: [ - { - fileName: 'string-abstractor.ts', - line: 19, - character: 13, - }, - ], - signatures: [ - { - id: 22, - name: 'anyOfString', - kind: 4096, - kindString: 'Call signature', - flags: {}, - comment: { - shortText: 'Detect a a string from a given list of string', - returns: 'the `name` keyword or false\n', - }, - parameters: [ - { - id: 23, - name: 'name', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - comment: { - shortText: 'the keyword to return if the detection happens', - }, - type: { - type: 'intrinsic', - name: 'string', - }, - }, - { - id: 24, - name: 'options', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - comment: { - shortText: 'a list of string that would satisfy the detection', - }, - type: { - type: 'array', - elementType: { - type: 'intrinsic', - name: 'string', - }, - }, - }, - ], - type: { - type: 'reflection', - declaration: { - id: 25, - name: '__type', - kind: 65_536, - kindString: 'Type literal', - flags: {}, - signatures: [ - { - id: 26, - name: '__type', - kind: 4096, - kindString: 'Call signature', - flags: {}, - parameters: [ - { - id: 27, - name: 'value', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - type: { - type: 'intrinsic', - name: 'string', - }, - }, - ], - type: { - type: 'union', - types: [ - { - type: 'intrinsic', - name: 'string', - }, - { - type: 'literal', - value: false, - }, - ], - }, - }, - ], - }, - }, - }, - ], - }, - { - id: 8, - name: 'mutateObject', - kind: 64, - kindString: 'Function', - flags: { - isConst: true, - }, - sources: [ - { - fileName: 'obj-mutator.ts', - line: 104, - character: 13, - }, - ], - signatures: [ - { - id: 9, - name: 'mutateObject', - kind: 4096, - kindString: 'Call signature', - flags: {}, - comment: { - shortText: - 'Mutates an object applying a list of mutation.\nWe are using currying to provide the list of mutations rules.\nOnly a single mutation is applied to facilitate the studying of the impact.', - returns: 'a `CrumbleObject` representing most javascript objects\n', - }, - parameters: [ - { - id: 10, - name: 'rules', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - comment: { - shortText: - 'a list of rules used to infer the kind of value of each property in the object', - }, - type: { - type: 'array', - elementType: { - type: 'reference', - name: 'CrumbleFieldMutation', - }, - }, - }, - ], - type: { - type: 'reflection', - declaration: { - id: 11, - name: '__type', - kind: 65_536, - kindString: 'Type literal', - flags: {}, - signatures: [ - { - id: 12, - name: '__type', - kind: 4096, - kindString: 'Call signature', - flags: {}, - parameters: [ - { - id: 13, - name: 'mutation', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - type: { - type: 'reference', - name: 'OakObjApplicableMutation', - }, - }, - ], - type: { - type: 'reflection', - declaration: { - id: 14, - name: '__type', - kind: 65_536, - kindString: 'Type literal', - flags: {}, - signatures: [ - { - id: 15, - name: '__type', - kind: 4096, - kindString: 'Call signature', - flags: {}, - parameters: [ - { - id: 16, - name: 'content', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - type: { - type: 'reference', - name: 'CrumbleObject', - }, - }, - ], - type: { - type: 'reference', - name: 'CrumbleObject', - }, - }, - ], - }, - }, - }, - ], - }, - }, - }, - ], - }, - { - id: 18, - name: 'someUrl', - kind: 64, - kindString: 'Function', - flags: { - isConst: true, - }, - sources: [ - { - fileName: 'string-abstractor.ts', - line: 9, - character: 13, - }, - ], - signatures: [ - { - id: 19, - name: 'someUrl', - kind: 4096, - kindString: 'Call signature', - flags: {}, - comment: { - shortText: 'Detect an url', - returns: 'the `url` keyword or false\n', - }, - parameters: [ - { - id: 20, - name: 'value', - kind: 32_768, - kindString: 'Parameter', - flags: {}, - comment: { - shortText: 'the text to check', - }, - type: { - type: 'intrinsic', - name: 'string', - }, - }, - ], - type: { - type: 'union', - types: [ - { - type: 'intrinsic', - name: 'string', - }, - { - type: 'literal', - value: false, - }, - ], - }, - }, - ], - }, - ], - groups: [ - { - title: 'Variables', - kind: 32, - children: [17], - }, - { - title: 'Functions', - kind: 64, - children: [1, 21, 8, 18], - categories: [ - { - title: 'Other', - children: [1, 8], - }, - { - title: 'String abstractor', - children: [21, 18], - }, - ], - }, - ], - sources: [ - { - fileName: 'index.ts', - line: 1, - character: 0, - }, - ], -}; - -export const typedocExampleJson = JSON.stringify(typedocExample); diff --git a/test/fp-diagram.test.ts b/test/fp-diagram.test.ts deleted file mode 100644 index abbfe7f..0000000 --- a/test/fp-diagram.test.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { - mergeSourceDiagrams, - toFunctionalProgrammingDiagram, - toFunctionalProgrammingMermaid, -} from '../src/fp-diagram'; -import { - FunctionDiagram, - FunctionInfo, - ImportInfo, - ModuleInfo, - SourceDiagram, - SourceInfo, -} from '../src/parser-model'; - -const createImportInfo = (identifier: string, from: string): ImportInfo => ({ - identifier, - from, -}); - -const createFunctionInfo = ( - identifier: string, - exported: boolean -): FunctionInfo => ({ - identifier, - bodyWidth: identifier.length, - keywords: ['keyword1', `keyword-${identifier}`], - description: `Description of ${identifier}`, - exported, - descendantCount: 100, - expression: exported, -}); - -const createSource = (id: number): SourceInfo => ({ - filename: `filename-${id}.js`, - imports: [createImportInfo(`import-${id}-function1`, `external-${id}`)], - functions: [ - createFunctionInfo(`create-${id}`, true), - createFunctionInfo(`update-${id}`, false), - createFunctionInfo(`delete-${id}`, true), - ], - interfaces: [], -}); - -const moduleInfo: ModuleInfo = { - name: 'this-project', - sources: [ - createSource(7), - createSource(11), - createSource(17), - { ...createSource(21), functions: [] }, - ], -}; - -const createFunctionDiagram = (identifier: string): FunctionDiagram => ({ - identifier, - exported: identifier.startsWith('exp'), -}); - -const createSourceDiagram = ( - filename: string, - functions: string[] -): SourceDiagram => ({ - filename, - external: true, - functions: functions.map(createFunctionDiagram), -}); - -describe('fp-diagram', () => { - it('should convert diagram to a diagram structure', () => { - const actual = toFunctionalProgrammingDiagram(moduleInfo); - expect(actual).toMatchSnapshot(); - const mermaid = toFunctionalProgrammingMermaid(actual); - expect(mermaid).toMatchSnapshot(); - }); - it('merge source diagrams', () => { - const sources = [ - createSourceDiagram('Earth', ['Moon']), - createSourceDiagram('Earth', ['Moon']), - createSourceDiagram('Jupiter', ['Europa']), - createSourceDiagram('Mercury', []), - createSourceDiagram('Jupiter', ['Ganymede', 'Europa']), - createSourceDiagram('Jupiter', ['Callisto']), - createSourceDiagram('Jupiter', ['Callisto', 'Himalia']), - createSourceDiagram('Jupiter', ['Callisto', 'Himalia']), - createSourceDiagram('Jupiter', ['Elara']), - ]; - const actual = mergeSourceDiagrams(sources); - expect(actual).toMatchInlineSnapshot(` - Array [ - Object { - "external": true, - "filename": "Earth", - "functions": Array [ - Object { - "exported": false, - "identifier": "Moon", - }, - ], - }, - Object { - "external": true, - "filename": "Jupiter", - "functions": Array [ - Object { - "exported": false, - "identifier": "Elara", - }, - Object { - "exported": false, - "identifier": "Callisto", - }, - Object { - "exported": false, - "identifier": "Himalia", - }, - Object { - "exported": false, - "identifier": "Ganymede", - }, - Object { - "exported": false, - "identifier": "Europa", - }, - ], - }, - Object { - "external": true, - "filename": "Mercury", - "functions": Array [], - }, - ] - `); - }); -}); diff --git a/test/fp-vocabulary.test.ts b/test/fp-vocabulary.test.ts deleted file mode 100644 index bcf4055..0000000 --- a/test/fp-vocabulary.test.ts +++ /dev/null @@ -1,289 +0,0 @@ -import { - toProjectVocabulary, - toProjectVocabularyRank, -} from '../src/fp-vocabulary'; -import { - FunctionInfo, - InterfaceInfo, - ModuleInfo, - SourceInfo, -} from '../src/parser-model'; - -const createFunctionInfo = (identifier: string): FunctionInfo => ({ - identifier, - bodyWidth: identifier.length, - keywords: [], - description: `Description of ${identifier}`, - exported: true, - descendantCount: 100, - expression: false, -}); - -const createInterfaceInfo = (identifier: string): InterfaceInfo => ({ - identifier, - exported: true, -}); - -const createSource = (id: string): SourceInfo => ({ - filename: `filename-${id}.js`, - imports: [], - functions: [ - createFunctionInfo(`create${id}`), - createFunctionInfo(`update${id}`), - createFunctionInfo(`delete${id}`), - createFunctionInfo(`CRUD${id}`), - ], - interfaces: [ - createInterfaceInfo(`Param${id}`), - createInterfaceInfo(`Creator2${id}`), - ], -}); - -const moduleInfo: ModuleInfo = { - name: 'this-project', - sources: [ - createSource('Saturn'), - createSource('EARTH'), - createSource('Mars'), - createSource('Venus13'), - ], -}; -describe('fp-vocabulary', () => { - it('should provide vocabulary', () => { - const actual = toProjectVocabulary(moduleInfo); - expect(actual).toMatchInlineSnapshot(` - Object { - "vocabulary": Array [ - Object { - "filename": "filename-Saturn.js", - "words": Array [ - "create", - "Saturn", - ], - }, - Object { - "filename": "filename-Saturn.js", - "words": Array [ - "update", - "Saturn", - ], - }, - Object { - "filename": "filename-Saturn.js", - "words": Array [ - "delete", - "Saturn", - ], - }, - Object { - "filename": "filename-Saturn.js", - "words": Array [ - "CRUDSaturn", - ], - }, - Object { - "filename": "filename-Saturn.js", - "words": Array [ - "Param", - "Saturn", - ], - }, - Object { - "filename": "filename-Saturn.js", - "words": Array [ - "Creator2", - "Saturn", - ], - }, - Object { - "filename": "filename-EARTH.js", - "words": Array [ - "create", - "EARTH", - ], - }, - Object { - "filename": "filename-EARTH.js", - "words": Array [ - "update", - "EARTH", - ], - }, - Object { - "filename": "filename-EARTH.js", - "words": Array [ - "delete", - "EARTH", - ], - }, - Object { - "filename": "filename-EARTH.js", - "words": Array [ - "CRUDEARTH", - ], - }, - Object { - "filename": "filename-EARTH.js", - "words": Array [ - "Param", - "EARTH", - ], - }, - Object { - "filename": "filename-EARTH.js", - "words": Array [ - "Creator2", - "EARTH", - ], - }, - Object { - "filename": "filename-Mars.js", - "words": Array [ - "create", - "Mars", - ], - }, - Object { - "filename": "filename-Mars.js", - "words": Array [ - "update", - "Mars", - ], - }, - Object { - "filename": "filename-Mars.js", - "words": Array [ - "delete", - "Mars", - ], - }, - Object { - "filename": "filename-Mars.js", - "words": Array [ - "CRUDMars", - ], - }, - Object { - "filename": "filename-Mars.js", - "words": Array [ - "Param", - "Mars", - ], - }, - Object { - "filename": "filename-Mars.js", - "words": Array [ - "Creator2", - "Mars", - ], - }, - Object { - "filename": "filename-Venus13.js", - "words": Array [ - "create", - "Venus13", - ], - }, - Object { - "filename": "filename-Venus13.js", - "words": Array [ - "update", - "Venus13", - ], - }, - Object { - "filename": "filename-Venus13.js", - "words": Array [ - "delete", - "Venus13", - ], - }, - Object { - "filename": "filename-Venus13.js", - "words": Array [ - "CRUDVenus13", - ], - }, - Object { - "filename": "filename-Venus13.js", - "words": Array [ - "Param", - "Venus13", - ], - }, - Object { - "filename": "filename-Venus13.js", - "words": Array [ - "Creator2", - "Venus13", - ], - }, - ], - } - `); - }); - it('should provide vocabulary rankings', () => { - const vocabulary = toProjectVocabulary(moduleInfo); - const actual = toProjectVocabularyRank(vocabulary); - expect(actual).toMatchInlineSnapshot(` - Object { - "ngram": Array [ - Object { - "count": 8, - "ngram": Array [ - "update", - ], - }, - Object { - "count": 8, - "ngram": Array [ - "delete", - ], - }, - Object { - "count": 8, - "ngram": Array [ - "create", - ], - }, - Object { - "count": 8, - "ngram": Array [ - "Param", - ], - }, - Object { - "count": 8, - "ngram": Array [ - "Creator2", - ], - }, - Object { - "count": 5, - "ngram": Array [ - "Venus13", - ], - }, - Object { - "count": 5, - "ngram": Array [ - "Saturn", - ], - }, - Object { - "count": 5, - "ngram": Array [ - "Mars", - ], - }, - Object { - "count": 5, - "ngram": Array [ - "EARTH", - ], - }, - ], - } - `); - }); -}); diff --git a/test/index.test.ts b/test/index.test.ts new file mode 100644 index 0000000..e57c2a7 --- /dev/null +++ b/test/index.test.ts @@ -0,0 +1,3 @@ +import {test} from 'node:test'; + +test('no test yet', () => {}); diff --git a/test/markdown-api.test.ts b/test/markdown-api.test.ts deleted file mode 100644 index 7fab9ff..0000000 --- a/test/markdown-api.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { toTypedocApiMd } from '../src/markdown-api'; -import { GenerateTypedocActionOpts } from '../src/model'; -import { TypedocJson } from '../src/typedoc-json-model'; -import { typedocExampleJson } from './fixture-typedoc'; - -const defaultOps = { - feature: [], - jsonSource: '', - docBase: '', - docPrefix: '', - docDirectory: '', - srcDirectory: 'src', -}; - -describe('markdown-api', () => { - const typedocExample: TypedocJson = JSON.parse(typedocExampleJson); - it('should provide markdown for homepage', () => { - const opts: GenerateTypedocActionOpts = { - ...defaultOps, - homepage: 'https://github.com/mycompany/my-project', - }; - const actual = toTypedocApiMd(opts, typedocExample); - expect(actual).toMatchSnapshot(); - }); - it('should provide markdown without homepage', () => { - const opts: GenerateTypedocActionOpts = { - ...defaultOps, - }; - const actual = toTypedocApiMd(opts, typedocExample); - expect(actual).toMatchSnapshot(); - }); - it('should provide markdown for a docBase', () => { - const opts: GenerateTypedocActionOpts = { - ...defaultOps, - homepage: 'https://github.com/mycompany/my-project', - docBase: 'docs/my-', - }; - const actual = toTypedocApiMd(opts, typedocExample); - expect(actual).toMatchSnapshot(); - }); -}); diff --git a/test/ts-parser.test.ts b/test/ts-parser.test.ts deleted file mode 100644 index f2d1ac6..0000000 --- a/test/ts-parser.test.ts +++ /dev/null @@ -1,242 +0,0 @@ -import { createProject, parseTsContent } from '../src/ts-parser'; - -const someImports = ` -import { Command } from 'commander'; -import nodeFs from 'fs'; -import { commanding } from './index.js'; -import { - GenerateTypedocAction, - GenerateTypedocActionOpts, - ParseAction, - ParseActionOpts, - RunnerContext, - } from './model.js'; - -`; - -const funcOneParamWithComment = ` -/** - * Detect an url - * @category String abstractor - * @param value the text to check - * @returns the url keyword or false - */ -export function someUrl(value: string) { - return value.startsWith('http://') || value.startsWith('https://') ? 'url' : false; -} -`; - -const funcExpression = ` -/** - * Detect: - * - an url - * - starting with http or https - * @category String abstractor - * @param value the text to check - * @returns the url keyword or false - */ - export const someUrl = (value: string) => - value.startsWith('http://') || value.startsWith('https://') ? 'url' : false; -`; - -const varExpression = ` - - export const someList = [1, 2, 3] -`; - -const someInterface = ` -export interface CmdOptionsParser { - feature: CmdOption; - docBase: CmdOption; - srcDirectory: CmdOption; -} -`; - -const someTypeAlias = ` -export type GenerateTypedocAction = ( - ctx: RunnerContext, - options: GenerateTypedocActionOpts -) => Promise; -`; - -describe('ts-parser', () => { - it('parse imports', () => { - const project = createProject(); - project.createSourceFile('./source.ts', someImports); - const firstSource = project.getSourceFiles()[0]; - const actual = firstSource ? parseTsContent(firstSource) : 'no-source-file'; - expect(actual).toMatchInlineSnapshot(` - Object { - "filename": "source.ts", - "functions": Array [], - "imports": Array [ - Object { - "from": "commander", - "identifier": "Command", - }, - Object { - "from": "fs", - "identifier": "nodeFs", - }, - Object { - "from": "./index.js", - "identifier": "commanding", - }, - Object { - "from": "./model.js", - "identifier": "GenerateTypedocAction", - }, - Object { - "from": "./model.js", - "identifier": "GenerateTypedocActionOpts", - }, - Object { - "from": "./model.js", - "identifier": "ParseAction", - }, - Object { - "from": "./model.js", - "identifier": "ParseActionOpts", - }, - Object { - "from": "./model.js", - "identifier": "RunnerContext", - }, - ], - "interfaces": Array [], - } - `); - }); - - it('parse functions', () => { - const project = createProject(); - project.createSourceFile('./source.ts', funcOneParamWithComment); - const firstSource = project.getSourceFiles()[0]; - const actual = firstSource ? parseTsContent(firstSource) : 'no-source-file'; - expect(actual).toMatchInlineSnapshot(` - Object { - "filename": "source.ts", - "functions": Array [ - Object { - "bodyWidth": 128, - "descendantCount": 24, - "description": "Detect an url", - "exported": true, - "expression": false, - "identifier": "someUrl", - "keywords": Array [ - "BarBarToken", - "BinaryExpression", - "Block", - "CallExpression", - "ColonToken", - "ConditionalExpression", - "ExportKeyword", - "FalseKeyword", - "Identifier", - "Parameter", - "PropertyAccessExpression", - "QuestionToken", - "ReturnStatement", - "StringKeyword", - "StringLiteral", - ], - }, - ], - "imports": Array [], - "interfaces": Array [], - } - `); - }); - it('parse function expressions', () => { - const project = createProject(); - project.createSourceFile('./source.ts', funcExpression); - const firstSource = project.getSourceFiles()[0]; - const actual = firstSource ? parseTsContent(firstSource) : 'no-source-file'; - expect(actual).toMatchInlineSnapshot(` - Object { - "filename": "source.ts", - "functions": Array [ - Object { - "bodyWidth": 106, - "descendantCount": 23, - "description": "", - "exported": true, - "expression": true, - "identifier": "someUrl", - "keywords": Array [ - "ArrowFunction", - "BarBarToken", - "BinaryExpression", - "CallExpression", - "ColonToken", - "ConditionalExpression", - "EqualsGreaterThanToken", - "FalseKeyword", - "Identifier", - "Parameter", - "PropertyAccessExpression", - "QuestionToken", - "StringKeyword", - "StringLiteral", - ], - }, - ], - "imports": Array [], - "interfaces": Array [], - } - `); - }); - it('ignore not function expressions', () => { - const project = createProject(); - project.createSourceFile('./source.ts', varExpression); - const firstSource = project.getSourceFiles()[0]; - const actual = firstSource ? parseTsContent(firstSource) : 'no-source-file'; - expect(actual).toMatchInlineSnapshot(` - Object { - "filename": "source.ts", - "functions": Array [], - "imports": Array [], - "interfaces": Array [], - } - `); - }); - it('parse interfaces', () => { - const project = createProject(); - project.createSourceFile('./source.ts', someInterface); - const firstSource = project.getSourceFiles()[0]; - const actual = firstSource ? parseTsContent(firstSource) : 'no-source-file'; - expect(actual).toMatchInlineSnapshot(` - Object { - "filename": "source.ts", - "functions": Array [], - "imports": Array [], - "interfaces": Array [ - Object { - "exported": true, - "identifier": "CmdOptionsParser", - }, - ], - } - `); - }); - it('parse type aliases', () => { - const project = createProject(); - project.createSourceFile('./source.ts', someTypeAlias); - const firstSource = project.getSourceFiles()[0]; - const actual = firstSource ? parseTsContent(firstSource) : 'no-source-file'; - expect(actual).toMatchInlineSnapshot(` - Object { - "filename": "source.ts", - "functions": Array [], - "imports": Array [], - "interfaces": Array [ - Object { - "exported": true, - "identifier": "GenerateTypedocAction", - }, - ], - } - `); - }); -}); diff --git a/tsconfig.json b/tsconfig.json index 0cd35d5..5a922b7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,37 @@ { - "extends": "baldrick-tsconfig-es2020", + "$schema": "https://json.schemastore.org/tsconfig", + "display": "ES2022", "compilerOptions": { - "module": "es2022", - "moduleResolution": "node", "allowSyntheticDefaultImports": true, + "declaration": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "lib": ["ES2022"], + "module": "NodeNext", + "moduleDetection": "force", + "moduleResolution": "NodeNext", + "newLine": "lf", + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitOverride": true, + "noImplicitReturns": true, + "noPropertyAccessFromIndexSignature": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": false, + "skipLibCheck": true, + "strict": true, + "target": "ES2022", + "useDefineForClassFields": true, "diagnostics": true, - "extendedDiagnostics": true + "extendedDiagnostics": true, + "outDir": "dist" }, "ts-node": { - "transpileOnly": true, + "compilerOptions": {}, "files": true, - "compilerOptions": {} - } -} \ No newline at end of file + "transpileOnly": true + }, + "exclude": ["dist"] +} diff --git a/yarn.lock b/yarn.lock index 038b7a4..eeb1791 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,686 +2,30 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - -"@babel/compat-data@^7.16.0": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== - -"@babel/compat-data@^7.16.4": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" - integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" - integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helpers" "^7.16.5" - "@babel/parser" "^7.16.5" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/core@^7.8.0": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.10.tgz#ebd034f8e7ac2b6bfcdaa83a161141a646f74b50" - integrity sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.10" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.10" - "@babel/types" "^7.16.8" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.16.5", "@babel/generator@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" - integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== - dependencies: - "@babel/types" "^7.16.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" - integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== - dependencies: - "@babel/types" "^7.16.8" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-compilation-targets@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" - integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" - integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== - dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - -"@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^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.16.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" - integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== - -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" - integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - -"@babel/helpers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" - integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.5": - version "7.16.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" - integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== - -"@babel/parser@^7.16.10", "@babel/parser@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.10.tgz#aba1b1cb9696a24a19f59c41af9cf17d1c716a88" - integrity sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz#f47a33e4eee38554f00fb6b2f894fa1f5649b0b3" - integrity sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/template@^7.16.0", "@babel/template@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" - integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.10" - "@babel/types" "^7.16.8" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.16.5", "@babel/traverse@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" - integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.5" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.16.7", "@babel/types@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" - integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@eslint/eslintrc@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" - integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.2.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" - integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.4.6.tgz#0742e6787f682b22bdad56f9db2a8a77f6a86107" - integrity sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.4.6" - jest-util "^27.4.2" - slash "^3.0.0" - -"@jest/core@^27.4.7": - version "27.4.7" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.4.7.tgz#84eabdf42a25f1fa138272ed229bcf0a1b5e6913" - integrity sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg== - dependencies: - "@jest/console" "^27.4.6" - "@jest/reporters" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.4.2" - jest-config "^27.4.7" - jest-haste-map "^27.4.6" - jest-message-util "^27.4.6" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.6" - jest-resolve-dependencies "^27.4.6" - jest-runner "^27.4.6" - jest-runtime "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" - jest-validate "^27.4.6" - jest-watcher "^27.4.6" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.4.6.tgz#1e92885d64f48c8454df35ed9779fbcf31c56d8b" - integrity sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg== - dependencies: - "@jest/fake-timers" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.6" - -"@jest/fake-timers@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.4.6.tgz#e026ae1671316dbd04a56945be2fa251204324e8" - integrity sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A== - dependencies: - "@jest/types" "^27.4.2" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.4.6" - jest-mock "^27.4.6" - jest-util "^27.4.2" - -"@jest/globals@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.4.6.tgz#3f09bed64b0fd7f5f996920258bd4be8f52f060a" - integrity sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw== - dependencies: - "@jest/environment" "^27.4.6" - "@jest/types" "^27.4.2" - expect "^27.4.6" - -"@jest/reporters@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.4.6.tgz#b53dec3a93baf9b00826abf95b932de919d6d8dd" - integrity sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.4.6" - jest-resolve "^27.4.6" - jest-util "^27.4.2" - jest-worker "^27.4.6" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/source-map@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.4.0.tgz#2f0385d0d884fb3e2554e8f71f8fa957af9a74b6" - integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.4.6.tgz#b3df94c3d899c040f602cea296979844f61bdf69" - integrity sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ== +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: - "@jest/console" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" + "@jridgewell/trace-mapping" "0.3.9" -"@jest/test-sequencer@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz#447339b8a3d7b5436f50934df30854e442a9d904" - integrity sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw== - dependencies: - "@jest/test-result" "^27.4.6" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" - jest-runtime "^27.4.6" +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jest/transform@^27.4.6": - version "27.4.6" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.4.6.tgz#153621940b1ed500305eacdb31105d415dc30231" - integrity sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.4.2" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" - jest-regex-util "^27.4.0" - jest-util "^27.4.2" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jest/types@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" - integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -704,4920 +48,251 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@ts-morph/common@~0.12.3": - version "0.12.3" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.12.3.tgz#a96e250217cd30e480ab22ec6a0ebbe65fd784ff" - integrity sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w== +"@ts-morph/common@~0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.19.0.tgz#927fcd81d1bbc09c89c4a310a84577fb55f3694e" + integrity sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ== dependencies: - fast-glob "^3.2.7" - minimatch "^3.0.4" - mkdirp "^1.0.4" + fast-glob "^3.2.12" + minimatch "^7.4.3" + mkdirp "^2.1.6" path-browserify "^1.0.1" -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.17" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.17.tgz#f50ac9d20d64153b510578d84f9643f9a3afbe64" - integrity sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/concat-stream@^1.0.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" - integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== - dependencies: - "@types/node" "*" +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== -"@types/debug@^4.0.0": - version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" - integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== - dependencies: - "@types/ms" "*" +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== -"@types/estree-jsx@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-0.0.1.tgz#c36d7a1afeb47a95a8ee0b7bc8bc705db38f919d" - integrity sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A== - dependencies: - "@types/estree" "*" +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== -"@types/estree@*": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" +"@types/node@^18.15.11": + version "18.15.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" + integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== -"@types/is-empty@^1.0.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.1.tgz#18d7256a73e43ec51f8b75c25fbdc31350be52a6" - integrity sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== +acorn@^8.4.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -"@types/jest@27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" - integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: - jest-diff "^27.0.0" - pretty-format "^27.0.0" - -"@types/js-yaml@^4.0.0": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + balanced-match "^1.0.0" -"@types/mdast@^3.0.0", "@types/mdast@^3.0.3": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: - "@types/unist" "*" - -"@types/ms@*": - version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== - -"@types/node@*": - version "17.0.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.5.tgz#57ca67ec4e57ad9e4ef5a6bab48a15387a1c83e0" - integrity sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw== - -"@types/node@^17.0.0": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab" - integrity sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/prettier@^2.1.5": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/supports-color@^8.0.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" - integrity sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw== - -"@types/text-table@^0.2.0": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@types/text-table/-/text-table-0.2.2.tgz#774c90cfcfbc8b4b0ebb00fecbe861dc8b1e8e26" - integrity sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg== + fill-range "^7.0.1" -"@types/unist@*", "@types/unist@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +code-block-writer@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-12.0.0.tgz#4dd58946eb4234105aff7f0035977b2afdc2a770" + integrity sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w== -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== +commander@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" + integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -"@typescript-eslint/eslint-plugin@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.1.tgz#e5a86d7e1f9dc0b3df1e6d94feaf20dd838d066c" - integrity sha512-Xv9tkFlyD4MQGpJgTo6wqDqGvHIRmRgah/2Sjz1PUnJTawjHWIwBivUE9x0QtU2WVii9baYgavo/bHjrZJkqTw== - dependencies: - "@typescript-eslint/experimental-utils" "5.9.1" - "@typescript-eslint/scope-manager" "5.9.1" - "@typescript-eslint/type-utils" "5.9.1" - debug "^4.3.2" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.2.0" - semver "^7.3.5" - tsutils "^3.21.0" +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -"@typescript-eslint/experimental-utils@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.1.tgz#8c407c4dd5ffe522329df6e4c9c2b52206d5f7f1" - integrity sha512-cb1Njyss0mLL9kLXgS/eEY53SZQ9sT519wpX3i+U457l2UXRDuo87hgKfgRazmu9/tQb0x2sr3Y0yrU+Zz0y+w== +fast-glob@^3.2.12: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.9.1" - "@typescript-eslint/types" "5.9.1" - "@typescript-eslint/typescript-estree" "5.9.1" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" -"@typescript-eslint/experimental-utils@^5.0.0": - version "5.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.1.tgz#01861eb2f0749f07d02db342b794145a66ed346f" - integrity sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww== +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.8.1" - "@typescript-eslint/types" "5.8.1" - "@typescript-eslint/typescript-estree" "5.8.1" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + reusify "^1.0.4" -"@typescript-eslint/parser@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.9.1.tgz#b114011010a87e17b3265ca715e16c76a9834cef" - integrity sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g== +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: - "@typescript-eslint/scope-manager" "5.9.1" - "@typescript-eslint/types" "5.9.1" - "@typescript-eslint/typescript-estree" "5.9.1" - debug "^4.3.2" + to-regex-range "^5.0.1" -"@typescript-eslint/scope-manager@5.8.1": - version "5.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.8.1.tgz#7fc0604f7ade8833e4d42cebaa1e2debf8b932e4" - integrity sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q== +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: - "@typescript-eslint/types" "5.8.1" - "@typescript-eslint/visitor-keys" "5.8.1" + is-glob "^4.0.1" -"@typescript-eslint/scope-manager@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.9.1.tgz#6c27be89f1a9409f284d95dfa08ee3400166fe69" - integrity sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ== - dependencies: - "@typescript-eslint/types" "5.9.1" - "@typescript-eslint/visitor-keys" "5.9.1" +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -"@typescript-eslint/type-utils@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.9.1.tgz#c6832ffe655b9b1fec642d36db1a262d721193de" - integrity sha512-tRSpdBnPRssjlUh35rE9ug5HrUvaB9ntREy7gPXXKwmIx61TNN7+l5YKgi1hMKxo5NvqZCfYhA5FvyuJG6X6vg== +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: - "@typescript-eslint/experimental-utils" "5.9.1" - debug "^4.3.2" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.8.1": - version "5.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.8.1.tgz#04c6b49ebc8c99238238a6b8b43f2fc613983b5a" - integrity sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA== + is-extglob "^2.1.1" -"@typescript-eslint/types@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.9.1.tgz#1bef8f238a2fb32ebc6ff6d75020d9f47a1593c6" - integrity sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ== +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -"@typescript-eslint/typescript-estree@5.8.1": - version "5.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.1.tgz#a592855be688e7b729a1e9411d7d74ec992ed6ef" - integrity sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ== - dependencies: - "@typescript-eslint/types" "5.8.1" - "@typescript-eslint/visitor-keys" "5.8.1" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -"@typescript-eslint/typescript-estree@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.1.tgz#d5b996f49476495070d2b8dd354861cf33c005d6" - integrity sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A== - dependencies: - "@typescript-eslint/types" "5.9.1" - "@typescript-eslint/visitor-keys" "5.9.1" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" +markdown-table@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== -"@typescript-eslint/visitor-keys@5.8.1": - version "5.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.1.tgz#58a2c566265d5511224bc316149890451c1bbab0" - integrity sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg== - dependencies: - "@typescript-eslint/types" "5.8.1" - eslint-visitor-keys "^3.0.0" +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -"@typescript-eslint/visitor-keys@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.1.tgz#f52206f38128dd4f675cf28070a41596eee985b7" - integrity sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg== +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - "@typescript-eslint/types" "5.9.1" - eslint-visitor-keys "^3.0.0" + braces "^3.0.2" + picomatch "^2.3.1" -abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== +minimatch@^7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.3.tgz#012cbf110a65134bb354ae9773b55256cdb045a2" + integrity sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A== dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + brace-expansion "^2.0.1" -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +mkdirp@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== -acorn@^8.2.4, acorn@^8.6.0, acorn@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: - type-fest "^0.21.3" + queue-microtask "^1.2.2" -ansi-regex@^5.0.1: +to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: - color-convert "^1.9.0" + is-number "^7.0.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -babel-jest@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.4.6.tgz#4d024e69e241cdf4f396e453a07100f44f7ce314" - integrity sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg== - dependencies: - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.4.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz#d7831fc0f93573788d80dee7e682482da4c730d6" - integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz#70d0e676a282ccb200fbabd7f415db5fdf393bca" - integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== - dependencies: - babel-plugin-jest-hoist "^27.4.0" - babel-preset-current-node-syntax "^1.0.0" - -bail@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" - integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -baldrick-dev-ts@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/baldrick-dev-ts/-/baldrick-dev-ts-0.15.0.tgz#f3768aad4000830061c10b6aed29c82c0e7d6ea8" - integrity sha512-wDKqhAdFtMJFN/CQtZs8RDMSOaPGEdNK6vFdDBGccfhLPVPCNUeFdISdbkWRdLiNOAm0fWKeynn4QBCeNyB6oQ== - dependencies: - "@types/jest" "27.4.0" - "@typescript-eslint/eslint-plugin" "5.9.1" - "@typescript-eslint/parser" "5.9.1" - baldrick-tsconfig-es2020 "^0.9.0" - commander "^8.3.0" - diff "^5.0.0" - eslint "8.6.0" - eslint-config-prettier "^8.3.0" - eslint-plugin-import "2.25.4" - eslint-plugin-jest "25.3.4" - eslint-plugin-prettier "^4.0.0" - eslint-plugin-unicorn "^40.0.0" - execa "^6.0.0" - fs-extra "^10.0.0" - jest "27.4.7" - jest-junit "^13.0.0" - prettier "2.5.1" - remark-cli "^10.0.1" - remark-gfm "^3.0.1" - remark-lint-emphasis-marker "^3.1.1" - remark-lint-list-item-indent "^3.1.1" - remark-lint-list-item-spacing "^4.1.1" - remark-lint-maximum-heading-length "^3.1.1" - remark-lint-maximum-line-length "^3.1.2" - remark-lint-ordered-list-marker-style "^3.1.1" - remark-lint-ordered-list-marker-value "^3.1.1" - remark-lint-strong-marker "^3.1.1" - remark-lint-unordered-list-marker-style "^3.1.1" - remark-preset-lint-consistent "^5.1.1" - remark-preset-lint-recommended "^6.1.2" - tiny-glob "^0.2.9" - ts-jest "^27.1.2" - tslib "^2.3.1" - vfile-reporter "^7.0.3" - vfile-reporter-json "^3.1.0" - -baldrick-tsconfig-es2020@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/baldrick-tsconfig-es2020/-/baldrick-tsconfig-es2020-0.9.0.tgz#f95eeef610d19041802d0e8d89429cc7e0fcefbf" - integrity sha512-FwJGcXk2q3+3g33HNFoXGo0xX6xCwHNofTZjUbdLubIR5QKQInaFwRPaGLJrLnPqrtWffIBQbMdloXHhRoEO6A== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserslist@^4.17.5: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -builtin-modules@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== - -builtins@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-4.0.0.tgz#a8345420de82068fdc4d6559d0456403a8fb1905" - integrity sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw== - dependencies: - semver "^7.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -camelcase@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== - -caniuse-lite@^1.0.30001286: - version "1.0.30001293" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001293.tgz#fb8b7f071a04e50fd1e759d23e3d65fbc9ae5ef3" - integrity sha512-A4I5fB8Kxo0p/H3aXlaOkBp9mD0GspKmXfWHXOzcl0iHLi07EEVJdJeQPT4Yv3/dffRnrwluYZyXvMjbr6WhIA== - -ccount@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" - integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== - -chokidar@^3.0.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -ci-info@^3.2.0, ci-info@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -clean-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" - integrity sha1-jffHquUf02h06PjQW5GAvBGj/tc= - dependencies: - escape-string-regexp "^1.0.5" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -code-block-writer@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.0.tgz#5956fb186617f6740e2c3257757fea79315dd7d4" - integrity sha512-GEqWvEWWsOvER+g9keO4ohFoD3ymwyCnqY3hoTr7GZipYFwEhMHJw+TtV0rfgRhNImM6QWZGO2XYjlJVyYT62w== - dependencies: - tslib "2.3.1" - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== - dependencies: - character-entities "^2.0.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" - integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== - -diff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -electron-to-chromium@^1.4.17: - version "1.4.28" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.28.tgz#fef0e92e281df6d568f482d8d53c34ca5374de48" - integrity sha512-Gzbf0wUtKfyPaqf0Plz+Ctinf9eQIzxEqBHwSvbGfeOm9GMNdLxyu1dNiCUfM+x6r4BE0xUJNh3Nmg9gfAtTmg== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -error-ex@^1.3.1, error-ex@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" - integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" - integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-import@2.25.4: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" - has "^1.0.3" - is-core-module "^2.8.0" - is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" - -eslint-plugin-jest@25.3.4: - version "25.3.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.3.4.tgz#2031dfe495be1463330f8b80096ddc91f8e6387f" - integrity sha512-CCnwG71wvabmwq/qkz0HWIqBHQxw6pXB1uqt24dxqJ9WB34pVg49bL1sjXphlJHgTMWGhBjN1PicdyxDxrfP5A== - dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" - -eslint-plugin-prettier@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" - integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-unicorn@^40.0.0: - version "40.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-40.1.0.tgz#48975360e39d23df726e4b33e8dd5d650e184832" - integrity sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - ci-info "^3.3.0" - clean-regexp "^1.0.0" - eslint-utils "^3.0.0" - esquery "^1.4.0" - indent-string "^4.0.0" - is-builtin-module "^3.1.0" - lodash "^4.17.21" - pluralize "^8.0.0" - read-pkg-up "^7.0.1" - regexp-tree "^0.1.24" - safe-regex "^2.1.1" - semver "^7.3.5" - strip-indent "^3.0.0" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" - integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" - integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== - -eslint@8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.6.0.tgz#4318c6a31c5584838c1a2e940c478190f58d558e" - integrity sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw== - dependencies: - "@eslint/eslintrc" "^1.0.5" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.0" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.1.0" - espree "^9.3.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.2.0" - semver "^7.2.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.2.0.tgz#c50814e01611c2d0f8bd4daa83c369eabba80dbc" - integrity sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg== - dependencies: - acorn "^8.6.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.1.0" - -espree@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" - integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== - dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.1.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.0.0.tgz#598b46f09ae44f5d8097a30cfb1681d0f0371503" - integrity sha512-m4wU9j4Z9nXXoqT8RSfl28JSwmMNLFF69OON8H/lL3NeU0tNpGz313bcOfYoBBHokB0dC2tMl3VUcKgHELhL2Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.0.1" - onetime "^6.0.0" - signal-exit "^3.0.5" - strip-final-newline "^3.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expect@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.4.6.tgz#f335e128b0335b6ceb4fcab67ece7cbd14c942e6" - integrity sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag== - dependencies: - "@jest/types" "^27.4.2" - jest-get-type "^27.4.0" - jest-matcher-utils "^27.4.6" - jest-message-util "^27.4.6" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-glob@^3.2.7: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fault@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" - integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== - dependencies: - format "^0.2.0" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -format@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" - integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== - dependencies: - type-fest "^0.20.2" - -globalyzer@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" - integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== - -globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globrex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" - integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== - -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.0.0, ignore@^5.1.4, ignore@^5.1.8: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -import-meta-resolve@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-1.1.1.tgz#244fd542fd1fae73550d4f8b3cde3bba1d7b2b18" - integrity sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A== - dependencies: - builtins "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-builtin-module@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" - integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== - dependencies: - builtin-modules "^3.0.0" - -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-core-module@^2.2.0, is-core-module@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-empty@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" - integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s= - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-weakref@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" - integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.4.2.tgz#da2547ea47c6e6a5f6ed336151bd2075736eb4a5" - integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== - dependencies: - "@jest/types" "^27.4.2" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.4.6.tgz#d3af34c0eb742a967b1919fbb351430727bcea6c" - integrity sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ== - dependencies: - "@jest/environment" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.4.6" - is-generator-fn "^2.0.0" - jest-each "^27.4.6" - jest-matcher-utils "^27.4.6" - jest-message-util "^27.4.6" - jest-runtime "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" - pretty-format "^27.4.6" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.4.7: - version "27.4.7" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.4.7.tgz#d00e759e55d77b3bcfea0715f527c394ca314e5a" - integrity sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw== - dependencies: - "@jest/core" "^27.4.7" - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - jest-config "^27.4.7" - jest-util "^27.4.2" - jest-validate "^27.4.6" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.4.7: - version "27.4.7" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.4.7.tgz#4f084b2acbd172c8b43aa4cdffe75d89378d3972" - integrity sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.4.6" - "@jest/types" "^27.4.2" - babel-jest "^27.4.6" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-circus "^27.4.6" - jest-environment-jsdom "^27.4.6" - jest-environment-node "^27.4.6" - jest-get-type "^27.4.0" - jest-jasmine2 "^27.4.6" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.6" - jest-runner "^27.4.6" - jest-util "^27.4.2" - jest-validate "^27.4.6" - micromatch "^4.0.4" - pretty-format "^27.4.6" - slash "^3.0.0" - -jest-diff@^27.0.0: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.2.tgz#786b2a5211d854f848e2dcc1e324448e9481f36f" - integrity sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.2" - -jest-diff@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.6.tgz#93815774d2012a2cbb6cf23f84d48c7a2618f98d" - integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.6" - -jest-docblock@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.4.0.tgz#06c78035ca93cbbb84faf8fce64deae79a59f69f" - integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.4.6.tgz#e7e8561be61d8cc6dbf04296688747ab186c40ff" - integrity sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA== - dependencies: - "@jest/types" "^27.4.2" - chalk "^4.0.0" - jest-get-type "^27.4.0" - jest-util "^27.4.2" - pretty-format "^27.4.6" - -jest-environment-jsdom@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz#c23a394eb445b33621dfae9c09e4c8021dea7b36" - integrity sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA== - dependencies: - "@jest/environment" "^27.4.6" - "@jest/fake-timers" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.6" - jest-util "^27.4.2" - jsdom "^16.6.0" - -jest-environment-node@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.4.6.tgz#ee8cd4ef458a0ef09d087c8cd52ca5856df90242" - integrity sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ== - dependencies: - "@jest/environment" "^27.4.6" - "@jest/fake-timers" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.6" - jest-util "^27.4.2" - -jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== - -jest-haste-map@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.4.6.tgz#c60b5233a34ca0520f325b7e2cc0a0140ad0862a" - integrity sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ== - dependencies: - "@jest/types" "^27.4.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.4.0" - jest-serializer "^27.4.0" - jest-util "^27.4.2" - jest-worker "^27.4.6" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz#109e8bc036cb455950ae28a018f983f2abe50127" - integrity sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw== - dependencies: - "@jest/environment" "^27.4.6" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.4.6" - is-generator-fn "^2.0.0" - jest-each "^27.4.6" - jest-matcher-utils "^27.4.6" - jest-message-util "^27.4.6" - jest-runtime "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" - pretty-format "^27.4.6" - throat "^6.0.1" - -jest-junit@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-13.0.0.tgz#479be347457aad98ae8a5983a23d7c3ec526c9a3" - integrity sha512-JSHR+Dhb32FGJaiKkqsB7AR3OqWKtldLd6ZH2+FJ8D4tsweb8Id8zEVReU4+OlrRO1ZluqJLQEETm+Q6/KilBg== - dependencies: - mkdirp "^1.0.4" - strip-ansi "^6.0.1" - uuid "^8.3.2" - xml "^1.0.1" - -jest-leak-detector@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz#ed9bc3ce514b4c582637088d9faf58a33bd59bf4" - integrity sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA== - dependencies: - jest-get-type "^27.4.0" - pretty-format "^27.4.6" - -jest-matcher-utils@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz#53ca7f7b58170638590e946f5363b988775509b8" - integrity sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA== - dependencies: - chalk "^4.0.0" - jest-diff "^27.4.6" - jest-get-type "^27.4.0" - pretty-format "^27.4.6" - -jest-message-util@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.4.6.tgz#9fdde41a33820ded3127465e1a5896061524da31" - integrity sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.4.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.4.6" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.4.6.tgz#77d1ba87fbd33ccb8ef1f061697e7341b7635195" - integrity sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" - integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== - -jest-resolve-dependencies@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz#fc50ee56a67d2c2183063f6a500cc4042b5e2327" - integrity sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw== - dependencies: - "@jest/types" "^27.4.2" - jest-regex-util "^27.4.0" - jest-snapshot "^27.4.6" - -jest-resolve@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.4.6.tgz#2ec3110655e86d5bfcfa992e404e22f96b0b5977" - integrity sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw== - dependencies: - "@jest/types" "^27.4.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" - jest-pnp-resolver "^1.2.2" - jest-util "^27.4.2" - jest-validate "^27.4.6" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.4.6.tgz#1d390d276ec417e9b4d0d081783584cbc3e24773" - integrity sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg== - dependencies: - "@jest/console" "^27.4.6" - "@jest/environment" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.4.0" - jest-environment-jsdom "^27.4.6" - jest-environment-node "^27.4.6" - jest-haste-map "^27.4.6" - jest-leak-detector "^27.4.6" - jest-message-util "^27.4.6" - jest-resolve "^27.4.6" - jest-runtime "^27.4.6" - jest-util "^27.4.2" - jest-worker "^27.4.6" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.4.6.tgz#83ae923818e3ea04463b22f3597f017bb5a1cffa" - integrity sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ== - dependencies: - "@jest/environment" "^27.4.6" - "@jest/fake-timers" "^27.4.6" - "@jest/globals" "^27.4.6" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" - jest-message-util "^27.4.6" - jest-mock "^27.4.6" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.4.0.tgz#34866586e1cae2388b7d12ffa2c7819edef5958a" - integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.4.6.tgz#e2a3b4fff8bdce3033f2373b2e525d8b6871f616" - integrity sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.4.6" - graceful-fs "^4.2.4" - jest-diff "^27.4.6" - jest-get-type "^27.4.0" - jest-haste-map "^27.4.6" - jest-matcher-utils "^27.4.6" - jest-message-util "^27.4.6" - jest-util "^27.4.2" - natural-compare "^1.4.0" - pretty-format "^27.4.6" - semver "^7.3.2" - -jest-util@^27.0.0, jest-util@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621" - integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.4" - picomatch "^2.2.3" - -jest-validate@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.4.6.tgz#efc000acc4697b6cf4fa68c7f3f324c92d0c4f1f" - integrity sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ== - dependencies: - "@jest/types" "^27.4.2" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.4.0" - leven "^3.1.0" - pretty-format "^27.4.6" - -jest-watcher@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.4.6.tgz#673679ebeffdd3f94338c24f399b85efc932272d" - integrity sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw== - dependencies: - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.4.2" - string-length "^4.0.1" - -jest-worker@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" - integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@27.4.7: - version "27.4.7" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.4.7.tgz#87f74b9026a1592f2da05b4d258e57505f28eca4" - integrity sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg== - dependencies: - "@jest/core" "^27.4.7" - import-local "^3.0.2" - jest-cli "^27.4.7" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.0.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@2.x, json5@^2.0.0, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libnpmconfig@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" - integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== - dependencies: - figgy-pudding "^3.5.1" - find-up "^3.0.0" - ini "^1.3.5" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lines-and-columns@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" - integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== - -load-plugin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-4.0.1.tgz#9a239b0337064c9b8aac82b0c9f89b067db487c5" - integrity sha512-4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw== - dependencies: - import-meta-resolve "^1.0.0" - libnpmconfig "^1.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@^4.17.21, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -longest-streak@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" - integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@1.x: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -markdown-table@^3.0.0, markdown-table@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.2.tgz#9b59eb2c1b22fe71954a65ff512887065a7bb57c" - integrity sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA== - -mdast-comment-marker@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-2.1.0.tgz#67acce26def829b310016c7a186ec6ec3e7d6a3f" - integrity sha512-/+Cfm8A83PjkqjQDB9iYqHESGuXlriCWAwRGPJjkYmxXrF4r6saxeUlOKNrf+SogTwg9E8uyHRCFHLG6/BAAdA== - dependencies: - mdast-util-mdx-expression "^1.1.0" - -mdast-util-find-and-replace@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.1.0.tgz#69728acd250749f8aac6e150e07d1fd15619e829" - integrity sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw== - dependencies: - escape-string-regexp "^5.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" - -mdast-util-from-markdown@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" - integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - decode-named-character-reference "^1.0.0" - mdast-util-to-string "^3.1.0" - micromark "^3.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-decode-string "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - unist-util-stringify-position "^3.0.0" - uvu "^0.5.0" - -mdast-util-gfm-autolink-literal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz#4032dcbaddaef7d4f2f3768ed830475bb22d3970" - integrity sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg== - dependencies: - "@types/mdast" "^3.0.0" - ccount "^2.0.0" - mdast-util-find-and-replace "^2.0.0" - micromark-util-character "^1.0.0" - -mdast-util-gfm-footnote@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz#355c1e8dc9e17e871d1b3fa5da8824923fc756e0" - integrity sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - unist-util-visit "^4.0.0" - -mdast-util-gfm-strikethrough@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz#6cc72ef5d9539f4cee76af3f15dd0daa9e3af40f" - integrity sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew== - dependencies: - "@types/mdast" "^3.0.3" - mdast-util-to-markdown "^1.0.0" - -mdast-util-gfm-table@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.2.tgz#c727c20d5ac0d7d4b238d50b48e2924f0b77cc76" - integrity sha512-pPekvCTChFBF8uCq8bVyQwar8NBU/TaXIy44jj/UzmjMgPBHIa1B1ge8a0JVgzhqgXQAMvGT+PgiKlicdLGfDQ== - dependencies: - markdown-table "^3.0.0" - mdast-util-to-markdown "^1.0.0" - -mdast-util-gfm-task-list-item@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz#a0aa2a00c893f9f006d13ba096cbc64608559c7f" - integrity sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA== - dependencies: - "@types/mdast" "^3.0.3" - mdast-util-to-markdown "^1.0.0" - -mdast-util-gfm@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz#2545856bc18a66d5cc63fbef0b097a020a8e9e3d" - integrity sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg== - dependencies: - mdast-util-gfm-autolink-literal "^1.0.0" - mdast-util-gfm-footnote "^1.0.0" - mdast-util-gfm-strikethrough "^1.0.0" - mdast-util-gfm-table "^1.0.0" - mdast-util-gfm-task-list-item "^1.0.0" - -mdast-util-heading-style@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz#19bcc14d96b4a6f24efbe1318409bd34af64bb7f" - integrity sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw== - dependencies: - "@types/mdast" "^3.0.0" - -mdast-util-mdx-expression@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.1.1.tgz#657522e78b84f5c85cd2395776aba8dcfb7bbb0f" - integrity sha512-RDLRkBFmBKCJl6/fQdxxKL2BqNtoPFoNBmQAlj5ZNKOijIWRKjdhPkeufsUOaexLj+78mhJc+L7d1MYka8/LdQ== - dependencies: - "@types/estree-jsx" "^0.0.1" - -mdast-util-to-markdown@^1.0.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.6.tgz#9d0d1fcb22838e4af83fb04841cbde92525972f3" - integrity sha512-doJZmTEGagHypWvJ8ltinmwUsT9ZaNgNIQW6Gl7jNdsI1QZkTHTimYW561Niy2s8AEPAqEgV0dIh2UOVlSXUJA== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - longest-streak "^3.0.0" - mdast-util-to-string "^3.0.0" - micromark-util-decode-string "^1.0.0" - unist-util-visit "^4.0.0" - zwitch "^2.0.0" - -mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" - integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" - integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== - dependencies: - decode-named-character-reference "^1.0.0" - micromark-factory-destination "^1.0.0" - micromark-factory-label "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-factory-title "^1.0.0" - micromark-factory-whitespace "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-chunked "^1.0.0" - micromark-util-classify-character "^1.0.0" - micromark-util-html-tag-name "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-subtokenize "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.1" - uvu "^0.5.0" - -micromark-extension-gfm-autolink-literal@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz#dc589f9c37eaff31a175bab49f12290edcf96058" - integrity sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-footnote@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz#5280b29667e4ecb8687f369829aa3322caca7d11" - integrity sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw== - dependencies: - micromark-core-commonmark "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-symbol "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-strikethrough@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz#162232c284ffbedd8c74e59c1525bda217295e18" - integrity sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-classify-character "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-table@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz#7b708b728f8dc4d95d486b9e7a2262f9cddbcbb4" - integrity sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-tagfilter@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz#fb2e303f7daf616db428bb6a26e18fda14a90a4d" - integrity sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA== - dependencies: - micromark-util-types "^1.0.0" - -micromark-extension-gfm-task-list-item@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz#7683641df5d4a09795f353574d7f7f66e47b7fc4" - integrity sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz#40f3209216127a96297c54c67f5edc7ef2d1a2a2" - integrity sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA== - dependencies: - micromark-extension-gfm-autolink-literal "^1.0.0" - micromark-extension-gfm-footnote "^1.0.0" - micromark-extension-gfm-strikethrough "^1.0.0" - micromark-extension-gfm-table "^1.0.0" - micromark-extension-gfm-tagfilter "^1.0.0" - micromark-extension-gfm-task-list-item "^1.0.0" - micromark-util-combine-extensions "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-destination@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" - integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-label@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" - integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-factory-space@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" - integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-title@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" - integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-factory-whitespace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" - integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-character@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" - integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== - dependencies: - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-chunked@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" - integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-classify-character@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" - integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-combine-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" - integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-decode-numeric-character-reference@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" - integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-decode-string@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" - integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== - dependencies: - decode-named-character-reference "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-symbol "^1.0.0" - -micromark-util-encode@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" - integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== - -micromark-util-html-tag-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" - integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== - -micromark-util-normalize-identifier@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" - integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-resolve-all@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" - integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== - dependencies: - micromark-util-types "^1.0.0" - -micromark-util-sanitize-uri@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" - integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-encode "^1.0.0" - micromark-util-symbol "^1.0.0" - -micromark-util-subtokenize@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" - integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-util-symbol@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" - integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== - -micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" - integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== - -micromark@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" - integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== - dependencies: - "@types/debug" "^4.0.0" - debug "^4.0.0" - decode-named-character-reference "^1.0.0" - micromark-core-commonmark "^1.0.1" - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-chunked "^1.0.0" - micromark-util-combine-extensions "^1.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-encode "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-subtokenize "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.1" - uvu "^0.5.0" - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@^2.1.12: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.0.0, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.0.1.tgz#748dd68ed7de377bb1f7132c7dafe657be5ab400" - integrity sha512-ybBJQUSyFwEEhqO2lXmyKOl9ucHtyZBWVM0h0FiMfT/+WKxCUZFa95qAR2X3w/w6oigN3B0b2UNHZbD+kdfD5w== - dependencies: - path-key "^4.0.0" - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-json@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-6.0.2.tgz#6bf79c201351cc12d5d66eba48d5a097c13dc200" - integrity sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA== - dependencies: - "@babel/code-frame" "^7.16.0" - error-ex "^1.3.2" - json-parse-even-better-errors "^2.3.1" - lines-and-columns "^2.0.2" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" - integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== - -pretty-format@^27.0.0, pretty-format@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.2.tgz#e4ce92ad66c3888423d332b40477c87d1dac1fb8" - integrity sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw== - dependencies: - "@jest/types" "^27.4.2" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7" - integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^3.0.2: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regexp-tree@^0.1.24, regexp-tree@~0.1.1: - version "0.1.24" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" - integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -remark-cli@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-10.0.1.tgz#0a38166b8bb1a1720f5ed8a324715563f63dbcba" - integrity sha512-+eln31zLE69JwBMoa8nd2sPC0DFZyiWgBrshL8aKb3L2XXTRMuEKWE/IAtNPYEtcktceAQw+OpmqVy8pAmGOwQ== - dependencies: - remark "^14.0.0" - unified-args "^9.0.0" - -remark-gfm@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" - integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-gfm "^2.0.0" - micromark-extension-gfm "^2.0.0" - unified "^10.0.0" - -remark-lint-blockquote-indentation@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz#756c099efd43a125f04df329bfe84398358758b6" - integrity sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ== - dependencies: - "@types/mdast" "^3.0.0" - pluralize "^8.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-checkbox-character-style@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz#8d42edf52e7b359cf76ff7a6ba344dc70c933025" - integrity sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-code-block-style@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz#5a2d122d01f9175e762f81a144fc18e1a91a104c" - integrity sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-emphasis-marker@^3.0.0, remark-lint-emphasis-marker@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-3.1.1.tgz#3f3336ba4be97b8296eb1019338237d61b4e3db8" - integrity sha512-VduuT+KAr0vA78xBLJdIcenCQja4mAd81aNACfdz7BUPLphIQa84D5uzl+nZatSaCXLebCNp5jP/bzVUsBmRKw== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-fenced-code-marker@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz#ee977552bd130f1f1305301f97160d31ff6b7461" - integrity sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-final-newline@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz#dac4e5ae92638808fb6e2de6164c43890f1248a5" - integrity sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - -remark-lint-hard-break-spaces@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz#daaa6fbc9d08a0501dc6e3d4a844dc4783bdfaea" - integrity sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-heading-style@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz#19e321db9dc6c697f3ef8bf514a8b15323422776" - integrity sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-heading-style "^2.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-visit "^4.0.0" - -remark-lint-link-title-style@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-3.1.1.tgz#eb1a773816b4bee43170745245e9fed776633a7d" - integrity sha512-JWWiuUFy/N2iwQ3eWIxFy6olX8D7xCFw8LoM0vZI2CHTZJrmDMaWwnl8jziP+HHHheFX3wkVqsoaYod536ArRw== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - vfile-location "^4.0.0" - -remark-lint-list-item-bullet-indent@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz#1ff4498b680bb4a8ce94a4192a1b52eca4c9fe48" - integrity sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg== - dependencies: - "@types/mdast" "^3.0.0" - pluralize "^8.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-visit "^4.0.0" - -remark-lint-list-item-content-indent@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-3.1.1.tgz#9fff6bf4e1a08e86d99430838b822b8209dca15e" - integrity sha512-gcZhAXLd1onkutTEqQTybyANjdxvlOlu0y/AU4H3f6L99UGC85ymRhEeu5vGSkvsKKPR1FrMTEH6G2nNgtavgg== - dependencies: - "@types/mdast" "^3.0.0" - pluralize "^8.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-list-item-indent@^3.0.0, remark-lint-list-item-indent@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz#1591d291a9f81c8f14219bdb63f226a5e9f271c3" - integrity sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw== - dependencies: - "@types/mdast" "^3.0.0" - pluralize "^8.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-list-item-spacing@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-4.1.1.tgz#93473e79965c3f21c0dc8830b18be790033485fd" - integrity sha512-MqXmahPgYrvfA7SPqmcAC6fI40jIgXG33EeE/MhFvMLWh04k+fqGf2O2aH1KT664MlwM4oETbTI4xj3/KCIHZA== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-maximum-heading-length@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-3.1.1.tgz#dd90ef7f18ff20789f9c533e2bdbcd4b4d92a7cd" - integrity sha512-hTOvRDnULpu0S+k51lovT28TLBgtw8XR0qq+mECSsoyuT4C38UBjQRic5OPo68AZMH0ad/93uj6yvfFtH0K8Lg== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-visit "^4.0.0" - -remark-lint-maximum-line-length@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz#4c5c499279c80938878194d4e52102525b7a9e1b" - integrity sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-no-blockquote-without-marker@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz#e07233866a742c41368886663d7caebbdebb1074" - integrity sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - vfile-location "^4.0.0" - -remark-lint-no-duplicate-definitions@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz#2f5042b8d2274d94a9423767c6e714b57c6a2dbf" - integrity sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-stringify-position "^3.0.0" - unist-util-visit "^4.0.0" - -remark-lint-no-heading-content-indent@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz#e4afb9872d12b29805c183999f5cb3adca9f394c" - integrity sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-heading-style "^2.0.0" - pluralize "^8.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-no-inline-padding@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz#2f1dda78556f1f8a98b4cad52ff74f6a56b55c58" - integrity sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-visit "^4.0.0" - -remark-lint-no-literal-urls@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz#9e3b71c013ffa3d3a493c98b54c3d5bd0ea0ad23" - integrity sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-no-shortcut-reference-image@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz#3714f31e98ca2063c43bb4cc4d7206e0581da501" - integrity sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-visit "^4.0.0" - -remark-lint-no-shortcut-reference-link@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz#b29bc4bfdb02b30a596b5fed235c99e470805130" - integrity sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-visit "^4.0.0" - -remark-lint-no-undefined-references@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.1.1.tgz#66c8049da8a72c5dc758562b85bb3019bd396fc1" - integrity sha512-J20rKfTGflLiTI3T5JlLZSmINk6aDGmZi1y70lpU69LDfAyHAKgDK6sSW9XDeFmCPPdm8Ybxe5Gf2a70k+GcVQ== - dependencies: - "@types/mdast" "^3.0.0" - micromark-util-normalize-identifier "^1.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - vfile-location "^4.0.0" - -remark-lint-no-unused-definitions@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz#584fcd0b1ad569d3e1933256e85b9fb308e88695" - integrity sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-visit "^4.0.0" - -remark-lint-ordered-list-marker-style@^3.0.0, remark-lint-ordered-list-marker-style@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz#5431100f048ef44daa90a32251e8056f2de58449" - integrity sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-ordered-list-marker-value@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.1.1.tgz#fed1bafdaa8ada89d037e411e35d4c2b3f7cdda9" - integrity sha512-+bQZbo+v/A8CuLrO71gobJuKR4/sfnPgWyEggSa+zq+LXPK1HiMDjap0Wr07uYgcUXsXIPh+HD/5J5by6JL+vg== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-rule-style@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz#163b4f394422496c065c95227970657a57c786cf" - integrity sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-strong-marker@^3.0.0, remark-lint-strong-marker@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz#4f77ba095cacbd8a8bcd7dd834dd792b50b1f3cb" - integrity sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-table-cell-padding@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz#a7087f4513523ca0473986a7a9348847d52e6dad" - integrity sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint-unordered-list-marker-style@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz#ad9a2aaa705bf3c1ec147f493c7b453ea612238f" - integrity sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA== - dependencies: - "@types/mdast" "^3.0.0" - unified "^10.0.0" - unified-lint-rule "^2.0.0" - unist-util-generated "^2.0.0" - unist-util-position "^4.0.0" - unist-util-visit "^4.0.0" - -remark-lint@^9.0.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-9.1.1.tgz#58c27adc4edeca93b7ce81e2861f05cbcecef72c" - integrity sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw== - dependencies: - "@types/mdast" "^3.0.0" - remark-message-control "^7.0.0" - unified "^10.1.0" - -remark-message-control@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-7.1.1.tgz#71e9b757b835fad2ac14fafa8b432f51b9b9bf52" - integrity sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-comment-marker "^2.0.0" - unified "^10.0.0" - unified-message-control "^4.0.0" - vfile "^5.0.0" - -remark-parse@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" - integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-from-markdown "^1.0.0" - unified "^10.0.0" - -remark-preset-lint-consistent@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/remark-preset-lint-consistent/-/remark-preset-lint-consistent-5.1.1.tgz#c870a2379e109cb6d7a10cd2d3b91f34e3f89e71" - integrity sha512-DZQfomiVi/1x7NRByWrOiIC+olEGa1PpyykKrowvYp5qr/Seq60FqU7OjBJxtcOLzgnQcu9Y2JXdHxFi4AAPXQ== - dependencies: - "@types/mdast" "^3.0.0" - remark-lint "^9.0.0" - remark-lint-blockquote-indentation "^3.0.0" - remark-lint-checkbox-character-style "^4.0.0" - remark-lint-code-block-style "^3.0.0" - remark-lint-emphasis-marker "^3.0.0" - remark-lint-fenced-code-marker "^3.0.0" - remark-lint-heading-style "^3.0.0" - remark-lint-link-title-style "^3.0.0" - remark-lint-list-item-content-indent "^3.0.0" - remark-lint-ordered-list-marker-style "^3.0.0" - remark-lint-rule-style "^3.0.0" - remark-lint-strong-marker "^3.0.0" - remark-lint-table-cell-padding "^4.0.0" - unified "^10.0.0" - -remark-preset-lint-recommended@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz#268eeaab887cef79e6b22fde046e65cf11abcf67" - integrity sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg== - dependencies: - "@types/mdast" "^3.0.0" - remark-lint "^9.0.0" - remark-lint-final-newline "^2.0.0" - remark-lint-hard-break-spaces "^3.0.0" - remark-lint-list-item-bullet-indent "^4.0.0" - remark-lint-list-item-indent "^3.0.0" - remark-lint-no-blockquote-without-marker "^5.0.0" - remark-lint-no-duplicate-definitions "^3.0.0" - remark-lint-no-heading-content-indent "^4.0.0" - remark-lint-no-inline-padding "^4.0.0" - remark-lint-no-literal-urls "^3.0.0" - remark-lint-no-shortcut-reference-image "^3.0.0" - remark-lint-no-shortcut-reference-link "^3.0.0" - remark-lint-no-undefined-references "^4.0.0" - remark-lint-no-unused-definitions "^3.0.0" - remark-lint-ordered-list-marker-style "^3.0.0" - unified "^10.0.0" - -remark-stringify@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7" - integrity sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.0.0" - unified "^10.0.0" - -remark@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f" - integrity sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA== - dependencies: - "@types/mdast" "^3.0.0" - remark-parse "^10.0.0" - remark-stringify "^10.0.0" - unified "^10.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.10.0: - version "1.21.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.1.tgz#1a88c73f5ca8ab0aabc8b888c4170de26c92c4cc" - integrity sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ== - dependencies: - is-core-module "^2.8.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -sade@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.x, semver@^7.0.0, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: +ts-morph@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-18.0.0.tgz#b9e7a898ea115064585a8a775d86da6edc9c5b4e" + integrity sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA== + dependencies: + "@ts-morph/common" "~0.19.0" + code-block-writer "^12.0.0" + +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +typescript@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.2.tgz#891e1a90c5189d8506af64b9ef929fca99ba1ee5" + integrity sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw== + +v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3" - integrity sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^9.0.0: - version "9.2.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.1.tgz#599dc9d45acf74c6176e0d880bab1d7d718fe891" - integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ== - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -tiny-glob@^0.2.9: - version "0.2.9" - resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" - integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== - dependencies: - globalyzer "0.1.0" - globrex "^0.1.2" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-vfile@^7.0.0: - version "7.2.3" - resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-7.2.3.tgz#4e54ad10878901703f1a956a33ba4f131c31eef7" - integrity sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw== - dependencies: - is-buffer "^2.0.0" - vfile "^5.1.0" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -trough@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.0.2.tgz#94a3aa9d5ce379fc561f6244905b3f36b7458d96" - integrity sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w== - -ts-jest@^27.1.2: - version "27.1.2" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.2.tgz#5991d6eb3fd8e1a8d4b8f6de3ec0a3cc567f3151" - integrity sha512-eSOiJOWq6Hhs6Khzk5wKC5sgWIXgXqOCiIl1+3lfnearu58Hj4QpE5tUhQcA3xtZrELbcvAGCsd6HB8OsaVaTA== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" - -ts-morph@13.0.3: - version "13.0.3" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-13.0.3.tgz#c0c51d1273ae2edb46d76f65161eb9d763444c1d" - integrity sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw== - dependencies: - "@ts-morph/common" "~0.12.3" - code-block-writer "^11.0.0" - -tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - -tslib@2.3.1, tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unified-args@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-9.0.2.tgz#0c14f555e73ee29c23f9a567942e29069f56e5a2" - integrity sha512-qSqryjoqfJSII4E4Z2Jx7MhXX2MuUIn6DsrlmL8UnWFdGtrWvEtvm7Rx5fKT5TPUz7q/Fb4oxwIHLCttvAuRLQ== - dependencies: - "@types/text-table" "^0.2.0" - camelcase "^6.0.0" - chalk "^4.0.0" - chokidar "^3.0.0" - fault "^2.0.0" - json5 "^2.0.0" - minimist "^1.0.0" - text-table "^0.2.0" - unified-engine "^9.0.0" - -unified-engine@^9.0.0: - version "9.0.5" - resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-9.0.5.tgz#7e417f2560942793ce41753ad53ee7428aaea40c" - integrity sha512-frQ6lUNlkTwVC0JELJqSSITpE7MLrLJqAWmDrUFj5Do6A4/3n6eX5Jyg8fhe4Dbwwh38spqUJd39FtRFG34QWg== - dependencies: - "@types/concat-stream" "^1.0.0" - "@types/debug" "^4.0.0" - "@types/is-empty" "^1.0.0" - "@types/js-yaml" "^4.0.0" - "@types/node" "^17.0.0" - "@types/unist" "^2.0.0" - concat-stream "^2.0.0" - debug "^4.0.0" - fault "^2.0.0" - glob "^7.0.0" - ignore "^5.0.0" - is-buffer "^2.0.0" - is-empty "^1.0.0" - is-plain-obj "^4.0.0" - js-yaml "^4.0.0" - load-plugin "^4.0.0" - parse-json "^6.0.0" - to-vfile "^7.0.0" - trough "^2.0.0" - unist-util-inspect "^7.0.0" - vfile-message "^3.0.0" - vfile-reporter "^7.0.0" - vfile-statistics "^2.0.0" - -unified-lint-rule@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz#2363f27064f0b44675d11119bb573a738e346f24" - integrity sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A== - dependencies: - "@types/unist" "^2.0.0" - trough "^2.0.0" - unified "^10.0.0" - vfile "^5.0.0" - -unified-message-control@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-4.0.0.tgz#7cd313df526fc660f218b19a56377bb6957019a8" - integrity sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit "^3.0.0" - vfile "^5.0.0" - vfile-location "^4.0.0" - vfile-message "^3.0.0" - -unified@^10.0.0, unified@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.1.tgz#345e349e3ab353ab612878338eb9d57b4dea1d46" - integrity sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w== - dependencies: - "@types/unist" "^2.0.0" - bail "^2.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^4.0.0" - trough "^2.0.0" - vfile "^5.0.0" - -unist-util-generated@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz#86fafb77eb6ce9bfa6b663c3f5ad4f8e56a60113" - integrity sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw== - -unist-util-inspect@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-7.0.0.tgz#98426f0219e24d011a27e32539be0693d9eb973e" - integrity sha512-2Utgv78I7PUu461Y9cdo+IUiiKSKpDV5CE/XD6vTj849a3xlpDAScvSJ6cQmtFBGgAmCn2wR7jLuXhpg1XLlJw== - dependencies: - "@types/unist" "^2.0.0" - -unist-util-is@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" - integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== - -unist-util-position@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.1.tgz#f8484b2da19a897a0180556d160c28633070dbb9" - integrity sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA== - -unist-util-stringify-position@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" - integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== - dependencies: - "@types/unist" "^2.0.0" - -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit-parents@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" - integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" - -unist-util-visit@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" - integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== - dependencies: - dequal "^2.0.0" - diff "^5.0.0" - kleur "^4.0.3" - sade "^1.7.3" - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -v8-to-istanbul@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" - integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vfile-location@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.0.1.tgz#06f2b9244a3565bef91f099359486a08b10d3a95" - integrity sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw== - dependencies: - "@types/unist" "^2.0.0" - vfile "^5.0.0" - -vfile-message@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.0.tgz#5437035aa43185ff4b9210d32fada6c640e59143" - integrity sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^3.0.0" - -vfile-reporter-json@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vfile-reporter-json/-/vfile-reporter-json-3.1.0.tgz#a5168ab39fc8a1b766556b5a1b4490438ae94528" - integrity sha512-Hm/rXgIGecCyjbXGY1BswIU6U0cy2ebixnags0vC26w2ckM9p8YeSn8jpsLZ3ply8zTZCRD1Er0Uc9hee8eMwg== - dependencies: - vfile "^5.0.0" - vfile-message "^3.0.0" - -vfile-reporter@^7.0.0, vfile-reporter@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-7.0.3.tgz#faa72f6d2d56841b352480c827b53f8417cb1b33" - integrity sha512-q+ruTWxFHbow359TDqoNJn5THdwRDeV+XUOtzdT/OESgaGw05CjL68ImlbzRzqS5xL62Y1IaIWb8x+RbaNjayA== - dependencies: - "@types/supports-color" "^8.0.0" - string-width "^5.0.0" - supports-color "^9.0.0" - unist-util-stringify-position "^3.0.0" - vfile-sort "^3.0.0" - vfile-statistics "^2.0.0" - -vfile-sort@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-3.0.0.tgz#ee13d3eaac0446200a2047a3b45d78fad6b106e6" - integrity sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg== - dependencies: - vfile-message "^3.0.0" - -vfile-statistics@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-2.0.0.tgz#f04ee3e3c666809a3c10c06021becd41ea9c8037" - integrity sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA== - dependencies: - vfile-message "^3.0.0" - -vfile@^5.0.0, vfile@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.0.tgz#4990c78cb3157005590ee8c930b71cd7fa6a006e" - integrity sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^3.0.0" - vfile-message "^3.0.0" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xml@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" - integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@20.x, yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -zwitch@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" - integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==