From 33f53ae6f9ac00bd7ed47eb1f2d7cb2e7654841e Mon Sep 17 00:00:00 2001 From: "daniel.bannert" Date: Fri, 27 May 2022 01:26:12 +0200 Subject: [PATCH] perf: upgraded the lib to the current node standard fix: fixed text and added new license for anolilab fix: fixed verify-node-version.cjs script fix: changed build command to generate:types fix: fixed yaml error fix: updated readme fix: updated semantic-release command feat: added husky and lint-staged BREAKING CHANGE: Changed test to use vitest. Added new Github workflows. Fixed and added tests. Added new key to the schema.json. Created typescript type file. --- .editorconfig | 17 +- .eslintignore | 29 + .eslintrc.cjs | 39 + .github/CODEOWNERS | 1 + .github/CODE_OF_CONDUCT.md | 84 + .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE/bug_report.yml | 39 + .github/ISSUE_TEMPLATE/feature_request.md | 24 + .github/semantic.yml | 19 + .github/settings.yml | 132 + .github/workflows/eslint.yml | 61 + .github/workflows/greetings.yml | 16 + .github/workflows/latest.yml | 29 - .github/workflows/main.yml | 49 - .github/workflows/markdown-lint.yml | 54 + .github/workflows/release.yml | 41 - .github/workflows/semantic-release.yml | 110 + .github/workflows/stale-issues.yml | 76 + .github/workflows/test.yml | 70 + .github/workflows/yaml-lint.yml | 36 + .gitignore | 2 + .husky/commit-msg | 15 + .husky/common.sh | 22 + .husky/pre-commit | 17 + .husky/pre-push | 13 + .husky/prepare-commit-msg | 10 + .lintstagedrc | 13 + .nvmrc | 1 + .prettierignore | 9 + .prettierrc.cjs | 22 + .releaserc.json | 3 + .textlintignore | 0 .textlintrc | 145 + .yamllint.yaml | 73 + LICENSE.md | 33 + README.md | 98 +- __tests__/awards.spec.js | 48 + __tests__/basics.spec.js | 152 + __tests__/certificates.spec.js | 44 + __tests__/dates.spec.js | 32 + __tests__/education.spec.js | 84 + __tests__/fixtures/awards.json | 64 + __tests__/fixtures/basics.json | 222 + __tests__/fixtures/certificates.json | 64 + __tests__/fixtures/dates.json | 6 + __tests__/fixtures/education.json | 127 + __tests__/fixtures/interests.json | 50 + __tests__/fixtures/languages.json | 36 + __tests__/fixtures/meta.json | 38 + __tests__/fixtures/projects.json | 176 + __tests__/fixtures/publications.json | 92 + __tests__/fixtures/references.json | 36 + __tests__/fixtures/schema.json | 8 + __tests__/fixtures/skills.json | 64 + __tests__/fixtures/volunteer.json | 134 + __tests__/fixtures/work.json | 176 + __tests__/interests.spec.js | 40 + __tests__/languages.spec.js | 32 + __tests__/meta.spec.js | 40 + __tests__/projects.spec.js | 112 + __tests__/publications.spec.js | 64 + __tests__/references.spec.js | 32 + __tests__/schema.spec.js | 16 + __tests__/skills.spec.js | 48 + __tests__/volunteer.spec.js | 56 + __tests__/work.spec.js | 112 + commitlint.config.cjs | 4 + package-lock.json | 930 -- package.json | 116 +- pnpm-lock.yaml | 9531 +++++++++++++++++++++ schema.json | 1069 ++- scripts/build.js | 5 + test/__test__/awards.json | 79 - test/__test__/basics.json | 222 - test/__test__/dates.json | 6 - test/__test__/education.json | 152 - test/__test__/interests.json | 54 - test/__test__/languages.json | 36 - test/__test__/meta.json | 38 - test/__test__/projects.json | 216 - test/__test__/publications.json | 92 - test/__test__/references.json | 36 - test/__test__/schema.json | 9 - test/__test__/skills.json | 68 - test/__test__/volunteer.json | 152 - test/__test__/work.json | 180 - test/awards.spec.js | 99 - test/basics.spec.js | 291 - test/dates.spec.js | 54 - test/education.spec.js | 179 - test/interests.spec.js | 67 - test/languages.spec.js | 51 - test/meta.spec.js | 67 - test/projects.spec.js | 243 - test/publications.spec.js | 115 - test/references.spec.js | 51 - test/skills.spec.js | 83 - test/volunteer.spec.js | 115 - test/work.spec.js | 211 - tsconfig.json | 47 + types.d.ts | 405 + utils/validate.js | 12 + validator.js | 20 - verify-node-version.cjs | 17 + vitest.config.ts | 5 + 105 files changed, 14142 insertions(+), 4593 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 .github/CODEOWNERS create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/semantic.yml create mode 100644 .github/settings.yml create mode 100644 .github/workflows/eslint.yml create mode 100644 .github/workflows/greetings.yml delete mode 100644 .github/workflows/latest.yml delete mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/markdown-lint.yml delete mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/semantic-release.yml create mode 100644 .github/workflows/stale-issues.yml create mode 100644 .github/workflows/test.yml create mode 100644 .github/workflows/yaml-lint.yml create mode 100755 .husky/commit-msg create mode 100755 .husky/common.sh create mode 100755 .husky/pre-commit create mode 100755 .husky/pre-push create mode 100755 .husky/prepare-commit-msg create mode 100644 .lintstagedrc create mode 100644 .nvmrc create mode 100644 .prettierignore create mode 100644 .prettierrc.cjs create mode 100644 .releaserc.json create mode 100644 .textlintignore create mode 100644 .textlintrc create mode 100644 .yamllint.yaml create mode 100644 __tests__/awards.spec.js create mode 100644 __tests__/basics.spec.js create mode 100644 __tests__/certificates.spec.js create mode 100644 __tests__/dates.spec.js create mode 100644 __tests__/education.spec.js create mode 100644 __tests__/fixtures/awards.json create mode 100644 __tests__/fixtures/basics.json create mode 100644 __tests__/fixtures/certificates.json create mode 100644 __tests__/fixtures/dates.json create mode 100644 __tests__/fixtures/education.json create mode 100644 __tests__/fixtures/interests.json create mode 100644 __tests__/fixtures/languages.json create mode 100644 __tests__/fixtures/meta.json create mode 100644 __tests__/fixtures/projects.json create mode 100644 __tests__/fixtures/publications.json create mode 100644 __tests__/fixtures/references.json create mode 100644 __tests__/fixtures/schema.json create mode 100644 __tests__/fixtures/skills.json create mode 100644 __tests__/fixtures/volunteer.json create mode 100644 __tests__/fixtures/work.json create mode 100644 __tests__/interests.spec.js create mode 100644 __tests__/languages.spec.js create mode 100644 __tests__/meta.spec.js create mode 100644 __tests__/projects.spec.js create mode 100644 __tests__/publications.spec.js create mode 100644 __tests__/references.spec.js create mode 100644 __tests__/schema.spec.js create mode 100644 __tests__/skills.spec.js create mode 100644 __tests__/volunteer.spec.js create mode 100644 __tests__/work.spec.js create mode 100644 commitlint.config.cjs delete mode 100644 package-lock.json create mode 100644 pnpm-lock.yaml create mode 100644 scripts/build.js delete mode 100644 test/__test__/awards.json delete mode 100644 test/__test__/basics.json delete mode 100644 test/__test__/dates.json delete mode 100644 test/__test__/education.json delete mode 100644 test/__test__/interests.json delete mode 100644 test/__test__/languages.json delete mode 100644 test/__test__/meta.json delete mode 100644 test/__test__/projects.json delete mode 100644 test/__test__/publications.json delete mode 100644 test/__test__/references.json delete mode 100644 test/__test__/schema.json delete mode 100644 test/__test__/skills.json delete mode 100644 test/__test__/volunteer.json delete mode 100644 test/__test__/work.json delete mode 100644 test/awards.spec.js delete mode 100644 test/basics.spec.js delete mode 100644 test/dates.spec.js delete mode 100644 test/education.spec.js delete mode 100644 test/interests.spec.js delete mode 100644 test/languages.spec.js delete mode 100644 test/meta.spec.js delete mode 100644 test/projects.spec.js delete mode 100644 test/publications.spec.js delete mode 100644 test/references.spec.js delete mode 100644 test/skills.spec.js delete mode 100644 test/volunteer.spec.js delete mode 100644 test/work.spec.js create mode 100644 tsconfig.json create mode 100644 types.d.ts create mode 100644 utils/validate.js delete mode 100644 validator.js create mode 100644 verify-node-version.cjs create mode 100644 vitest.config.ts diff --git a/.editorconfig b/.editorconfig index 9f8f0698..28544893 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,18 +1,11 @@ +# https://EditorConfig.org + root = true -# Unix-style newlines with a newline ending every file [*] +charset = utf-8 end_of_line = lf +indent_size = 4 +indent_style = space insert_final_newline = true trim_trailing_whitespace = true - -# indentation -indent_style = space -indent_size = 2 - -# Charset -charset = utf-8 - -# Markdown -[*.md] -trim_trailing_whitespace = false \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..db27e5a8 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,29 @@ +!.eslintrc.js +!**/.eslintrc.js +**/lib +lib +**/dist +dist +**/dist-types +dist-types +node_modules +.out +public +coverage + +.cache +**/.next +lerna.json +.vscode +.yarn/** + +**/temp/** + +pnpm-lock.yaml +.pnpm-store/ +support/root/pnpm-lock.yaml + +./__docs__/mui +./.storybook/ + +plopfile.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..45a16923 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,39 @@ +/** @ts-check */ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + root: true, + extends: [ + "@anolilab/eslint-config", + ], + ignorePatterns: ["!**/*"], + env: { + // Your environments (which contains several predefined global variables) + // browser: true, + node: true, + commonjs: true, + es6: true, + // mocha: true, + // jest: true, + // jquery: true + }, + globals: { + // Your global variables (setting to false means it's not allowed to be reassigned) + // + // myGlobal: false + }, + overrides: [ + { + files: ["*.ts", "*.tsx"], + + parserOptions: { + project: "./tsconfig.json", + // eslint-disable-next-line no-undef + tsconfigRootDir: __dirname, + }, + }, + ], + rules: { + "import/no-extraneous-dependencies": "off", + "unicorn/prefer-module": "off" + } +}; diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..5e8758cd --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @prisis diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..a73de8b3 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,84 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or + advances of any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email + address, without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [d.bannert@anolilab.de](mailto:d.bannert@anolilab.de). All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of actions. + +**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, +available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..bcb61cca --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: "prisis" diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..542844de --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,39 @@ +name: "Bug Report" +description: "Something is not working right. Or error messages are unclear." +labels: "Type: Bug" +body: + - type: "markdown" + attributes: + value: "Thanks for taking the time to file a bug report! Please fill out this form as completely as possible." + - type: "textarea" + attributes: + label: "What is the problem?" + validations: + required: true + - type: "textarea" + attributes: + label: "Paste all your error logs here:" + value: | + ``` + PASTE_HERE (leave the ``` marks) + ``` + validations: + required: true + - type: "textarea" + attributes: + label: "Paste all relevant code snippets here:" + value: | + ``` + PASTE_HERE (leave the ``` marks) + ``` + validations: + required: true + - type: "textarea" + attributes: + label: "What are detailed steps to reproduce this?" + value: "1." + validations: + required: true + - type: "textarea" + attributes: + label: "Please include below any other applicable logs and screenshots that show your problem:" diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..a5c8dd24 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,24 @@ +--- +name: Feature/change request +about: Something new or better! +title: "" +labels: "" +assignees: "" +--- + + +### What do you want and why? + + + +The more information the better! + +### Possible implementation(s) + + + +How we do this? + +### Additional context + +Add any other context or screenshots about the feature request here. diff --git a/.github/semantic.yml b/.github/semantic.yml new file mode 100644 index 00000000..5aeb1869 --- /dev/null +++ b/.github/semantic.yml @@ -0,0 +1,19 @@ +# In order to let this correctly work, install https://github.com/apps/semantic-pull-requests + +titleOnly: true +types: + - "feat" + - "fix" + - "docs" + - "dx" + - "refactor" + - "perf" + - "test" + - "workflow" + - "build" + - "ci" + - "chore" + - "types" + - "wip" + - "release" + - "deps" diff --git a/.github/settings.yml b/.github/settings.yml new file mode 100644 index 00000000..4d65aa57 --- /dev/null +++ b/.github/settings.yml @@ -0,0 +1,132 @@ +# https://github.com/probot/settings + +branches: + - name: "main" + + # https://docs.github.com/en/rest/reference/repos#delete-branch-protection + # https://docs.github.com/en/rest/reference/repos#update-branch-protection + + protection: + enforce_admins: false + allow_force_pushes: false + allow_deletions: false + + required_pull_request_reviews: + dismiss_stale_reviews: true + require_code_owner_reviews: true + required_approving_review_count: 1 + + required_linear_history: true + + required_status_checks: + contexts: [] + + strict: false + + restrictions: + # https://developer.github.com/v3/repos/branches/#parameters-1 + + # Note: User, app, and team restrictions are only available for organization-owned repositories. + # Set to null to disable when using this configuration for a repository on a personal account. + + apps: + - "semantic-release-bot" + - "renovate" + teams: [] +# users: [] + +# https://docs.github.com/en/rest/reference/issues#create-a-label +# https://docs.github.com/en/rest/reference/issues#update-a-label + +labels: + - name: "Added" + description: "Changelog Added" + color: "90db3f" + + - name: "Changed" + description: "Changelog Changed" + color: "fbca04" + + - name: "Dependency update" + description: "Pull requests that update a dependency file" + color: "e1f788" + + - name: "Deprecated" + description: "Changelog Deprecated" + color: "1d76db" + + - name: "Duplicate" + color: "000000" + + - name: "Enhancement" + color: "d7e102" + + - name: "Stale" + color: "000000" + + - name: "Fixed" + description: "Changelog Fixed" + color: "9ef42e" + + - name: "Removed" + description: "Changelog Removed" + color: "e99695" + + - name: "Security" + description: "Changelog Security" + color: "ed3e3b" + + - name: "Status: Good first issue" + color: "d7e102" + + - name: "Status: Help wanted" + color: "85d84e" + + - name: "Status: Needs Work" + color: "fad8c7" + + - name: "Status: Waiting for feedback" + color: "fef2c0" + + - name: "Type: BC Break" + color: "b60205" + + - name: "Type: Bug" + color: "b60205" + + - name: "Type: Critical" + color: "ff8c00" + + - name: "Type: RFC" + color: "fbca04" + + - name: "Type: Unconfirmed" + color: "444444" + + - name: "Type: Wontfix" + color: "000000" + + - name: "semantic-release" + color: "ff0000" + +# https://docs.github.com/en/rest/reference/repos#update-a-repository + +repository: + allow_merge_commit: true + allow_rebase_merge: false + allow_squash_merge: false + archived: false + default_branch: "main" + delete_branch_on_merge: true + description: "JSON-Schema is used here to define and validate our proposed resume json" + has_downloads: true + has_issues: true + has_pages: false + has_projects: false + has_wiki: false + name: "resume-schema" + private: false + + # https://developer.github.com/v3/repos/branches/#remove-branch-protection + + topics: "anolilab, resume, schema, resume-schema" diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml new file mode 100644 index 00000000..430f46f4 --- /dev/null +++ b/.github/workflows/eslint.yml @@ -0,0 +1,61 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "ESLint" + +on: # yamllint disable-line rule:truthy + push: + paths: + - "**.js" + - "**.jsx" + - "**.ts" + - "**.tsx" + - "**.json" + pull_request: + paths: + - "**.js" + - "**.jsx" + - "**.ts" + - "**.tsx" + - "**.json" + +# Enable this to use the github packages +# yamllint disable-line rule:comments +#env: +# package: "@${{ github.repository }}" +# registry_url: "https://npm.pkg.github.com" +# scope: "${{ github.repository_owner }}" + +jobs: + eslint: + name: "ESLint" + + runs-on: "ubuntu-latest" + + steps: + - name: "Git checkout" + uses: "actions/checkout@v2" + with: + fetch-depth: 0 + persist-credentials: false + env: + GIT_COMMITTER_NAME: "GitHub Actions Shell" + GIT_AUTHOR_NAME: "GitHub Actions Shell" + EMAIL: "github-actions[bot]@users.noreply.github.com" + + - uses: "pnpm/action-setup@v2.0.1" + with: + version: 6 + + - name: "Set node version to 16.x" + uses: "actions/setup-node@v2" + with: + node-version: "16.x" + # Enable this to use the github packages + # registry-url: "${{ env.registry_url }}" + # Defaults to the user or organization that owns the workflow file + # scope: "@${{ env.scope }}" + + - name: "Install packages" + run: "pnpm install --frozen-lockfile" + + - run: "yarn run lint:eslint" diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml new file mode 100644 index 00000000..c14359cd --- /dev/null +++ b/.github/workflows/greetings.yml @@ -0,0 +1,16 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Greetings" + +on: ["pull_request", "issues"] # yamllint disable-line rule:truthy + +jobs: + greeting: + runs-on: "ubuntu-latest" + + steps: + - uses: "actions/first-interaction@v1" + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + issue-message: "Awesome! Thank you for taking the time to create your first issue! Please review the [guidelines](https://narrowspark.com/docs/current/contributing)" + pr-message: "Great! Thank you for taking the time to create your first pull request! Please review the [guidelines](https://narrowspark.com/docs/current/contributing)" diff --git a/.github/workflows/latest.yml b/.github/workflows/latest.yml deleted file mode 100644 index 56168fa7..00000000 --- a/.github/workflows/latest.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Latest - -on: [push, pull_request] - -jobs: - verify: - name: Verify - runs-on: ubuntu-latest - strategy: - matrix: - node: [10, 12] - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Setup - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node }} - - name: Cache - uses: actions/cache@v1 - with: - path: node_modules - key: ${{ runner.OS }}-npm-cache-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.OS }}-npm-cache- - - name: Install - run: npm ci - - name: Test - run: npm t diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 9a68d7fe..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Main -on: push - -jobs: - test: - runs-on: ubuntu-latest - strategy: - matrix: - node: [10, 12, 14] - name: Test on Node.js ${{ matrix.node }} - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node }} - - - name: Install - run: npm ci - - - name: Test - run: npm test - - release: - needs: test - runs-on: ubuntu-latest - name: Release - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v1 - with: - node-version: 12 - - - name: Install - run: npm ci - - - name: Run semantic-release - uses: cycjimmy/semantic-release-action@v2 - with: - extra_plugins: | - conventional-changelog-conventionalcommits - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml new file mode 100644 index 00000000..6e8f93af --- /dev/null +++ b/.github/workflows/markdown-lint.yml @@ -0,0 +1,54 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Markdown Lint" + +on: # yamllint disable-line rule:truthy + push: + paths: + - "**.md" + pull_request: + paths: + - "**.md" + +# Enable this to use the github packages +# yamllint disable-line rule:comments +#env: +# package: "@${{ github.repository }}" +# registry_url: "https://npm.pkg.github.com" +# scope: "${{ github.repository_owner }}" + +jobs: + text-lint: + name: "Markdown lint" + + runs-on: "ubuntu-latest" + + steps: + - name: "Git checkout" + uses: "actions/checkout@v2" + with: + fetch-depth: 0 + persist-credentials: false + env: + GIT_COMMITTER_NAME: "GitHub Actions Shell" + GIT_AUTHOR_NAME: "GitHub Actions Shell" + EMAIL: "github-actions[bot]@users.noreply.github.com" + + - uses: "pnpm/action-setup@v2.0.1" + with: + version: 6 + + - name: "Set node version to 16.x" + uses: "actions/setup-node@v2" + with: + node-version: "16.x" + # Enable this to use the github packages + # registry-url: "${{ env.registry_url }}" + # Defaults to the user or organization that owns the workflow file + # scope: "@${{ env.scope }}" + + - name: "Install packages" + run: "pnpm install --frozen-lockfile" + + - name: "lint" + run: "yarn lint:text" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 9d6f5b03..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Release - -on: - push: - tags: - - 'v*' - -jobs: - check: - runs-on: ubuntu-latest - strategy: - matrix: - node: [10, 12] - steps: - - name: Checkout - uses: actions/checkout@master - - name: Setup - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node }} - - name: Cache - uses: actions/cache@v1 - with: - path: node_modules - key: ${{ runner.OS }}-npm-cache-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.OS }}-npm-cache- - - name: Verify - run: | - npm ci - npm t - npm: - runs-on: ubuntu-latest - needs: check - steps: - - name: Checkout - uses: actions/checkout@master - - name: Publish - run: | - echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" > ~/.npmrc - npm publish --access public diff --git a/.github/workflows/semantic-release.yml b/.github/workflows/semantic-release.yml new file mode 100644 index 00000000..2a473d8f --- /dev/null +++ b/.github/workflows/semantic-release.yml @@ -0,0 +1,110 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Semantic Release" + +on: # yamllint disable-line rule:truthy + push: + branches: + - "([0-9])?(.{+([0-9]),x}).x" + - "main" + - "next" + - "next-major" + - "alpha" + - "beta" + +# Enable this to use the github packages +# yamllint disable-line rule:comments +#env: +# package: "@${{ github.repository }}" +# registry_url: "https://npm.pkg.github.com" +# scope: "${{ github.repository_owner }}" + +jobs: + semantic-release: + name: "Semantic Release" + + runs-on: "ubuntu-latest" + + steps: + - name: "Git checkout" + uses: "actions/checkout@v2" + with: + fetch-depth: 0 + persist-credentials: false + env: + GIT_COMMITTER_NAME: "GitHub Actions Shell" + GIT_AUTHOR_NAME: "GitHub Actions Shell" + EMAIL: "github-actions[bot]@users.noreply.github.com" + + - uses: "pnpm/action-setup@v2.0.1" + with: + version: 6 + + - name: "Set node version to ${{ matrix.node_version }}" + uses: "actions/setup-node@v2" + with: + node-version: "${{ matrix.node_version }}" + # Enable this to use the github packages + # registry-url: "${{ env.registry_url }}" + # Defaults to the user or organization that owns the workflow file + # scope: "@${{ env.scope }}" + + - name: "Install packages" + run: "pnpm install --frozen-lockfile" + + - name: "Build packages" + run: "pnpm run generate:types" + + - name: "Semantic Release" + env: + GITHUB_TOKEN: "${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}" + NPM_TOKEN: "${{ secrets.NPM_AUTH_TOKEN }}" + GIT_AUTHOR_NAME: "github-actions-shell" + GIT_AUTHOR_EMAIL: "github-actions[bot]@users.noreply.github.com" + GIT_COMMITTER_NAME: "github-actions-shell" + GIT_COMMITTER_EMAIL: "github-actions[bot]@users.noreply.github.com" + run: "pnpm semantic-release" + + pnpm-lock-update: + name: "pnpm-lock.yaml update" + + runs-on: "ubuntu-latest" + + needs: ["semantic-release"] + + steps: + - name: "Git checkout" + uses: "actions/checkout@v2" + with: + fetch-depth: 2 + token: "${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }}" + ref: "${{ github.ref }}" + env: + GIT_COMMITTER_NAME: "GitHub Actions Shell" + GIT_AUTHOR_NAME: "GitHub Actions Shell" + EMAIL: "github-actions[bot]@users.noreply.github.com" + + - uses: "pnpm/action-setup@v2.0.1" + with: + version: 6 + + - name: "Use Node.js 16.x" + uses: "actions/setup-node@v2" + with: + node-version: "16.x" + registry-url: "${{ env.registry_url }}" + # Defaults to the user or organization that owns the workflow file + scope: "@${{ env.scope }}" + always-auth: true + + - name: "Update pnpm lock" + run: "pnpm install --no-frozen-lockfile" + + - name: "Commit modified files" + uses: "stefanzweifel/git-auto-commit-action@v4.11.0" + with: + commit_message: "chore: updated pnpm-lock.yaml" + commit_author: "prisis " + commit_user_email: "d.bannert@anolilab.de" + commit_user_name: "prisis" + branch: "${{ github.head_ref }}" diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml new file mode 100644 index 00000000..e95b7684 --- /dev/null +++ b/.github/workflows/stale-issues.yml @@ -0,0 +1,76 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Close stale issues" + +on: # yamllint disable-line rule:truthy + schedule: + - cron: "0 0 * * *" + +jobs: + default: + timeout-minutes: 1 + + runs-on: "ubuntu-latest" + + steps: + - uses: "actions/stale@v3" + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + stale-issue-message: | + This issue has been automatically marked as stale because it has been open for 21 days with no activity. It will be closed in 7 days if no further activity (Remove label or comment) occurs. + If we missed this issue please reply to keep it active. + Thanks for being a part of this project. 🙏 + stale-issue-label: "Stale" + remove-stale-when-updated: true + exempt-issue-labels: "Added,Enhancement,Changed,Deprecated,Fixed,Removed,Security,Status: Help wanted,Status: Needs Work,Status: Waiting for feedback,Type: Unconfirmed,Type: Bug" + days-before-stale: 21 + days-before-close: 7 + + invalid: + timeout-minutes: 1 + + runs-on: "ubuntu-latest" + + steps: + - uses: "actions/stale@v3" + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + stale-issue-message: | + This issue has been automatically marked as stale because it has been labeled as invalid. + Thanks for being a part of this project. 🙏 + stale-issue-label: "Stale" + only-labels: "Type: Unconfirmed" + days-before-stale: 1 + days-before-close: 2 + + duplicate: + timeout-minutes: 1 + runs-on: "ubuntu-latest" + steps: + - uses: "actions/stale@v3" + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + stale-issue-message: | + This issue has been automatically marked as stale because it has been labeled as duplicate. + Thanks for being a part of this project. 🙏 + stale-issue-label: "Stale" + only-labels: "Duplicate" + days-before-stale: 1 + days-before-close: 2 + + wontfix: + timeout-minutes: 1 + + runs-on: "ubuntu-latest" + + steps: + - uses: "actions/stale@v3" + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + stale-issue-message: | + This issue has been automatically marked as stale because it has been labeled as wontfix. + Thanks for being a part of this project. 🙏 + stale-issue-label: "Stale" + only-labels: "Type: Wontfix" + days-before-stale: 1 + days-before-close: 2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..50524055 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,70 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Test Package" + +on: # yamllint disable-line rule:truthy + push: + paths: + - "**.json" + - "**.js" + pull_request: + paths: + - "**.json" + - "**.js" + +# Enable this to use the github packages +# yamllint disable-line rule:comments +#env: +# package: "@${{ github.repository }}" +# registry_url: "https://npm.pkg.github.com" +# scope: "${{ github.repository_owner }}" + +jobs: + test: + name: "tests" + + strategy: + matrix: + os: ["ubuntu-latest"] + node_version: ["16.x", "17.x"] + include: + - os: "macos-latest" + node_version: "16" + - os: "windows-latest" + node_version: "16" + fail-fast: false + + runs-on: "${{ matrix.os }}" + + steps: + - name: "Git checkout" + uses: "actions/checkout@v2" + with: + fetch-depth: 0 + persist-credentials: false + env: + GIT_COMMITTER_NAME: "GitHub Actions Shell" + GIT_AUTHOR_NAME: "GitHub Actions Shell" + EMAIL: "github-actions[bot]@users.noreply.github.com" + + - uses: "pnpm/action-setup@v2.0.1" + with: + version: 6 + + - name: "Set node version to ${{ matrix.node_version }}" + uses: "actions/setup-node@v2" + with: + node-version: "${{ matrix.node_version }}" + # Enable this to use the github packages + # registry-url: "${{ env.registry_url }}" + # Defaults to the user or organization that owns the workflow file + # scope: "@${{ env.scope }}" + + - name: "Install packages" + run: "pnpm install --frozen-lockfile" + + - name: "Build packages" + run: "pnpm run generate:types" + + - name: "test" + run: "pnpm run test" diff --git a/.github/workflows/yaml-lint.yml b/.github/workflows/yaml-lint.yml new file mode 100644 index 00000000..ad75cda6 --- /dev/null +++ b/.github/workflows/yaml-lint.yml @@ -0,0 +1,36 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Yaml Lint" + +on: # yamllint disable-line rule:truthy + push: + paths: + - "**.yml" + - "**.yaml" + pull_request: + paths: + - "**.yml" + - "**.yaml" + +jobs: + yaml-lint: + name: "Yaml lint" + + runs-on: "ubuntu-latest" + + steps: + - name: "Git checkout" + uses: "actions/checkout@v2" + with: + fetch-depth: 2 + env: + GIT_COMMITTER_NAME: "GitHub Actions Shell" + GIT_AUTHOR_NAME: "GitHub Actions Shell" + EMAIL: "github-actions[bot]@users.noreply.github.com" + + - name: "Lint YAML files" + uses: "ibiqlik/action-yamllint@v3" + with: + config_file: ".yamllint.yaml" + file_or_dir: "." + strict: true diff --git a/.gitignore b/.gitignore index c2658d7d..433a6279 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ node_modules/ +.eslintcache +coverage/ diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 00000000..1095e141 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,15 @@ +#!/bin/sh + +. "$(dirname "$0")/_/husky.sh" +. "$(dirname "$0")/common.sh" + +# The hook should exit with non-zero status after issuing +# an appropriate message if it wants to stop the commit. + +echo -------------------------------------------- +echo Starting Git hook: commit-msg + +npx --no -- commitlint --config ./commitlint.config.cjs --edit $1 || exit $? + +echo Finished Git hook: commit-msg +echo -------------------------------------------- diff --git a/.husky/common.sh b/.husky/common.sh new file mode 100755 index 00000000..cb9671c9 --- /dev/null +++ b/.husky/common.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +command_exists () { + command -v "$1" >/dev/null 2>&1 +} + +IS_WINDOWS="false" + +if [ "$OSTYPE" = "cygwin" ]; then + IS_WINDOWS="true" +elif [ "$OSTYPE" = "msys" ]; then + IS_WINDOWS="true" +elif [ "$OSTYPE" = "win32" ]; then + IS_WINDOWS="true" +fi + +# Workaround for Windows 10, Git Bash and Yarn +if [ "$IS_WINDOWS" = "true" ]; then + if command_exists winpty && test -t 1; then + exec < /dev/tty + fi +fi diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..ff6b312c --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,17 @@ +#!/bin/sh + +. "$(dirname "$0")/_/husky.sh" +. "$(dirname "$0")/common.sh" + +# The hook should exit with non-zero status after issuing +# an appropriate message if it wants to stop the commit. + +echo -------------------------------------------- +echo Starting Git hook: pre-commit + +npx --no -- lint-staged + +npx --no -- sort-package-json + +echo Finished Git hook: pre-commit +echo -------------------------------------------- diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 00000000..6eb16530 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,13 @@ +#!/bin/sh + +. "$(dirname "$0")/_/husky.sh" +. "$(dirname "$0")/common.sh" + +# The hook should exit with non-zero status after issuing +# an appropriate message if it wants to stop the push. + +echo -------------------------------------------- +echo Starting Git hook: pre-push + +echo Finished Git hook: pre-push +echo -------------------------------------------- diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg new file mode 100755 index 00000000..10761bed --- /dev/null +++ b/.husky/prepare-commit-msg @@ -0,0 +1,10 @@ +#!/bin/sh + +. "$(dirname "$0")/_/husky.sh" +. "$(dirname "$0")/common.sh" + +echo -------------------------------------------- +echo Starting Git hook: prepare-commit-msg + +echo Finished Git hook: prepare-commit-msg +echo -------------------------------------------- diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 00000000..21b92473 --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,13 @@ +{ + "**/*.{js,jsx,tsx,ts}": [ + "prettier --config=.prettierrc.cjs --write", + "cross-env NO_LOGS=true eslint -c ./.eslintrc.cjs --fix" + ], + "*.{json,yml,yaml,less,css,scss,sass}": [ + "prettier --config=.prettierrc.cjs --write" + ], + "*.{md,mdx}": [ + "prettier --config=.prettierrc.cjs --write", + "cross-env NO_LOGS=true eslint -c ./.eslintrc.cjs --fix" + ] +} diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..58a4133d --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +16.13.0 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..93691af8 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +.gitkeep +.env* +*.ico +*.lock +db/migrations +dist +CHANGELOG.md + +__docs__/mui diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 00000000..c7be3355 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,22 @@ +module.exports = { + printWidth: 160, + tabWidth: 4, + useTabs: false, + semi: true, + singleQuote: false, + quoteProps: "as-needed", + jsxSingleQuote: false, + trailingComma: "all", + bracketSpacing: true, + jsxBracketSameLine: false, + arrowParens: "always", + rangeStart: 0, + rangeEnd: Infinity, + requirePragma: false, + insertPragma: false, + proseWrap: "preserve", + htmlWhitespaceSensitivity: "css", + vueIndentScriptAndStyle: false, + endOfLine: "lf", + embeddedLanguageFormatting: "auto", +}; diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 00000000..9e557116 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,3 @@ +{ + "extends": "@anolilab/semantic-release-preset" +} diff --git a/.textlintignore b/.textlintignore new file mode 100644 index 00000000..e69de29b diff --git a/.textlintrc b/.textlintrc new file mode 100644 index 00000000..64241ee2 --- /dev/null +++ b/.textlintrc @@ -0,0 +1,145 @@ +{ + "filters": { + "comments": true + }, + "rules": { + "en-capitalization": true, + "footnote-order": true, + "no-todo": true, + "no-dead-link": { + "ignore": [ + "bc_data_*", + ] + }, + "no-empty-section": true, + "terminology": true, + "apostrophe": true, + "diacritics": true, + "@textlint-rule/no-invalid-control-character": true, + "@textlint-rule/no-unmatched-pair": true, + "abbr-within-parentheses": true, + "alex": { + "allow": [ + "period", + "european", + "failure", + "fore", + "attack", + "execution", + "executed", + "remain", + "execute" + ] + }, + "@textlint-rule/preset-google": true, + "write-good": { + "passive": false, + "eprime": false, + }, + "common-misspellings": true, + "terminology": { + "defaultTerms": false, + "terms": [ + // Abbreviations + "API", + ["API['’]?s", "APIs"], + "Ajax", + "CLI", + "CSS", + "CORS", + ["^E2E", "E2E"], + "gif", + ["^HTML", "HTML"], + ["^URL(s?)", "URL$1"], + ["^HTTP", "HTTP"], + ["^HTTPS", "HTTPS"], + "SSO", + ["^XHR(s?)", "XHR$1"], + ["^XHR['’]?s", "XHRs"], + "Xvfb", + "YAML", + + // Words and phrases + ["\\(s\\)he", "they"], + ["he or she", "they"], + ["he/she", "they"], + ["crazy", "complex"], + ["crazier", "more complex"], + ["craziest", "most complex"], + ["dumb", "unintended"], + ["insane", "outrageous"], + + // Prefer American spelling + ["behaviour", "behavior"], + ["cancelled", "canceled"], + ["cancelling", "canceling"], + ["centre", "center"], + ["colour", "color"], + ["customise", "customize"], + ["customisation", "customization"], + ["favourite", "favorite"], + ["labelled", "labeled"], + ["licence", "license"], + ["organise", "organize"], + + // Common misspellings + ["gaurantee", "guarantee"], + + // Words we would like to not use altogether + ["simply", ""], + + // Single word + ["change[- ]log(s?)", "changelog$1"], + ["code[- ]base(es?)", "codebase$1"], + ["e[- ]mail(s?)", "email$1"], + ["end[- ]point(s?)", "endpoint$1"], + ["file[- ]name(s?)", "filename$1"], + ["can[- ]not", "cannot$1"], + + // Multiple words + ["back-?end(s?)", "back end$1"], + ["front-?end(s?)", "front end$1"], + ["full-?stack(s?)", "full stack$1"], + ["open-?source(ed?)", "open source$1"], + ["web-?page(s?)", "web page$1"], + + // Hyphenated + ["end ?to ?end", "end-to-end"], + ["retryability", "retry-ability"], + ["retriability", "retry-ability"], + + ["some", ""], + ["filetype", "file type"], + ["stylesheet", "style sheet"], + ["like this", ""], + ["probably", ""], + ["known as", ""], + ["really", ""], + ["just", ""], + ["simple", ""], + ["obvious", ""], + ["straightforward", ""], + ["very", ""], + ["a little", ""], + ["note that", ""], + ["good to note", ""], + ["good to remember", ""], + ["basically", ""], + ["actually", ""], + ["pretty", ""], + ["easy", ""], + ["interesting", ""], + ["way to", ""], + ["In order to", "To"], + ["in order to", "to"], + ["might", ""], + ["us", ""], + ["I'll", ""], + ["I've", ""], + ["they'll", ""], + ["it is", "it's"], + ["It is", "It's"], + ] + } + } +} diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 00000000..036b60b0 --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,73 @@ +extends: "default" + +ignore: | + .build/ + .docker/ + vendor/ + node_modules/ + .yarnrc.yml + .yarn/ + .pnpm-lock.yaml + .pnpm-workspaces.yaml + *lock.yaml + *workspace.yaml + +rules: + braces: + max-spaces-inside-empty: 0 + max-spaces-inside: 1 + min-spaces-inside-empty: 0 + min-spaces-inside: 1 + brackets: + max-spaces-inside-empty: 0 + max-spaces-inside: 0 + min-spaces-inside-empty: 0 + min-spaces-inside: 0 + colons: + max-spaces-after: 1 + max-spaces-before: 0 + commas: + max-spaces-after: 1 + max-spaces-before: 0 + min-spaces-after: 1 + comments: + ignore-shebangs: true + min-spaces-from-content: 1 + require-starting-space: true + comments-indentation: "enable" + document-end: + present: false + document-start: + present: false + indentation: + check-multi-line-strings: false + indent-sequences: true + spaces: 4 + empty-lines: + max-end: 0 + max-start: 0 + max: 1 + empty-values: + forbid-in-block-mappings: true + forbid-in-flow-mappings: true + hyphens: + max-spaces-after: 4 + key-duplicates: "enable" + key-ordering: "disable" + line-length: "disable" + new-line-at-end-of-file: "enable" + new-lines: + type: "unix" + octal-values: + forbid-implicit-octal: true + quoted-strings: + quote-type: "double" + trailing-spaces: "enable" + truthy: + allowed-values: + - "false" + - "true" + +yaml-files: + - "*.yaml" + - "*.yml" diff --git a/LICENSE.md b/LICENSE.md index 309142a4..75e27980 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,3 +1,36 @@ +Anolilab - Copyright (c) 2022 + +This software consists of voluntary contributions made by many individuals. +For exact contribution history, see the revision history +available at https://github.com/faker-js/faker + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +=== + +From: https://github.com/anolilab/resume-schema/commit/6e3244639cebfa89e66ee60d47c665a96e01a811 + +What follows below is the original license. + +=== + The MIT License (MIT) Copyright © 2014 JSON Resume diff --git a/README.md b/README.md index 6f91d41c..1e591128 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # JSON Resume Schema -[![GitHub Releases](https://badgen.net/github/tag/jsonresume/resume-schema)](https://github.com/jsonresume/resume-schema/releases) +[![GitHub Releases](https://badgen.net/github/tag/anolilab/resume-schema)](https://github.com/anolilab/resume-schema/releases) [![NPM Release](https://badgen.net/npm/v/resume-schema)](https://www.npmjs.com/package/resume-schema) -[![Latest Status](https://github.com/jsonresume/resume-schema/workflows/Latest/badge.svg)](https://github.com/vanillawc/wc-template/actions) -[![Release Status](https://github.com/jsonresume/resume-schema/workflows/Release/badge.svg)](https://github.com/vanillawc/wc-template/actions) +[![Latest Status](https://github.com/anolilab/resume-schema/workflows/Latest/badge.svg)](https://github.com/anolilab/resume-schema/actions) +[![Release Status](https://github.com/anolilab/resume-schema/workflows/Release/badge.svg)](https://github.com/anolilab/resume-schema/actions) Standard, Specification, Schema @@ -12,47 +12,58 @@ Standard, Specification, Schema ``` npm install --save resume-schema ``` +### Usage -To use + -```js -const resumeSchema = require("resume-schema"); -resumeSchema.validate( - { name: "Thomas" }, - function (err, report) { - if (err) { - console.error("The resume was invalid:", err); - return; - } - console.log("Resume validated successfully:", report); - }, - function (err) { - console.error("The resume was invalid:", err); - } -); -``` +The main export of this package is an object that validates as a [JSON schema](https://json-schema.org/understanding-json-schema/). It should work with [any compliant implementation](https://json-schema.org/implementations.html#validator-javascript). + + -More likely +#### Validation +To determine if an object is a valid JSON resume, you can do something like this: ```js -var fs = require("fs"); -var resumeSchema = require("resume-schema"); -var resumeObject = JSON.parse(fs.readFileSync("resume.json", "utf8")); -resumeSchema.validate(resumeObject); +import schema from 'resume-schema'; +import Ajv from 'ajv'; // validator. See https://ajv.js.org/ +import addFormats from "ajv-formats" + +const ajv = new Ajv({ + allowUnionTypes: true, +}); + +addFormats(ajv); + +const validate = ajv.compile(schema); + +validate({basics: {name: "Thomas"}}); // true +validate({invalidProperty: "foo bar"}); // false ``` The JSON Resume schema is available from: ```js -require("resume-schema").schema; +require('resume-schema').schema; ``` +### People + + + +* Julian Shapiro for early prototype revisions + + + ### Contribute -We encourage anyone who's interested in participating in the formation of this standard to join the discussions [here on GitHub](https://github.com/jsonresume/resume-schema/issues). Also feel free to fork this project and submit new ideas to add to the JSON Resume Schema standard. To make sure all formatting is kept in check, please install the [EditorConfig plugin](http://editorconfig.org/) for your editor of choice. +We encourage anyone who’s interested in participating in evolving this standard to join the discussions [here on GitHub](https://github.com/jsonresume/resume-schema/issues). Also feel free to fork this project and submit new ideas to add to the JSON Resume Schema standard. To make sure all formatting is kept in check, install the [EditorConfig plugin](https://editorconfig.org/) for your editor of choice. + +> **Note:** please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. ### Versioning + + JSON Resume Schema adheres to Semantic Versioning 2.0.0. If there is a violation of this scheme, report it as a bug. Specifically, if a patch or minor version is released and breaks backward compatibility, that version should be immediately @@ -62,18 +73,33 @@ a major-version release. As a result of this policy, you can (and should) specify any dependency on JSON Resume Schema by using the Pessimistic Version Constraint with two digits of precision. -We use automatic semver system. + -Pull requests titles should be formatted as such +## Supported Node.js Versions -``` -"fix: added something" - will bump the patch version -"feat: added something" - will bump the minor version -``` +Libraries in this ecosystem make a best effort to track +[Node.js’ release schedule](https://nodejs.org/en/about/releases/). Here’s [a +post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). + +### Research -`major` version bumps will be few and far between for this schema. + + +- [A more professional recruitment process with structured data](/research/A%20more%20professional%20recruitment%20process%20with%20structured%20CV%20data.pdf). + + + +### Proposals to reinvestigate + +* [#69 - Standard format for phone numbers](https://github.com/jsonresume/resume-schema/issues/69) +* [#44 - Person-Job Fit ](https://github.com/jsonresume/resume-schema/issues/44) +* [#12 - geotag location in work ](https://github.com/jsonresume/resume-schema/issues/12) +* [#51 - Support multiple positions within one job](https://github.com/jsonresume/resume-schema/issues/51) ### Other resume standards +* [HR-XML](https://schemas.liquid-technologies.com/HR-XML/2007-04-15/) +* [Europass](https://europa.eu/europass/en/about-europass) + +## License -- [HR-XML](https://schemas.liquid-technologies.com/HR-XML/2007-04-15/) -- [Europass](http://europass.cedefop.europa.eu/about-europass) +The anolilab resume-schema is open-sourced software licensed under the [MIT license](LICENSE.md) diff --git a/__tests__/awards.spec.js b/__tests__/awards.spec.js new file mode 100644 index 00000000..fce2d96a --- /dev/null +++ b/__tests__/awards.spec.js @@ -0,0 +1,48 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/awards.json"; + +describe("awards", () => { + it("awards - invalid", () => { + expect(validate(fixtures.awardsEmptyInvalid)).toBeFalsy(); + }); + + it("awards - invalid", () => { + expect(validate(fixtures.awardsInvalid)).toBeFalsy(); + }); + + it("awards[].title - valid", () => { + expect(validate(fixtures.titleValid)).toBeTruthy(); + }); + + it("awards[].title - invalid", () => { + expect(validate(fixtures.titleInvalid)).toBeFalsy(); + }); + + it("awards[].date - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.dateValid)).toBeTruthy(); + }); + + it("awards[].date - invalid", () => { + expect(validate(fixtures.dateInvalid)).toBeFalsy(); + }); + + it("awards[].awarder - valid", () => { + expect(validate(fixtures.awarderValid)).toBeTruthy(); + }); + + it("awards[].awarder - invalid", () => { + expect(validate(fixtures.awarderInvalid)).toBeFalsy(); + }); + + it("awards[].summary - valid", () => { + expect(validate(fixtures.summaryValid)).toBeTruthy(); + }); + + it("awards[].summary - invalid", () => { + expect(validate(fixtures.summaryInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/basics.spec.js b/__tests__/basics.spec.js new file mode 100644 index 00000000..be8fbf37 --- /dev/null +++ b/__tests__/basics.spec.js @@ -0,0 +1,152 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/basics.json"; + +describe("basics", () => { + it("basics - valid", () => { + expect(validate(fixtures.basicsValid)).toBeTruthy(); + }); + + it("basics - invalid", () => { + expect(validate(fixtures.basicsInvalid)).toBeFalsy(); + }); + + it("basics.name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("basics.name - invalid", () => { + expect(validate(fixtures.nameInvalid)).toBeFalsy(); + }); + + it("basics.label - valid", () => { + expect(validate(fixtures.labelValid)).toBeTruthy(); + }); + + it("basics.label - invalid", () => { + expect(validate(fixtures.labelInvalid)).toBeFalsy(); + }); + + it("basics.image - valid", () => { + expect(validate(fixtures.imageValid)).toBeTruthy(); + }); + + it("basics.image - invalid", () => { + expect(validate(fixtures.imageInvalid)).toBeFalsy(); + }); + + it("basics.email - valid", () => { + expect(validate(fixtures.emailValid)).toBeTruthy(); + }); + + it("basics.email - invalid", () => { + expect(validate(fixtures.emailInvalid)).toBeFalsy(); + }); + + it("basics.phone - valid", () => { + expect(validate(fixtures.phoneValid)).toBeTruthy(); + }); + + it("basics.phone - invalid", () => { + expect(validate(fixtures.phoneInvalid)).toBeFalsy(); + }); + + it("basics.url - valid", () => { + expect(validate(fixtures.urlValid)).toBeTruthy(); + }); + + it("basics.url - invalid", () => { + expect(validate(fixtures.urlInvalid)).toBeFalsy(); + }); + + it("basics.summary - valid", () => { + expect(validate(fixtures.summaryValid)).toBeTruthy(); + }); + + it("basics.summary - invalid", () => { + expect(validate(fixtures.summaryInvalid)).toBeFalsy(); + }); + + it("basics.location - valid", () => { + expect(validate(fixtures.locationValid)).toBeTruthy(); + }); + + it("basics.location - invalid", () => { + expect(validate(fixtures.locationInvalid)).toBeFalsy(); + }); + + it("basics.location.address - valid", () => { + expect(validate(fixtures.locationAddressValid)).toBeTruthy(); + }); + + it("basics.location.address - invalid", () => { + expect(validate(fixtures.locationAddressInvalid)).toBeFalsy(); + }); + + it("basics.location.postal - valid", () => { + expect(validate(fixtures.locationPostalValid)).toBeTruthy(); + }); + + it("basics.location.postal - invalid", () => { + expect(validate(fixtures.locationPostalInvalid)).toBeFalsy(); + }); + + it("basics.location.city - valid", () => { + expect(validate(fixtures.locationCityValid)).toBeTruthy(); + }); + + it("basics.location.city - invalid", () => { + expect(validate(fixtures.locationCityInvalid)).toBeFalsy(); + }); + + it("basics.location.country - valid", () => { + expect(validate(fixtures.locationCountryValid)).toBeTruthy(); + }); + + it("basics.location.country - invalid", () => { + expect(validate(fixtures.locationCountryInvalid)).toBeFalsy(); + }); + + it("basics.location.region - valid", () => { + expect(validate(fixtures.locationRegionValid)).toBeTruthy(); + }); + + it("basics.location.region - invalid", () => { + expect(validate(fixtures.locationRegionInvalid)).toBeFalsy(); + }); + + it("basics.profiles - invalid", () => { + expect(validate(fixtures.profilesEmptyInvalid)).toBeFalsy(); + }); + + it("basics.profiles - invalid", () => { + expect(validate(fixtures.profilesInvalid)).toBeFalsy(); + }); + + it("basics.profiles[].network - valid", () => { + expect(validate(fixtures.profilesNetworkValid)).toBeTruthy(); + }); + + it("basics.profiles[].network - invalid", () => { + expect(validate(fixtures.profilesNetworkInvalid)).toBeFalsy(); + }); + + it("basics.profiles[].username - valid", () => { + expect(validate(fixtures.profilesUsernameValid)).toBeTruthy(); + }); + + it("basics.profiles[].username - invalid", () => { + expect(validate(fixtures.profilesUsernameInvalid)).toBeFalsy(); + }); + + it("basics.profiles[].url - valid", () => { + expect(validate(fixtures.profilesUrlValid)).toBeTruthy(); + }); + + it("basics.profiles[].url - invalid", () => { + expect(validate(fixtures.profilesUrlInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/certificates.spec.js b/__tests__/certificates.spec.js new file mode 100644 index 00000000..da0c7028 --- /dev/null +++ b/__tests__/certificates.spec.js @@ -0,0 +1,44 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/certificates.json"; + +describe("", () => { + it("certificates - invalid", () => { + expect(validate(fixtures.certificatesEmptyInvalid)).toBeFalsy(); + }); + + it("certificates - invalid", () => { + expect(validate(fixtures.certificatesInvalid)).toBeFalsy(); + }); + + it("certificates[].name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("certificates[].date - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.dateValid)).toBeTruthy(); + }); + + it("certificates[].date - invalid", () => { + expect(validate(fixtures.dateInvalid)).toBeFalsy(); + }); + + it("certificates[].url - valid", () => { + expect(validate(fixtures.urlValid)).toBeTruthy(); + }); + + it("certificates[].url - invalid", () => { + expect(validate(fixtures.urlInvalid)).toBeFalsy(); + }); + + it("certificates[].issuer - valid", () => { + expect(validate(fixtures.issuerValid)).toBeTruthy(); + }); + + it("certificates[].issuer - invalid", () => { + expect(validate(fixtures.issuerInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/dates.spec.js b/__tests__/dates.spec.js new file mode 100644 index 00000000..d67e4626 --- /dev/null +++ b/__tests__/dates.spec.js @@ -0,0 +1,32 @@ +import Ajv from "ajv"; +import { + describe, expect, it, +} from "vitest"; + +import fixtures from "./fixtures/dates.json"; + +const mockDateSchema = { + type: "string", + description: "Mock Date Format", + pattern: "^([1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]|[1-2][0-9]{3}-[0-1][0-9]|[1-2][0-9]{3})$", +}; + +const validate = new Ajv().compile(mockDateSchema); + +describe("dates", () => { + it("dates - YYYY-MM-DD", () => { + expect(validate(fixtures.yearMonthDay)).toBeTruthy(); + }); + + it("dates - YYYY-MM", () => { + expect(validate(fixtures.yearMonth)).toBeTruthy(); + }); + + it("dates - YYYY", () => { + expect(validate(fixtures.yearMonthDay)).toBeTruthy(); + }); + + it("dates - invalid", () => { + expect(validate(fixtures.invalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/education.spec.js b/__tests__/education.spec.js new file mode 100644 index 00000000..34e87c85 --- /dev/null +++ b/__tests__/education.spec.js @@ -0,0 +1,84 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/education.json"; + +describe("eductaion", () => { + it("eductaion - invalid", () => { + expect(validate(fixtures.educationEmptyInvalid)).toBeFalsy(); + }); + + it("education - invalid", () => { + expect(validate(fixtures.educationInvalid)).toBeFalsy(); + }); + + it("education[].institution - valid", () => { + expect(validate(fixtures.institutionValid)).toBeTruthy(); + }); + + it("education[].institution - invalid", () => { + expect(validate(fixtures.institutionInvalid)).toBeFalsy(); + }); + + it("education[].area - valid", () => { + expect(validate(fixtures.areaValid)).toBeTruthy(); + }); + + it("education[].area - invalid", () => { + expect(validate(fixtures.areaInvalid)).toBeFalsy(); + }); + + it("education[].studyType - valid", () => { + expect(validate(fixtures.studyTypeValid)).toBeTruthy(); + }); + + it("education[].studyType - invalid", () => { + expect(validate(fixtures.studyTypeInvalid)).toBeFalsy(); + }); + + it("education[].startDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.startDateValid)).toBeTruthy(); + }); + + it("education[].startDate - invalid", () => { + expect(validate(fixtures.startDateInvalid)).toBeFalsy(); + }); + + it("education[].endDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.endDateValid)).toBeTruthy(); + }); + + it("education[].endDate - invalid", () => { + expect(validate(fixtures.endDateInvalid)).toBeFalsy(); + }); + + it("education[].grade - valid", () => { + expect(validate(fixtures.gradeValid)).toBeTruthy(); + }); + + it("education[].summary - valid", () => { + expect(validate(fixtures.summaryValid)).toBeTruthy(); + }); + + it("education[].summary - invalid", () => { + expect(validate(fixtures.summaryInvalid)).toBeFalsy(); + }); + + it("education[].courses - invalid", () => { + expect(validate(fixtures.coursesEmptyInvalid)).toBeFalsy(); + }); + + it("education[].courses - invalid", () => { + expect(validate(fixtures.coursesInvalid)).toBeFalsy(); + }); + + it("education[].courses[item] - valid", () => { + expect(validate(fixtures.coursesItemValid)).toBeTruthy(); + }); + + it("education[].courses[item] - invalid", () => { + expect(validate(fixtures.coursesItemInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/fixtures/awards.json b/__tests__/fixtures/awards.json new file mode 100644 index 00000000..fe605ef0 --- /dev/null +++ b/__tests__/fixtures/awards.json @@ -0,0 +1,64 @@ +{ + "awardsEmptyInvalid": { + "awards": [] + }, + "awardsInvalid": { + "awards": null + }, + "titleValid": { + "awards": [ + { + "title": "Digital Compression Pioneer Award" + } + ] + }, + "titleInvalid": { + "awards": [ + { + "title": null + } + ] + }, + "dateValid": { + "awards": [ + { + "date": "2014-11-01" + } + ] + }, + "dateInvalid": { + "awards": [ + { + "date": null + } + ] + }, + "awarderValid": { + "awards": [ + { + "awarder": "Techcrunch" + } + ] + }, + "awarderInvalid": { + "awards": [ + { + "awarder": null + } + ] + }, + "summaryValid": { + "awards": [ + { + "summary": "There is no spoon." + } + ] + }, + "summaryInvalid": { + "awards": [ + { + "summary": null + } + ] + } +} diff --git a/__tests__/fixtures/basics.json b/__tests__/fixtures/basics.json new file mode 100644 index 00000000..56853438 --- /dev/null +++ b/__tests__/fixtures/basics.json @@ -0,0 +1,222 @@ +{ + "basicsValid": { + "basics": {} + }, + "basicsInvalid": { + "basics": null + }, + "nameValid": { + "basics": { + "name": "Richard Hendriks" + } + }, + "nameInvalid": { + "basics": { + "name": null + } + }, + "labelValid": { + "basics": { + "label": "Programmer" + } + }, + "labelInvalid": { + "basics": { + "label": null + } + }, + "imageValid": { + "basics": { + "image": "profile-image.png" + } + }, + "imageInvalid": { + "basics": { + "image": null + } + }, + "emailValid": { + "basics": { + "email": "richard.hendriks@mail.com" + } + }, + "emailInvalid": { + "basics": { + "email": null + } + }, + "phoneValid": { + "basics": { + "phone": "(912) 555-4321" + } + }, + "phoneInvalid": { + "basics": { + "phone": null + } + }, + "urlValid": { + "basics": { + "url": "http://richardhendricks.example.com" + } + }, + "urlInvalid": { + "basics": { + "url": null + } + }, + "summaryValid": { + "basics": { + "summary": "Richard hails from Tulsa. He has earned degrees from the University of Oklahoma and Stanford." + } + }, + "summaryInvalid": { + "basics": { + "summary": null + } + }, + "locationValid": { + "basics": { + "location": {} + } + }, + "locationInvalid": { + "basics": { + "location": null + } + }, + "locationAddressValid": { + "basics": { + "location": { + "address": "2712 Broadway St" + } + } + }, + "locationAddressInvalid": { + "basics": { + "location": { + "address": null + } + } + }, + "locationPostalValid": { + "basics": { + "location": { + "postalCode": "CA 94115" + } + } + }, + "locationPostalInvalid": { + "basics": { + "location": { + "postalCode": null + } + } + }, + "locationCityValid": { + "basics": { + "location": { + "city": "San Francisco" + } + } + }, + "locationCityInvalid": { + "basics": { + "location": { + "city": null + } + } + }, + "locationCountryValid": { + "basics": { + "location": { + "countryCode": "US" + } + } + }, + "locationCountryInvalid": { + "basics": { + "location": { + "countryCode": null + } + } + }, + "locationRegionValid": { + "basics": { + "location": { + "region": "California" + } + } + }, + "locationRegionInvalid": { + "basics": { + "location": { + "region": null + } + } + }, + "profilesEmptyInvalid": { + "basics": { + "profiles": [] + } + }, + "profilesInvalid": { + "basics": { + "profiles": null + } + }, + "profilesNetworkValid": { + "basics": { + "profiles": [ + { + "network": "Twitter" + } + ] + } + }, + "profilesNetworkInvalid": { + "basics": { + "profiles": [ + { + "network": null + } + ] + } + }, + "profilesUsernameValid": { + "basics": { + "profiles": [ + { + "username": "neutralthoughts" + } + ] + } + }, + "profilesUsernameInvalid": { + "basics": { + "profiles": [ + { + "username": null + } + ] + } + }, + "profilesUrlValid": { + "basics": { + "profiles": [ + { + "url": "https://twitter.com/neutralthoughts" + } + ] + } + }, + "profilesUrlInvalid": { + "basics": { + "profiles": [ + { + "url": null + } + ] + } + } +} diff --git a/__tests__/fixtures/certificates.json b/__tests__/fixtures/certificates.json new file mode 100644 index 00000000..0f7b8b22 --- /dev/null +++ b/__tests__/fixtures/certificates.json @@ -0,0 +1,64 @@ +{ + "certificatesEmptyInvalid": { + "certificates": [] + }, + "certificatesInvalid": { + "certificates": null + }, + "nameValid": { + "certificates": [ + { + "name": "Cisco Certified Architect" + } + ] + }, + "nameInvalid": { + "certificates": [ + { + "name": null + } + ] + }, + "dateValid": { + "certificates": [ + { + "date": "2008-03-12" + } + ] + }, + "dateInvalid": { + "certificates": [ + { + "date": null + } + ] + }, + "urlValid": { + "certificates": [ + { + "url": "https://example.com/me" + } + ] + }, + "urlInvalid": { + "certificates": [ + { + "url": null + } + ] + }, + "issuerValid": { + "certificates": [ + { + "issuer": "Cisco" + } + ] + }, + "issuerInvalid": { + "certificates": [ + { + "issuer": null + } + ] + } +} diff --git a/__tests__/fixtures/dates.json b/__tests__/fixtures/dates.json new file mode 100644 index 00000000..fad1bdd7 --- /dev/null +++ b/__tests__/fixtures/dates.json @@ -0,0 +1,6 @@ +{ + "yearMonthDay": "2013-12-02", + "yearMonth": "2013-12-01", + "year": "2013-12-01", + "invalid": "2013-12-021" +} diff --git a/__tests__/fixtures/education.json b/__tests__/fixtures/education.json new file mode 100644 index 00000000..e0cf1d65 --- /dev/null +++ b/__tests__/fixtures/education.json @@ -0,0 +1,127 @@ +{ + "educationEmptyInvalid": { + "education": [] + }, + "educationInvalid": { + "education": null + }, + "institutionValid": { + "education": [ + { + "institution": "University of Oklahoma" + } + ] + }, + "institutionInvalid": { + "education": [ + { + "institution": null + } + ] + }, + "areaValid": { + "education": [ + { + "area": "Information Technology" + } + ] + }, + "areaInvalid": { + "education": [ + { + "area": null + } + ] + }, + "studyTypeValid": { + "education": [ + { + "studyType": "Bachelor" + } + ] + }, + "studyTypeInvalid": { + "education": [ + { + "studyType": null + } + ] + }, + "startDateValid": { + "education": [ + { + "startDate": "2011-06-01" + } + ] + }, + "startDateInvalid": { + "education": [ + { + "startDate": null + } + ] + }, + "endDateValid": { + "education": [ + { + "endDate": "2014-01-01" + } + ] + }, + "endDateInvalid": { + "education": [ + { + "endDate": null + } + ] + }, + "gradeValid": { + "education": [ + { + "grade": "4.0" + } + ] + }, + "summaryValid": { + "education": [ + { + "summary": "I wrote an awesome Master's Thesis." + } + ] + }, + "summaryInvalid": { + "education": [ + { + "summary": null + } + ] + }, + "coursesEmptyInvalid": { + "education": [ + { + "courses": [] + } + ] + }, + "coursesInvalid": { + "education": [ + { + "courses": null + } + ] + }, + "coursesItemValid": { + "education": [ + { + "courses": ["DB1101 - Basic SQL"] + } + ] + }, + "coursesItemInvalid": { + "education": [ + { + "courses": [null] + } + ] + } +} diff --git a/__tests__/fixtures/interests.json b/__tests__/fixtures/interests.json new file mode 100644 index 00000000..2a8128a7 --- /dev/null +++ b/__tests__/fixtures/interests.json @@ -0,0 +1,50 @@ +{ + "interestsEmptyInvalid": { + "interests": [] + }, + "interestsInvalid": { + "interests": null + }, + "nameValid": { + "interests": [ + { + "name": "Wildlife" + } + ] + }, + "nameInvalid": { + "interests": [ + { + "name": null + } + ] + }, + "keywordsEmptyInvalid": { + "interests": [ + { + "keywords": [] + } + ] + }, + "keywordsInvalid": { + "interests": [ + { + "keywords": null + } + ] + }, + "keywordsItemValid": { + "interests": [ + { + "keywords": ["Ferrets"] + } + ] + }, + "keywordsItemInvalid": { + "interests": [ + { + "keywords": [null] + } + ] + } +} diff --git a/__tests__/fixtures/languages.json b/__tests__/fixtures/languages.json new file mode 100644 index 00000000..a34c385f --- /dev/null +++ b/__tests__/fixtures/languages.json @@ -0,0 +1,36 @@ +{ + "languagesEmptyInvalid": { + "languages": [] + }, + "languagesInvalid": { + "languages": null + }, + "languageValid": { + "languages": [ + { + "language": "English" + } + ] + }, + "languageInvalid": { + "languages": [ + { + "language": null + } + ] + }, + "fluencyValid": { + "languages": [ + { + "fluency": "Native speaker" + } + ] + }, + "fluencyInvalid": { + "languages": [ + { + "fluency": null + } + ] + } +} diff --git a/__tests__/fixtures/meta.json b/__tests__/fixtures/meta.json new file mode 100644 index 00000000..13b0caa4 --- /dev/null +++ b/__tests__/fixtures/meta.json @@ -0,0 +1,38 @@ +{ + "metaValid": { + "meta": {} + }, + "metaInvalid": { + "meta": null + }, + "canonicalValid": { + "meta": { + "canonical": "https://raw.githubusercontent.com/jsonresume/resume-schema/master/resume.json" + } + }, + "canonicalInvalid": { + "meta": { + "canonical": null + } + }, + "versionValid": { + "meta": { + "version": "v1.0.0" + } + }, + "versionInvalid": { + "meta": { + "version": null + } + }, + "lastModifiedValid": { + "meta": { + "lastModified": "2017-12-24T15:53:00" + } + }, + "lastModifiedInvalid": { + "meta": { + "lastModified": null + } + } +} diff --git a/__tests__/fixtures/projects.json b/__tests__/fixtures/projects.json new file mode 100644 index 00000000..12fe8395 --- /dev/null +++ b/__tests__/fixtures/projects.json @@ -0,0 +1,176 @@ +{ + "projectsEmptyInvalid": { + "projects": [] + }, + "projectsInvalid": { + "projects": null + }, + "nameValid": { + "projects": [ + { + "name": "Miss Direction" + } + ] + }, + "nameInvalid": { + "projects": [ + { + "name": null + } + ] + }, + "descriptionValid": { + "projects": [ + { + "description": "A mapping engine that misguides you" + } + ] + }, + "descriptionInvalid": { + "projects": [ + { + "description": null + } + ] + }, + "highlightsEmptyInvalid": { + "projects": [ + { + "highlights": [] + } + ] + }, + "highlightsInvalid": { + "projects": [ + { + "highlights": null + } + ] + }, + "highlightsItemValid": { + "projects": [ + { + "highlights": ["Won award at AIHacks 2016"] + } + ] + }, + "highlightsItemInvalid": { + "projects": [ + { + "highlights": [null] + } + ] + }, + "keywordsEmptyInvalid": { + "projects": [ + { + "keywords": [] + } + ] + }, + "keywordsInvalid": { + "keywords": [ + { + "keywords": null + } + ] + }, + "keywordsItemValid": { + "projects": [ + { + "keywords": ["GoogleMaps"] + } + ] + }, + "keywordsItemInvalid": { + "projects": [ + { + "keywords": [null] + } + ] + }, + "startDateValid": { + "projects": [ + { + "startDate": "2015-08-24" + } + ] + }, + "startDateInvalid": { + "projects": [ + { + "startDate": null + } + ] + }, + "endDateValid": { + "projects": [ + { + "endDate": "2016-08-24" + } + ] + }, + "endDateInvalid": { + "projects": [ + { + "endDate": null + } + ] + }, + "rolesEmtypInvalid": { + "projects": [ + { + "roles": [] + } + ] + }, + "rolesInvalid": { + "keywords": [ + { + "roles": null + } + ] + }, + "rolesItemValid": { + "projects": [ + { + "roles": ["Team lead"] + } + ] + }, + "rolesItemInvalid": { + "projects": [ + { + "roles": [null] + } + ] + }, + "entityValid": { + "projects": [ + { + "entity": "Smoogle" + } + ] + }, + "entityInvalid": { + "projects": [ + { + "entity": null + } + ] + }, + "typeValid": { + "projects": [ + { + "type": "application" + } + ] + }, + "typeInvalid": { + "projects": [ + { + "type": null + } + ] + } +} diff --git a/__tests__/fixtures/publications.json b/__tests__/fixtures/publications.json new file mode 100644 index 00000000..e304dd84 --- /dev/null +++ b/__tests__/fixtures/publications.json @@ -0,0 +1,92 @@ +{ + "publicationsEmptyInvalid": { + "publications": [] + }, + "publicationsInvalid": { + "publications": null + }, + "nameValid": { + "publications": [ + { + "name": "Video compression for 3d media" + } + ] + }, + "nameInvalid": { + "publications": [ + { + "name": null + } + ] + }, + "publisherValid": { + "publications": [ + { + "publisher": "Hooli" + } + ] + }, + "publisherInvalid": { + "publications": [ + { + "publisher": null + } + ] + }, + "releaseDateValid": { + "publications": [ + { + "releaseDate": "2014-10-01" + } + ] + }, + "releaseDateInvalid": { + "publications": [ + { + "releaseDate": null + } + ] + }, + "urlValid": { + "publications": [ + { + "url": "http://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)" + } + ] + }, + "urlInvalid": { + "publications": [ + { + "url": null + } + ] + }, + "summaryValid": { + "publications": [ + { + "summary": "Innovative middle-out compression algorithm that changes the way we store data." + } + ] + }, + "summaryInvalid": { + "publications": [ + { + "summary": null + } + ] + }, + "doiValid": { + "publications": [ + { + "summary": "ISO 26324" + } + ] + }, + "doiInvalid": { + "publications": [ + { + "summary": null + } + ] + } +} diff --git a/__tests__/fixtures/references.json b/__tests__/fixtures/references.json new file mode 100644 index 00000000..62234ff3 --- /dev/null +++ b/__tests__/fixtures/references.json @@ -0,0 +1,36 @@ +{ + "referencesEmptyInvalid": { + "references": [] + }, + "referencesInvalid": { + "references": null + }, + "nameValid": { + "references": [ + { + "name": "Erlich Bachman" + } + ] + }, + "nameInvalid": { + "references": [ + { + "name": null + } + ] + }, + "referenceValid": { + "references": [ + { + "reference": "It is my pleasure to recommend Richard, his performance working as a consultant for Main St. Company proved that he will be a valuable addition to any company." + } + ] + }, + "referenceInvalid": { + "references": [ + { + "reference": null + } + ] + } +} diff --git a/__tests__/fixtures/schema.json b/__tests__/fixtures/schema.json new file mode 100644 index 00000000..c963ffdd --- /dev/null +++ b/__tests__/fixtures/schema.json @@ -0,0 +1,8 @@ +{ + "valid": { + "$schema": "http://example.com/" + }, + "invalid": { + "$schema": {} + } +} diff --git a/__tests__/fixtures/skills.json b/__tests__/fixtures/skills.json new file mode 100644 index 00000000..a42cf4a9 --- /dev/null +++ b/__tests__/fixtures/skills.json @@ -0,0 +1,64 @@ +{ + "skillsEmptyInvalid": { + "skills": [] + }, + "skillsInvalid": { + "skills": null + }, + "nameValid": { + "skills": [ + { + "name": "Web Development" + } + ] + }, + "nameInvalid": { + "skills": [ + { + "name": null + } + ] + }, + "levelValid": { + "skills": [ + { + "level": "Master" + } + ] + }, + "levelInvalid": { + "skills": [ + { + "level": null + } + ] + }, + "keywordsEmptyInvalid": { + "skills": [ + { + "keywords": [] + } + ] + }, + "keywordsInvalid": { + "skills": [ + { + "keywords": null + } + ] + }, + "keywordsItemValid": { + "skills": [ + { + "keywords": ["HTML"] + } + ] + }, + "keywordsItemInvalid": { + "skills": [ + { + "keywords": [null] + } + ] + } +} diff --git a/__tests__/fixtures/volunteer.json b/__tests__/fixtures/volunteer.json new file mode 100644 index 00000000..7340ad3e --- /dev/null +++ b/__tests__/fixtures/volunteer.json @@ -0,0 +1,134 @@ +{ + "volunteerEmptyInvalid": { + "volunteer": [] + }, + "volunteerInvalid": { + "volunteer": null + }, + "organizationValid": { + "volunteer": [ + { + "organization": "CoderDojo" + } + ] + }, + "organizationInvalid": { + "volunteer": [ + { + "organization": null + } + ] + }, + "positionValid": { + "volunteer": [ + { + "position": "Teacher" + } + ] + }, + "positionInvalid": { + "volunteer": [ + { + "position": null + } + ] + }, + "urlValid": { + "volunteer": [ + { + "url": "http://coderdojo.example.com/" + } + ] + }, + "urlInvalid": { + "volunteer": [ + { + "url": null + } + ] + }, + "startDateValid": { + "volunteer": [ + { + "startDate": "2012-01-01" + } + ] + }, + "startDateInvalid": { + "volunteer": [ + { + "startDate": null + } + ] + }, + "endDateValid": { + "volunteer": [ + { + "endDate": "2013-01-01" + } + ] + }, + "endDateValid2": { + "volunteer": [ + { + "endDate": "2013-01" + } + ] + }, + "endDateValid3": { + "volunteer": [ + { + "endDate": "2013" + } + ] + }, + "endDateInvalid": { + "volunteer": [ + { + "endDate": null + } + ] + }, + "summaryValid": { + "volunteer": [ + { + "summary": "Global movement of free coding clubs for young people." + } + ] + }, + "summaryInvalid": { + "volunteer": [ + { + "summary": null + } + ] + }, + "highlightsEmptyInvalid": { + "volunteer": [ + { + "highlights": [] + } + ] + }, + "highlightsInvalid": { + "volunteer": [ + { + "highlights": null + } + ] + }, + "highlightsItemValid": { + "volunteer": [ + { + "highlights": ["Awarded 'Teacher of the Month'"] + } + ] + }, + "highlightsItemInvalid": { + "volunteer": [ + { + "highlights": [null] + } + ] + } +} diff --git a/__tests__/fixtures/work.json b/__tests__/fixtures/work.json new file mode 100644 index 00000000..0e8aee67 --- /dev/null +++ b/__tests__/fixtures/work.json @@ -0,0 +1,176 @@ +{ + "workEmptyInvalid": { + "work": [] + }, + "workInvalid": { + "work": null + }, + "nameValid": { + "work": [ + { + "name": "Pied Piper" + } + ] + }, + "nameInvalid": { + "work": [ + { + "name": null + } + ] + }, + "locationValid": { + "work": [ + { + "location": "Palo Alto, CA" + } + ] + }, + "locationInvalid": { + "work": [ + { + "location": null + } + ] + }, + "descriptionValid": { + "work": [ + { + "description": "Awesome compression company" + } + ] + }, + "descriptionInvalid": { + "work": [ + { + "description": null + } + ] + }, + "positionValid": { + "work": [ + { + "position": "CEO/President" + } + ] + }, + "positionInvalid": { + "work": [ + { + "position": null + } + ] + }, + "urlValid": { + "work": [ + { + "url": "http://piedpiper.example.com" + } + ] + }, + "urlInvalid": { + "work": [ + { + "url": null + } + ] + }, + "startDateValid": { + "work": [ + { + "startDate": "2013-12-01" + } + ] + }, + "startDateInvalid": { + "work": [ + { + "startDate": null + } + ] + }, + "endDateValid": { + "work": [ + { + "endDate": "2014-12-01" + } + ] + }, + "endDateInvalid": { + "work": [ + { + "endDate": null + } + ] + }, + "summaryValid": { + "work": [ + { + "summary": "Pied Piper is a multi-platform technology based on a proprietary universal compression algorithm that has consistently fielded high Weisman Scores™ that are not merely competitive, but approach the theoretical limit of lossless compression." + } + ] + }, + "summaryInvalid": { + "work": [ + { + "summary": null + } + ] + }, + "highlightsEmptyInvalid": { + "work": [ + { + "highlights": [] + } + ] + }, + "highlightsInvalid": { + "work": [ + { + "highlights": null + } + ] + }, + "highlightsItemValid": { + "work": [ + { + "highlights": ["Successfully won Techcrunch Disrupt"] + } + ] + }, + "highlightsItemInvalid": { + "work": [ + { + "highlights": [null] + } + ] + }, + "keywordsEmptyInvalid": { + "work": [ + { + "keywords": [] + } + ] + }, + "keywordsInvalid": { + "work": [ + { + "keywords": null + } + ] + }, + "keywordsItemValid": { + "work": [ + { + "keywords": ["middle out compression"] + } + ] + }, + "keywordsItemInvalid": { + "work": [ + { + "keywords": [null] + } + ] + } +} diff --git a/__tests__/interests.spec.js b/__tests__/interests.spec.js new file mode 100644 index 00000000..eff30b0f --- /dev/null +++ b/__tests__/interests.spec.js @@ -0,0 +1,40 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/interests.json"; + +describe("interests", () => { + it("interests - invalid", () => { + expect(validate(fixtures.interestsEmptyInvalid)).toBeFalsy(); + }); + + it("interests - invalid", () => { + expect(validate(fixtures.interestsInvalid)).toBeFalsy(); + }); + + it("interests[].name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("interests[].name - invalid", () => { + expect(validate(fixtures.nameInvalid)).toBeFalsy(); + }); + + it("interests[].keywords - invalid", () => { + expect(validate(fixtures.keywordsEmptyInvalid)).toBeFalsy(); + }); + + it("interests[].keywords - invalid", () => { + expect(validate(fixtures.keywordsInvalid)).toBeFalsy(); + }); + + it("interests[].keywords[item] - valid", () => { + expect(validate(fixtures.keywordsItemValid)).toBeTruthy(); + }); + + it("interests[].keywords[item] - invalid", () => { + expect(validate(fixtures.keywordsItemInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/languages.spec.js b/__tests__/languages.spec.js new file mode 100644 index 00000000..87d03c60 --- /dev/null +++ b/__tests__/languages.spec.js @@ -0,0 +1,32 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/languages.json"; + +describe("languages", () => { + it("languages - invalid", () => { + expect(validate(fixtures.languagesEmptyInvalid)).toBeFalsy(); + }); + + it("languages - invalid", () => { + expect(validate(fixtures.languagesInvalid)).toBeFalsy(); + }); + + it("languages[].language - valid", () => { + expect(validate(fixtures.languageValid)).toBeTruthy(); + }); + + it("languages[].language - invalid", () => { + expect(validate(fixtures.languageInvalid)).toBeFalsy(); + }); + + it("languages[].fluency - valid", () => { + expect(validate(fixtures.fluencyValid)).toBeTruthy(); + }); + + it("languages[].fluency - invalid", () => { + expect(validate(fixtures.fluencyInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/meta.spec.js b/__tests__/meta.spec.js new file mode 100644 index 00000000..8a3b344b --- /dev/null +++ b/__tests__/meta.spec.js @@ -0,0 +1,40 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/meta.json"; + +describe("meta", () => { + it("meta - valid", () => { + expect(validate(fixtures.metaValid)).toBeTruthy(); + }); + + it("meta - invalid", () => { + expect(validate(fixtures.metaInvalid)).toBeFalsy(); + }); + + it("meta.canonical - valid", () => { + expect(validate(fixtures.canonicalValid)).toBeTruthy(); + }); + + it("meta.canonical - invalid", () => { + expect(validate(fixtures.canonicalInvalid)).toBeFalsy(); + }); + + it("meta.version - valid", () => { + expect(validate(fixtures.versionValid)).toBeTruthy(); + }); + + it("meta.version - invalid", () => { + expect(validate(fixtures.versionInvalid)).toBeFalsy(); + }); + + it("meta.lastModified - valid", () => { + expect(validate(fixtures.lastModifiedValid)).toBeTruthy(); + }); + + it("meta.lastModified - invalid", () => { + expect(validate(fixtures.lastModifiedInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/projects.spec.js b/__tests__/projects.spec.js new file mode 100644 index 00000000..ad8d37b6 --- /dev/null +++ b/__tests__/projects.spec.js @@ -0,0 +1,112 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/projects.json"; + +describe("projects", () => { + it("projects - invalid", () => { + expect(validate(fixtures.projectsEmptyInvalid)).toBeFalsy(); + }); + + it("projects - invalid", () => { + expect(validate(fixtures.projectsInvalid)).toBeFalsy(); + }); + + it("projects[].name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("projects[].name - invalid", () => { + expect(validate(fixtures.nameInvalid)).toBeFalsy(); + }); + + it("projects[].description - valid", () => { + expect(validate(fixtures.descriptionValid)).toBeTruthy(); + }); + + it("projects[].description - invalid", () => { + expect(validate(fixtures.descriptionInvalid)).toBeFalsy(); + }); + + it("projects[].highlights - invalid", () => { + expect(validate(fixtures.highlightsEmptyInvalid)).toBeFalsy(); + }); + + it("projects[].highlights - invalid", () => { + expect(validate(fixtures.highlightsInvalid)).toBeFalsy(); + }); + + it("projects[].highlights[item] - valid", () => { + expect(validate(fixtures.highlightsItemValid)).toBeTruthy(); + }); + + it("projects[].highlights[item] - invalid", () => { + expect(validate(fixtures.highlightsItemInvalid)).toBeFalsy(); + }); + + it("projects[].keywords - invalid", () => { + expect(validate(fixtures.keywordsEmptyInvalid)).toBeFalsy(); + }); + + it("projects[].keywords - invalid", () => { + expect(validate(fixtures.keywordsInvalid)).toBeFalsy(); + }); + + it("projects[].keywords[item] - valid", () => { + expect(validate(fixtures.keywordsItemValid)).toBeTruthy(); + }); + + it("projects[].keywords[item] - invalid", () => { + expect(validate(fixtures.keywordsItemInvalid)).toBeFalsy(); + }); + + it("projects[].startDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.startDateValid)).toBeTruthy(); + }); + + it("projects[].startDate - invalid", () => { + expect(validate(fixtures.startDateInvalid)).toBeFalsy(); + }); + + it("projects[].endDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.endDateValid)).toBeTruthy(); + }); + + it("projects[].endDate - invalid", () => { + expect(validate(fixtures.endDateInvalid)).toBeFalsy(); + }); + + it("projects[].roles - invalid", () => { + expect(validate(fixtures.rolesEmtypInvalid)).toBeFalsy(); + }); + + it("projects[].roles - invalid", () => { + expect(validate(fixtures.rolesInvalid)).toBeFalsy(); + }); + + it("projects[].roles[item] - valid", () => { + expect(validate(fixtures.rolesItemValid)).toBeTruthy(); + }); + + it("projects[].roles[item] - invalid", () => { + expect(validate(fixtures.rolesItemInvalid)).toBeFalsy(); + }); + + it("projects[].entity - valid", () => { + expect(validate(fixtures.entityValid)).toBeTruthy(); + }); + + it("projects[].entity - invalid", () => { + expect(validate(fixtures.entityInvalid)).toBeFalsy(); + }); + + it("projects[].type - valid", () => { + expect(validate(fixtures.typeValid)).toBeTruthy(); + }); + + it("projects[].type - invalid", () => { + expect(validate(fixtures.typeInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/publications.spec.js b/__tests__/publications.spec.js new file mode 100644 index 00000000..40f3ddfe --- /dev/null +++ b/__tests__/publications.spec.js @@ -0,0 +1,64 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/publications.json"; + +describe("publications", () => { + it("publications - invalid", () => { + expect(validate(fixtures.publicationsEmptyInvalid)).toBeFalsy(); + }); + + it("publications - invalid", () => { + expect(validate(fixtures.publicationsInvalid)).toBeFalsy(); + }); + + it("publications[].name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("publications[].name - invalid", () => { + expect(validate(fixtures.nameInvalid)).toBeFalsy(); + }); + + it("publications[].publisher - valid", () => { + expect(validate(fixtures.publisherValid)).toBeTruthy(); + }); + + it("publications[].publisher - invalid", () => { + expect(validate(fixtures.publisherInvalid)).toBeFalsy(); + }); + + it("publications[].releaseDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.releaseDateValid)).toBeTruthy(); + }); + + it("publications[].releaseDate - invalid", () => { + expect(validate(fixtures.releaseDateInvalid)).toBeFalsy(); + }); + + it("publications[].url - valid", () => { + expect(validate(fixtures.urlValid)).toBeTruthy(); + }); + + it("publications[].url - invalid", () => { + expect(validate(fixtures.urlInvalid)).toBeFalsy(); + }); + + it("publications[].summary - valid", () => { + expect(validate(fixtures.summaryValid)).toBeTruthy(); + }); + + it("publications[].summary - invalid", () => { + expect(validate(fixtures.summaryInvalid)).toBeFalsy(); + }); + + it("publications[].doi - valid", () => { + expect(validate(fixtures.doiValid)).toBeTruthy(); + }); + + it("publications[].doi - invalid", () => { + expect(validate(fixtures.doiInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/references.spec.js b/__tests__/references.spec.js new file mode 100644 index 00000000..659e96ee --- /dev/null +++ b/__tests__/references.spec.js @@ -0,0 +1,32 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/references.json"; + +describe("references", () => { + it("references - invalid", () => { + expect(validate(fixtures.referencesEmptyInvalid)).toBeFalsy(); + }); + + it("references - invalid", () => { + expect(validate(fixtures.referencesInvalid)).toBeFalsy(); + }); + + it("references[].name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("references[].name - invalid", () => { + expect(validate(fixtures.nameInvalid)).toBeFalsy(); + }); + + it("references[].reference - valid", () => { + expect(validate(fixtures.referenceValid)).toBeTruthy(); + }); + + it("references[].reference - invalid", () => { + expect(validate(fixtures.referenceInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/schema.spec.js b/__tests__/schema.spec.js new file mode 100644 index 00000000..b82f5fdf --- /dev/null +++ b/__tests__/schema.spec.js @@ -0,0 +1,16 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/schema.json"; + +describe("languages", () => { + it("schema - valid", () => { + expect(validate(fixtures.valid)).toBeTruthy(); + }); + + it("schema - invalid", () => { + expect(validate(fixtures.invalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/skills.spec.js b/__tests__/skills.spec.js new file mode 100644 index 00000000..c983c02d --- /dev/null +++ b/__tests__/skills.spec.js @@ -0,0 +1,48 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/skills.json"; + +describe("skills", () => { + it("skills - invalid", () => { + expect(validate(fixtures.skillsEmptyInvalid)).toBeFalsy(); + }); + + it("skills - invalid", () => { + expect(validate(fixtures.skillsInvalid)).toBeFalsy(); + }); + + it("skills[].name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("skills[].name - invalid", () => { + expect(validate(fixtures.nameInvalid)).toBeFalsy(); + }); + + it("skills[].level - valid", () => { + expect(validate(fixtures.levelValid)).toBeTruthy(); + }); + + it("skills[].level - invalid", () => { + expect(validate(fixtures.levelInvalid)).toBeFalsy(); + }); + + it("skills[].keywords - invalid", () => { + expect(validate(fixtures.keywordsEmptyInvalid)).toBeFalsy(); + }); + + it("skills[].keywords - invalid", () => { + expect(validate(fixtures.keywordsInvalid)).toBeFalsy(); + }); + + it("skills[].keywords[item] - valid", () => { + expect(validate(fixtures.keywordsItemValid)).toBeTruthy(); + }); + + it("skills[].keywords[item] - invalid", () => { + expect(validate(fixtures.keywordsItemInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/volunteer.spec.js b/__tests__/volunteer.spec.js new file mode 100644 index 00000000..8693ab1c --- /dev/null +++ b/__tests__/volunteer.spec.js @@ -0,0 +1,56 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/volunteer.json"; + +describe("skills", () => { + it("volunteer - invalid", () => { + expect(validate(fixtures.volunteerEmptyInvalid)).toBeFalsy(); + }); + + it("volunteer - invalid", () => { + expect(validate(fixtures.volunteerInvalid)).toBeFalsy(); + }); + + it("volunteer[].organization - valid", () => { + expect(validate(fixtures.organizationValid)).toBeTruthy(); + }); + + it("volunteer[].organization - invalid", () => { + expect(validate(fixtures.organizationInvalid)).toBeFalsy(); + }); + + it("volunteer[].position - valid", () => { + expect(validate(fixtures.positionValid)).toBeTruthy(); + }); + + it("volunteer[].position - invalid", () => { + expect(validate(fixtures.positionInvalid)).toBeFalsy(); + }); + + it("volunteer[].url - valid", () => { + expect(validate(fixtures.urlValid)).toBeTruthy(); + }); + + it("volunteer[].url - invalid", () => { + expect(validate(fixtures.urlInvalid)).toBeFalsy(); + }); + + it("volunteer[].startDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.startDateValid)).toBeTruthy(); + }); + + it("volunteer[].startDate - invalid", () => { + expect(validate(fixtures.startDateInvalid)).toBeFalsy(); + }); + + it("volunteer[].endDate - valid", () => { + expect(validate(fixtures.endDateValid)).toBeTruthy(); + }); + + it("volunteer[].endDate - invalid", () => { + expect(validate(fixtures.endDateInvalid)).toBeFalsy(); + }); +}); diff --git a/__tests__/work.spec.js b/__tests__/work.spec.js new file mode 100644 index 00000000..7a78d609 --- /dev/null +++ b/__tests__/work.spec.js @@ -0,0 +1,112 @@ +import { + describe, expect, it, +} from "vitest"; + +import validate from "../utils/validate"; +import fixtures from "./fixtures/work.json"; + +describe("skills", () => { + it("work - invalid", () => { + expect(validate(fixtures.workEmptyInvalid)).toBeFalsy(); + }); + + it("work - invalid", () => { + expect(validate(fixtures.workInvalid)).toBeFalsy(); + }); + + it("work[].name - valid", () => { + expect(validate(fixtures.nameValid)).toBeTruthy(); + }); + + it("work[].name - invalid", () => { + expect(validate(fixtures.nameInvalid)).toBeFalsy(); + }); + + it("work[].location - valid", () => { + expect(validate(fixtures.locationValid)).toBeTruthy(); + }); + + it("work[].location - invalid", () => { + expect(validate(fixtures.locationInvalid)).toBeFalsy(); + }); + + it("work[].description - valid", () => { + expect(validate(fixtures.descriptionValid)).toBeTruthy(); + }); + + it("work[].description - invalid", () => { + expect(validate(fixtures.descriptionInvalid)).toBeFalsy(); + }); + + it("work[].position - valid", () => { + expect(validate(fixtures.positionValid)).toBeTruthy(); + }); + + it("work[].position - invalid", () => { + expect(validate(fixtures.positionInvalid)).toBeFalsy(); + }); + + it("work[].url - valid", () => { + expect(validate(fixtures.urlValid)).toBeTruthy(); + }); + + it("work[].url - invalid", () => { + expect(validate(fixtures.urlInvalid)).toBeFalsy(); + }); + + it("work[].startDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.startDateValid)).toBeTruthy(); + }); + + it("work[].startDate - invalid", () => { + expect(validate(fixtures.startDateInvalid)).toBeFalsy(); + }); + + it("work[].endDate - valid [YYYY-MM-DD]", () => { + expect(validate(fixtures.endDateValid)).toBeTruthy(); + }); + + it("work[].endDate - invalid", () => { + expect(validate(fixtures.endDateInvalid)).toBeFalsy(); + }); + + it("work[].summary - valid", () => { + expect(validate(fixtures.summaryValid)).toBeTruthy(); + }); + + it("work[].summary - invalid", () => { + expect(validate(fixtures.summaryInvalid)).toBeFalsy(); + }); + + it("work[].highlights - invalid", () => { + expect(validate(fixtures.highlightsEmptyInvalid)).toBeFalsy(); + }); + + it("work[].highlights - invalid", () => { + expect(validate(fixtures.highlightsInvalid)).toBeFalsy(); + }); + + it("work[].highlights[item] - valid", () => { + expect(validate(fixtures.highlightsItemValid)).toBeTruthy(); + }); + + it("work[].highlights[item] - invalid", () => { + expect(validate(fixtures.highlightsItemInvalid)).toBeFalsy(); + }); + + it("work[].keywords - invalid", () => { + expect(validate(fixtures.keywordsEmptyInvalid)).toBeFalsy(); + }); + + it("work[].keywords - invalid", () => { + expect(validate(fixtures.keywordsInvalid)).toBeFalsy(); + }); + + it("work[].keywords[item] - valid", () => { + expect(validate(fixtures.keywordsItemValid)).toBeTruthy(); + }); + + it("work[].keywords[item] - invalid", () => { + expect(validate(fixtures.keywordsItemInvalid)).toBeFalsy(); + }); +}); diff --git a/commitlint.config.cjs b/commitlint.config.cjs new file mode 100644 index 00000000..1dfaf56b --- /dev/null +++ b/commitlint.config.cjs @@ -0,0 +1,4 @@ +module.exports = { + extends: ["@commitlint/config-conventional"], +}; + diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 51f869c0..00000000 --- a/package-lock.json +++ /dev/null @@ -1,930 +0,0 @@ -{ - "name": "resume-schema", - "version": "0.1.3", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ajv-cli/-/ajv-cli-3.1.0.tgz", - "integrity": "sha512-QSHstRjJin970EspY92Qr8lDGYE9C88AwW7LJYJ/MFhKDsE6I75H2b8WObCeF+2q/1fJiolm0xX7I/VyGmw/JQ==", - "dev": true, - "requires": { - "ajv": "^6.7.0", - "ajv-pack": "^0.3.0", - "fast-json-patch": "^2.0.0", - "glob": "^7.1.0", - "json-schema-migrate": "^0.2.0", - "minimist": "^1.2.0" - } - }, - "ajv-pack": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/ajv-pack/-/ajv-pack-0.3.1.tgz", - "integrity": "sha1-tyxNQhnjko5ihC10Le2Tv1B5ZWA=", - "dev": true, - "requires": { - "js-beautify": "^1.6.4", - "require-from-string": "^1.2.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - } - }, - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "fast-json-patch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.2.1.tgz", - "integrity": "sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1" - }, - "dependencies": { - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "js-beautify": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz", - "integrity": "sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==", - "dev": true, - "requires": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "mkdirp": "~1.0.3", - "nopt": "^4.0.3" - } - }, - "json-metaschema": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/json-metaschema/-/json-metaschema-1.3.0.tgz", - "integrity": "sha512-FMDPEZQzqIVOQZ3OxzWryI28W6IZ9QKLcHObO9bS+SJrwnV3xQD0QtnhtgSpIZd8Xuy0xBqeRA74vfTnpK4eVg==", - "dev": true - }, - "json-schema-migrate": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json-schema-migrate/-/json-schema-migrate-0.2.0.tgz", - "integrity": "sha1-ukelsAcvxyOWRg4b1gtE1SF4u8Y=", - "dev": true, - "requires": { - "ajv": "^5.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - } - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "parse-ms": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "plur": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", - "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=", - "dev": true - }, - "pretty-ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", - "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=", - "dev": true, - "requires": { - "is-finite": "^1.0.1", - "parse-ms": "^1.0.0", - "plur": "^1.0.0" - } - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "re-emitter": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/re-emitter/-/re-emitter-1.1.3.tgz", - "integrity": "sha1-+p4xn/3u6zWycpbvDz03TawvUqc=", - "dev": true - }, - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "dev": true, - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "dev": true, - "requires": { - "through": "~2.3.4" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "split": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", - "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", - "dev": true, - "requires": { - "through": "2" - } - }, - "string.prototype.trim": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz", - "integrity": "sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "tap-out": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tap-out/-/tap-out-2.1.0.tgz", - "integrity": "sha512-LJE+TBoVbOWhwdz4+FQk40nmbIuxJLqaGvj3WauQw3NYYU5TdjoV3C0x/yq37YAvVyi+oeBXmWnxWSjJ7IEyUw==", - "dev": true, - "requires": { - "re-emitter": "1.1.3", - "readable-stream": "2.2.9", - "split": "1.0.0", - "trim": "0.0.1" - } - }, - "tap-spec": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tap-spec/-/tap-spec-5.0.0.tgz", - "integrity": "sha512-zMDVJiE5I6Y4XGjlueGXJIX2YIkbDN44broZlnypT38Hj/czfOXrszHNNJBF/DXR8n+x6gbfSx68x04kIEHdrw==", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "duplexer": "^0.1.1", - "figures": "^1.4.0", - "lodash": "^4.17.10", - "pretty-ms": "^2.1.0", - "repeat-string": "^1.5.2", - "tap-out": "^2.1.0", - "through2": "^2.0.0" - } - }, - "tape": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.2.tgz", - "integrity": "sha512-waWwC/OqYVE9TS6r1IynlP2sEdk4Lfo6jazlgkuNkPTHIbuG2BTABIaKdlQWwPeB6Oo4ksZ1j33Yt0NTOAlYMQ==", - "dev": true, - "requires": { - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.6", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.0.5", - "minimist": "~1.2.0", - "object-inspect": "~1.7.0", - "resolve": "~1.15.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.1", - "through": "~2.3.8" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "validator": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz", - "integrity": "sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "z-schema": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-4.2.2.tgz", - "integrity": "sha512-7bGR7LohxSdlK1EOdvA/OHksvKGE4jTLSjd8dBj9YKT0S43N9pdMZ0Z7GZt9mHrBFhbNTRh3Ky6Eu2MHsPJe8g==", - "requires": { - "commander": "^2.7.1", - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^11.0.0" - } - } - } -} diff --git a/package.json b/package.json index c460d0c1..d40114e8 100644 --- a/package.json +++ b/package.json @@ -1,38 +1,82 @@ { - "name": "resume-schema", - "version": "0.1.3", - "description": "JSON Resume Schema", - "main": "validator.js", - "scripts": { - "test": "npm run validate && npm run test-units", - "validate": "ajv validate -s node_modules/json-metaschema/draft-07-schema -d schema", - "test-units": "tape **/*.spec.js | tap-spec", - "preversion": "npm test", - "postversion": "git push --follow-tags" - }, - "repository": { - "type": "git", - "url": "git://github.com/jsonresume/resume-schema.git" - }, - "license": "BSD-2-Clause", - "bugs": { - "url": "https://github.com/jsonresume/resume-schema/issues" - }, - "files": [ - "sample.resume.json", - "schema.json", - "validator.js" - ], - "dependencies": { - "z-schema": "^4.2.2" - }, - "devDependencies": { - "ajv-cli": "^3.1.0", - "json-metaschema": "^1.3.0", - "tap-spec": "^5.0.0", - "tape": "^4.13.2" - }, - "engines": { - "node": ">=10" - } + "name": "@anolilab/resume-schema", + "version": "1.0.0", + "description": "JSON Resume Schema", + "keywords": [ + "resume-schema", + "resume", + "json-schema" + ], + "homepage": "https://anolilab.com/nodejs/packages/anolilab/resume-schema", + "bugs": { + "url": "https://github.com/anolilab/resume-schema/issues" + }, + "repository": { + "type": "git", + "url": "git://github.com/anolilab/resume-schema.git" + }, + "license": "MIT", + "sideEffects": false, + "exports": { + "./package.json": "./package.json", + "./schema.json": "./schema.json" + }, + "main": "schema.json", + "types": "types.d.ts", + "files": [ + "sample.resume.json", + "schema.json", + "types.d.ts", + "README.md", + "CHANGELOG.md", + "LICENSE.md" + ], + "scripts": { + "clean": "rm -rf node_modules && rm -rf dist", + "commit": "cz", + "generate:types": "node ./scripts/build.js", + "preinstall": "node verify-node-version.cjs && pnpx only-allow pnpm", + "lint:eslint": "cross-env NO_LOGS=true eslint . --ext js,jsx,ts,tsx --max-warnings=0 --config .eslintrc.cjs --cache --cache-strategy content .", + "lint:eslint:fix": "pnpm run lint:eslint --fix", + "lint:prettier:fix": "prettier --config=.prettierrc.cjs --write '**/*.{js,jsx,tsx,ts,less,md,json}'", + "lint:text": "textlint ./.github/ISSUE_TEMPLATE/** ./README.md ./UPGRADE.md --parallel --experimental --dry-run", + "lint:text:fix": "textlint ./.github/ISSUE_TEMPLATE/** ./README.md ./UPGRADE.md --parallel --experimental --fix", + "prepare": "is-ci || husky install", + "test": "vitest" + }, + "devDependencies": { + "@anolilab/eslint-config": "^4.0.7", + "@anolilab/prettier-config": "^3.0.1", + "@anolilab/semantic-release-preset": "^2.0.4", + "@anolilab/textlint-config": "^4.0.3", + "@commitlint/cli": "^16.1.0", + "@commitlint/config-conventional": "^16.0.0", + "@typescript-eslint/eslint-plugin": "^5.26.0", + "@typescript-eslint/parser": "^5.26.0", + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "c8": "^7.11.3", + "commitizen": "^4.2.4", + "cross-env": "^7.0.3", + "eslint": "^8.16.0", + "eslint-plugin-editorconfig": "^3.2.0", + "eslint-plugin-json": "^3.1.0", + "husky": "^8.0.1", + "is-ci": "^3.0.1", + "json-metaschema": "^1.3.0", + "json-schema-to-typescript": "^10.1.5", + "jsonlint-cli": "^1.0.1", + "lint-staged": "^12.4.2", + "prettier": "^2.6.2", + "semantic-release": "^19.0.2", + "textlint": "^12.1.1", + "typescript": "^4.7.2", + "vitest": "^0.12.9" + }, + "engines": { + "node": ">=16" + }, + "publishConfig": { + "access": "public" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..a3c5082d --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,9531 @@ +lockfileVersion: 5.3 + +specifiers: + '@anolilab/eslint-config': ^4.0.7 + '@anolilab/prettier-config': ^3.0.1 + '@anolilab/semantic-release-preset': ^2.0.4 + '@anolilab/textlint-config': ^4.0.3 + '@commitlint/cli': ^16.1.0 + '@commitlint/config-conventional': ^16.0.0 + '@typescript-eslint/eslint-plugin': ^5.26.0 + '@typescript-eslint/parser': ^5.26.0 + ajv: ^8.11.0 + ajv-formats: ^2.1.1 + c8: ^7.11.3 + commitizen: ^4.2.4 + cross-env: ^7.0.3 + eslint: ^8.16.0 + eslint-plugin-editorconfig: ^3.2.0 + eslint-plugin-json: ^3.1.0 + husky: ^8.0.1 + is-ci: ^3.0.1 + json-metaschema: ^1.3.0 + json-schema-to-typescript: ^10.1.5 + jsonlint-cli: ^1.0.1 + lint-staged: ^12.4.2 + prettier: ^2.6.2 + semantic-release: ^19.0.2 + textlint: ^12.1.1 + typescript: ^4.7.2 + vitest: ^0.12.9 + +devDependencies: + '@anolilab/eslint-config': 4.0.7_eslint@8.16.0+typescript@4.7.2 + '@anolilab/prettier-config': 3.0.1_prettier@2.6.2 + '@anolilab/semantic-release-preset': 2.0.4_semantic-release@19.0.2 + '@anolilab/textlint-config': 4.0.3_textlint@12.1.1 + '@commitlint/cli': 16.3.0 + '@commitlint/config-conventional': 16.2.4 + '@typescript-eslint/eslint-plugin': 5.26.0_3e687f93547efbf7d61b629ca4d69a5c + '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.7.2 + ajv: 8.11.0 + ajv-formats: 2.1.1 + c8: 7.11.3 + commitizen: 4.2.4 + cross-env: 7.0.3 + eslint: 8.16.0 + eslint-plugin-editorconfig: 3.2.0_2eed6b2d74bf34138dc26b4d1808a693 + eslint-plugin-json: 3.1.0 + husky: 8.0.1 + is-ci: 3.0.1 + json-metaschema: 1.3.0 + json-schema-to-typescript: 10.1.5 + jsonlint-cli: 1.0.1 + lint-staged: 12.4.2 + prettier: 2.6.2 + semantic-release: 19.0.2 + textlint: 12.1.1 + typescript: 4.7.2 + vitest: 0.12.9_c8@7.11.3 + +packages: + + /@anolilab/eslint-config/4.0.7_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-fn+p9J1yM3arrOrEp3LB/Uw1cUUqsMX/3cL+8Y13Y/h3WWYC2LipwRjgS8jUym+8TjiaCtVq/5vblZ1tCwzryQ==} + engines: {node: '>=16'} + requiresBuild: true + peerDependencies: + eslint: ^8.15.0 + dependencies: + '@rushstack/eslint-plugin-security': 0.3.0_eslint@8.16.0+typescript@4.7.2 + confusing-browser-globals: 1.0.11 + eslint: 8.16.0 + eslint-import-resolver-node: 0.3.6 + eslint-plugin-compat: 4.0.2_eslint@8.16.0 + eslint-plugin-eslint-comments: 3.2.0_eslint@8.16.0 + eslint-plugin-import: 2.26.0_344a44770e94ca865603797fb8acf8d9 + eslint-plugin-markdown: 2.2.1_eslint@8.16.0 + eslint-plugin-no-loops: 0.3.0_eslint@8.16.0 + eslint-plugin-no-secrets: 0.8.9_eslint@8.16.0 + eslint-plugin-optimize-regex: 1.2.1 + eslint-plugin-promise: 6.0.0_eslint@8.16.0 + eslint-plugin-radar: 0.2.1_eslint@8.16.0 + eslint-plugin-simple-import-sort: 7.0.0_eslint@8.16.0 + eslint-plugin-sort-keys-fix: 1.1.2 + eslint-plugin-unicorn: 42.0.0_eslint@8.16.0 + eslint-plugin-you-dont-need-lodash-underscore: 6.12.0 + eslint-plugin-you-dont-need-momentjs: 1.6.0_eslint@8.16.0 + find-up: 5.0.0 + lodash.has: 4.5.2 + object.assign: 4.1.2 + read-pkg-up: 7.0.1 + semver: 7.3.7 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 5.26.0_3e687f93547efbf7d61b629ca4d69a5c + '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.7.2 + eslint-plugin-babel: 5.3.1_eslint@8.16.0 + eslint-plugin-cypress: 2.12.1_eslint@8.16.0 + eslint-plugin-jest: 26.2.2_60aee4cc4f8870ebf3a3502df9099944 + eslint-plugin-jest-async: 1.0.3 + eslint-plugin-jest-dom: 4.0.2_eslint@8.16.0 + eslint-plugin-jest-formatting: 3.1.0_eslint@8.16.0 + eslint-plugin-jsdoc: 39.3.2_eslint@8.16.0 + eslint-plugin-json: 3.1.0 + eslint-plugin-jsx-a11y: 6.5.1_eslint@8.16.0 + eslint-plugin-mdx: 1.17.0_eslint@8.16.0 + eslint-plugin-node: 11.1.0_eslint@8.16.0 + eslint-plugin-prefer-object-spread: 1.2.1_eslint@8.16.0 + eslint-plugin-react: 7.30.0_eslint@8.16.0 + eslint-plugin-react-hooks: 4.5.0_eslint@8.16.0 + eslint-plugin-react-redux: 4.0.0_eslint@8.16.0 + eslint-plugin-testing-library: 5.5.1_eslint@8.16.0+typescript@4.7.2 + eslint-plugin-typescript-sort-keys: 2.1.0_3e687f93547efbf7d61b629ca4d69a5c + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@anolilab/prettier-config/3.0.1_prettier@2.6.2: + resolution: {integrity: sha512-SqFDjuy6sQduynpVVNz++NwMiMf2flcsHoHiJHVuv6D6+MbjoMP0FAnynfFa4rEJJn9sM8PVwoOWc4LCYMG/Dg==} + engines: {node: '>=16'} + requiresBuild: true + peerDependencies: + prettier: 2.x + dependencies: + prettier: 2.6.2 + dev: true + + /@anolilab/semantic-release-preset/2.0.4_semantic-release@19.0.2: + resolution: {integrity: sha512-DU2hNSEtroY4BLPaqPj/Ty6a1SKj6WUDAtDmwLFzH2m6EtGc3Hmhe1/GZLITrI7TXKIJEsuODl1j+UCckKbHRA==} + engines: {node: '>=16'} + requiresBuild: true + peerDependencies: + semantic-release: ^19.0.2 + dependencies: + '@commitlint/cli': 16.3.0 + '@commitlint/config-conventional': 16.2.4 + '@commitlint/core': 16.3.0 + '@semantic-release/changelog': 6.0.1_semantic-release@19.0.2 + '@semantic-release/commit-analyzer': 9.0.2_semantic-release@19.0.2 + '@semantic-release/exec': 6.0.3_semantic-release@19.0.2 + '@semantic-release/git': 10.0.1_semantic-release@19.0.2 + '@semantic-release/github': 8.0.4_semantic-release@19.0.2 + '@semantic-release/npm': 9.0.1_semantic-release@19.0.2 + '@semantic-release/release-notes-generator': 10.0.3_semantic-release@19.0.2 + commitizen: 4.2.4 + conventional-changelog-conventionalcommits: 4.6.3 + cz-conventional-changelog: 3.3.0 + semantic-release: 19.0.2 + semantic-release-conventional-commits: 3.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - encoding + - supports-color + dev: true + + /@anolilab/textlint-config/4.0.3_textlint@12.1.1: + resolution: {integrity: sha512-kUMP4zfwTsJSfcVAaLfDdvWgAYn1z+u7QLJVXyYzSK6Q2Mst7Q09hT2oUagwYg37d+OgaBAvyaN31qK1hwwPYw==} + engines: {node: '>=16'} + requiresBuild: true + peerDependencies: + textlint: ^12.1.1 + dependencies: + '@textlint-rule/textlint-rule-no-invalid-control-character': 2.0.0 + '@textlint-rule/textlint-rule-no-unmatched-pair': 1.0.8 + '@textlint-rule/textlint-rule-preset-google': 0.1.2_e609ff63bcb807beaf84e2156282686e + '@textlint/ast-node-types': 12.1.1 + '@textlint/types': 12.1.1 + textlint: 12.1.1 + textlint-filter-rule-comments: 1.2.2_textlint@12.1.1 + textlint-rule-abbr-within-parentheses: 1.0.2 + textlint-rule-alex: 3.0.0_e609ff63bcb807beaf84e2156282686e + textlint-rule-apostrophe: 2.0.0 + textlint-rule-common-misspellings: 1.0.1 + textlint-rule-date-weekday-mismatch: 1.0.6 + textlint-rule-diacritics: 1.0.0 + textlint-rule-en-capitalization: 2.0.3_e609ff63bcb807beaf84e2156282686e + textlint-rule-footnote-order: 1.0.3 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + textlint-rule-no-dead-link: 4.8.0_e609ff63bcb807beaf84e2156282686e + textlint-rule-no-empty-section: 1.1.0 + textlint-rule-no-todo: 2.0.1_e609ff63bcb807beaf84e2156282686e + textlint-rule-terminology: 3.0.0_e609ff63bcb807beaf84e2156282686e + textlint-rule-write-good: 2.0.0_e609ff63bcb807beaf84e2156282686e + write-good: 1.0.8 + transitivePeerDependencies: + - encoding + - eslint-plugin-import + - eslint-plugin-jsx-a11y + - eslint-plugin-react + - eslint-plugin-react-hooks + - supports-color + dev: true + + /@apidevtools/json-schema-ref-parser/9.0.9: + resolution: {integrity: sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==} + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.11 + call-me-maybe: 1.0.1 + js-yaml: 4.1.0 + dev: true + + /@azu/format-text/1.0.1: + resolution: {integrity: sha512-fyPhr8C1DHQqq/xC8gIg2jmYTw/SoY+KgtVFs6H+DFhfh4Hr4OSDeQZuK1eGpOjhuckWy9A1Hhq84+uRjoznLQ==} + dev: true + + /@azu/style-format/1.0.0: + resolution: {integrity: sha512-L7iaxNrk0OLsH7kw3yx3KVQTKhc2zeW0D9SLrRCqbTZi3XtvSVmmjqO73kR4EnWbTRZ18mwdAikbFYJ0coZ55Q==} + dependencies: + '@azu/format-text': 1.0.1 + dev: true + + /@babel/code-frame/7.16.7: + resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.17.12 + dev: true + + /@babel/core/7.12.9: + resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helpers': 7.18.2 + '@babel/parser': 7.18.3 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.2 + convert-source-map: 1.8.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + lodash: 4.17.21 + resolve: 1.22.0 + semver: 5.7.1 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /@babel/generator/7.18.2: + resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.2 + '@jridgewell/gen-mapping': 0.3.1 + jsesc: 2.5.2 + dev: true + optional: true + + /@babel/helper-environment-visitor/7.18.2: + resolution: {integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==} + engines: {node: '>=6.9.0'} + dev: true + optional: true + + /@babel/helper-function-name/7.17.9: + resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/types': 7.18.2 + dev: true + optional: true + + /@babel/helper-hoist-variables/7.16.7: + resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.2 + dev: true + optional: true + + /@babel/helper-module-imports/7.16.7: + resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.2 + dev: true + optional: true + + /@babel/helper-module-transforms/7.18.0: + resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-simple-access': 7.18.2 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.2 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /@babel/helper-plugin-utils/7.10.4: + resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} + dev: true + optional: true + + /@babel/helper-plugin-utils/7.17.12: + resolution: {integrity: sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==} + engines: {node: '>=6.9.0'} + dev: true + optional: true + + /@babel/helper-simple-access/7.18.2: + resolution: {integrity: sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.2 + dev: true + optional: true + + /@babel/helper-split-export-declaration/7.16.7: + resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.2 + dev: true + optional: true + + /@babel/helper-validator-identifier/7.16.7: + resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers/7.18.2: + resolution: {integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.2 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /@babel/highlight/7.17.12: + resolution: {integrity: sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.18.3: + resolution: {integrity: sha512-rL50YcEuHbbauAFAysNsJA4/f89fGTOBRNs9P81sniKnKAr4xULe5AecolcsKbi88xu0ByWYDj/S1AJ3FSFuSQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.18.2 + dev: true + optional: true + + /@babel/plugin-proposal-object-rest-spread/7.12.1_@babel+core@7.12.9: + resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.10.4 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.9 + '@babel/plugin-transform-parameters': 7.17.12_@babel+core@7.12.9 + dev: true + optional: true + + /@babel/plugin-syntax-jsx/7.12.1_@babel+core@7.12.9: + resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.10.4 + dev: true + optional: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.9: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.10.4 + dev: true + optional: true + + /@babel/plugin-transform-parameters/7.17.12_@babel+core@7.12.9: + resolution: {integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.17.12 + dev: true + optional: true + + /@babel/runtime-corejs3/7.18.3: + resolution: {integrity: sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==} + engines: {node: '>=6.9.0'} + dependencies: + core-js-pure: 3.22.7 + regenerator-runtime: 0.13.9 + dev: true + optional: true + + /@babel/runtime/7.18.3: + resolution: {integrity: sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.9 + dev: true + optional: true + + /@babel/template/7.16.7: + resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/parser': 7.18.3 + '@babel/types': 7.18.2 + dev: true + optional: true + + /@babel/traverse/7.18.2: + resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/parser': 7.18.3 + '@babel/types': 7.18.2 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /@babel/types/7.18.2: + resolution: {integrity: sha512-0On6B8A4/+mFUto5WERt3EEuG1NznDirvwca1O8UwXQHVY8g3R7OzYgxXdOfMwLO08UrpUD/2+3Bclyq+/C94Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + to-fast-properties: 2.0.0 + dev: true + optional: true + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@colors/colors/1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + /@commitlint/cli/16.3.0: + resolution: {integrity: sha512-P+kvONlfsuTMnxSwWE1H+ZcPMY3STFaHb2kAacsqoIkNx66O0T7sTpBxpxkMrFPyhkJiLJnJWMhk4bbvYD3BMA==} + engines: {node: '>=v12'} + hasBin: true + dependencies: + '@commitlint/format': 16.2.1 + '@commitlint/lint': 16.2.4 + '@commitlint/load': 16.3.0 + '@commitlint/read': 16.2.1 + '@commitlint/types': 16.2.1 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.5.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/config-conventional/16.2.4: + resolution: {integrity: sha512-av2UQJa3CuE5P0dzxj/o/B9XVALqYzEViHrMXtDrW9iuflrqCStWBAioijppj9URyz6ONpohJKAtSdgAOE0gkA==} + engines: {node: '>=v12'} + dependencies: + conventional-changelog-conventionalcommits: 4.6.3 + dev: true + + /@commitlint/config-validator/16.2.1: + resolution: {integrity: sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/types': 16.2.1 + ajv: 6.12.6 + dev: true + + /@commitlint/config-validator/17.0.0: + resolution: {integrity: sha512-78IQjoZWR4kDHp/U5y17euEWzswJpPkA9TDL5F6oZZZaLIEreWzrDZD5PWtM8MsSRl/K2LDU/UrzYju2bKLMpA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + ajv: 6.12.6 + dev: true + optional: true + + /@commitlint/core/16.3.0: + resolution: {integrity: sha512-s7gao+MXWY7QurpBe9GJMrzPtXLEeaya3XR6VUgL9T0bmaMJ8KCywF2FQ1nodcpq5PkT1ayM+KfJOOEXaPm6Lw==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/format': 16.2.1 + '@commitlint/lint': 16.2.4 + '@commitlint/load': 16.3.0 + '@commitlint/read': 16.2.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/ensure/16.2.1: + resolution: {integrity: sha512-/h+lBTgf1r5fhbDNHOViLuej38i3rZqTQnBTk+xEg+ehOwQDXUuissQ5GsYXXqI5uGy+261ew++sT4EA3uBJ+A==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/types': 16.2.1 + lodash: 4.17.21 + dev: true + + /@commitlint/execute-rule/16.2.1: + resolution: {integrity: sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g==} + engines: {node: '>=v12'} + dev: true + + /@commitlint/execute-rule/17.0.0: + resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==} + engines: {node: '>=v14'} + dev: true + optional: true + + /@commitlint/format/16.2.1: + resolution: {integrity: sha512-Yyio9bdHWmNDRlEJrxHKglamIk3d6hC0NkEUW6Ti6ipEh2g0BAhy8Od6t4vLhdZRa1I2n+gY13foy+tUgk0i1Q==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/types': 16.2.1 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored/16.2.4: + resolution: {integrity: sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/types': 16.2.1 + semver: 7.3.7 + dev: true + + /@commitlint/lint/16.2.4: + resolution: {integrity: sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/is-ignored': 16.2.4 + '@commitlint/parse': 16.2.1 + '@commitlint/rules': 16.2.4 + '@commitlint/types': 16.2.1 + dev: true + + /@commitlint/load/16.3.0: + resolution: {integrity: sha512-3tykjV/iwbkv2FU9DG+NZ/JqmP0Nm3b7aDwgCNQhhKV5P74JAuByULkafnhn+zsFGypG1qMtI5u+BZoa9APm0A==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/config-validator': 16.2.1 + '@commitlint/execute-rule': 16.2.1 + '@commitlint/resolve-extends': 16.2.1 + '@commitlint/types': 16.2.1 + '@types/node': 17.0.35 + chalk: 4.1.2 + cosmiconfig: 7.0.1 + cosmiconfig-typescript-loader: 2.0.0_930cf294b789d5d471093937dde83c3c + lodash: 4.17.21 + resolve-from: 5.0.0 + typescript: 4.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/load/17.0.0: + resolution: {integrity: sha512-XaiHF4yWQOPAI0O6wXvk+NYLtJn/Xb7jgZEeKd4C1ZWd7vR7u8z5h0PkWxSr0uLZGQsElGxv3fiZ32C5+q6M8w==} + engines: {node: '>=v14'} + requiresBuild: true + dependencies: + '@commitlint/config-validator': 17.0.0 + '@commitlint/execute-rule': 17.0.0 + '@commitlint/resolve-extends': 17.0.0 + '@commitlint/types': 17.0.0 + '@types/node': 17.0.35 + chalk: 4.1.2 + cosmiconfig: 7.0.1 + cosmiconfig-typescript-loader: 2.0.0_930cf294b789d5d471093937dde83c3c + lodash: 4.17.21 + resolve-from: 5.0.0 + typescript: 4.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + optional: true + + /@commitlint/message/16.2.1: + resolution: {integrity: sha512-2eWX/47rftViYg7a3axYDdrgwKv32mxbycBJT6OQY/MJM7SUfYNYYvbMFOQFaA4xIVZt7t2Alyqslbl6blVwWw==} + engines: {node: '>=v12'} + dev: true + + /@commitlint/parse/16.2.1: + resolution: {integrity: sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/types': 16.2.1 + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + dev: true + + /@commitlint/read/16.2.1: + resolution: {integrity: sha512-tViXGuaxLTrw2r7PiYMQOFA2fueZxnnt0lkOWqKyxT+n2XdEMGYcI9ID5ndJKXnfPGPppD0w/IItKsIXlZ+alw==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/top-level': 16.2.1 + '@commitlint/types': 16.2.1 + fs-extra: 10.1.0 + git-raw-commits: 2.0.11 + dev: true + + /@commitlint/resolve-extends/16.2.1: + resolution: {integrity: sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/config-validator': 16.2.1 + '@commitlint/types': 16.2.1 + import-fresh: 3.3.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/resolve-extends/17.0.0: + resolution: {integrity: sha512-wi60WiJmwaQ7lzMXK8Vbc18Hq9tE2j/6iv2AFfPUGV7fvfY6Sf1iNKuUHirSqR0fquUyufIXe4y/K9A6LVIIvw==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.0.0 + '@commitlint/types': 17.0.0 + import-fresh: 3.3.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + optional: true + + /@commitlint/rules/16.2.4: + resolution: {integrity: sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg==} + engines: {node: '>=v12'} + dependencies: + '@commitlint/ensure': 16.2.1 + '@commitlint/message': 16.2.1 + '@commitlint/to-lines': 16.2.1 + '@commitlint/types': 16.2.1 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines/16.2.1: + resolution: {integrity: sha512-9/VjpYj5j1QeY3eiog1zQWY6axsdWAc0AonUUfyZ7B0MVcRI0R56YsHAfzF6uK/g/WwPZaoe4Lb1QCyDVnpVaQ==} + engines: {node: '>=v12'} + dev: true + + /@commitlint/top-level/16.2.1: + resolution: {integrity: sha512-lS6GSieHW9y6ePL73ied71Z9bOKyK+Ib9hTkRsB8oZFAyQZcyRwq2w6nIa6Fngir1QW51oKzzaXfJL94qwImyw==} + engines: {node: '>=v12'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types/16.2.1: + resolution: {integrity: sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==} + engines: {node: '>=v12'} + dependencies: + chalk: 4.1.2 + dev: true + + /@commitlint/types/17.0.0: + resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==} + engines: {node: '>=v14'} + dependencies: + chalk: 4.1.2 + dev: true + optional: true + + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@es-joy/jsdoccomment/0.31.0: + resolution: {integrity: sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==} + engines: {node: ^14 || ^16 || ^17 || ^18} + dependencies: + comment-parser: 1.3.1 + esquery: 1.4.0 + jsdoc-type-pratt-parser: 3.1.0 + dev: true + optional: true + + /@eslint/eslintrc/1.3.0: + resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.3.2 + globals: 13.15.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array/0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jridgewell/gen-mapping/0.3.1: + resolution: {integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.1 + '@jridgewell/sourcemap-codec': 1.4.13 + '@jridgewell/trace-mapping': 0.3.13 + dev: true + optional: true + + /@jridgewell/resolve-uri/3.0.7: + resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.1: + resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} + engines: {node: '>=6.0.0'} + dev: true + optional: true + + /@jridgewell/sourcemap-codec/1.4.13: + resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} + dev: true + + /@jridgewell/trace-mapping/0.3.13: + resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} + dependencies: + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: true + + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: true + + /@jsdevtools/ono/7.1.3: + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + dev: true + + /@mdn/browser-compat-data/3.3.14: + resolution: {integrity: sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==} + dev: true + + /@mdn/browser-compat-data/4.2.1: + resolution: {integrity: sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==} + dev: true + + /@mdx-js/util/1.6.22: + resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} + dev: true + optional: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@octokit/auth-token/2.5.0: + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + dependencies: + '@octokit/types': 6.34.0 + dev: true + + /@octokit/core/3.6.0: + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + dependencies: + '@octokit/auth-token': 2.5.0 + '@octokit/graphql': 4.8.0 + '@octokit/request': 5.6.3 + '@octokit/request-error': 2.1.0 + '@octokit/types': 6.34.0 + before-after-hook: 2.2.2 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/endpoint/6.0.12: + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + dependencies: + '@octokit/types': 6.34.0 + is-plain-object: 5.0.0 + universal-user-agent: 6.0.0 + dev: true + + /@octokit/graphql/4.8.0: + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + dependencies: + '@octokit/request': 5.6.3 + '@octokit/types': 6.34.0 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/openapi-types/11.2.0: + resolution: {integrity: sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==} + dev: true + + /@octokit/plugin-paginate-rest/2.17.0_@octokit+core@3.6.0: + resolution: {integrity: sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==} + peerDependencies: + '@octokit/core': '>=2' + dependencies: + '@octokit/core': 3.6.0 + '@octokit/types': 6.34.0 + dev: true + + /@octokit/plugin-request-log/1.0.4_@octokit+core@3.6.0: + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 3.6.0 + dev: true + + /@octokit/plugin-rest-endpoint-methods/5.13.0_@octokit+core@3.6.0: + resolution: {integrity: sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 3.6.0 + '@octokit/types': 6.34.0 + deprecation: 2.3.1 + dev: true + + /@octokit/request-error/2.1.0: + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + dependencies: + '@octokit/types': 6.34.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: true + + /@octokit/request/5.6.3: + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + dependencies: + '@octokit/endpoint': 6.0.12 + '@octokit/request-error': 2.1.0 + '@octokit/types': 6.34.0 + is-plain-object: 5.0.0 + node-fetch: 2.6.7 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/rest/18.12.0: + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + dependencies: + '@octokit/core': 3.6.0 + '@octokit/plugin-paginate-rest': 2.17.0_@octokit+core@3.6.0 + '@octokit/plugin-request-log': 1.0.4_@octokit+core@3.6.0 + '@octokit/plugin-rest-endpoint-methods': 5.13.0_@octokit+core@3.6.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/types/6.34.0: + resolution: {integrity: sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==} + dependencies: + '@octokit/openapi-types': 11.2.0 + dev: true + + /@rushstack/eslint-plugin-security/0.3.0_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-l5BgfHsrZtU6IjC5wAQhNP/7NkCaTohiO3cwDztqgXnLDJUa/hBRD180tInRdOwRfZrd4pvRZ29MCohOh5wf3g==} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@rushstack/tree-pattern': 0.2.3 + '@typescript-eslint/experimental-utils': 5.20.0_eslint@8.16.0+typescript@4.7.2 + eslint: 8.16.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@rushstack/tree-pattern/0.2.3: + resolution: {integrity: sha512-8KWZxzn6XKuy3iKRSAd2CHXSXneRlGCmH9h/qM7jYQDekp+U18oUzub5xqOqHS2PLUC+torOMYZxgAIO/fF86A==} + dev: true + + /@semantic-release/changelog/6.0.1_semantic-release@19.0.2: + resolution: {integrity: sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + fs-extra: 9.1.0 + lodash: 4.17.21 + semantic-release: 19.0.2 + dev: true + + /@semantic-release/commit-analyzer/9.0.2_semantic-release@19.0.2: + resolution: {integrity: sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0-beta.1' + dependencies: + conventional-changelog-angular: 5.0.13 + conventional-commits-filter: 2.0.7 + conventional-commits-parser: 3.2.4 + debug: 4.3.4 + import-from: 4.0.0 + lodash: 4.17.21 + micromatch: 4.0.5 + semantic-release: 19.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@semantic-release/error/2.2.0: + resolution: {integrity: sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==} + dev: true + + /@semantic-release/error/3.0.0: + resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} + engines: {node: '>=14.17'} + dev: true + + /@semantic-release/exec/6.0.3_semantic-release@19.0.2: + resolution: {integrity: sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + debug: 4.3.4 + execa: 5.1.1 + lodash: 4.17.21 + parse-json: 5.2.0 + semantic-release: 19.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@semantic-release/git/10.0.1_semantic-release@19.0.2: + resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + debug: 4.3.4 + dir-glob: 3.0.1 + execa: 5.1.1 + lodash: 4.17.21 + micromatch: 4.0.5 + p-reduce: 2.1.0 + semantic-release: 19.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@semantic-release/github/8.0.4_semantic-release@19.0.2: + resolution: {integrity: sha512-But4e8oqqP3anZI5tjzZssZc2J6eoUdeeE0s7LVKKwyiAXJiQDWNNvtPOpgG2DsIz4+Exuse7cEQgjGMxwtLmg==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0-beta.1' + dependencies: + '@octokit/rest': 18.12.0 + '@semantic-release/error': 2.2.0 + aggregate-error: 3.1.0 + bottleneck: 2.19.5 + debug: 4.3.4 + dir-glob: 3.0.1 + fs-extra: 10.1.0 + globby: 11.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + issue-parser: 6.0.0 + lodash: 4.17.21 + mime: 3.0.0 + p-filter: 2.1.0 + p-retry: 4.6.2 + semantic-release: 19.0.2 + url-join: 4.0.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@semantic-release/npm/9.0.1_semantic-release@19.0.2: + resolution: {integrity: sha512-I5nVZklxBzfMFwemhRNbSrkiN/dsH3c7K9+KSk6jUnq0rdLFUuJt7EBsysq4Ir3moajQgFkfEryEHPqiKJj20g==} + engines: {node: '>=16 || ^14.17'} + peerDependencies: + semantic-release: '>=19.0.0' + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + execa: 5.1.1 + fs-extra: 10.1.0 + lodash: 4.17.21 + nerf-dart: 1.0.0 + normalize-url: 6.1.0 + npm: 8.11.0 + rc: 1.2.8 + read-pkg: 5.2.0 + registry-auth-token: 4.2.1 + semantic-release: 19.0.2 + semver: 7.3.7 + tempy: 1.0.1 + dev: true + + /@semantic-release/release-notes-generator/10.0.3_semantic-release@19.0.2: + resolution: {integrity: sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0-beta.1' + dependencies: + conventional-changelog-angular: 5.0.13 + conventional-changelog-writer: 5.0.1 + conventional-commits-filter: 2.0.7 + conventional-commits-parser: 3.2.4 + debug: 4.3.4 + get-stream: 6.0.1 + import-from: 4.0.0 + into-stream: 6.0.0 + lodash: 4.17.21 + read-pkg-up: 7.0.1 + semantic-release: 19.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@sindresorhus/is/0.14.0: + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} + dev: true + + /@szmarczak/http-timer/1.1.2: + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + dependencies: + defer-to-connect: 1.1.3 + dev: true + + /@testing-library/dom/8.13.0: + resolution: {integrity: sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==} + engines: {node: '>=12'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/runtime': 7.18.3 + '@types/aria-query': 4.2.2 + aria-query: 5.0.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.14 + lz-string: 1.4.4 + pretty-format: 27.5.1 + dev: true + optional: true + + /@textlint-rule/textlint-report-helper-for-google-preset/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-FsJXxngIT1PPLj+0aAq/yYFhXQOjDxRtbZVamotTw6K7nvUOeNPcGc5e20FF6gbq1x2fKpLvbMntmL262UXb+g==} + dependencies: + '@textlint/ast-node-types': 4.4.3 + en-lexicon: 1.0.11 + en-pos: 1.0.16 + match-test-replace: 1.4.0 + nlcst-parse-english: 1.4.0 + nlcst-to-string: 2.0.4 + textlint-rule-helper: 2.2.1_88a4e05ec942106e1ba548ae330969ca + textlint-util-to-string: 2.1.1 + unist-util-find: 1.0.2 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-abbreviations/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-/SonK3Bbi11ZDvUO6Ji9R07UKVk00t01sgisZT+R2PGvPjGjOmvCa9kjhq9bBnNZhbVnHnI4dHiUiQn3Mvuetw==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-articles/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-bhQgZTfBkrcK1sqmlujwwGMIqx28HdU1NpYcKv15NJ1MaRzUalXNzzs5Xnj/Y7govbg4lIiXBf1E0/5+DI234w==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + english-article-classifier: 1.0.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-capitalization/0.1.2_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-y6Gj+7Vh5eKJ/a0u9BbH7Q43DJYqne75AA0J6vfHt41k449Y3yasAkib4Lfqji786WRvbVmNt7wjZ+v6k+MQEQ==} + dependencies: + textlint-rule-en-capitalization: 2.0.3_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-clause-order/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-aT+wLXfWnzX6PFMDy5aSlS+biYC5BwfYcVR6BkB+MewhIBy51RLFKiTbFXo+gsknI96o+wMT0ux3peyWhcIRJg==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-colons/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-RbyPwxzLojSUhoUxLYr6ENOigLoXrxByenOYnhObGsQbCWuOrRuwINrR3lKKPXX27z0LXRcJkZ3t8cJWPYKCEA==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-commas/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-SoeJsyEE2yU3fQUpIstcna4WPBK8r2oI0wttdvP2GqtA8tgj1tg5H0KICoCpSotVScSq5tMq8I2vzpms5uKIhw==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-contractions/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-0Ku5DpfotaMSNs43e8lylBt1aInFV4LVdGW2QLRpNkduHhqKvTWF6zy326WpdXbgdiuYlWW213G94c22dqil4w==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-dashes/0.1.2_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-2G0F/2few1vlYPSiCzkTxaBMCs6TdWei6F0uH6dTFTaB6DLFMHOinTF8ZJfyU7NE+KTqdFMbd8FfcgSk9Awi9g==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-ellipses/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-DNwp5Z/LL9ebapvnhwBMVsoubMSgrZ6+PjA5DqMUMSpIProUeaf+IbvGFlYY8M3dqi3RTR/915y5U0wb8wKfhQ==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-exclamation-points/0.1.2_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-CgGaSeyL9oyigNxfr3/t+/X4LwF4hWoRZJII7LtQd/ujDzoQ29XqeL2m9SKSpM8LXySSkUnqNcNPWuUjJ01nDA==} + dependencies: + textlint-rule-no-exclamation-question-mark: 1.1.0_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-hyphens/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-K0VRQYbfLUh9/WoqQYlWOTo2eJZz8JlnBh/tvTjpbz2OYiowkXx9Z3oMPiuNLjhP+P9eB1swDqu99SB4+d4sHA==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-plurals-parentheses/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-aYAfklXfN6wyHYh2IkZd2BETFVPhczjGbcW18SS41OGOlluOBt5opQmzCuqKSs493nM7IjGdCcsbmWDgSSzYyA==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-possessives/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-PakavIzVv2NclOjC72+W5uxVjT8QgoS5XaarBnTFQmMWp6Zqqkv25kE7GYp+YJIZC6ie2F8/3wR98prm3TcXyw==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-quotation-marks/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-ywkVwPDKclbS3x2u3iBXZ2oYSQO5XZ71N6KoQR6TCnjoMtgQAg2RhnAOVTjEFmGvBeqnOjQzZBiE7E4/ME21Fw==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-sentence-spacing/0.1.2_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-rbZjMf7AGlzrOfVPuY30zEIvX9wkrUqegqx/IZobSyPXDAZsgWSeVbKATtoXionv/3sfR3PEEWFRbk+KvP5fkQ==} + dependencies: + sentence-splitter: 2.3.2 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + textlint-util-to-string: 2.1.1 + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-slashes/0.1.2_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-Bn1fuFPuTwYeSv/MtO2aFgLc+AF6D2wg191dIlMZSWWrf1E4ue3ncmRoDFq5YfsaeXzdB4BU2+LmnxdoRUjAbA==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-tone/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-XSN0OkkN4Vn+6/VFI/SPHweG29mbNJiWPh78a8lk04gyZyMJVhnyW8NoLTCE6jJavxFlUmsawFFm5AujPDsM7A==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-google-word-list/0.1.2_@textlint+types@12.1.1: + resolution: {integrity: sha512-TEcCBBWLAvMlFmxEjax5Jvo7dZTha6eFBiN412w0FU1hElz2GNGXuQpLvLezbwFAroumdyUXy0cT4I3VJZkU4A==} + dependencies: + '@textlint-rule/textlint-report-helper-for-google-preset': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/types' + dev: true + + /@textlint-rule/textlint-rule-no-invalid-control-character/2.0.0: + resolution: {integrity: sha512-EmTC9mrmI5tm9AS+/jv46CzQVycdPjAvH5sk0DjjYCXYNv2oTWk+7naAyKJ3kKQlLzG4KHmX/JDHerVF2T6S2Q==} + dependencies: + execall: 1.0.0 + dev: true + + /@textlint-rule/textlint-rule-no-unmatched-pair/1.0.8: + resolution: {integrity: sha512-C+ejNcHFKWGQ9aoMnk7jL815iUXg4soIdK/gpN2wJWiwbtThw6mglIhvI+5qkFoUNCYjmWZbN0I3F4YUgoAHaw==} + dependencies: + sentence-splitter: 3.2.2 + textlint-rule-helper: 2.0.1 + dev: true + + /@textlint-rule/textlint-rule-preset-google/0.1.2_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-Q4G4HsLmue1XPK2F7AmIMVf1L5URv8vLs8Yx7Qm3sBBQoy+hhMSVCjJMzSwJpD9oWRWuLSReBlBtdRFArFXlVA==} + dependencies: + '@textlint-rule/textlint-rule-google-abbreviations': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-articles': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-capitalization': 0.1.2_e609ff63bcb807beaf84e2156282686e + '@textlint-rule/textlint-rule-google-clause-order': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-colons': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-commas': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-contractions': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-dashes': 0.1.2_e609ff63bcb807beaf84e2156282686e + '@textlint-rule/textlint-rule-google-ellipses': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-exclamation-points': 0.1.2_e609ff63bcb807beaf84e2156282686e + '@textlint-rule/textlint-rule-google-hyphens': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-plurals-parentheses': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-possessives': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-quotation-marks': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-sentence-spacing': 0.1.2_e609ff63bcb807beaf84e2156282686e + '@textlint-rule/textlint-rule-google-slashes': 0.1.2_e609ff63bcb807beaf84e2156282686e + '@textlint-rule/textlint-rule-google-tone': 0.1.2_@textlint+types@12.1.1 + '@textlint-rule/textlint-rule-google-word-list': 0.1.2_@textlint+types@12.1.1 + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /@textlint/ast-node-types/12.1.1: + resolution: {integrity: sha512-5/XK9S1177UYetOY6407o1RDuNVndaYfuzsZwhmo52V367s4ZuUD2064WhbmCd6TPyKD4dVr2zoWjfNDfzUZQg==} + dev: true + + /@textlint/ast-node-types/4.4.3: + resolution: {integrity: sha512-qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==} + dev: true + + /@textlint/ast-tester/12.1.1: + resolution: {integrity: sha512-lPbpp9qZ/Me852OzWWOSwqbYa9clziRRRfX6qeRqJOuuc8qNOzvP2vC7quvQPSNcGpnDse2bNwePgxtWhWb5fQ==} + dependencies: + '@textlint/ast-node-types': 12.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@textlint/ast-traverse/12.1.1: + resolution: {integrity: sha512-/hiESq9fwR+4X4U7VfkjhUtuIRuJwnJZpgA+WiSpIwK4Ps60WhB1VBxecyxgNmj3s3EsJn95nCCJntgpa3qQcA==} + dependencies: + '@textlint/ast-node-types': 12.1.1 + dev: true + + /@textlint/feature-flag/12.1.1: + resolution: {integrity: sha512-NykyIJ7UCs3R1tjThAS6upScmZdia0N/prOT7j1HpMbn1QK61Kqz7M3KZb0T/nhko6jwfN0d3aNP3oMCb4Vyxg==} + dev: true + + /@textlint/fixer-formatter/12.1.1: + resolution: {integrity: sha512-9+f3WG1raKqY+ynS1JS/ESLNgUaKK1gIgK9ENESvrJA0zfg5I774LjjJ65catrorTdv+HHDG40aiD67Pmxdk9A==} + dependencies: + '@textlint/module-interop': 12.1.1 + '@textlint/types': 12.1.1 + chalk: 4.1.2 + debug: 4.3.4 + diff: 4.0.2 + is-file: 1.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + try-resolve: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@textlint/kernel/12.1.1: + resolution: {integrity: sha512-5f/miUMLBLUhBy0sJeLVs+34O3GaYyG7hAuTQG9p0ERUnXdJIGtoYU5O0Sfm+xWXPUOeQadK6E7IR+7fsX4Hhw==} + dependencies: + '@textlint/ast-node-types': 12.1.1 + '@textlint/ast-tester': 12.1.1 + '@textlint/ast-traverse': 12.1.1 + '@textlint/feature-flag': 12.1.1 + '@textlint/source-code-fixer': 12.1.1 + '@textlint/types': 12.1.1 + '@textlint/utils': 12.1.1 + debug: 4.3.4 + deep-equal: 1.1.1 + structured-source: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@textlint/linter-formatter/12.1.1: + resolution: {integrity: sha512-yE4g+OA+jVqEpF5NayuFoH4l3vvXPT3+gGD9TYhkjBUGmIZ0n4sMzOtmb9R+McujvENwk+7jTZ0pfHtZtpVSHQ==} + dependencies: + '@azu/format-text': 1.0.1 + '@azu/style-format': 1.0.0 + '@textlint/module-interop': 12.1.1 + '@textlint/types': 12.1.1 + chalk: 4.1.2 + debug: 4.3.4 + is-file: 1.0.0 + js-yaml: 3.14.1 + optionator: 0.9.1 + pluralize: 2.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + table: 6.8.0 + text-table: 0.2.0 + try-resolve: 1.0.1 + xml-escape: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@textlint/markdown-to-ast/12.1.1: + resolution: {integrity: sha512-TmqFyNqi68YpkqKabrkMlPzeSJMfY/+Wsv1/r43uDFgSYyM9GiD0eIpP12uKyL8xLW+rgfbqXxeFwSo26Conqw==} + dependencies: + '@textlint/ast-node-types': 12.1.1 + debug: 4.3.4 + remark-footnotes: 3.0.0 + remark-frontmatter: 3.0.0 + remark-gfm: 1.0.0 + remark-parse: 9.0.0 + traverse: 0.6.6 + unified: 9.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@textlint/module-interop/12.1.1: + resolution: {integrity: sha512-SiF2NVMFny7OdZ3I+qclJXkuPLOylJVd+v3mPGF8Ri5yuDgOKrbqNyHFzz/Sn2AS0ZsIf04/pGNBQhB+fJOBRQ==} + dev: true + + /@textlint/regexp-string-matcher/1.1.1: + resolution: {integrity: sha512-rrNUCKGKYBrZALotSF8D5A8xD05VHX6kxv0BP805Ig2M73Ha6LK+de31+ZocGm4CO+sikVFYyMCPPJhp7bCXcw==} + dependencies: + escape-string-regexp: 2.0.0 + execall: 2.0.0 + lodash.sortby: 4.7.0 + lodash.uniq: 4.5.0 + lodash.uniqwith: 4.5.0 + to-regex: 3.0.2 + dev: true + + /@textlint/source-code-fixer/12.1.1: + resolution: {integrity: sha512-+p7NE5W2Ie+a5dSXGG0onDrqQM9Quj9t9zQruqxN3Qm7F8JD3qBTx9XNZkzQKlnGtrN4x6FUp5wwH/X4BhHh1A==} + dependencies: + '@textlint/types': 12.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@textlint/text-to-ast/12.1.1: + resolution: {integrity: sha512-L+Wf6omQ9u/A+H8kr8Dv1bKQ7j5TeBJX7ShdZz+z0T3oOPDrpCHID6N/NbzuM+a1Q9s9UAG5gkqiROHNjXqUug==} + dependencies: + '@textlint/ast-node-types': 12.1.1 + dev: true + + /@textlint/textlint-plugin-markdown/12.1.1: + resolution: {integrity: sha512-gzQ205ClqECTblIdkpFkWL6M4nxr5oMON/jU6xbRdZ/Shy+OHLY7fP3R2L2RmAmMSE7C6ZWK5Lk7k9XaaUpgVA==} + dependencies: + '@textlint/markdown-to-ast': 12.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@textlint/textlint-plugin-text/12.1.1: + resolution: {integrity: sha512-U3WFM2fPy0ifC9lVW0GXjF5h1Dquit3rLO6UisC9UF75Ic6JjelcypjHwpp1trx0/t5FXp+94R5uJEpM360A0g==} + dependencies: + '@textlint/text-to-ast': 12.1.1 + dev: true + + /@textlint/types/12.1.1: + resolution: {integrity: sha512-s0TjnEwEwp3fa8yEhEH8w/lFpih15wtQy2CYaKx0eMScl1bSh+0e8WhiGZaTiiJXAGwNCw6erxB0reBScdU/hA==} + dependencies: + '@textlint/ast-node-types': 12.1.1 + dev: true + + /@textlint/utils/12.1.1: + resolution: {integrity: sha512-ENAm6ro+OAh6XZZSeZIJQCrY07IHWB7DGM6SwtKEfxcA9joF1uS/sLPqKmcW9fyvLvMnloVUsfVlaoNsLJXDKA==} + dev: true + + /@tootallnate/once/2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@tsconfig/node10/1.0.8: + resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} + dev: true + + /@tsconfig/node12/1.0.9: + resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} + dev: true + + /@tsconfig/node14/1.0.1: + resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} + dev: true + + /@tsconfig/node16/1.0.2: + resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} + dev: true + + /@types/aria-query/4.2.2: + resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} + dev: true + optional: true + + /@types/chai-subset/1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.1 + dev: true + + /@types/chai/4.3.1: + resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==} + dev: true + + /@types/glob/7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 3.0.5 + '@types/node': 17.0.35 + dev: true + + /@types/hast/2.3.4: + resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/json5/0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/keyv/3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 17.0.35 + dev: true + + /@types/lodash/4.14.182: + resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} + dev: true + + /@types/mdast/3.0.10: + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /@types/minimatch/3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + dev: true + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node/17.0.35: + resolution: {integrity: sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /@types/parse5/5.0.3: + resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} + dev: true + + /@types/prettier/2.6.1: + resolution: {integrity: sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw==} + dev: true + + /@types/responselike/1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 17.0.35 + dev: true + + /@types/retry/0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true + + /@typescript-eslint/eslint-plugin/5.26.0_3e687f93547efbf7d61b629ca4d69a5c: + resolution: {integrity: sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.7.2 + '@typescript-eslint/scope-manager': 5.26.0 + '@typescript-eslint/type-utils': 5.26.0_eslint@8.16.0+typescript@4.7.2 + '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.7.2 + debug: 4.3.4 + eslint: 8.16.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.2 + typescript: 4.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils/5.20.0_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-w5qtx2Wr9x13Dp/3ic9iGOGmVXK5gMwyc8rwVgZU46K9WTjPZSyPvdER9Ycy+B5lNHvoz+z2muWhUvlTpQeu+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.20.0_eslint@8.16.0+typescript@4.7.2 + eslint: 8.16.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/experimental-utils/5.26.0_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-OgUGXC/teXD8PYOkn33RSwBJPVwL0I2ipm5OHr9g9cfAhVrPC2DxQiWqaq88MNO5mbr/ZWnav3EVBpuwDreS5Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.7.2 + eslint: 8.16.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + optional: true + + /@typescript-eslint/parser/5.26.0_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.26.0 + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/typescript-estree': 5.26.0_typescript@4.7.2 + debug: 4.3.4 + eslint: 8.16.0 + typescript: 4.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.20.0: + resolution: {integrity: sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/visitor-keys': 5.20.0 + dev: true + + /@typescript-eslint/scope-manager/5.26.0: + resolution: {integrity: sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/visitor-keys': 5.26.0 + dev: true + + /@typescript-eslint/type-utils/5.26.0_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.7.2 + debug: 4.3.4 + eslint: 8.16.0 + tsutils: 3.21.0_typescript@4.7.2 + typescript: 4.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.20.0: + resolution: {integrity: sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/types/5.26.0: + resolution: {integrity: sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.20.0_typescript@4.7.2: + resolution: {integrity: sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/visitor-keys': 5.20.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.2 + typescript: 4.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree/5.26.0_typescript@4.7.2: + resolution: {integrity: sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/visitor-keys': 5.26.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.2 + typescript: 4.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.20.0_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.20.0 + '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.7.2 + eslint: 8.16.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.16.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils/5.26.0_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.26.0 + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/typescript-estree': 5.26.0_typescript@4.7.2 + eslint: 8.16.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.16.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.20.0: + resolution: {integrity: sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.20.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@typescript-eslint/visitor-keys/5.26.0: + resolution: {integrity: sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.26.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /JSONStream/1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /JSV/4.0.2: + resolution: {integrity: sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==} + dev: true + + /acorn-jsx/5.3.2_acorn@7.4.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + dev: true + + /acorn-jsx/5.3.2_acorn@8.7.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.7.1 + dev: true + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn/8.7.1: + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /adverb-where/0.2.5: + resolution: {integrity: sha512-JiQe2U1UR8l10jPrXv/PmlDhOLZpsxqjvTp+k6Dm5wYDUULdMZytDRmovkXU8X6V9o0sg0FBdetv3VXHAZZK5Q==} + engines: {node: '>=6', npm: '>=5'} + dev: true + + /agent-base/6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv-formats/2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.11.0 + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /alex/9.1.1: + resolution: {integrity: sha512-2mYyFfQnzWzDd6lSACRePBj8YP6fzzvclPkfGfYrY6vPNFDoQKrCAAdF0XCKROGJGnbSWX1K5PrxixVTaV5ODw==} + hasBin: true + dependencies: + meow: 7.1.1 + rehype-parse: 7.0.1 + rehype-retext: 2.0.4 + remark-frontmatter: 2.0.0 + remark-mdx: 2.0.0-next.7 + remark-message-control: 6.0.0 + remark-parse: 8.0.3 + remark-retext: 4.0.0 + retext-english: 3.0.4 + retext-equality: 5.5.0 + retext-profanities: 6.1.0 + unified: 9.2.2 + unified-diff: 3.1.0 + unified-engine: 8.2.0 + update-notifier: 4.1.3 + vfile: 4.2.1 + vfile-reporter: 6.0.2 + vfile-sort: 2.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /ansi-align/3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + dependencies: + string-width: 4.2.3 + dev: true + + /ansi-escapes/3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} + engines: {node: '>=4'} + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes/5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /ansi-regex/3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: true + + /ansi-regex/4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex/6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles/1.0.0: + resolution: {integrity: sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==} + engines: {node: '>=0.8.0'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + optional: true + + /ansi-styles/6.1.0: + resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} + engines: {node: '>=12'} + dev: true + + /ansicolors/0.3.2: + resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} + dev: true + + /any-promise/1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /argv-formatter/1.0.0: + resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} + dev: true + + /aria-query/4.2.2: + resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} + engines: {node: '>=6.0'} + dependencies: + '@babel/runtime': 7.18.3 + '@babel/runtime-corejs3': 7.18.3 + dev: true + optional: true + + /aria-query/5.0.0: + resolution: {integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==} + engines: {node: '>=6.0'} + dev: true + optional: true + + /array-find-index/1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + dev: true + + /array-ify/1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /array-includes/3.1.5: + resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.1 + is-string: 1.0.7 + dev: true + + /array-iterate/1.1.4: + resolution: {integrity: sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==} + dev: true + + /array-union/1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + dependencies: + array-uniq: 1.0.3 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-uniq/1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat/1.3.0: + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap/1.3.0: + resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 + dev: true + optional: true + + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /assertion-error/1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /assign-symbols/1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /ast-metadata-inferer/0.7.0: + resolution: {integrity: sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==} + dependencies: + '@mdn/browser-compat-data': 3.3.14 + dev: true + + /ast-types-flow/0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: true + optional: true + + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async/1.4.2: + resolution: {integrity: sha512-O4fvy4JjdS0Q8MYH4jOODxJdXGbZ61eqfXdmfFDloHSnWoggxkn/+xWbh2eQbmQ6pJNliaravcTK1iQMpW9k4Q==} + dev: true + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /axe-core/4.4.2: + resolution: {integrity: sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==} + engines: {node: '>=12'} + dev: true + optional: true + + /axobject-query/2.2.0: + resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} + dev: true + optional: true + + /bail/1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /before-after-hook/2.2.2: + resolution: {integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==} + dev: true + + /bottleneck/2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + dev: true + + /boundary/1.0.1: + resolution: {integrity: sha512-AaLhxHwYVh55iOTJncV3DE5o7RakEUSSj64XXEWRTiIhlp7aDI8qR0vY/k8Uw0Z234VjZi/iG/WxfrvqYPUCww==} + dev: true + + /boxen/4.2.0: + resolution: {integrity: sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==} + engines: {node: '>=8'} + dependencies: + ansi-align: 3.0.1 + camelcase: 5.3.1 + chalk: 3.0.0 + cli-boxes: 2.2.1 + string-width: 4.2.3 + term-size: 2.2.1 + type-fest: 0.8.1 + widest-line: 3.1.0 + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist/4.20.3: + resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001343 + electron-to-chromium: 1.4.139 + escalade: 3.1.1 + node-releases: 2.0.5 + picocolors: 1.0.0 + dev: true + + /bubble-stream-error/0.0.1: + resolution: {integrity: sha512-L9hlwJcJ+5p+Bx+FS2VdrOs61bDi9m1rLsZgx/CvUC0J/OPz71tLN/6/sP/X7i7KtQKzm6rzPhdjHdd+I8ZKkQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /bubble-stream-error/1.0.0: + resolution: {integrity: sha512-Rqf0ly5H4HGt+ki/n3m7GxoR2uIGtNqezPlOLX8Vuo13j5/tfPuVvAr84eoGF7sYm6lKdbGnT/3q8qmzuT5Y9w==} + engines: {node: '>= 0.4.0'} + dependencies: + once: 1.4.0 + sliced: 1.0.1 + dev: true + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /builtin-modules/3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /c8/7.11.3: + resolution: {integrity: sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.4 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.0.0 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /cacheable-request/6.1.0: + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.2 + get-stream: 5.2.0 + http-cache-semantics: 4.1.0 + keyv: 3.1.0 + lowercase-keys: 2.0.0 + normalize-url: 4.5.1 + responselike: 1.0.2 + dev: true + + /cachedir/2.2.0: + resolution: {integrity: sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==} + engines: {node: '>=6'} + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + dev: true + + /call-me-maybe/1.0.1: + resolution: {integrity: sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==} + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys/2.1.0: + resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==} + engines: {node: '>=0.10.0'} + dependencies: + camelcase: 2.1.1 + map-obj: 1.0.1 + dev: true + + /camelcase-keys/6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase/2.1.1: + resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} + engines: {node: '>=0.10.0'} + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite/1.0.30001343: + resolution: {integrity: sha512-8KeCrAtPMabo/XW14B+R9sZYoClx1n0b+WYgwDKZPtWR3TcdvWzdSy7mPyFEmR5WU1St9v1PW6sdO5dkFOEzfA==} + dev: true + + /cardinal/2.1.1: + resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} + hasBin: true + dependencies: + ansicolors: 0.3.2 + redeyed: 2.1.1 + dev: true + + /caw/1.2.0: + resolution: {integrity: sha512-GIAlMoessjWW8p0mkStU4kMvV35toVCAyOWhUajk7O0d7wJI8F9TDjfrkSoO26b0d1QsnDLmw5I3X+yd6OKorQ==} + engines: {node: '>=0.10.0'} + dependencies: + get-proxy: 1.1.0 + is-obj: 1.0.1 + object-assign: 3.0.0 + tunnel-agent: 0.4.3 + dev: true + + /ccount/1.1.0: + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + dev: true + + /chai/4.3.6: + resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 3.0.1 + get-func-name: 2.0.0 + loupe: 2.3.4 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk/0.4.0: + resolution: {integrity: sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==} + engines: {node: '>=0.8.0'} + dependencies: + ansi-styles: 1.0.0 + has-color: 0.1.7 + strip-ansi: 0.1.1 + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/5.0.1: + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /character-entities-html4/1.1.4: + resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} + dev: true + + /character-entities-legacy/1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities/1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-reference-invalid/1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + + /chardet/0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /charenc/0.0.2: + resolution: {integrity: sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=} + dev: true + + /check-error/1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /chrono-node/1.4.8: + resolution: {integrity: sha512-WwfW4/+i1e6tHx5opw/VCfxXnai12/tT5GK+wSHwKtdb0ZkAoxRGIfL8IzuFr/JEQTw4DxevysyX6+YbZSRKLQ==} + dependencies: + dayjs: 1.11.2 + dev: true + + /ci-info/2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + + /ci-info/3.3.1: + resolution: {integrity: sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==} + dev: true + + /cities-list/1.0.3: + resolution: {integrity: sha512-UadgzcZiV38TvJXlGymITRvvxaR5PtlrS2M+RJICyvRNp3TnOCPA/5ZZuRn8yG6SexKy1x9I+IwFctZ39XbI/Q==} + dev: true + + /clean-regexp/1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-boxes/2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: true + + /cli-color/2.0.2: + resolution: {integrity: sha512-g4JYjrTW9MGtCziFNjkqp3IMpGhnJyeB0lOtRPjQkYhXzKYr6tYnXKyEVnMzITxhpbahsEW9KsxOYIDKwcsIBw==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.1 + es5-ext: 0.10.61 + es6-iterator: 2.0.3 + memoizee: 0.4.15 + timers-ext: 0.1.7 + dev: true + + /cli-cursor/2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + dependencies: + restore-cursor: 2.0.0 + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-fs/1.0.4: + resolution: {integrity: sha512-u2OE5YOE4vqUzBah1XeV7v75OUWdMszAcPoKpwai7eDtoSN1tRBqmVeuHpImjvfZlb8Pq5ZX7huhgZ7xY+iRzA==} + dev: true + + /cli-rc/1.0.12: + resolution: {integrity: sha512-O7lCeH9eGA0h+gJb3GI3hq04rM5J4gts4+0HSpPQg4qgbL78QFw9+3fzIbnIxoX8iwint9EzXSYCvaKS2WXt5Q==} + dependencies: + async: 1.4.2 + cli-fs: 1.0.4 + cli-util: 1.1.27 + ini: 1.3.8 + dev: true + + /cli-regexp/0.1.2: + resolution: {integrity: sha512-L++cAQ5g0Nu6aV56B3uaR+c7jEGSAa4WApY1ZN7XiD8niJ5jRfXE/qvMwgz3uZBG0rft4hJS75Vpz2F3mSm4Mg==} + dev: true + + /cli-table3/0.6.2: + resolution: {integrity: sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + dev: true + + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate/3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cli-util/1.1.27: + resolution: {integrity: sha512-Z6+zI0kIrqf9Oi+PmUm8J9AELp8bTf2vCLYseudYtdOPNJvzpNiExO95aHIm477IbPdu/8SE9Wvc/M1kJl4Anw==} + dependencies: + cli-regexp: 0.1.2 + dev: true + + /cli-width/2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-regexp/1.0.1: + resolution: {integrity: sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==} + engines: {node: '>=0.10.0'} + dependencies: + is-regexp: 1.0.0 + is-supported-regexp-flag: 1.0.1 + dev: true + + /clone-regexp/2.2.0: + resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} + engines: {node: '>=6'} + dependencies: + is-regexp: 2.1.0 + dev: true + + /clone-response/1.0.2: + resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} + dependencies: + mimic-response: 1.0.1 + dev: true + + /collapse-white-space/1.0.6: + resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette/2.0.16: + resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} + dev: true + + /comma-separated-tokens/1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + dev: true + + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander/8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true + + /comment-parser/1.3.1: + resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} + engines: {node: '>= 12.0.0'} + dev: true + optional: true + + /commitizen/4.2.4: + resolution: {integrity: sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==} + engines: {node: '>= 10'} + hasBin: true + dependencies: + cachedir: 2.2.0 + cz-conventional-changelog: 3.2.0 + dedent: 0.7.0 + detect-indent: 6.0.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 8.1.0 + glob: 7.1.4 + inquirer: 6.5.2 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.5 + strip-bom: 4.0.0 + strip-json-comments: 3.0.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /compare-func/2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /concat-stream/1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.7 + typedarray: 0.0.6 + dev: true + + /concat-stream/2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.0 + typedarray: 0.0.6 + dev: true + + /configstore/5.0.1: + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} + engines: {node: '>=8'} + dependencies: + dot-prop: 5.3.0 + graceful-fs: 4.2.10 + make-dir: 3.1.0 + unique-string: 2.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 4.0.0 + dev: true + + /confusing-browser-globals/1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /conventional-changelog-angular/5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-conventionalcommits/4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + + /conventional-changelog-writer/5.0.1: + resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + conventional-commits-filter: 2.0.7 + dateformat: 3.0.3 + handlebars: 4.7.7 + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + meow: 8.1.2 + semver: 6.3.0 + split: 1.0.1 + through2: 4.0.2 + dev: true + + /conventional-commit-types/3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + dev: true + + /conventional-commits-filter/2.0.7: + resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} + engines: {node: '>=10'} + dependencies: + lodash.ismatch: 4.4.0 + modify-values: 1.0.1 + dev: true + + /conventional-commits-parser/3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + is-text-path: 1.0.1 + JSONStream: 1.3.5 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /core-js-pure/3.22.7: + resolution: {integrity: sha512-wTriFxiZI+C8msGeh7fJcbC/a0V8fdInN1oS2eK79DMBGs8iIJiXhtFJCiT3rBa8w6zroHWW3p8ArlujZ/Mz+w==} + requiresBuild: true + dev: true + optional: true + + /core-js/2.1.5: + resolution: {integrity: sha1-lhCgWavCYk5b4YtuYk3Lak7UtG0=} + deprecated: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. + dev: true + + /core-js/3.22.7: + resolution: {integrity: sha512-Jt8SReuDKVNZnZEzyEQT5eK6T2RRCXkfTq7Lo09kpm+fHjgGewSbNjV+Wt4yZMhPDdzz2x1ulI5z/w4nxpBseg==} + requiresBuild: true + dev: true + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cosmiconfig-typescript-loader/2.0.0_930cf294b789d5d471093937dde83c3c: + resolution: {integrity: sha512-2NlGul/E3vTQEANqPziqkA01vfiuUU8vT0jZAuUIjEW8u3eCcnCQWLggapCjhbF76s7KQF0fM0kXSKmzaDaG1g==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + typescript: '>=3' + dependencies: + '@types/node': 17.0.35 + cosmiconfig: 7.0.1 + ts-node: 10.8.0_930cf294b789d5d471093937dde83c3c + typescript: 4.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /cosmiconfig/7.0.1: + resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-env/7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypt/0.0.2: + resolution: {integrity: sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=} + dev: true + + /crypto-random-string/2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + + /currently-unhandled/0.4.1: + resolution: {integrity: sha1-mI3zP+qxke95mmE2nddsF635V+o=} + engines: {node: '>=0.10.0'} + dependencies: + array-find-index: 1.0.2 + dev: true + + /cuss/1.21.0: + resolution: {integrity: sha512-X3VvImImJ5q6w0wOgJtxAX+RC06d26egp/A/vdSxqOrsRtAA9biXAkc4PZGj/3gx0+z+gDFri6BpcpwuG1/UEw==} + dev: true + + /cz-conventional-changelog/3.2.0: + resolution: {integrity: sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.2.4 + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.3 + optionalDependencies: + '@commitlint/load': 17.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /cz-conventional-changelog/3.3.0: + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.2.4 + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.3 + optionalDependencies: + '@commitlint/load': 17.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /d/1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.61 + type: 1.2.0 + dev: true + + /damerau-levenshtein/1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + optional: true + + /dargs/7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /dateformat/3.0.3: + resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + dev: true + + /dayjs/1.11.2: + resolution: {integrity: sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==} + dev: true + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /debug/4.3.4_supports-color@9.2.2: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 9.2.2 + dev: true + + /decamelize-keys/1.1.0: + resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize/1.2.0: + resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} + engines: {node: '>=0.10.0'} + dev: true + + /decompress-response/3.3.0: + resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + dev: true + + /dedent/0.7.0: + resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} + dev: true + + /deep-eql/3.0.1: + resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} + engines: {node: '>=0.12'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-equal/1.1.1: + resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} + dependencies: + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + object-is: 1.1.5 + object-keys: 1.1.1 + regexp.prototype.flags: 1.4.3 + dev: true + + /deep-extend/0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /defer-to-connect/1.1.3: + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + dev: true + + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-property/2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /del/6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + dependencies: + globby: 11.1.0 + graceful-fs: 4.2.10 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + + /denodeify/1.2.1: + resolution: {integrity: sha1-OjYof1A05pnnV3kBBSwubJQlFjE=} + dev: true + + /deprecation/2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: true + + /detect-file/1.0.0: + resolution: {integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=} + engines: {node: '>=0.10.0'} + dev: true + + /detect-indent/6.0.0: + resolution: {integrity: sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==} + engines: {node: '>=8'} + dev: true + + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-accessibility-api/0.5.14: + resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==} + dev: true + optional: true + + /dot-prop/5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /duplexer/0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /duplexer2/0.1.4: + resolution: {integrity: sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=} + dependencies: + readable-stream: 2.3.7 + dev: true + + /duplexer3/0.1.4: + resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} + dev: true + + /e-prime/0.10.4: + resolution: {integrity: sha512-tzBmM2mFSnAq5BuxPSyin6qXb3yMe1wufJN7L7ZPcEWS5S+jI2dhKQEoqHVEcSMMXo/j5lcWpX5jzA6wLSmX6w==} + dev: true + + /eastasianwidth/0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /editorconfig/0.15.3: + resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} + hasBin: true + dependencies: + commander: 2.20.3 + lru-cache: 4.1.5 + semver: 5.7.1 + sigmund: 1.0.1 + dev: true + + /electron-to-chromium/1.4.139: + resolution: {integrity: sha512-lYxzcUCjWxxVug+A7UxBCUiVr13TCjfZFYJS9Lq1VpU/ErwV4a6zUQo9dfojuGpw/L/x9REGuBl6ICQPGgbs3g==} + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /en-inflectors/1.0.12: + resolution: {integrity: sha1-/TNHdmCKAhy0ICFX8g1Sq5NK94o=} + dependencies: + en-stemmer: 1.0.3 + dev: true + + /en-lexicon/1.0.11: + resolution: {integrity: sha1-P02oqcypqQb1ELjs4RYxvj/REF8=} + dependencies: + en-inflectors: 1.0.12 + dev: true + + /en-pos/1.0.16: + resolution: {integrity: sha1-W27mfu1SqOESZ/PRX6dQEQESP7A=} + dependencies: + cities-list: 1.0.3 + en-inflectors: 1.0.12 + en-lexicon: 1.0.11 + humannames: 1.0.5 + dev: true + + /en-stemmer/1.0.3: + resolution: {integrity: sha1-LSL7XbkAWojW/FgCazioMci8fBk=} + dev: true + + /encoding/0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /english-article-classifier/1.0.1: + resolution: {integrity: sha512-zRLN5xoinT3yQf8gzlkroaAlh7KJAWKq5AC4uF8jaD8DWnlFHEnsPTa6SfnYjlW+/joP/YzwyIjHhiFnOdZ4Jg==} + dev: true + + /env-ci/5.5.0: + resolution: {integrity: sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==} + engines: {node: '>=10.17'} + dependencies: + execa: 5.1.1 + fromentries: 1.3.2 + java-properties: 1.0.2 + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.20.1: + resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.1 + object-keys: 1.1.1 + object.assign: 4.1.2 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.4 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es5-ext/0.10.61: + resolution: {integrity: sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: true + + /es6-iterator/2.0.3: + resolution: {integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c=} + dependencies: + d: 1.0.1 + es5-ext: 0.10.61 + es6-symbol: 3.1.3 + dev: true + + /es6-symbol/3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + dependencies: + d: 1.0.1 + ext: 1.6.0 + dev: true + + /es6-weak-map/2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.61 + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + dev: true + + /esbuild-android-64/0.14.39: + resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.39: + resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.14.39: + resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.14.39: + resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.14.39: + resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.14.39: + resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.14.39: + resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.14.39: + resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.14.39: + resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.14.39: + resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.14.39: + resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.14.39: + resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.14.39: + resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.39: + resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.39: + resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.14.39: + resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.14.39: + resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.14.39: + resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.14.39: + resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.14.39: + resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.14.39: + resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: 0.14.39 + esbuild-android-arm64: 0.14.39 + esbuild-darwin-64: 0.14.39 + esbuild-darwin-arm64: 0.14.39 + esbuild-freebsd-64: 0.14.39 + esbuild-freebsd-arm64: 0.14.39 + esbuild-linux-32: 0.14.39 + esbuild-linux-64: 0.14.39 + esbuild-linux-arm: 0.14.39 + esbuild-linux-arm64: 0.14.39 + esbuild-linux-mips64le: 0.14.39 + esbuild-linux-ppc64le: 0.14.39 + esbuild-linux-riscv64: 0.14.39 + esbuild-linux-s390x: 0.14.39 + esbuild-netbsd-64: 0.14.39 + esbuild-openbsd-64: 0.14.39 + esbuild-sunos-64: 0.14.39 + esbuild-windows-32: 0.14.39 + esbuild-windows-64: 0.14.39 + esbuild-windows-arm64: 0.14.39 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-goat/2.1.1: + resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + dependencies: + debug: 3.2.7 + resolve: 1.22.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-mdx/1.17.0_eslint@8.16.0: + resolution: {integrity: sha512-O8+JRfwCzpoR2P6zUI1GDAAM/bsuzcoBS1ArvpQrgQO/E2Km0vBmM15ukiJxZ+YUh5d+qDlrqha0fZB50MojJQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + eslint: '>=5.0.0' + dependencies: + cosmiconfig: 7.0.1 + eslint: 8.16.0 + remark-mdx: 1.6.22 + remark-parse: 8.0.3 + remark-stringify: 8.1.1 + tslib: 2.4.0 + unified: 9.2.2 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /eslint-module-utils/2.7.3_c9cc5f32dab671e1b62056e60e7ea1db: + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.7.2 + debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 + find-up: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-babel/5.3.1_eslint@8.16.0: + resolution: {integrity: sha512-VsQEr6NH3dj664+EyxJwO4FCYm/00JhYb3Sk3ft8o+fpKuIfQ9TaW6uVUfvwMXHcf/lsnRIoyFPsLMyiWCSL/g==} + engines: {node: '>=4'} + requiresBuild: true + peerDependencies: + eslint: '>=4.0.0' + dependencies: + eslint: 8.16.0 + eslint-rule-composer: 0.3.0 + dev: true + optional: true + + /eslint-plugin-compat/4.0.2_eslint@8.16.0: + resolution: {integrity: sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==} + engines: {node: '>=9.x'} + peerDependencies: + eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@mdn/browser-compat-data': 4.2.1 + ast-metadata-inferer: 0.7.0 + browserslist: 4.20.3 + caniuse-lite: 1.0.30001343 + core-js: 3.22.7 + eslint: 8.16.0 + find-up: 5.0.0 + lodash.memoize: 4.1.2 + semver: 7.3.5 + dev: true + + /eslint-plugin-cypress/2.12.1_eslint@8.16.0: + resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} + requiresBuild: true + peerDependencies: + eslint: '>= 3.2.1' + dependencies: + eslint: 8.16.0 + globals: 11.12.0 + dev: true + optional: true + + /eslint-plugin-editorconfig/3.2.0_2eed6b2d74bf34138dc26b4d1808a693: + resolution: {integrity: sha512-XiUg69+qgv6BekkPCjP8+2DMODzPqtLV5i0Q9FO1v40P62pfodG1vjIihVbw/338hS5W26S+8MTtXaAlrg37QQ==} + dependencies: + '@typescript-eslint/eslint-plugin': 5.26.0_3e687f93547efbf7d61b629ca4d69a5c + editorconfig: 0.15.3 + eslint: 8.16.0 + klona: 2.0.5 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - supports-color + - typescript + dev: true + + /eslint-plugin-es/3.0.1_eslint@8.16.0: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.16.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + optional: true + + /eslint-plugin-eslint-comments/3.2.0_eslint@8.16.0: + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.16.0 + ignore: 5.2.0 + dev: true + + /eslint-plugin-import/2.26.0_344a44770e94ca865603797fb8acf8d9: + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.7.2 + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.16.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3_c9cc5f32dab671e1b62056e60e7ea1db + has: 1.0.3 + is-core-module: 2.9.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.0 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest-async/1.0.3: + resolution: {integrity: sha1-aRlnAtivhWVbIaeJpv11ygo3gA8=} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + requireindex: 1.1.0 + dev: true + optional: true + + /eslint-plugin-jest-dom/4.0.2_eslint@8.16.0: + resolution: {integrity: sha512-Jo51Atwyo2TdcUncjmU+UQeSTKh3sc2LF/M5i/R3nTU0Djw9V65KGJisdm/RtuKhy2KH/r7eQ1n6kwYFPNdHlA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6', yarn: '>=1'} + requiresBuild: true + peerDependencies: + eslint: ^6.8.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@babel/runtime': 7.18.3 + '@testing-library/dom': 8.13.0 + eslint: 8.16.0 + requireindex: 1.2.0 + dev: true + optional: true + + /eslint-plugin-jest-formatting/3.1.0_eslint@8.16.0: + resolution: {integrity: sha512-XyysraZ1JSgGbLSDxjj5HzKKh0glgWf+7CkqxbTqb7zEhW7X2WHo5SBQ8cGhnszKN+2Lj3/oevBlHNbHezoc/A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + requiresBuild: true + peerDependencies: + eslint: '>=0.8.0' + dependencies: + eslint: 8.16.0 + dev: true + optional: true + + /eslint-plugin-jest/26.2.2_60aee4cc4f8870ebf3a3502df9099944: + resolution: {integrity: sha512-etSFZ8VIFX470aA6kTqDPhIq7YWe0tjBcboFNV3WeiC18PJ/AVonGhuTwlmuz2fBkH8FJHA7JQ4k7GsQIj1Gew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + requiresBuild: true + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.26.0_3e687f93547efbf7d61b629ca4d69a5c + '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.7.2 + eslint: 8.16.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + optional: true + + /eslint-plugin-jsdoc/39.3.2_eslint@8.16.0: + resolution: {integrity: sha512-RSGN94RYzIJS/WfW3l6cXzRLfJWxvJgNQZ4w0WCaxJWDJMigtwTsILEAfKqmmPkT2rwMH/s3C7G5ChDE6cwPJg==} + engines: {node: ^14 || ^16 || ^17 || ^18} + requiresBuild: true + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@es-joy/jsdoccomment': 0.31.0 + comment-parser: 1.3.1 + debug: 4.3.4 + escape-string-regexp: 4.0.0 + eslint: 8.16.0 + esquery: 1.4.0 + semver: 7.3.7 + spdx-expression-parse: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /eslint-plugin-json/3.1.0: + resolution: {integrity: sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==} + engines: {node: '>=12.0'} + dependencies: + lodash: 4.17.21 + vscode-json-languageservice: 4.2.1 + dev: true + + /eslint-plugin-jsx-a11y/6.5.1_eslint@8.16.0: + resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} + engines: {node: '>=4.0'} + requiresBuild: true + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.18.3 + aria-query: 4.2.2 + array-includes: 3.1.5 + ast-types-flow: 0.0.7 + axe-core: 4.4.2 + axobject-query: 2.2.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.16.0 + has: 1.0.3 + jsx-ast-utils: 3.3.0 + language-tags: 1.0.5 + minimatch: 3.1.2 + dev: true + optional: true + + /eslint-plugin-markdown/2.2.1_eslint@8.16.0: + resolution: {integrity: sha512-FgWp4iyYvTFxPwfbxofTvXxgzPsDuSKHQy2S+a8Ve6savbujey+lgrFFbXQA0HPygISpRYWYBjooPzhYSF81iA==} + engines: {node: ^8.10.0 || ^10.12.0 || >= 12.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.16.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-mdx/1.17.0_eslint@8.16.0: + resolution: {integrity: sha512-Kicizy+fbfsB2UxTDXP92qTtFqITApu4v4DRQUfXMoPwBHeQRvZnaEtXu2S9aia51GYRYsMSqUvoPPih/5oB+g==} + engines: {node: '>=10.0.0'} + requiresBuild: true + peerDependencies: + eslint: '>=5.0.0' + dependencies: + eslint: 8.16.0 + eslint-mdx: 1.17.0_eslint@8.16.0 + eslint-plugin-markdown: 2.2.1_eslint@8.16.0 + synckit: 0.4.1 + tslib: 2.4.0 + vfile: 4.2.1 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /eslint-plugin-no-loops/0.3.0_eslint@8.16.0: + resolution: {integrity: sha1-6B/stOqvSUqSbZyrqafNhNH+3n0=} + peerDependencies: + eslint: '>=2.0.0' + dependencies: + eslint: 8.16.0 + dev: true + + /eslint-plugin-no-secrets/0.8.9_eslint@8.16.0: + resolution: {integrity: sha512-CqaBxXrImABCtxMWspAnm8d5UKkpNylC7zqVveb+fJHEvsSiNGJlSWzdSIvBUnW1XhJXkzifNIZQC08rEII5Ng==} + engines: {node: '>=10.0.0', npm: '>=6.9.0'} + peerDependencies: + eslint: '>=3.0.0' + dependencies: + eslint: 8.16.0 + dev: true + + /eslint-plugin-node/11.1.0_eslint@8.16.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + requiresBuild: true + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.16.0 + eslint-plugin-es: 3.0.1_eslint@8.16.0 + eslint-utils: 2.1.0 + ignore: 5.2.0 + minimatch: 3.1.2 + resolve: 1.22.0 + semver: 6.3.0 + dev: true + optional: true + + /eslint-plugin-optimize-regex/1.2.1: + resolution: {integrity: sha512-fUaU7Tj1G/KSTDTABJw4Wp427Rl7RPl9ViYTu1Jrv36fJw4DFhd4elPdXiuYtdPsNsvzn9GcVlKEssGIVjw0UQ==} + engines: {node: '>=10'} + dependencies: + regexp-tree: 0.1.24 + dev: true + + /eslint-plugin-prefer-object-spread/1.2.1_eslint@8.16.0: + resolution: {integrity: sha1-J/uRhTaQzOs65hAdnIrsxqZ6QCw=} + engines: {node: '>=4.0.0'} + requiresBuild: true + peerDependencies: + eslint: '>=0.8.0' + dependencies: + eslint: 8.16.0 + dev: true + optional: true + + /eslint-plugin-promise/6.0.0_eslint@8.16.0: + resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.16.0 + dev: true + + /eslint-plugin-radar/0.2.1_eslint@8.16.0: + resolution: {integrity: sha512-aOc1MK6ddL45X6mS6zEqFIKy/c/qnwjhNycDecaFMw5acUsD744ZCZf2cG7yxLhMv71mBSwr6pZdu+26+Zzk5A==} + engines: {node: '>=10'} + peerDependencies: + eslint: '>= 3.0.0 <= 7.x.x' + dependencies: + eslint: 8.16.0 + dev: true + + /eslint-plugin-react-hooks/4.5.0_eslint@8.16.0: + resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.16.0 + dev: true + optional: true + + /eslint-plugin-react-redux/4.0.0_eslint@8.16.0: + resolution: {integrity: sha512-oT43AoOgqsXjYKm7JiQCD1Mxp2tjO/ywv/WJn0cVNVirpd91xfvxWnYU93tqKSZwdryxdZ/S+ea2iIYeRdeaZg==} + engines: {node: '>=12.0.0'} + requiresBuild: true + peerDependencies: + eslint: ^7 || ^8 + dependencies: + eslint: 8.16.0 + eslint-plugin-react: 7.30.0_eslint@8.16.0 + eslint-rule-composer: 0.3.0 + dev: true + optional: true + + /eslint-plugin-react/7.30.0_eslint@8.16.0: + resolution: {integrity: sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.5 + array.prototype.flatmap: 1.3.0 + doctrine: 2.1.0 + eslint: 8.16.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.0 + minimatch: 3.1.2 + object.entries: 1.1.5 + object.fromentries: 2.0.5 + object.hasown: 1.1.1 + object.values: 1.1.5 + prop-types: 15.8.1 + resolve: 2.0.0-next.3 + semver: 6.3.0 + string.prototype.matchall: 4.0.7 + dev: true + optional: true + + /eslint-plugin-simple-import-sort/7.0.0_eslint@8.16.0: + resolution: {integrity: sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==} + peerDependencies: + eslint: '>=5.0.0' + dependencies: + eslint: 8.16.0 + dev: true + + /eslint-plugin-sort-keys-fix/1.1.2: + resolution: {integrity: sha512-DNPHFGCA0/hZIsfODbeLZqaGY/+q3vgtshF85r+YWDNCQ2apd9PNs/zL6ttKm0nD1IFwvxyg3YOTI7FHl4unrw==} + engines: {node: '>=0.10.0'} + dependencies: + espree: 6.2.1 + esutils: 2.0.3 + natural-compare: 1.4.0 + requireindex: 1.2.0 + dev: true + + /eslint-plugin-testing-library/5.5.1_eslint@8.16.0+typescript@4.7.2: + resolution: {integrity: sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} + requiresBuild: true + peerDependencies: + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.7.2 + eslint: 8.16.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + optional: true + + /eslint-plugin-typescript-sort-keys/2.1.0_3e687f93547efbf7d61b629ca4d69a5c: + resolution: {integrity: sha512-ET7ABypdz19m47QnKynzNfWPi4CTNQ5jQQC1X5d0gojIwblkbGiCa5IilsqzBTmqxZ0yXDqKBO/GBkBFQCOFsg==} + engines: {node: 10 - 12 || >= 13.9} + requiresBuild: true + peerDependencies: + '@typescript-eslint/parser': ^1 || ^2 || ^3 || ^4 || ^5 + eslint: ^5 || ^6 || ^7 || ^8 + typescript: ^3 || ^4 + dependencies: + '@typescript-eslint/experimental-utils': 5.26.0_eslint@8.16.0+typescript@4.7.2 + '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.7.2 + eslint: 8.16.0 + json-schema: 0.4.0 + natural-compare-lite: 1.4.0 + typescript: 4.7.2 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /eslint-plugin-unicorn/42.0.0_eslint@8.16.0: + resolution: {integrity: sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=8.8.0' + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + ci-info: 3.3.1 + clean-regexp: 1.0.0 + eslint: 8.16.0 + eslint-utils: 3.0.0_eslint@8.16.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.7 + strip-indent: 3.0.0 + dev: true + + /eslint-plugin-you-dont-need-lodash-underscore/6.12.0: + resolution: {integrity: sha512-WF4mNp+k2532iswT6iUd1BX6qjd3AV4cFy/09VC82GY9SsRtvkxhUIx7JNGSe0/bLyd57oTr4inPFiIaENXhGw==} + engines: {node: '>=4.0'} + dependencies: + kebab-case: 1.0.1 + dev: true + + /eslint-plugin-you-dont-need-momentjs/1.6.0_eslint@8.16.0: + resolution: {integrity: sha512-u12WanwuAL5B6/Kx6AtMDI04OojkS/twDueDwBgxsnKLy33VM4npP7ZlU2o7pxD1z8LbzPP6Y6/e7cPf6ZhatQ==} + peerDependencies: + eslint: ^5.5.0 + dependencies: + eslint: 8.16.0 + kebab-case: 1.0.1 + dev: true + + /eslint-rule-composer/0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + optional: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + optional: true + + /eslint-utils/3.0.0_eslint@8.16.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.16.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.16.0: + resolution: {integrity: sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.0 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.16.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.15.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/6.2.1: + resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} + engines: {node: '>=6.0.0'} + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2_acorn@7.4.1 + eslint-visitor-keys: 1.3.0 + dev: true + + /espree/9.3.2: + resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 + eslint-visitor-keys: 3.3.0 + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /event-emitter/0.3.5: + resolution: {integrity: sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=} + dependencies: + d: 1.0.1 + es5-ext: 0.10.61 + dev: true + + /event-stream/3.1.7: + resolution: {integrity: sha1-tMVAAS0P4UmEIPPYlGAI22OTw3o=} + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.2.10 + stream-combiner: 0.0.4 + through: 2.3.8 + dev: true + + /eventemitter3/4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execall/1.0.0: + resolution: {integrity: sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=} + engines: {node: '>=0.10.0'} + dependencies: + clone-regexp: 1.0.1 + dev: true + + /execall/2.0.0: + resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} + engines: {node: '>=8'} + dependencies: + clone-regexp: 2.2.0 + dev: true + + /expand-tilde/2.0.2: + resolution: {integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /ext/1.6.0: + resolution: {integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==} + dependencies: + type: 2.6.0 + dev: true + + /extend-shallow/3.0.2: + resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /external-editor/3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + dev: true + + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fault/1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} + dependencies: + format: 0.2.2 + dev: true + + /figgy-pudding/3.5.2: + resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} + dev: true + + /figures/2.0.0: + resolution: {integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache/5.0.1: + resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} + engines: {node: '>=4'} + dependencies: + flat-cache: 2.0.1 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-node-modules/2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + dependencies: + findup-sync: 4.0.0 + merge: 2.1.1 + dev: true + + /find-root/1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + + /find-up/1.1.2: + resolution: {integrity: sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=} + engines: {node: '>=0.10.0'} + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + dev: true + + /find-up/2.1.0: + resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up/3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-versions/4.0.0: + resolution: {integrity: sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==} + engines: {node: '>=10'} + dependencies: + semver-regex: 3.1.4 + dev: true + + /findup-sync/4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 + dev: true + + /flat-cache/2.0.1: + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} + engines: {node: '>=4'} + dependencies: + flatted: 2.0.2 + rimraf: 2.6.3 + write: 1.0.3 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.5 + rimraf: 3.0.2 + dev: true + + /flatted/2.0.2: + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + dev: true + + /flatted/3.2.5: + resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} + dev: true + + /foreground-child/2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + + /format/0.2.2: + resolution: {integrity: sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=} + engines: {node: '>=0.4.x'} + dev: true + + /from/0.1.7: + resolution: {integrity: sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=} + dev: true + + /from2/2.3.0: + resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.7 + dev: true + + /fromentries/1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + dev: true + + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra/8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + optional: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-func-name/2.0.0: + resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} + dev: true + + /get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-proxy/1.1.0: + resolution: {integrity: sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=} + engines: {node: '>=0.10.0'} + dependencies: + rc: 1.2.8 + dev: true + + /get-stdin/4.0.1: + resolution: {integrity: sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=} + engines: {node: '>=0.10.0'} + dev: true + + /get-stdin/5.0.1: + resolution: {integrity: sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=} + engines: {node: '>=0.12.0'} + dev: true + + /get-stdin/8.0.0: + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} + dev: true + + /get-stream/4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + dev: true + + /get-url-origin/1.0.1: + resolution: {integrity: sha512-MMSKo16gB2+6CjWy55jNdIAqUEaKgw3LzZCb8wVVtFrhoQ78EXyuYXxDdn3COI3A4Xr4ZfM3fZa9RTjO6DOTxw==} + dev: true + + /git-diff-tree/1.1.0: + resolution: {integrity: sha512-PdNkH2snpXsKIzho6OWMZKEl+KZG6Zm+1ghQIDi0tEq1sz/S1tDjvNuYrX2ZpomalHAB89OUQim8O6vN+jesNQ==} + dependencies: + git-spawned-stream: 1.0.1 + pump-chain: 1.0.0 + split-transform-stream: 0.1.1 + through2: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /git-log-parser/1.2.0: + resolution: {integrity: sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=} + dependencies: + argv-formatter: 1.0.0 + spawn-error-forwarder: 1.0.0 + split2: 1.0.0 + stream-combiner2: 1.1.1 + through2: 2.0.0 + traverse: 0.6.6 + dev: true + + /git-raw-commits/2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /git-spawned-stream/1.0.1: + resolution: {integrity: sha512-W2Zo3sCiq5Hqv1/FLsNmGomkXdyimmkHncGzqjBHh7nWx+CbH5dkWGb6CiFdknooL7wfeZJ3gz14KrXl/gotCw==} + dependencies: + debug: 4.3.4 + spawn-to-readstream: 0.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-promise/3.4.0_glob@7.2.3: + resolution: {integrity: sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==} + engines: {node: '>=4'} + peerDependencies: + glob: '*' + dependencies: + '@types/glob': 7.2.0 + glob: 7.2.3 + dev: true + + /glob/6.0.4: + resolution: {integrity: sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=} + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/7.1.4: + resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-dirs/0.1.1: + resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-dirs/2.1.0: + resolution: {integrity: sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==} + engines: {node: '>=8'} + dependencies: + ini: 1.3.7 + dev: true + + /global-modules/1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-prefix/1.0.2: + resolution: {integrity: sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + optional: true + + /globals/13.15.0: + resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/4.0.0: + resolution: {integrity: sha1-Nv8GxancHbwgH3AAdJkogoV+mBc=} + engines: {node: '>=0.10.0'} + dependencies: + array-union: 1.0.2 + arrify: 1.0.1 + glob: 6.0.4 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /got/9.6.0: + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + dependencies: + '@sindresorhus/is': 0.14.0 + '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 + cacheable-request: 6.1.0 + decompress-response: 3.3.0 + duplexer3: 0.1.4 + get-stream: 4.1.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 1.1.0 + to-readable-stream: 1.0.0 + url-parse-lax: 3.0.0 + dev: true + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /handlebars/4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.6 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.15.5 + dev: true + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-color/0.1.7: + resolution: {integrity: sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.1 + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-yarn/2.1.0: + resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} + engines: {node: '>=8'} + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hast-util-embedded/1.0.6: + resolution: {integrity: sha512-JQMW+TJe0UAIXZMjCJ4Wf6ayDV9Yv3PBDPsHD4ExBpAspJ6MOcCX+nzVF+UJVv7OqPcg852WEMSHQPoRA+FVSw==} + dependencies: + hast-util-is-element: 1.1.0 + dev: true + + /hast-util-from-parse5/6.0.1: + resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} + dependencies: + '@types/parse5': 5.0.3 + hastscript: 6.0.0 + property-information: 5.6.0 + vfile: 4.2.1 + vfile-location: 3.2.0 + web-namespaces: 1.1.4 + dev: true + + /hast-util-has-property/1.0.4: + resolution: {integrity: sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==} + dev: true + + /hast-util-is-body-ok-link/1.0.4: + resolution: {integrity: sha512-mFblNpLvFbD8dG2Nw5dJBYZkxIHeph1JAh5yr4huI7T5m8cV0zaXNiqzKPX/JdjA+tIDF7c33u9cxK132KRjyQ==} + dependencies: + hast-util-has-property: 1.0.4 + hast-util-is-element: 1.1.0 + dev: true + + /hast-util-is-element/1.1.0: + resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} + dev: true + + /hast-util-parse-selector/2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + dev: true + + /hast-util-phrasing/1.0.5: + resolution: {integrity: sha512-P3uxm+8bnwcfAS/XpGie9wMmQXAQqsYhgQQKRwmWH/V6chiq0lmTy8KjQRJmYjusdMtNKGCUksdILSZy1suSpQ==} + dependencies: + hast-util-embedded: 1.0.6 + hast-util-has-property: 1.0.4 + hast-util-is-body-ok-link: 1.0.4 + hast-util-is-element: 1.1.0 + dev: true + + /hast-util-to-nlcst/1.2.8: + resolution: {integrity: sha512-cKMArohUvGw4fpN9PKDCIB+klMojkWzz5zNVNFRdKa0oC1MVX1TaDki1E/tb9xqS8WlUjKifIjmrNmRbEJzrJg==} + dependencies: + hast-util-embedded: 1.0.6 + hast-util-is-element: 1.1.0 + hast-util-phrasing: 1.0.5 + hast-util-to-string: 1.0.4 + hast-util-whitespace: 1.0.4 + nlcst-to-string: 2.0.4 + unist-util-position: 3.1.0 + vfile-location: 3.2.0 + dev: true + + /hast-util-to-string/1.0.4: + resolution: {integrity: sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==} + dev: true + + /hast-util-whitespace/1.0.4: + resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} + dev: true + + /hastscript/6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + dependencies: + '@types/hast': 2.3.4 + comma-separated-tokens: 1.0.8 + hast-util-parse-selector: 2.2.5 + property-information: 5.6.0 + space-separated-tokens: 1.1.5 + dev: true + + /homedir-polyfill/1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hook-std/2.0.0: + resolution: {integrity: sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==} + engines: {node: '>=8'} + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /http-cache-semantics/4.1.0: + resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} + dev: true + + /http-proxy-agent/5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent/5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /humannames/1.0.5: + resolution: {integrity: sha1-pNYNQWjfhzf0smLv0j8u4yl08cU=} + dev: true + + /husky/8.0.1: + resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-from/4.0.0: + resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} + engines: {node: '>=12.2'} + dev: true + + /import-lazy/2.1.0: + resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} + engines: {node: '>=4'} + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string/2.1.0: + resolution: {integrity: sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=} + engines: {node: '>=0.10.0'} + dependencies: + repeating: 2.0.1 + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini/1.3.7: + resolution: {integrity: sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==} + dev: true + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inquirer/6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} + engines: {node: '>=6.0.0'} + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 3.1.0 + figures: 2.0.0 + lodash: 4.17.21 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 2.1.1 + strip-ansi: 5.2.0 + through: 2.3.8 + dev: true + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /into-stream/6.0.0: + resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==} + engines: {node: '>=10'} + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + dev: true + + /is-accessor-descriptor/1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-alphabetical/1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumeric/1.0.0: + resolution: {integrity: sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=} + engines: {node: '>=0.10.0'} + dev: true + + /is-alphanumerical/1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-arguments/1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + dev: true + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer/1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-buffer/2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: true + + /is-builtin-module/3.1.0: + resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-callable/1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + + /is-ci/3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.3.1 + dev: true + + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} + dependencies: + has: 1.0.3 + dev: true + + /is-data-descriptor/1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal/1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + + /is-descriptor/1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-empty/1.2.0: + resolution: {integrity: sha1-3pu1snhzigWgsJpX4ftNSjQan2s=} + dev: true + + /is-extendable/1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-file/1.0.0: + resolution: {integrity: sha1-KKRM+9nT2xkwRfIrZfzo7fliBZY=} + dev: true + + /is-finite/1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/2.0.0: + resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} + engines: {node: '>=4'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal/1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + + /is-installed-globally/0.3.2: + resolution: {integrity: sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==} + engines: {node: '>=8'} + dependencies: + global-dirs: 2.1.0 + is-path-inside: 3.0.3 + dev: true + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-npm/4.0.0: + resolution: {integrity: sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==} + engines: {node: '>=8'} + dev: true + + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj/1.0.1: + resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=} + engines: {node: '>=0.10.0'} + dev: true + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-cwd/2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj/1.1.0: + resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj/2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + + /is-plain-object/2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object/5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-promise/2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true + + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp/1.0.0: + resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=} + engines: {node: '>=0.10.0'} + dev: true + + /is-regexp/2.1.0: + resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} + engines: {node: '>=6'} + dev: true + + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream/1.1.0: + resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-supported-regexp-flag/1.0.1: + resolution: {integrity: sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-text-path/1.0.1: + resolution: {integrity: sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-typedarray/1.0.0: + resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} + dev: true + + /is-utf8/0.2.1: + resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=} + dev: true + + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-whitespace-character/1.0.4: + resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} + dev: true + + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-word-character/1.0.4: + resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} + dev: true + + /is-yarn-global/0.3.0: + resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} + dev: true + + /isarray/0.0.1: + resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=} + dev: true + + /isarray/1.0.0: + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + dev: true + + /isobject/3.0.1: + resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} + engines: {node: '>=0.10.0'} + dev: true + + /isomorphic-fetch/2.2.1: + resolution: {integrity: sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=} + dependencies: + node-fetch: 1.7.3 + whatwg-fetch: 3.6.2 + dev: true + + /issue-parser/6.0.0: + resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} + engines: {node: '>=10.13'} + dependencies: + lodash.capitalize: 4.2.1 + lodash.escaperegexp: 4.1.2 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.uniqby: 4.7.0 + dev: true + + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports/3.1.4: + resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /java-properties/1.0.2: + resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} + engines: {node: '>= 0.6.0'} + dev: true + + /jjv/1.0.2: + resolution: {integrity: sha1-Bxnyy8/X3zT41XwbA7MyoPj2bn8=} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsdoc-type-pratt-parser/3.1.0: + resolution: {integrity: sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==} + engines: {node: '>=12.0.0'} + dev: true + optional: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + optional: true + + /json-buffer/3.0.0: + resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} + dev: true + + /json-metaschema/1.3.0: + resolution: {integrity: sha512-FMDPEZQzqIVOQZ3OxzWryI28W6IZ9QKLcHObO9bS+SJrwnV3xQD0QtnhtgSpIZd8Xuy0xBqeRA74vfTnpK4eVg==} + dev: true + + /json-parse-better-errors/1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-ref-parser/9.0.9: + resolution: {integrity: sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==} + engines: {node: '>=10'} + dependencies: + '@apidevtools/json-schema-ref-parser': 9.0.9 + dev: true + + /json-schema-to-typescript/10.1.5: + resolution: {integrity: sha512-X8bNNksfCQo6LhEuqNxmZr4eZpPjXZajmimciuk8eWXzZlif9Brq7WuMGD/SOhBKcRKP2SGVDNZbC28WQqx9Rg==} + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + '@types/json-schema': 7.0.11 + '@types/lodash': 4.14.182 + '@types/prettier': 2.6.1 + cli-color: 2.0.2 + get-stdin: 8.0.0 + glob: 7.2.3 + glob-promise: 3.4.0_glob@7.2.3 + is-glob: 4.0.3 + json-schema-ref-parser: 9.0.9 + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + minimist: 1.2.6 + mkdirp: 1.0.4 + mz: 2.7.0 + prettier: 2.6.2 + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + optional: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + dev: true + + /json-stringify-safe/5.0.1: + resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} + dev: true + + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser/3.0.0: + resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + dev: true + + /jsonfile/4.0.0: + resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonlint-cli/1.0.1: + resolution: {integrity: sha1-BFcwyrI3VkCwqI2EV/tn1heTw5Q=} + hasBin: true + dependencies: + cli-rc: 1.0.12 + core-js: 2.1.5 + denodeify: 1.2.1 + get-stdin: 5.0.1 + globby: 4.0.0 + isomorphic-fetch: 2.2.1 + jjv: 1.0.2 + jsonlint: 1.6.2 + lodash: 4.6.1 + meow: 3.7.0 + minimatch: 3.0.0 + mkdirp: 0.5.1 + omni-fetch: 0.1.0_isomorphic-fetch@2.2.1 + path-exists: 2.1.0 + dev: true + + /jsonlint/1.6.2: + resolution: {integrity: sha1-VzcEUIX1XrRVxosf9OvAG9UOiDA=} + engines: {node: '>= 0.6'} + hasBin: true + dependencies: + JSV: 4.0.2 + nomnom: 1.8.1 + dev: true + + /jsonparse/1.3.1: + resolution: {integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=} + engines: {'0': node >= 0.2.0} + dev: true + + /jsx-ast-utils/3.3.0: + resolution: {integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.5 + object.assign: 4.1.2 + dev: true + optional: true + + /kebab-case/1.0.1: + resolution: {integrity: sha512-txPHx6nVLhv8PHGXIlAk0nYoh894SpAqGPXNvbg2hh8spvHXIah3+vT87DLoa59nKgC6scD3u3xAuRIgiMqbfQ==} + dev: true + + /keyv/3.1.0: + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + dependencies: + json-buffer: 3.0.0 + dev: true + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /klona/2.0.5: + resolution: {integrity: sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==} + engines: {node: '>= 8'} + dev: true + + /language-subtag-registry/0.3.21: + resolution: {integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==} + dev: true + optional: true + + /language-tags/1.0.5: + resolution: {integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=} + dependencies: + language-subtag-registry: 0.3.21 + dev: true + optional: true + + /latest-version/5.1.0: + resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} + engines: {node: '>=8'} + dependencies: + package-json: 6.5.0 + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /libnpmconfig/1.2.1: + resolution: {integrity: sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==} + deprecated: This module is not used anymore. npm config is parsed by npm itself and by @npmcli/config + dependencies: + figgy-pudding: 3.5.2 + find-up: 3.0.0 + ini: 1.3.8 + dev: true + + /lilconfig/2.0.4: + resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} + engines: {node: '>=10'} + dev: true + + /limit-spawn/0.0.3: + resolution: {integrity: sha1-zAnCRGeg8KHtEKUZbbpZfK0/Zdw=} + engines: {node: '>= 0.8.0'} + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lint-staged/12.4.2: + resolution: {integrity: sha512-JAJGIzY/OioIUtrRePr8go6qUxij//mL+RGGoFKU3VWQRtIHgWoHizSqH0QVn2OwrbXS9Q6CICQjfj+E5qvrXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.16 + commander: 8.3.0 + debug: 4.3.4_supports-color@9.2.2 + execa: 5.1.1 + lilconfig: 2.0.4 + listr2: 4.0.5 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.1 + pidtree: 0.5.0 + string-argv: 0.3.1 + supports-color: 9.2.2 + yaml: 1.10.2 + transitivePeerDependencies: + - enquirer + dev: true + + /listr2/4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.16 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.5.5 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /load-json-file/1.1.0: + resolution: {integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.10 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + dev: true + + /load-json-file/4.0.0: + resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.10 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /load-plugin/3.0.0: + resolution: {integrity: sha512-od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==} + dependencies: + libnpmconfig: 1.2.1 + resolve-from: 5.0.0 + dev: true + + /local-pkg/0.4.1: + resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} + engines: {node: '>=14'} + dev: true + + /locate-path/2.0.0: + resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.capitalize/4.2.1: + resolution: {integrity: sha1-+CbJtOKoUR2E46yinbBeGk87cqk=} + dev: true + + /lodash.difference/4.5.0: + resolution: {integrity: sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=} + dev: true + + /lodash.escaperegexp/4.1.2: + resolution: {integrity: sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=} + dev: true + + /lodash.has/4.5.2: + resolution: {integrity: sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=} + dev: true + + /lodash.intersection/4.4.0: + resolution: {integrity: sha1-ChG6Yx0OlcI8fy9Mu5ppLtF45wU=} + dev: true + + /lodash.ismatch/4.4.0: + resolution: {integrity: sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=} + dev: true + + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=} + dev: true + + /lodash.isstring/4.0.1: + resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} + dev: true + + /lodash.iteratee/4.7.0: + resolution: {integrity: sha1-vkF32yiajMw8CZDx2ya1si/BVUw=} + dev: true + + /lodash.map/4.6.0: + resolution: {integrity: sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=} + dev: true + + /lodash.memoize/4.1.2: + resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.sortby/4.7.0: + resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=} + dev: true + + /lodash.truncate/4.4.2: + resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} + dev: true + + /lodash.uniq/4.5.0: + resolution: {integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=} + dev: true + + /lodash.uniqby/4.7.0: + resolution: {integrity: sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=} + dev: true + + /lodash.uniqwith/4.5.0: + resolution: {integrity: sha1-egy/ZfQ7WShiWp1NDcVLGMrcfvM=} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /lodash/4.6.1: + resolution: {integrity: sha1-3wDBFkrSNrGDz8OIel6NOMxjy7w=} + dev: true + + /log-update/4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /longest-streak/2.0.4: + resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} + dev: true + + /longest/2.0.1: + resolution: {integrity: sha1-eB4YMpaqlPbU2RbcM10NF676I/g=} + engines: {node: '>=0.10.0'} + dev: true + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + optional: true + + /loud-rejection/1.6.0: + resolution: {integrity: sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=} + engines: {node: '>=0.10.0'} + dependencies: + currently-unhandled: 0.4.1 + signal-exit: 3.0.7 + dev: true + + /loupe/2.3.4: + resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} + dependencies: + get-func-name: 2.0.0 + dev: true + + /lowercase-keys/1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: true + + /lowercase-keys/2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true + + /lru-cache/4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /lru-queue/0.1.0: + resolution: {integrity: sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=} + dependencies: + es5-ext: 0.10.61 + dev: true + + /lz-string/1.4.4: + resolution: {integrity: sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=} + hasBin: true + dev: true + optional: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /map-age-cleaner/0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + dev: true + + /map-like/1.1.3: + resolution: {integrity: sha1-b6rKUzngzGVno6Vd0oH9hxo55do=} + dev: true + + /map-obj/1.0.1: + resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-stream/0.1.0: + resolution: {integrity: sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=} + dev: true + + /markdown-escapes/1.0.4: + resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} + dev: true + + /markdown-table/2.0.0: + resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} + dependencies: + repeat-string: 1.6.1 + dev: true + + /marked-terminal/5.1.1_marked@4.0.16: + resolution: {integrity: sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==} + engines: {node: '>=14.13.1 || >=16.0.0'} + peerDependencies: + marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + ansi-escapes: 5.0.0 + cardinal: 2.1.1 + chalk: 5.0.1 + cli-table3: 0.6.2 + marked: 4.0.16 + node-emoji: 1.11.0 + supports-hyperlinks: 2.2.0 + dev: true + + /marked/4.0.16: + resolution: {integrity: sha512-wahonIQ5Jnyatt2fn8KqF/nIqZM8mh3oRu2+l5EANGMhu6RFjiSG52QNE2eWzFMI94HqYSgN184NurgNG6CztA==} + engines: {node: '>= 12'} + hasBin: true + dev: true + + /match-casing/1.0.3: + resolution: {integrity: sha512-oMyC3vUVCFbGu+M2Zxl212LPJThcaw7QxB5lFuJPQCgV/dsGBP0yZeCoLmX6CiBkoBcVbAKDJZrBpJVu0XcLMw==} + dev: true + + /match-index/1.0.3: + resolution: {integrity: sha512-1XjyBWqCvEFFUDW/MPv0RwbITRD4xQXOvKoPYtLDq8IdZTfdF/cQSo5Yn4qvhfSSZgjgkTFsqJD2wOUG4ovV8Q==} + dependencies: + regexp.prototype.flags: 1.4.3 + dev: true + + /match-test-replace/1.4.0: + resolution: {integrity: sha512-eHbBXYgF1r2Dh7ArYFr+Y/LltcoVr3diTAQ05aMykBm0vLptQy8Ez2iew8+yTBmYbJFq3C4WKy9h/kvUfQmrtA==} + dev: true + + /md5/2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + dev: true + + /mdast-comment-marker/1.1.2: + resolution: {integrity: sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==} + dev: true + + /mdast-util-compact/2.0.1: + resolution: {integrity: sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==} + dependencies: + unist-util-visit: 2.0.3 + dev: true + + /mdast-util-find-and-replace/1.1.1: + resolution: {integrity: sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==} + dependencies: + escape-string-regexp: 4.0.0 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 + dev: true + + /mdast-util-footnote/0.1.7: + resolution: {integrity: sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w==} + dependencies: + mdast-util-to-markdown: 0.6.5 + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-from-markdown/0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-frontmatter/0.2.0: + resolution: {integrity: sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==} + dependencies: + micromark-extension-frontmatter: 0.2.2 + dev: true + + /mdast-util-gfm-autolink-literal/0.1.3: + resolution: {integrity: sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==} + dependencies: + ccount: 1.1.0 + mdast-util-find-and-replace: 1.1.1 + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-strikethrough/0.2.3: + resolution: {integrity: sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==} + dependencies: + mdast-util-to-markdown: 0.6.5 + dev: true + + /mdast-util-gfm-table/0.1.6: + resolution: {integrity: sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==} + dependencies: + markdown-table: 2.0.0 + mdast-util-to-markdown: 0.6.5 + dev: true + + /mdast-util-gfm-task-list-item/0.1.6: + resolution: {integrity: sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==} + dependencies: + mdast-util-to-markdown: 0.6.5 + dev: true + + /mdast-util-gfm/0.1.2: + resolution: {integrity: sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==} + dependencies: + mdast-util-gfm-autolink-literal: 0.1.3 + mdast-util-gfm-strikethrough: 0.2.3 + mdast-util-gfm-table: 0.1.6 + mdast-util-gfm-task-list-item: 0.1.6 + mdast-util-to-markdown: 0.6.5 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-markdown/0.6.5: + resolution: {integrity: sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==} + dependencies: + '@types/unist': 2.0.6 + longest-streak: 2.0.4 + mdast-util-to-string: 2.0.0 + parse-entities: 2.0.0 + repeat-string: 1.6.1 + zwitch: 1.0.5 + dev: true + + /mdast-util-to-nlcst/4.0.1: + resolution: {integrity: sha512-Y4ffygj85MTt70STKnEquw6k73jYWJBaYcb4ITAKgSNokZF7fH8rEHZ1GsRY/JaxqUevMaEnsDmkVv5Z9uVRdg==} + dependencies: + nlcst-to-string: 2.0.4 + repeat-string: 1.6.1 + unist-util-position: 3.1.0 + vfile-location: 3.2.0 + dev: true + + /mdast-util-to-string/2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + + /mem/4.3.0: + resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} + engines: {node: '>=6'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + dev: true + + /memoizee/0.4.15: + resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.61 + es6-weak-map: 2.0.3 + event-emitter: 0.3.5 + is-promise: 2.2.2 + lru-queue: 0.1.0 + next-tick: 1.1.0 + timers-ext: 0.1.7 + dev: true + + /meow/3.7.0: + resolution: {integrity: sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=} + engines: {node: '>=0.10.0'} + dependencies: + camelcase-keys: 2.1.0 + decamelize: 1.2.0 + loud-rejection: 1.6.0 + map-obj: 1.0.1 + minimist: 1.2.6 + normalize-package-data: 2.5.0 + object-assign: 4.1.1 + read-pkg-up: 1.0.1 + redent: 1.0.0 + trim-newlines: 1.0.0 + dev: true + + /meow/7.1.1: + resolution: {integrity: sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: true + + /meow/8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge/2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromark-extension-footnote/0.3.2: + resolution: {integrity: sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-frontmatter/0.2.2: + resolution: {integrity: sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==} + dependencies: + fault: 1.0.4 + dev: true + + /micromark-extension-gfm-autolink-literal/0.5.7: + resolution: {integrity: sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm-strikethrough/0.6.5: + resolution: {integrity: sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm-table/0.4.3: + resolution: {integrity: sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm-tagfilter/0.3.0: + resolution: {integrity: sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==} + dev: true + + /micromark-extension-gfm-task-list-item/0.3.3: + resolution: {integrity: sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm/0.3.3: + resolution: {integrity: sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==} + dependencies: + micromark: 2.11.4 + micromark-extension-gfm-autolink-literal: 0.5.7 + micromark-extension-gfm-strikethrough: 0.6.5 + micromark-extension-gfm-table: 0.4.3 + micromark-extension-gfm-tagfilter: 0.3.0 + micromark-extension-gfm-task-list-item: 0.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark/2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime/3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: true + + /mimic-fn/1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-response/1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch/3.0.0: + resolution: {integrity: sha1-UjYVelHk8ATBd/s8Un/33Xjw74M=} + deprecated: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist/0.0.8: + resolution: {integrity: sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=} + dev: true + + /minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + dev: true + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: true + + /misspellings/1.1.0: + resolution: {integrity: sha1-U9UAJmy9Cc2p2UxM85LmBYm1syQ=} + dev: true + + /mkdirp/0.5.1: + resolution: {integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=} + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + hasBin: true + dependencies: + minimist: 0.0.8 + dev: true + + /mkdirp/0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /modify-values/1.0.1: + resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} + engines: {node: '>=0.10.0'} + dev: true + + /moment/2.29.3: + resolution: {integrity: sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /mute-stream/0.0.7: + resolution: {integrity: sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=} + dev: true + + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare-lite/1.4.0: + resolution: {integrity: sha1-F7CVgZiJef3a/gIB6TG6kzyWy7Q=} + dev: true + optional: true + + /natural-compare/1.4.0: + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + dev: true + + /neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /nerf-dart/1.0.0: + resolution: {integrity: sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=} + dev: true + + /next-tick/1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: true + + /nlcst-is-literal/1.2.2: + resolution: {integrity: sha512-R+1OJEmRl3ZOp9d8PbiRxGpnvmpi3jU+lzSqCJoLeogdEh0FYDRH1aC223qUbaKffxNTJkEfeDOeQfziw749yA==} + dependencies: + nlcst-to-string: 2.0.4 + dev: true + + /nlcst-normalize/2.1.5: + resolution: {integrity: sha512-xSqTKv8IHIy3n/orD7wj81BZljLfbrTot0Pv64MYUnQUXfDbi1xDSpJR4qEmbFWyFoHsmivcOdgrK+o7ky3mcw==} + dependencies: + nlcst-to-string: 2.0.4 + dev: true + + /nlcst-parse-english/1.4.0: + resolution: {integrity: sha512-15iFXJoOIOoZ+MZPIXvHvefxRimm3C+BFlYS9XjPSSnCwysGQij3dOEpOwDUUpo6eHobKhZShMCWc4LykLXs9w==} + dependencies: + en-lexicon: 1.0.11 + en-pos: 1.0.16 + nlcst-to-string: 2.0.4 + nlcst-types: 1.4.0 + parse-english: 4.2.0 + unist-util-visit: 1.4.1 + dev: true + + /nlcst-search/2.0.0: + resolution: {integrity: sha512-+3xdctMFTcG+76vKAa0wObNg1EYq7IIQlZcL+HxSFXkHO1DgSPRjsPJrmelVIvMg7rk+wmBcdPEoScv/CTT1Zw==} + dependencies: + nlcst-is-literal: 1.2.2 + nlcst-normalize: 2.1.5 + unist-util-visit: 2.0.3 + dev: true + + /nlcst-to-string/2.0.4: + resolution: {integrity: sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==} + dev: true + + /nlcst-types/1.4.0: + resolution: {integrity: sha512-zVKrIbX9LojI8AwYwiVv9QBS8ulReh32pnGABrqXpFKCm0vbVx9Zzn1bsrs7ebuUR0iuihkif48EM+gfsMCx5g==} + dependencies: + unist-types: 1.4.0 + dev: true + + /no-cliches/0.3.4: + resolution: {integrity: sha512-oUqnng1vhKLaA4GR+OzVbLuZZ7OOguKCtMHxHMiyP8+9mXidKfoCyc030LbAyNI3xcgCHHyitK3Q8wP+w6DwVQ==} + engines: {node: '>=6', npm: '>=5'} + peerDependencies: + eslint-plugin-import: ^2.22.1 + eslint-plugin-jsx-a11y: ^6.4.1 + eslint-plugin-react: ^7.21.5 + eslint-plugin-react-hooks: ^4.0.0 + dev: true + + /node-emoji/1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + dependencies: + lodash: 4.17.21 + dev: true + + /node-fetch/1.7.3: + resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==} + dependencies: + encoding: 0.1.13 + is-stream: 1.1.0 + dev: true + + /node-fetch/2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-releases/2.0.5: + resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==} + dev: true + + /nomnom/1.8.1: + resolution: {integrity: sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=} + deprecated: Package no longer supported. Contact support@npmjs.com for more info. + dependencies: + chalk: 0.4.0 + underscore: 1.6.0 + dev: true + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.9.0 + semver: 7.3.7 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url/4.5.1: + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} + dev: true + + /normalize-url/6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm/8.11.0: + resolution: {integrity: sha512-4qmtwHa28J4SPmwCNoQI07KIF/ljmBhhuqG+xNXsIIRpwdKB5OXkMIGfH6KlThR6kzusxlkgR7t1haFDB88dcQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + hasBin: true + dev: true + bundledDependencies: + - '@isaacs/string-locale-compare' + - '@npmcli/arborist' + - '@npmcli/ci-detect' + - '@npmcli/config' + - '@npmcli/fs' + - '@npmcli/map-workspaces' + - '@npmcli/package-json' + - '@npmcli/run-script' + - abbrev + - archy + - cacache + - chalk + - chownr + - cli-columns + - cli-table3 + - columnify + - fastest-levenshtein + - glob + - graceful-fs + - hosted-git-info + - ini + - init-package-json + - is-cidr + - json-parse-even-better-errors + - libnpmaccess + - libnpmdiff + - libnpmexec + - libnpmfund + - libnpmhook + - libnpmorg + - libnpmpack + - libnpmpublish + - libnpmsearch + - libnpmteam + - libnpmversion + - make-fetch-happen + - minipass + - minipass-pipeline + - mkdirp + - mkdirp-infer-owner + - ms + - node-gyp + - nopt + - npm-audit-report + - npm-install-checks + - npm-package-arg + - npm-pick-manifest + - npm-profile + - npm-registry-fetch + - npm-user-validate + - npmlog + - opener + - pacote + - parse-conflict-json + - proc-log + - qrcode-terminal + - read + - read-package-json + - read-package-json-fast + - readdir-scoped-modules + - rimraf + - semver + - ssri + - tar + - text-table + - tiny-relative-date + - treeverse + - validate-npm-package-name + - which + - write-file-atomic + + /object-assign/3.0.0: + resolution: {integrity: sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect/1.12.1: + resolution: {integrity: sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==} + dev: true + + /object-is/1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + dev: true + + /object-keys/0.4.0: + resolution: {integrity: sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=} + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries/1.1.5: + resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + optional: true + + /object.fromentries/2.0.5: + resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + optional: true + + /object.hasown/1.1.1: + resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==} + dependencies: + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + optional: true + + /object.values/1.1.5: + resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /object_values/0.1.2: + resolution: {integrity: sha512-tZgUiKLraVH+4OAedBYrr4/K6KmAQw2RPNd1AuNdhLsuz5WP3VB7WuiKBWbOcjeqqAjus2ChIIWC8dSfmg7ReA==} + dev: true + + /omni-fetch/0.1.0_isomorphic-fetch@2.2.1: + resolution: {integrity: sha1-Och1UMG7jdLMH7pUj0L1Jnpa7jk=} + peerDependencies: + isomorphic-fetch: ^2 + dependencies: + caw: 1.2.0 + isomorphic-fetch: 2.2.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/2.0.1: + resolution: {integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: true + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /os-tmpdir/1.0.2: + resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} + engines: {node: '>=0.10.0'} + dev: true + + /p-cancelable/1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + dev: true + + /p-defer/1.0.0: + resolution: {integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=} + engines: {node: '>=4'} + dev: true + + /p-each-series/2.2.0: + resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} + engines: {node: '>=8'} + dev: true + + /p-filter/2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: true + + /p-finally/1.0.0: + resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} + engines: {node: '>=4'} + dev: true + + /p-is-promise/2.1.0: + resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} + engines: {node: '>=6'} + dev: true + + /p-is-promise/3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + dev: true + + /p-limit/1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/2.0.0: + resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate/3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map/2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-memoize/3.1.0: + resolution: {integrity: sha512-e5tIvrsr7ydUUnxb534iQWtXxWgk/86IsH+H+nV4FHouIggBt4coXboKBt26o4lTu7JbEnGSeXdEsYR8BhAHFA==} + engines: {node: '>=6'} + dependencies: + mem: 4.3.0 + mimic-fn: 2.1.0 + dev: true + + /p-queue/6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + dev: true + + /p-reduce/2.1.0: + resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} + engines: {node: '>=8'} + dev: true + + /p-retry/4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + + /p-timeout/3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + dependencies: + p-finally: 1.0.0 + dev: true + + /p-try/1.0.0: + resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + engines: {node: '>=4'} + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /package-json/6.5.0: + resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} + engines: {node: '>=8'} + dependencies: + got: 9.6.0 + registry-auth-token: 4.2.1 + registry-url: 5.1.0 + semver: 6.3.0 + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-english/4.2.0: + resolution: {integrity: sha512-jw5N6wZUZViIw3VLG/FUSeL3vDhfw5Q2g4E3nYC69Mm5ANbh9ZWd+eligQbeUoyObZM8neynTn3l14e09pjEWg==} + dependencies: + nlcst-to-string: 2.0.4 + parse-latin: 4.3.0 + unist-util-modify-children: 2.0.0 + unist-util-visit-children: 1.1.4 + dev: true + + /parse-entities/2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-json/2.2.0: + resolution: {integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=} + engines: {node: '>=0.10.0'} + dependencies: + error-ex: 1.3.2 + dev: true + + /parse-json/4.0.0: + resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.16.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-latin/4.3.0: + resolution: {integrity: sha512-TYKL+K98dcAWoCw/Ac1yrPviU8Trk+/gmjQVaoWEFDZmVD4KRg6c/80xKqNNFQObo2mTONgF8trzAf2UTwKafw==} + dependencies: + nlcst-to-string: 2.0.4 + unist-util-modify-children: 2.0.0 + unist-util-visit-children: 1.1.4 + dev: true + + /parse-passwd/1.0.0: + resolution: {integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=} + engines: {node: '>=0.10.0'} + dev: true + + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + + /passive-voice/0.1.0: + resolution: {integrity: sha1-Fv+RrkC6DpLEPmcXY/3IQqcCcLE=} + dev: true + + /path-exists/2.1.0: + resolution: {integrity: sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=} + engines: {node: '>=0.10.0'} + dependencies: + pinkie-promise: 2.0.1 + dev: true + + /path-exists/3.0.0: + resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + engines: {node: '>=4'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-to-glob-pattern/1.0.2: + resolution: {integrity: sha1-Rz5qOikqnRP7rj7czuctO6uoxhk=} + dev: true + + /path-type/1.1.0: + resolution: {integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.10 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /path-type/3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathval/1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /pause-stream/0.0.11: + resolution: {integrity: sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=} + dependencies: + through: 2.3.8 + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree/0.5.0: + resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify/2.3.0: + resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} + engines: {node: '>=0.10.0'} + dev: true + + /pify/3.0.0: + resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} + engines: {node: '>=4'} + dev: true + + /pinkie-promise/2.0.1: + resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie/2.0.4: + resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=} + engines: {node: '>=0.10.0'} + dev: true + + /pkg-conf/2.1.0: + resolution: {integrity: sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + load-json-file: 4.0.0 + dev: true + + /pluralize/2.0.0: + resolution: {integrity: sha1-crcmqm+sHt7uQiVsfY3CVrM1Z38=} + dev: true + + /pluralize/8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /postcss/8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prepend-http/2.0.0: + resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} + engines: {node: '>=4'} + dev: true + + /prettier/2.6.2: + resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-format/27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + optional: true + + /process-nextick-args/1.0.7: + resolution: {integrity: sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=} + dev: true + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /prop-types/15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + optional: true + + /property-information/5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + dependencies: + xtend: 4.0.2 + dev: true + + /pseudomap/1.0.2: + resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} + dev: true + + /pump-chain/1.0.0: + resolution: {integrity: sha1-fVfY2a2BgeqAj1QTxPK8HnhqXjc=} + dependencies: + bubble-stream-error: 1.0.0 + pump: 1.0.3 + sliced: 1.0.1 + dev: true + + /pump/1.0.3: + resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /pupa/2.1.1: + resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} + engines: {node: '>=8'} + dependencies: + escape-goat: 2.1.1 + dev: true + + /q/1.5.1: + resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /quotation/1.1.3: + resolution: {integrity: sha512-45gUgmX/RtQOQV1kwM06boP49OYXcKCPrYwdmAvs5YqkpiobhNKKwo524JM6Ma0ko3oN9tXNcWs9+ABq3Ry7YA==} + dev: true + + /rc-config-loader/3.0.0: + resolution: {integrity: sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ==} + dependencies: + debug: 4.3.4 + js-yaml: 3.14.1 + json5: 2.2.1 + require-from-string: 2.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /rc/1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.6 + strip-json-comments: 2.0.1 + dev: true + + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + optional: true + + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + optional: true + + /read-pkg-up/1.0.1: + resolution: {integrity: sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=} + engines: {node: '>=0.10.0'} + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + dev: true + + /read-pkg-up/3.0.0: + resolution: {integrity: sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/1.1.0: + resolution: {integrity: sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=} + engines: {node: '>=0.10.0'} + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.5.0 + path-type: 1.1.0 + dev: true + + /read-pkg/3.0.0: + resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream/1.0.34: + resolution: {integrity: sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream/2.0.6: + resolution: {integrity: sha1-j5A0HmilPMySh4jaz80Rs265t44=} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 1.0.7 + string_decoder: 0.10.31 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /redent/1.0.0: + resolution: {integrity: sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=} + engines: {node: '>=0.10.0'} + dependencies: + indent-string: 2.1.0 + strip-indent: 1.0.1 + dev: true + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /redeyed/2.1.1: + resolution: {integrity: sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=} + dependencies: + esprima: 4.0.1 + dev: true + + /regenerator-runtime/0.13.9: + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + dev: true + optional: true + + /regex-not/1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp-tree/0.1.24: + resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} + hasBin: true + dev: true + + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /registry-auth-token/4.2.1: + resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} + engines: {node: '>=6.0.0'} + dependencies: + rc: 1.2.8 + dev: true + + /registry-url/5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} + dependencies: + rc: 1.2.8 + dev: true + + /rehype-parse/7.0.1: + resolution: {integrity: sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==} + dependencies: + hast-util-from-parse5: 6.0.1 + parse5: 6.0.1 + dev: true + + /rehype-retext/2.0.4: + resolution: {integrity: sha512-OnGX5RE8WyEs/Snz+Bs8DM9uGdrNUXMhCC7CW3S1cIZVOC90VdewdE+71kpG6LOzS0xwgZyItwrhjGv+oQgwkQ==} + dependencies: + hast-util-to-nlcst: 1.2.8 + dev: true + + /remark-footnotes/3.0.0: + resolution: {integrity: sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg==} + dependencies: + mdast-util-footnote: 0.1.7 + micromark-extension-footnote: 0.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-frontmatter/2.0.0: + resolution: {integrity: sha512-uNOQt4tO14qBFWXenF0MLC4cqo3dv8qiHPGyjCl1rwOT0LomSHpcElbjjVh5CwzElInB38HD8aSRVugKQjeyHA==} + dependencies: + fault: 1.0.4 + dev: true + + /remark-frontmatter/3.0.0: + resolution: {integrity: sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==} + dependencies: + mdast-util-frontmatter: 0.2.0 + micromark-extension-frontmatter: 0.2.2 + dev: true + + /remark-gfm/1.0.0: + resolution: {integrity: sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==} + dependencies: + mdast-util-gfm: 0.1.2 + micromark-extension-gfm: 0.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-mdx/1.6.22: + resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.10.4 + '@babel/plugin-proposal-object-rest-spread': 7.12.1_@babel+core@7.12.9 + '@babel/plugin-syntax-jsx': 7.12.1_@babel+core@7.12.9 + '@mdx-js/util': 1.6.22 + is-alphabetical: 1.0.4 + remark-parse: 8.0.3 + unified: 9.2.0 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /remark-mdx/2.0.0-next.7: + resolution: {integrity: sha512-JHYCfxJzvjTw8h5y10f+mCvbfIt5klAkWlULqPu1nM/r6ghF3tzJl0AFQFj5b/m/7U553+yYb/y4n0julMERYA==} + dependencies: + parse-entities: 2.0.0 + remark-stringify: 8.1.1 + stringify-entities: 3.1.0 + strip-indent: 3.0.0 + unist-util-stringify-position: 2.0.3 + dev: true + + /remark-message-control/6.0.0: + resolution: {integrity: sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==} + dependencies: + mdast-comment-marker: 1.1.2 + unified-message-control: 3.0.3 + dev: true + + /remark-parse/8.0.3: + resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} + dependencies: + ccount: 1.1.0 + collapse-white-space: 1.0.6 + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + is-word-character: 1.0.4 + markdown-escapes: 1.0.4 + parse-entities: 2.0.0 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + trim: 0.0.1 + trim-trailing-lines: 1.1.4 + unherit: 1.1.3 + unist-util-remove-position: 2.0.1 + vfile-location: 3.2.0 + xtend: 4.0.2 + dev: true + + /remark-parse/9.0.0: + resolution: {integrity: sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==} + dependencies: + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-retext/4.0.0: + resolution: {integrity: sha512-cYCchalpf25bTtfXF24ribYvqytPKq0TiEhqQDBHvVEEsApebwruPWP1cTcvTFBidmpXyqzycm+y8ng7Kmvc8Q==} + dependencies: + mdast-util-to-nlcst: 4.0.1 + dev: true + + /remark-stringify/8.1.1: + resolution: {integrity: sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==} + dependencies: + ccount: 1.1.0 + is-alphanumeric: 1.0.0 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + longest-streak: 2.0.4 + markdown-escapes: 1.0.4 + markdown-table: 2.0.0 + mdast-util-compact: 2.0.1 + parse-entities: 2.0.0 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + stringify-entities: 3.1.0 + unherit: 1.1.3 + xtend: 4.0.2 + dev: true + + /repeat-string/1.6.1: + resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} + engines: {node: '>=0.10'} + dev: true + + /repeating/2.0.1: + resolution: {integrity: sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=} + engines: {node: '>=0.10.0'} + dependencies: + is-finite: 1.1.0 + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /requireindex/1.1.0: + resolution: {integrity: sha1-5UBLgVV+91225JxacgBIk/4D4WI=} + engines: {node: '>=0.10.5'} + dev: true + optional: true + + /requireindex/1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} + dev: true + + /resolve-dir/1.0.1: + resolution: {integrity: sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global/1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + hasBin: true + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve/2.0.0-next.3: + resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + dev: true + optional: true + + /responselike/1.0.2: + resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} + dependencies: + lowercase-keys: 1.0.1 + dev: true + + /restore-cursor/2.0.0: + resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=} + engines: {node: '>=4'} + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + dev: true + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret/0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /retext-english/3.0.4: + resolution: {integrity: sha512-yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==} + dependencies: + parse-english: 4.2.0 + unherit: 1.1.3 + dev: true + + /retext-equality/5.5.0: + resolution: {integrity: sha512-ha7zrQ+Bq4xWifm21IcAzc9xhMWCJYfePUjRRNE2mXi8cFhaq1F8+cD78YA2nd6W2mxd11VGTVKY9O0DmzEywQ==} + dependencies: + nlcst-normalize: 2.1.5 + nlcst-search: 2.0.0 + nlcst-to-string: 2.0.4 + quotation: 1.1.3 + unist-util-is: 4.1.0 + unist-util-visit: 2.0.3 + dev: true + + /retext-profanities/6.1.0: + resolution: {integrity: sha512-40Ym0WOgy7rRY4tR2iL01g3Y5Ql+9NBV21hycIhNX3uv+6vjaWB30NWN+tTcxNIWBJEwXHoTDMiVdAMm6ZpHVA==} + dependencies: + cuss: 1.21.0 + lodash.difference: 4.5.0 + lodash.intersection: 4.4.0 + nlcst-search: 2.0.0 + nlcst-to-string: 2.0.4 + object-keys: 1.1.1 + pluralize: 8.0.0 + quotation: 1.1.3 + dev: true + + /retry/0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf/2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup/2.74.1: + resolution: {integrity: sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-async/2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs/6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: true + + /rxjs/7.5.5: + resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} + dependencies: + tslib: 2.4.0 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex/1.1.0: + resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=} + dependencies: + ret: 0.1.15 + dev: true + + /safe-regex/2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.24 + dev: true + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /select-section/0.4.6: + resolution: {integrity: sha512-0WGMcD/Q6SoD/I3TfZyOstTpXZ0J072Qr+vdH+fCMEc5Z+4u/hFRQzc9prVlUpStHWH7phJ44+9nIVySyEQmTg==} + dependencies: + map-like: 1.1.3 + txt-ast-traverse: 1.2.1 + dev: true + + /semantic-release-conventional-commits/3.0.0: + resolution: {integrity: sha512-y7pqPk64zWjc/kX7nfT1wONwYs7R+oD2rX2HwR0SVtXneUaSL8cTkzt3rwx00in8NSovzkajy9JYlYOJyqSzZg==} + engines: {node: '>=10'} + dependencies: + conventional-commits-parser: 3.2.4 + dev: true + + /semantic-release/19.0.2: + resolution: {integrity: sha512-7tPonjZxukKECmClhsfyMKDt0GR38feIC2HxgyYaBi+9tDySBLjK/zYDLhh+m6yjnHIJa9eBTKYE7k63ZQcYbw==} + engines: {node: '>=16 || ^14.17'} + hasBin: true + dependencies: + '@semantic-release/commit-analyzer': 9.0.2_semantic-release@19.0.2 + '@semantic-release/error': 3.0.0 + '@semantic-release/github': 8.0.4_semantic-release@19.0.2 + '@semantic-release/npm': 9.0.1_semantic-release@19.0.2 + '@semantic-release/release-notes-generator': 10.0.3_semantic-release@19.0.2 + aggregate-error: 3.1.0 + cosmiconfig: 7.0.1 + debug: 4.3.4 + env-ci: 5.5.0 + execa: 5.1.1 + figures: 3.2.0 + find-versions: 4.0.0 + get-stream: 6.0.1 + git-log-parser: 1.2.0 + hook-std: 2.0.0 + hosted-git-info: 4.1.0 + lodash: 4.17.21 + marked: 4.0.16 + marked-terminal: 5.1.1_marked@4.0.16 + micromatch: 4.0.5 + p-each-series: 2.2.0 + p-reduce: 2.1.0 + read-pkg-up: 7.0.1 + resolve-from: 5.0.0 + semver: 7.3.7 + semver-diff: 3.1.1 + signale: 1.4.0 + yargs: 16.2.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /semver-diff/3.1.1: + resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /semver-regex/3.1.4: + resolution: {integrity: sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==} + engines: {node: '>=8'} + dev: true + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver/7.3.5: + resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /sentence-splitter/2.3.2: + resolution: {integrity: sha512-QnpHNykm4nI4T6mT+NoVayh9Ixl5DohYCSVqMgPJsO2WejOcqaYTh4HQOkmzaDzXH3NO5pif4z/hpo2NGtgNlg==} + hasBin: true + dependencies: + concat-stream: 1.6.2 + structured-source: 3.0.2 + dev: true + + /sentence-splitter/3.2.2: + resolution: {integrity: sha512-hMvaodgK9Fay928uiQoTMEWjXpCERdKD2uKo7BbSyP+uWTo+wHiRjN+ZShyI99rW0VuoV4Cuw8FUmaRcnpN7Ug==} + hasBin: true + dependencies: + '@textlint/ast-node-types': 4.4.3 + concat-stream: 2.0.0 + object_values: 0.1.2 + structured-source: 3.0.2 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: 1.12.1 + dev: true + + /sigmund/1.0.1: + resolution: {integrity: sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=} + dev: true + + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signale/1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + dependencies: + chalk: 2.4.2 + figures: 2.0.0 + pkg-conf: 2.1.0 + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.1.0 + is-fullwidth-code-point: 4.0.0 + dev: true + + /sliced/1.0.1: + resolution: {integrity: sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=} + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.5.7: + resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + engines: {node: '>=0.10.0'} + dev: true + optional: true + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /space-separated-tokens/1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + dev: true + + /spawn-error-forwarder/1.0.0: + resolution: {integrity: sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=} + dev: true + + /spawn-to-readstream/0.1.3: + resolution: {integrity: sha1-lnaLcnOaxk/6d8jOLL+YwtIdjb8=} + engines: {node: '>= 0.8.0'} + dependencies: + limit-spawn: 0.0.3 + through2: 0.4.2 + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-license-ids/3.0.11: + resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} + dev: true + + /split-transform-stream/0.1.1: + resolution: {integrity: sha1-glI2p41SoY/5EqYxrTA0wV3tX+M=} + dependencies: + bubble-stream-error: 0.0.1 + event-stream: 3.1.7 + through2: 0.4.2 + dev: true + + /split/0.2.10: + resolution: {integrity: sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=} + dependencies: + through: 2.3.8 + dev: true + + /split/1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + dependencies: + through: 2.3.8 + dev: true + + /split2/1.0.0: + resolution: {integrity: sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=} + dependencies: + through2: 2.0.0 + dev: true + + /split2/3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /sprintf-js/1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + dev: true + + /state-toggle/1.0.3: + resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} + dev: true + + /stream-combiner/0.0.4: + resolution: {integrity: sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=} + dependencies: + duplexer: 0.1.2 + dev: true + + /stream-combiner2/1.1.1: + resolution: {integrity: sha1-+02KFCDqNidk4hrUeAOXvry0HL4=} + dependencies: + duplexer2: 0.1.4 + readable-stream: 2.3.7 + dev: true + + /string-argv/0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + + /string-width/2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: true + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width/5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + dev: true + + /string.prototype.matchall/4.0.7: + resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.1 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + optional: true + + /string.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /string_decoder/0.10.31: + resolution: {integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=} + dev: true + + /string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities/3.1.0: + resolution: {integrity: sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==} + dependencies: + character-entities-html4: 1.1.4 + character-entities-legacy: 1.1.4 + xtend: 4.0.2 + dev: true + + /strip-ansi/0.1.1: + resolution: {integrity: sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=} + engines: {node: '>=0.8.0'} + hasBin: true + dev: true + + /strip-ansi/4.0.0: + resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.1 + dev: true + + /strip-ansi/5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi/7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom/2.0.0: + resolution: {integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=} + engines: {node: '>=0.10.0'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + engines: {node: '>=4'} + dev: true + + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-indent/1.0.1: + resolution: {integrity: sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + get-stdin: 4.0.1 + dev: true + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments/2.0.1: + resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} + engines: {node: '>=0.10.0'} + dev: true + + /strip-json-comments/3.0.1: + resolution: {integrity: sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==} + engines: {node: '>=8'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /structured-source/3.0.2: + resolution: {integrity: sha1-3YAkJeD1PcSm56yjdSkBoczaevU=} + dependencies: + boundary: 1.0.1 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/6.1.0: + resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} + engines: {node: '>=6'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color/9.2.2: + resolution: {integrity: sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==} + engines: {node: '>=12'} + dev: true + + /supports-hyperlinks/2.2.0: + resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /synckit/0.4.1: + resolution: {integrity: sha512-ngUh0+s+DOqEc0sGnrLaeNjbXp0CWHjSGFBqPlQmQ+oN/OfoDoYDBXPh+b4qs1M5QTk5nuQ3AmVz9+2xiY/ldw==} + engines: {node: '>=12'} + dependencies: + tslib: 2.4.0 + uuid: 8.3.2 + dev: true + optional: true + + /table/6.8.0: + resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.11.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /temp-dir/2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy/1.0.1: + resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} + engines: {node: '>=10'} + dependencies: + del: 6.1.1 + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + + /term-size/2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-extensions/1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + dev: true + + /textlint-filter-rule-comments/1.2.2_textlint@12.1.1: + resolution: {integrity: sha1-OnLElJlOBo4OSqrQ8k6nz+M4UDo=} + peerDependencies: + textlint: '>=6.8.0' + dependencies: + textlint: 12.1.1 + dev: true + + /textlint-rule-abbr-within-parentheses/1.0.2: + resolution: {integrity: sha1-jUndArOnqI1+azKBf54gLFxllrk=} + dependencies: + match-index: 1.0.3 + dev: true + + /textlint-rule-alex/3.0.0_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-z/Xo1WHxAn7eueUbRLXoMNew+R3dzGENPG/yiCt/KT2WgAfRuQ7GeF855kLcnCCqdTnl6W7sYq8TKy+/DLpiqQ==} + dependencies: + alex: 9.1.1 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + - supports-color + dev: true + + /textlint-rule-apostrophe/2.0.0: + resolution: {integrity: sha512-iA0YlUBLS4/YNswvOzG44zo/tJ+xhcLYjyzI9iPia9+jxCQ5NGLlRXHTdtwWPvTTpCk3cn9vlcxYma7wdYyWzg==} + engines: {node: '>=8.9'} + dev: true + + /textlint-rule-common-misspellings/1.0.1: + resolution: {integrity: sha1-jEEzzzu1mqFZGZ0sm87RJBM2V3Q=} + dependencies: + misspellings: 1.1.0 + textlint-rule-helper: 1.2.0 + dev: true + + /textlint-rule-date-weekday-mismatch/1.0.6: + resolution: {integrity: sha512-ROZnjGr6z9+kg5+psF34aD71Im2DtlGAsgpgQhY9zeeK9WGXVwpCioFu2k3ys/A06pEAHQpc2MOkXJGVbRpgRA==} + dependencies: + chrono-node: 1.4.8 + moment: 2.29.3 + textlint-tester: 12.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /textlint-rule-diacritics/1.0.0: + resolution: {integrity: sha512-hhJvDZzhV+sKD7walPQ4VmWkBw5o1T/lFLRsoDsAJF+LYhD89R5/L4yFVtxFRUkP9VZ5cvoUIPkYjZvkPEawTA==} + engines: {node: '>=8.6'} + dependencies: + match-casing: 1.0.3 + strip-json-comments: 3.1.1 + dev: true + + /textlint-rule-en-capitalization/2.0.3_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-tIx2gzm3okWfK5+0NNV1ap21LHk9PTc2/IXNqFhd7RDVSqv7YFaZnhwL+UrBZXTEfOh6VgnTQd81Os2Akzas5g==} + dependencies: + en-pos: 1.0.16 + sentence-splitter: 3.2.2 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /textlint-rule-footnote-order/1.0.3: + resolution: {integrity: sha512-HH4AWGi05S88XJ0HTzihOpVPDV+BRpnqt/MXnVcQBHTc6wGxNgVoBWN19o43G3D8m3GYnoUAR8UF/IbAYbKolA==} + dev: true + + /textlint-rule-helper/1.2.0: + resolution: {integrity: sha1-vmjUelFGsW3RFieMmut701YxzNo=} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /textlint-rule-helper/2.0.1: + resolution: {integrity: sha512-QNGSOemLVxm1b0qnH5VpRY8uyHgfx/8M+St8wSy/d6mZh0abd+KAvhQSuO8cxmVeRKr/LRkhAB3+0QU5LKhLGw==} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /textlint-rule-helper/2.2.1_88a4e05ec942106e1ba548ae330969ca: + resolution: {integrity: sha512-pdX3uNbFzQTgINamaBpEHRT/MgROHev5wCnQnUTXRLT5DaRjls0Rmpi5d1MPZG6HT5NKVL++Q2J0FUbh5shi3Q==} + peerDependencies: + '@textlint/ast-node-types': ^12.1.0 + '@textlint/types': ^12.1.0 + dependencies: + '@textlint/ast-node-types': 4.4.3 + '@textlint/types': 12.1.1 + structured-source: 3.0.2 + unist-util-visit: 2.0.3 + dev: true + + /textlint-rule-helper/2.2.1_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-pdX3uNbFzQTgINamaBpEHRT/MgROHev5wCnQnUTXRLT5DaRjls0Rmpi5d1MPZG6HT5NKVL++Q2J0FUbh5shi3Q==} + peerDependencies: + '@textlint/ast-node-types': ^12.1.0 + '@textlint/types': ^12.1.0 + dependencies: + '@textlint/ast-node-types': 12.1.1 + '@textlint/types': 12.1.1 + structured-source: 3.0.2 + unist-util-visit: 2.0.3 + dev: true + + /textlint-rule-no-dead-link/4.8.0_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-jB45mvIhKdgLFs4kDzfn8Q3C1WBv+BGI6At07ZJd9YmM/+dm+P8W9urisBSXFeQcYoGcaXqDiKZwK9BpdnpciQ==} + engines: {node: '>=4'} + dependencies: + fs-extra: 8.1.0 + get-url-origin: 1.0.1 + minimatch: 3.1.2 + node-fetch: 2.6.7 + p-memoize: 3.1.0 + p-queue: 6.6.2 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + - encoding + dev: true + + /textlint-rule-no-empty-section/1.1.0: + resolution: {integrity: sha1-E3rmuN/Kq3Wf1gaL/MGmyUG7Rgc=} + dependencies: + select-section: 0.4.6 + dev: true + + /textlint-rule-no-exclamation-question-mark/1.1.0_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-FcBH3uH2qp5VG7I9LKwolUCcPigONcsdam1JhAFPcu10YZNYX0r1l2y9Hzg+E4+1fXLgtGyiObWwfsfelTx8Bw==} + dependencies: + '@textlint/regexp-string-matcher': 1.1.1 + match-index: 1.0.3 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /textlint-rule-no-todo/2.0.1_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-+adoWaBgoTN2g0WNcrERhVq7gdPKQIf1z7Ol+6XwMGv8XmuoFp5vJljHKtCmJBmGhBihjty2b8oaza2MY6UNlw==} + dependencies: + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /textlint-rule-terminology/3.0.0_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-ySHbdLcA9Mdbbbc/Wkts3f8CVvY2Nsy3r21NH4bK785jhdpZozG771WDR7d7L5nNnFBeH7MmS0IcscfMpxMyvQ==} + engines: {node: '>=14'} + dependencies: + lodash: 4.17.21 + strip-json-comments: 3.1.1 + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + dev: true + + /textlint-rule-write-good/2.0.0_e609ff63bcb807beaf84e2156282686e: + resolution: {integrity: sha512-yvOJavJD+PgyUzvsoLDDzDtgCVBva/HNhEvsFnYVugrWz0qy2hr+/4B4wkzjro4wfPbwz20GQe5h13N4DeUEeA==} + engines: {node: '>=6'} + dependencies: + textlint-rule-helper: 2.2.1_e609ff63bcb807beaf84e2156282686e + write-good: 1.0.8 + transitivePeerDependencies: + - '@textlint/ast-node-types' + - '@textlint/types' + - eslint-plugin-import + - eslint-plugin-jsx-a11y + - eslint-plugin-react + - eslint-plugin-react-hooks + dev: true + + /textlint-tester/12.1.1: + resolution: {integrity: sha512-n525FM/8NEx6XXMbjKwL3oxSQ6u8s11EongSvL+050qzbPT4TnZ19w43uR0uhiD1+3+iuuDsYD99s1syI4E43g==} + dependencies: + '@textlint/feature-flag': 12.1.1 + '@textlint/kernel': 12.1.1 + textlint: 12.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /textlint-util-to-string/2.1.1: + resolution: {integrity: sha512-PW6rXqLNGL3xZ6d5/INrX+pt8qbffmeDPLcvkBOlfNpDRFhVvNNjFmZXH86ZQjrOz9t/nNZDBXqnzqJuioJbSQ==} + dependencies: + object-assign: 4.1.1 + structured-source: 3.0.2 + dev: true + + /textlint/12.1.1: + resolution: {integrity: sha512-AoE/pPL+6e/7hHOxwxL5oBTYIsG6gjrMP77VQZVYxXYfTDduwRlqhQUUrVd32DaLQTm7z3/lCnY46uFkmK06fA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@textlint/ast-node-types': 12.1.1 + '@textlint/ast-traverse': 12.1.1 + '@textlint/feature-flag': 12.1.1 + '@textlint/fixer-formatter': 12.1.1 + '@textlint/kernel': 12.1.1 + '@textlint/linter-formatter': 12.1.1 + '@textlint/module-interop': 12.1.1 + '@textlint/textlint-plugin-markdown': 12.1.1 + '@textlint/textlint-plugin-text': 12.1.1 + '@textlint/types': 12.1.1 + '@textlint/utils': 12.1.1 + debug: 4.3.4 + deep-equal: 1.1.1 + file-entry-cache: 5.0.1 + get-stdin: 5.0.1 + glob: 7.2.3 + is-file: 1.0.0 + md5: 2.3.0 + mkdirp: 0.5.6 + optionator: 0.9.1 + path-to-glob-pattern: 1.0.2 + rc-config-loader: 3.0.0 + read-pkg: 1.1.0 + read-pkg-up: 3.0.0 + structured-source: 3.0.2 + try-resolve: 1.0.1 + unique-concat: 0.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /thenify-all/1.6.0: + resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /through/2.3.8: + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + dev: true + + /through2/0.4.2: + resolution: {integrity: sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=} + dependencies: + readable-stream: 1.0.34 + xtend: 2.1.2 + dev: true + + /through2/2.0.0: + resolution: {integrity: sha1-9BocMd9eEp5DFERvZuygXNajBIA=} + dependencies: + readable-stream: 2.0.6 + xtend: 4.0.2 + dev: true + + /through2/4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /timers-ext/0.1.7: + resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} + dependencies: + es5-ext: 0.10.61 + next-tick: 1.1.0 + dev: true + + /tinypool/0.1.3: + resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy/0.3.2: + resolution: {integrity: sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==} + engines: {node: '>=14.0.0'} + dev: true + + /tmp/0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + dev: true + optional: true + + /to-readable-stream/1.0.0: + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex/3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /to-vfile/6.1.0: + resolution: {integrity: sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==} + dependencies: + is-buffer: 2.0.5 + vfile: 4.2.1 + dev: true + + /too-wordy/0.3.4: + resolution: {integrity: sha512-EU+UA4zHc06TkVQaravNNVdqX763/ENTIOKiKlqSJ6WKCPwLxHjvY3d0uEJYaq92iojyHPwD2iaYbZKjdw3icA==} + engines: {node: '>=6', npm: '>=5'} + dev: true + + /tr46/0.0.3: + resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} + dev: true + + /traverse/0.6.6: + resolution: {integrity: sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=} + dev: true + + /trim-newlines/1.0.0: + resolution: {integrity: sha1-WIeWa7WCpFA6QetST301ARgVphM=} + engines: {node: '>=0.10.0'} + dev: true + + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trim-trailing-lines/1.1.4: + resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} + dev: true + + /trim/0.0.1: + resolution: {integrity: sha1-WFhUf2spB1fulczMZm+1AITEYN0=} + dev: true + + /trough/1.0.5: + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + dev: true + + /try-resolve/1.0.1: + resolution: {integrity: sha1-z95vq9ctY+V5fPqrhzq76OcA6RI=} + dev: true + + /ts-node/10.8.0_930cf294b789d5d471093937dde83c3c: + resolution: {integrity: sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.8 + '@tsconfig/node12': 1.0.9 + '@tsconfig/node14': 1.0.1 + '@tsconfig/node16': 1.0.2 + '@types/node': 17.0.35 + acorn: 8.7.1 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.7.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.6 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib/2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: true + + /tsutils/3.21.0_typescript@4.7.2: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.7.2 + dev: true + + /tunnel-agent/0.4.3: + resolution: {integrity: sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=} + dev: true + + /txt-ast-traverse/1.2.1: + resolution: {integrity: sha1-WOP+Q92121yotRFClDsNG5cN70E=} + deprecated: See https://github.com/textlint/textlint/issues/455 + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest/0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest/1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + + /type/1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + dev: true + + /type/2.6.0: + resolution: {integrity: sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==} + dev: true + + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + + /typedarray/0.0.6: + resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} + dev: true + + /typescript/4.7.2: + resolution: {integrity: sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /uglify-js/3.15.5: + resolution: {integrity: sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /underscore/1.6.0: + resolution: {integrity: sha1-izixDKze9jM3uLJOT/htRa6lKag=} + dev: true + + /unherit/1.1.3: + resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} + dependencies: + inherits: 2.0.4 + xtend: 4.0.2 + dev: true + + /unified-diff/3.1.0: + resolution: {integrity: sha512-d29qhcADmrvjgSYDLDUmmE/zvVyKUW+O3gRz6Bjj7fcv8kGBlrYBmMjnuBI+wuTou/PXaVl3hPeSh9mXZ0iGSA==} + dependencies: + git-diff-tree: 1.1.0 + vfile-find-up: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /unified-engine/8.2.0: + resolution: {integrity: sha512-ZlMm62ejrf+tJHdyOjQfljszngQjRor95q2XZMGk6rpJUYi7ZIHY/EXEhOcj9PZkMKKdLIM+dqL4s0ceyk9wbA==} + dependencies: + concat-stream: 2.0.0 + debug: 4.3.4 + fault: 1.0.4 + figures: 3.2.0 + glob: 7.2.3 + ignore: 5.2.0 + is-buffer: 2.0.5 + is-empty: 1.2.0 + is-plain-obj: 2.1.0 + js-yaml: 3.14.1 + load-plugin: 3.0.0 + parse-json: 5.2.0 + to-vfile: 6.1.0 + trough: 1.0.5 + unist-util-inspect: 5.0.1 + vfile-reporter: 6.0.2 + vfile-statistics: 1.1.4 + transitivePeerDependencies: + - supports-color + dev: true + + /unified-message-control/3.0.3: + resolution: {integrity: sha512-oY5z2n8ugjpNHXOmcgrw0pQeJzavHS0VjPBP21tOcm7rc2C+5Q+kW9j5+gqtf8vfW/8sabbsK5+P+9QPwwEHDA==} + dependencies: + unist-util-visit: 2.0.3 + vfile-location: 3.2.0 + dev: true + + /unified/9.2.0: + resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} + dependencies: + bail: 1.0.5 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 2.1.0 + trough: 1.0.5 + vfile: 4.2.1 + dev: true + optional: true + + /unified/9.2.2: + resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} + dependencies: + bail: 1.0.5 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 2.1.0 + trough: 1.0.5 + vfile: 4.2.1 + dev: true + + /unique-concat/0.2.2: + resolution: {integrity: sha1-khD5vcqsxeHjkpSQ18AZ35bxhxI=} + dev: true + + /unique-string/2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + dev: true + + /unist-types/1.4.0: + resolution: {integrity: sha512-umIkg5iLYjZiDiZuX7wgG5UFd1z5NoiWkxk7xU00wXfj+i8ZePdcMWS9freHKJgAPyk6dkaKqc4akATCH/hNFA==} + dev: true + + /unist-util-find/1.0.2: + resolution: {integrity: sha512-ft06UDYzqi9o9RmGP0sZWI/zvLLQiBW2/MD+rW6mDqbOWDcmknGX9orQPspfuGRYWr8eSJAmfsBcvOpfGRJseA==} + dependencies: + lodash.iteratee: 4.7.0 + unist-util-visit: 1.4.1 + dev: true + + /unist-util-inspect/5.0.1: + resolution: {integrity: sha512-fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==} + dependencies: + is-empty: 1.2.0 + dev: true + + /unist-util-is/3.0.0: + resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} + dev: true + + /unist-util-is/4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + dev: true + + /unist-util-modify-children/2.0.0: + resolution: {integrity: sha512-HGrj7JQo9DwZt8XFsX8UD4gGqOsIlCih9opG6Y+N11XqkBGKzHo8cvDi+MfQQgiZ7zXRUiQREYHhjOBHERTMdg==} + dependencies: + array-iterate: 1.1.4 + dev: true + + /unist-util-position/3.1.0: + resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} + dev: true + + /unist-util-remove-position/2.0.1: + resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} + dependencies: + unist-util-visit: 2.0.3 + dev: true + + /unist-util-stringify-position/2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /unist-util-visit-children/1.1.4: + resolution: {integrity: sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==} + dev: true + + /unist-util-visit-parents/2.1.2: + resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} + dependencies: + unist-util-is: 3.0.0 + dev: true + + /unist-util-visit-parents/3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 4.1.0 + dev: true + + /unist-util-visit/1.4.1: + resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} + dependencies: + unist-util-visit-parents: 2.1.2 + dev: true + + /unist-util-visit/2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 + dev: true + + /universal-user-agent/6.0.0: + resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} + dev: true + + /universalify/0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /update-notifier/4.1.3: + resolution: {integrity: sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==} + engines: {node: '>=8'} + dependencies: + boxen: 4.2.0 + chalk: 3.0.0 + configstore: 5.0.1 + has-yarn: 2.1.0 + import-lazy: 2.1.0 + is-ci: 2.0.0 + is-installed-globally: 0.3.2 + is-npm: 4.0.0 + is-yarn-global: 0.3.0 + latest-version: 5.1.0 + pupa: 2.1.1 + semver-diff: 3.1.1 + xdg-basedir: 4.0.0 + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /url-join/4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true + + /url-parse-lax/3.0.0: + resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + dev: true + + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + optional: true + + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /v8-to-istanbul/9.0.0: + resolution: {integrity: sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.13 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /vfile-find-up/5.0.1: + resolution: {integrity: sha512-YWx8fhWQNYpHxFkR5fDO4lCdvPcY4jfCG7qUMHVvSp14vRfkEYxFG/vUEV0eJuXoKFfiAmMkAS8dekOYnpAJ+A==} + dependencies: + to-vfile: 6.1.0 + dev: true + + /vfile-location/3.2.0: + resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} + dev: true + + /vfile-message/2.0.4: + resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 2.0.3 + dev: true + + /vfile-reporter/6.0.2: + resolution: {integrity: sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==} + dependencies: + repeat-string: 1.6.1 + string-width: 4.2.3 + supports-color: 6.1.0 + unist-util-stringify-position: 2.0.3 + vfile-sort: 2.2.2 + vfile-statistics: 1.1.4 + dev: true + + /vfile-sort/2.2.2: + resolution: {integrity: sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==} + dev: true + + /vfile-statistics/1.1.4: + resolution: {integrity: sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==} + dev: true + + /vfile/4.2.1: + resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 2.0.3 + vfile-message: 2.0.4 + dev: true + + /vite/2.9.9: + resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==} + engines: {node: '>=12.2.0'} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + dependencies: + esbuild: 0.14.39 + postcss: 8.4.14 + resolve: 1.22.0 + rollup: 2.74.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitest/0.12.9_c8@7.11.3: + resolution: {integrity: sha512-1NtyUANS72Qw5PwYvoztk067NX4fSiis2xQxhByOWS33eL2er/yupHyLxlBCOkF2ANe0dLFRvT1GVb+nczL5aw==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.1 + '@types/chai-subset': 1.3.3 + c8: 7.11.3 + chai: 4.3.6 + debug: 4.3.4 + local-pkg: 0.4.1 + tinypool: 0.1.3 + tinyspy: 0.3.2 + vite: 2.9.9 + transitivePeerDependencies: + - less + - sass + - stylus + - supports-color + dev: true + + /vscode-json-languageservice/4.2.1: + resolution: {integrity: sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==} + dependencies: + jsonc-parser: 3.0.0 + vscode-languageserver-textdocument: 1.0.4 + vscode-languageserver-types: 3.17.1 + vscode-nls: 5.0.1 + vscode-uri: 3.0.3 + dev: true + + /vscode-languageserver-textdocument/1.0.4: + resolution: {integrity: sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ==} + dev: true + + /vscode-languageserver-types/3.17.1: + resolution: {integrity: sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ==} + dev: true + + /vscode-nls/5.0.1: + resolution: {integrity: sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==} + dev: true + + /vscode-uri/3.0.3: + resolution: {integrity: sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==} + dev: true + + /weasel-words/0.1.1: + resolution: {integrity: sha1-cTeUZYXHP+RIggE4U70ADF1oek4=} + dev: true + + /web-namespaces/1.1.4: + resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} + dev: true + + /webidl-conversions/3.0.1: + resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} + dev: true + + /whatwg-fetch/3.6.2: + resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} + dev: true + + /whatwg-url/5.0.0: + resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /widest-line/3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + dependencies: + string-width: 4.2.3 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wordwrap/1.0.0: + resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=} + dev: true + + /wrap-ansi/6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + dev: true + + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + + /write-good/1.0.8: + resolution: {integrity: sha512-P1Ct7+DNrOcr2JAxDZ3Q5i5sx2LSveu7iLaoUL0A+YiG0GKf0l5+9j3rwMeyh6JeTL1+HfQV1rnwEvzhNIvpFw==} + engines: {node: '>=6', npm: '>=5'} + hasBin: true + dependencies: + adverb-where: 0.2.5 + commander: 2.20.3 + e-prime: 0.10.4 + no-cliches: 0.3.4 + passive-voice: 0.1.0 + too-wordy: 0.3.4 + weasel-words: 0.1.1 + transitivePeerDependencies: + - eslint-plugin-import + - eslint-plugin-jsx-a11y + - eslint-plugin-react + - eslint-plugin-react-hooks + dev: true + + /write/1.0.3: + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} + engines: {node: '>=4'} + dependencies: + mkdirp: 0.5.6 + dev: true + + /xdg-basedir/4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + dev: true + + /xml-escape/1.1.0: + resolution: {integrity: sha1-OQTBQ/qOs6ADDsZG0pAqLxtwbEQ=} + dev: true + + /xtend/2.1.2: + resolution: {integrity: sha1-bv7MKk2tjmlixJAbM3znuoe10os=} + engines: {node: '>=0.4'} + dependencies: + object-keys: 0.4.0 + dev: true + + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist/2.1.2: + resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yargs-parser/18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser/21.0.1: + resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} + engines: {node: '>=12'} + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yargs/17.5.1: + resolution: {integrity: sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==} + engines: {node: '>=12'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.0.1 + dev: true + + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zwitch/1.0.5: + resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} + dev: true diff --git a/schema.json b/schema.json index 4e31cff2..481aa37d 100644 --- a/schema.json +++ b/schema.json @@ -1,500 +1,621 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", - "additionalProperties": false, - "definitions": { - "iso8601": { - "type": "string", - "description": "e.g. 2014-06-29", - "pattern": "^([1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]|[1-2][0-9]{3}-[0-1][0-9]|[1-2][0-9]{3})$" - } - }, - "properties": { - "$schema": { - "type": "string", - "description": "link to the version of the schema that can validate the resume", - "format": "uri" - }, - "basics": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - }, - "label": { - "type": "string", - "description": "e.g. Web Developer" - }, - "image": { - "type": "string", - "description": "URL (as per RFC 3986) to a image in JPEG or PNG format" - }, - "email": { - "type": "string", - "description": "e.g. thomas@gmail.com", - "format": "email" - }, - "phone": { - "type": "string", - "description": "Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923" - }, - "url": { - "type": "string", - "description": "URL (as per RFC 3986) to your website, e.g. personal homepage", - "format": "uri" - }, - "summary": { - "type": "string", - "description": "Write a short 2-3 sentence biography about yourself" - }, - "location": { - "type": "object", - "additionalProperties": true, - "properties": { - "address": { - "type": "string", - "description": "To add multiple address lines, use \n. For example, 1234 Glücklichkeit Straße\nHinterhaus 5. Etage li." - }, - "postalCode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "countryCode": { - "type": "string", - "description": "code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN" - }, - "region": { - "type": "string", - "description": "The general region where you live. Can be a US state, or a province, for instance." - } - } + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "$schema": { + "type": "string", + "description": "link to the version of the schema that can validate the resume", + "format": "uri" }, - "profiles": { - "type": "array", - "description": "Specify any number of social networks that you participate in", - "additionalItems": false, - "items": { + "basics": { "type": "object", "additionalProperties": true, "properties": { - "network": { - "type": "string", - "description": "e.g. Facebook or Twitter" - }, - "username": { - "type": "string", - "description": "e.g. neutralthoughts" - }, - "url": { - "type": "string", - "description": "e.g. http://twitter.example.com/neutralthoughts", - "format": "uri" - } + "name": { + "type": "string" + }, + "label": { + "type": "string", + "description": "e.g. Web Developer" + }, + "image": { + "type": "string", + "description": "URL (as per RFC 3986) to a image in JPEG or PNG format" + }, + "email": { + "type": "string", + "description": "e.g. thomas@gmail.com", + "format": "email" + }, + "phone": { + "type": "string", + "description": "Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923" + }, + "url": { + "type": "string", + "description": "URL (as per RFC 3986) to your website, e.g. personal homepage", + "format": "uri" + }, + "summary": { + "type": "string", + "description": "Write a short 2-3 sentence biography about yourself" + }, + "location": { + "type": "object", + "additionalProperties": true, + "properties": { + "address": { + "title": "Address", + "description": "The address, use an array to specify multiple address lines.", + "type": ["string", "array"], + "items": { + "title": "Address Line", + "description": "A single line of an address.", + "type": "string" + }, + "examples": [["1234 Glücklichkeit Straße", "Hinterhaus 5. Etage li"]] + }, + "postalCode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "countryCode": { + "type": "string", + "description": "code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN" + }, + "region": { + "type": "string", + "description": "The general region where you live. Can be a US state, or a province, for instance." + } + } + }, + "profiles": { + "type": "array", + "description": "Specify any number of social networks that you participate in", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "network": { + "type": "string", + "description": "e.g. Facebook or Twitter" + }, + "username": { + "type": "string", + "description": "e.g. neutralthoughts" + }, + "url": { + "type": "string", + "description": "e.g. http://twitter.example.com/neutralthoughts", + "format": "uri" + } + } + } + ] + } } - } - } - } - }, - "work": { - "type": "array", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. Facebook" - }, - "location": { - "type": "string", - "description": "e.g. Menlo Park, CA" - }, - "description": { - "type": "string", - "description": "e.g. Social Media Company" - }, - "position": { - "type": "string", - "description": "e.g. Software Engineer" - }, - "url": { - "type": "string", - "description": "e.g. http://facebook.example.com", - "format": "uri" - }, - "startDate": { - "$ref": "#/definitions/iso8601" - }, - "endDate": { - "$ref": "#/definitions/iso8601" - }, - "summary": { - "type": "string", - "description": "Give an overview of your responsibilities at the company" - }, - "highlights": { + }, + "work": { "type": "array", - "description": "Specify multiple accomplishments", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising" - } - } - } - } - }, - "volunteer": { - "type": "array", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "organization": { - "type": "string", - "description": "e.g. Facebook" - }, - "position": { - "type": "string", - "description": "e.g. Software Engineer" - }, - "url": { - "type": "string", - "description": "e.g. http://facebook.example.com", - "format": "uri" - }, - "startDate": { - "$ref": "#/definitions/iso8601" - }, - "endDate": { - "$ref": "#/definitions/iso8601" - }, - "summary": { - "type": "string", - "description": "Give an overview of your responsibilities at the company" - }, - "highlights": { + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Facebook" + }, + "location": { + "type": "string", + "description": "e.g. Menlo Park, CA" + }, + "description": { + "type": "string", + "description": "e.g. Social Media Company" + }, + "position": { + "type": "string", + "description": "e.g. Software Engineer" + }, + "url": { + "type": "string", + "description": "e.g. http://facebook.example.com", + "format": "uri" + }, + "startDate": { + "type": "string", + "format": "date" + }, + "endDate": { + "type": "string", + "format": "date" + }, + "summary": { + "type": "string", + "description": "Give an overview of your responsibilities at the company" + }, + "highlights": { + "type": "array", + "description": "Specify multiple accomplishments", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising" + } + ] + }, + "keywords": { + "type": "array", + "description": "Specify technologies or skills used", + "additionalItems": false, + "minItems": 1, + "items": [{ + "type": "string", + "description": "e.g. python" + }] + } + } + } + ] + }, + "volunteer": { "type": "array", - "description": "Specify accomplishments and achievements", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising" - } - } - } - } - }, - "education": { - "type": "array", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "institution": { - "type": "string", - "description": "e.g. Massachusetts Institute of Technology" - }, - "url": { - "type": "string", - "description": "e.g. http://facebook.example.com", - "format": "uri" - }, - "area": { - "type": "string", - "description": "e.g. Arts" - }, - "studyType": { - "type": "string", - "description": "e.g. Bachelor" - }, - "startDate": { - "$ref": "#/definitions/iso8601" - }, - "endDate": { - "$ref": "#/definitions/iso8601" - }, - "score": { - "type": "string", - "description": "grade point average, e.g. 3.67/4.0" - }, - "courses": { + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "organization": { + "type": "string", + "description": "e.g. Facebook" + }, + "position": { + "type": "string", + "description": "e.g. Software Engineer" + }, + "url": { + "type": "string", + "description": "e.g. http://facebook.example.com", + "format": "uri" + }, + "startDate": { + "type": "string", + "format": "date" + }, + "endDate": { + "type": "string", + "format": "date" + }, + "summary": { + "type": "string", + "description": "Give an overview of your responsibilities at the company" + }, + "highlights": { + "type": "array", + "description": "Specify accomplishments and achievements", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising" + } + ] + } + } + } + ] + }, + "education": { "type": "array", - "description": "List notable courses/subjects", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. H1302 - Introduction to American history" - } - } - } - } - }, - "awards": { - "type": "array", - "description": "Specify any awards you have received throughout your professional career", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "title": { - "type": "string", - "description": "e.g. One of the 100 greatest minds of the century" - }, - "date": { - "$ref": "#/definitions/iso8601" - }, - "awarder": { - "type": "string", - "description": "e.g. Time Magazine" - }, - "summary": { - "type": "string", - "description": "e.g. Received for my work with Quantum Physics" - } - } - } - }, - "certificates": { - "type": "array", - "description": "Specify any certificates you have received throughout your professional career", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. Certified Kubernetes Administrator" - }, - "date": { - "type": "string", - "description": "e.g. 1989-06-12", - "format": "date" - }, - "url": { - "type": "string", - "description": "e.g. http://example.com", - "format": "uri" - }, - "issuer": { - "type": "string", - "description": "e.g. CNCF" - } - } - } - }, - "publications": { - "type": "array", - "description": "Specify your publications through your career", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. The World Wide Web" - }, - "publisher": { - "type": "string", - "description": "e.g. IEEE, Computer Magazine" - }, - "releaseDate": { - "$ref": "#/definitions/iso8601" - }, - "url": { - "type": "string", - "description": "e.g. http://www.computer.org.example.com/csdl/mags/co/1996/10/rx069-abs.html", - "format": "uri" - }, - "summary": { - "type": "string", - "description": "Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML." - } - } - } - }, - "skills": { - "type": "array", - "description": "List out your professional skill-set", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. Web Development" - }, - "level": { - "type": "string", - "description": "e.g. Master" - }, - "keywords": { + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "institution": { + "type": "string", + "description": "e.g. Massachusetts Institute of Technology" + }, + "url": { + "type": "string", + "description": "e.g. http://facebook.example.com", + "format": "uri" + }, + "area": { + "type": "string", + "description": "e.g. Arts" + }, + "studyType": { + "type": "string", + "description": "e.g. Bachelor" + }, + "startDate": { + "type": "string", + "format": "date" + }, + "endDate": { + "type": "string", + "format": "date" + }, + "score": { + "type": "string", + "description": "grade point average, e.g. 3.67/4.0" + }, + "summary": { + "type": "string", + "description": "a short summary of your studies, e.g. Thesis" + }, + "courses": { + "type": "array", + "description": "List notable courses/subjects", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. H1302 - Introduction to American history" + } + ] + } + } + } + ] + }, + "awards": { "type": "array", - "description": "List some keywords pertaining to this skill", + "description": "Specify any awards you have received throughout your professional career", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. HTML" - } - } - } - } - }, - "languages": { - "type": "array", - "description": "List any other languages you speak", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "language": { - "type": "string", - "description": "e.g. English, Spanish" - }, - "fluency": { - "type": "string", - "description": "e.g. Fluent, Beginner" - } - } - } - }, - "interests": { - "type": "array", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. Philosophy" - }, - "keywords": { + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "title": { + "type": "string", + "description": "e.g. One of the 100 greatest minds of the century" + }, + "date": { + "type": "string", + "format": "date" + }, + "awarder": { + "type": "string", + "description": "e.g. Time Magazine" + }, + "summary": { + "type": "string", + "description": "e.g. Received for my work with Quantum Physics" + } + } + } + ] + }, + "certificates": { "type": "array", + "description": "Specify any certificates you have received throughout your professional career", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Friedrich Nietzsche" - } - } - } - } - }, - "references": { - "type": "array", - "description": "List references you have received", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. Timothy Cook" - }, - "reference": { - "type": "string", - "description": "e.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing." - } - } - } - }, - "projects": { - "type": "array", - "description": "Specify career projects", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. The World Wide Web" - }, - "description": { - "type": "string", - "description": "Short summary of project. e.g. Collated works of 2017." - }, - "highlights": { + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Certified Kubernetes Administrator" + }, + "date": { + "type": "string", + "description": "e.g. 1989-06-12", + "format": "date" + }, + "url": { + "type": "string", + "description": "e.g. http://example.com", + "format": "uri" + }, + "issuer": { + "type": "string", + "description": "e.g. CNCF" + } + } + } + ] + }, + "publications": { "type": "array", - "description": "Specify multiple features", + "description": "Specify your publications through your career", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Directs you close but not quite there" - } - }, - "keywords": { + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. The World Wide Web" + }, + "publisher": { + "type": "string", + "description": "e.g. IEEE, Computer Magazine" + }, + "releaseDate": { + "type": "string", + "format": "date" + }, + "url": { + "type": "string", + "description": "e.g. http://www.computer.org.example.com/csdl/mags/co/1996/10/rx069-abs.html", + "format": "uri" + }, + "summary": { + "type": "string", + "description": "Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML." + }, + "doi": { + "type": "string", + "description": "The DOI of the publication" + } + } + } + ] + }, + "skills": { "type": "array", - "description": "Specify special elements involved", + "description": "List out your professional skill-set", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. AngularJS" - } - }, - "startDate": { - "$ref": "#/definitions/iso8601" - }, - "endDate": { - "$ref": "#/definitions/iso8601" - }, - "url": { - "type": "string", - "format": "uri", - "description": "e.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html" - }, - "roles": { + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Web Development" + }, + "level": { + "type": "string", + "description": "e.g. Master" + }, + "keywords": { + "type": "array", + "description": "List some keywords pertaining to this skill", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. HTML" + } + ] + } + } + } + ] + }, + "languages": { "type": "array", - "description": "Specify your role on this project or in company", + "description": "List any other languages you speak", "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Team Lead, Speaker, Writer" - } - }, - "entity": { - "type": "string", - "description": "Specify the relevant company/entity affiliations e.g. 'greenpeace', 'corporationXYZ'" - }, - "type": { - "type": "string", - "description": " e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference'" - } - } - } - }, - "meta": { - "type": "object", - "description": "The schema version and any other tooling configuration lives here", - "additionalProperties": true, - "properties": { - "canonical": { - "type": "string", - "description": "URL (as per RFC 3986) to latest version of this document", - "format": "uri" + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "language": { + "type": "string", + "description": "e.g. English, Spanish" + }, + "fluency": { + "type": "string", + "description": "e.g. Fluent, Beginner" + } + } + } + ] }, - "version": { - "type": "string", - "description": "A version field which follows semver - e.g. v1.0.0" + "interests": { + "type": "array", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Philosophy" + }, + "keywords": { + "type": "array", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. Friedrich Nietzsche" + } + ] + } + } + } + ] }, - "lastModified": { - "type": "string", - "description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss" + "references": { + "type": "array", + "description": "List references you have received", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Timothy Cook" + }, + "reference": { + "type": "string", + "description": "e.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing." + } + } + } + ] + }, + "projects": { + "type": "array", + "description": "Specify career projects", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. The World Wide Web" + }, + "description": { + "type": "string", + "description": "Short summary of project. e.g. Collated works of 2017." + }, + "highlights": { + "type": "array", + "description": "Specify multiple features", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. Directs you close but not quite there" + } + ] + }, + "keywords": { + "type": "array", + "description": "Specify special elements involved", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. AngularJS" + } + ] + }, + "startDate": { + "type": "string", + "format": "date" + }, + "endDate": { + "type": "string", + "format": "date" + }, + "url": { + "type": "string", + "format": "uri", + "description": "e.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html" + }, + "roles": { + "type": "array", + "description": "Specify your role on this project or in company", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. Team Lead, Speaker, Writer" + } + ] + }, + "entity": { + "type": "string", + "description": "Specify the relevant company/entity affiliations e.g. 'greenpeace', 'corporationXYZ'" + }, + "type": { + "type": "string", + "description": " e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference'" + }, + "goal": { + "type": "string", + "description": "Specify the goal of the project, e.g. 'Sucessfully introducing Scrum'" + }, + "authority": { + "type": "string", + "description": "Specify the contract authority, e.g. CTO, CDO, project manager" + }, + "industry": { + "type": "string", + "description": "Specify the industry of the entity, e.g. automotive, energy, health" + }, + "volume": { + "type": "string", + "description": "Specify the contract volume if not 100% capacity, e.g. 20d, 6m " + }, + "team": { + "type": "string", + "description": "Specify your team size, e.g. 'Lead of 6 software engineers'" + }, + "stakeholder": { + "type": "array", + "description": "Specify importand stakeholders", + "additionalItems": false, + "minItems": 1, + "items": [ + { + "type": "string", + "description": "e.g. CFO, marketing, The Business (TM)" + } + ] + } + } + } + ] + }, + "meta": { + "type": "object", + "description": "The schema version and any other tooling configuration lives here", + "additionalProperties": true, + "properties": { + "canonical": { + "type": "string", + "description": "URL (as per RFC 3986) to latest version of this document", + "format": "uri" + }, + "version": { + "type": "string", + "description": "A version field which follows semver - e.g. v1.0.0" + }, + "lastModified": { + "type": "string", + "format": "date-time", + "description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss" + } + } } - } - } - }, - "title": "Resume Schema", - "type": "object" + }, + "title": "Resume Schema", + "type": "object" } diff --git a/scripts/build.js b/scripts/build.js new file mode 100644 index 00000000..b5af5647 --- /dev/null +++ b/scripts/build.js @@ -0,0 +1,5 @@ +const fs = require("fs"); +const { compileFromFile } = require("json-schema-to-typescript"); + +// eslint-disable-next-line no-console +compileFromFile("./schema.json").then((ts) => fs.writeFileSync("types.d.ts", ts)).catch((error) => console.log(error)); diff --git a/test/__test__/awards.json b/test/__test__/awards.json deleted file mode 100644 index fc0020c8..00000000 --- a/test/__test__/awards.json +++ /dev/null @@ -1,79 +0,0 @@ - -{ - "awardsValid": { - "awards": [] - }, - "awardsInvalid": { - "awards": null - }, - "titleValid": { - "awards": [ - { - "title": "Digital Compression Pioneer Award" - } - ] - }, - "titleInvalid": { - "awards": [ - { - "title": null - } - ] - }, - "dateValid": { - "awards": [ - { - "date": "2014-11-01" - } - ] - }, - "dateValid2": { - "awards": [ - { - "date": "2014-11" - } - ] - }, - "dateValid3": { - "awards": [ - { - "date": "2014" - } - ] - }, - "dateInvalid": { - "awards": [ - { - "date": null - } - ] - }, - "awarderValid": { - "awards": [ - { - "awarder": "Techcrunch" - } - ] - }, - "awarderInvalid": { - "awards": [ - { - "awarder": null - } - ] - }, - "summaryValid": { - "awards": [ - { - "summary": "There is no spoon." - } - ] - }, - "summaryInvalid": { - "awards": [ - { - "summary": null - } - ] - } -} diff --git a/test/__test__/basics.json b/test/__test__/basics.json deleted file mode 100644 index 6c86e399..00000000 --- a/test/__test__/basics.json +++ /dev/null @@ -1,222 +0,0 @@ -{ - "basicsValid": { - "basics": {} - }, - "basicsInvalid": { - "basics": null - }, - "nameValid": { - "basics": { - "name": "Richard Hendriks" - } - }, - "nameInvalid": { - "basics": { - "name": null - } - }, - "labelValid": { - "basics": { - "label": "Programmer" - } - }, - "labelInvalid": { - "basics": { - "label": null - } - }, - "imageValid": { - "basics": { - "image": "profile-image.png" - } - }, - "imageInvalid": { - "basics": { - "image": null - } - }, - "emailValid": { - "basics": { - "email": "richard.hendriks@mail.com" - } - }, - "emailInvalid": { - "basics": { - "email": null - } - }, - "phoneValid": { - "basics": { - "phone": "(912) 555-4321" - } - }, - "phoneInvalid": { - "basics": { - "phone": null - } - }, - "urlValid": { - "basics": { - "url": "http://richardhendricks.example.com" - } - }, - "urlInvalid": { - "basics": { - "url": null - } - }, - "summaryValid": { - "basics": { - "summary": "Richard hails from Tulsa. He has earned degrees from the University of Oklahoma and Stanford." - } - }, - "summaryInvalid": { - "basics": { - "summary": null - } - }, - "locationValid": { - "basics": { - "location": {} - } - }, - "locationInvalid": { - "basics": { - "location": null - } - }, - "locationAddressValid": { - "basics": { - "location": { - "address": "2712 Broadway St" - } - } - }, - "locationAddressInvalid": { - "basics": { - "location": { - "address": null - } - } - }, - "locationPostalValid": { - "basics": { - "location": { - "postalCode": "CA 94115" - } - } - }, - "locationPostalInvalid": { - "basics": { - "location": { - "postalCode": null - } - } - }, - "locationCityValid": { - "basics": { - "location": { - "city": "San Francisco" - } - } - }, - "locationCityInvalid": { - "basics": { - "location": { - "city": null - } - } - }, - "locationCountryValid": { - "basics": { - "location": { - "countryCode": "US" - } - } - }, - "locationCountryInvalid": { - "basics": { - "location": { - "countryCode": null - } - } - }, - "locationRegionValid": { - "basics": { - "location": { - "region": "California" - } - } - }, - "locationRegionInvalid": { - "basics": { - "location": { - "region": null - } - } - }, - "profilesValid": { - "basics": { - "profiles": [] - } - }, - "profilesInvalid": { - "basics": { - "profiles": null - } - }, - "profilesNetworkValid": { - "basics": { - "profiles": [ - { - "network": "Twitter" - } - ] - } - }, - "profilesNetworkInvalid": { - "basics": { - "profiles": [ - { - "network": null - } - ] - } - }, - "profilesUsernameValid": { - "basics": { - "profiles": [ - { - "username": "neutralthoughts" - } - ] - } - }, - "profilesUsernameInvalid": { - "basics": { - "profiles": [ - { - "username": null - } - ] - } - }, - "profilesUrlValid": { - "basics": { - "profiles": [ - { - "url": "https://twitter.com/neutralthoughts" - } - ] - } - }, - "profilesUrlInvalid": { - "basics": { - "profiles": [ - { - "url": null - } - ] - } - } -} diff --git a/test/__test__/dates.json b/test/__test__/dates.json deleted file mode 100644 index a3446714..00000000 --- a/test/__test__/dates.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "yearMonthDay": "2013-12-02", - "yearMonth": "2013-12-01", - "year": "2013-12-01", - "invalid": "2013-12-021" -} diff --git a/test/__test__/education.json b/test/__test__/education.json deleted file mode 100644 index 5b2b86d3..00000000 --- a/test/__test__/education.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "educationValid": { - "education": [] - }, - "educationInvalid": { - "education": null - }, - "institutionValid": { - "education": [ - { - "institution": "University of Oklahoma" - } - ] - }, - "institutionInvalid": { - "education": [ - { - "institution": null - } - ] - }, - "areaValid": { - "education": [ - { - "area": "Information Technology" - } - ] - }, - "areaInvalid": { - "education": [ - { - "area": null - } - ] - }, - "studyTypeValid": { - "education": [ - { - "studyType": "Bachelor" - } - ] - }, - "studyTypeInvalid": { - "education": [ - { - "studyType": null - } - ] - }, - "startDateValid": { - "education": [ - { - "startDate": "2011-06-01" - } - ] - }, - "startDateValid2": { - "education": [ - { - "startDate": "2011-06" - } - ] - }, - "startDateValid3": { - "education": [ - { - "startDate": "2011" - } - ] - }, - "startDateInvalid": { - "education": [ - { - "startDate": null - } - ] - }, - "endDateValid": { - "education": [ - { - "endDate": "2014-01-01" - } - ] - }, - "endDateValid2": { - "education": [ - { - "endDate": "2014-01" - } - ] - }, - "endDateValid3": { - "education": [ - { - "endDate": "2014" - } - ] - }, - "endDateInvalid": { - "education": [ - { - "endDate": null - } - ] - }, - "scoreValid": { - "education": [ - { - "score": "4.0" - } - ] - }, - "scoreInvalid": { - "education": [ - { - "score": null - } - ] - }, - "coursesValid": { - "education": [ - { - "courses": [] - } - ] - }, - "coursesInvalid": { - "education": [ - { - "courses": null - } - ] - }, - "coursesItemValid": { - "education": [ - { - "courses": [ - "DB1101 - Basic SQL" - ] - } - ] - }, - "coursesItemInvalid": { - "education": [ - { - "courses": [ - null - ] - } - ] - } -} diff --git a/test/__test__/interests.json b/test/__test__/interests.json deleted file mode 100644 index 44440a4b..00000000 --- a/test/__test__/interests.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "interestsValid": { - "interests": [] - }, - "interestsInvalid": { - "interests": null - }, - "nameValid": { - "interests": [ - { - "name": "Wildlife" - } - ] - }, - "nameInvalid": { - "interests": [ - { - "name": null - } - ] - }, - "keywordsValid": { - "interests": [ - { - "keywords": [] - } - ] - }, - "keywordsInvalid": { - "interests": [ - { - "keywords": null - } - ] - }, - "keywordsItemValid": { - "interests": [ - { - "keywords": [ - "Ferrets" - ] - } - ] - }, - "keywordsItemInvalid": { - "interests": [ - { - "keywords": [ - null - ] - } - ] - } -} diff --git a/test/__test__/languages.json b/test/__test__/languages.json deleted file mode 100644 index a032b1ff..00000000 --- a/test/__test__/languages.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "languagesValid": { - "languages": [] - }, - "languagesInvalid": { - "languages": null - }, - "languageValid": { - "languages": [ - { - "language": "English" - } - ] - }, - "languageInvalid": { - "languages": [ - { - "language": null - } - ] - }, - "fluencyValid": { - "languages": [ - { - "fluency": "Native speaker" - } - ] - }, - "fluencyInvalid": { - "languages": [ - { - "fluency": null - } - ] - } -} diff --git a/test/__test__/meta.json b/test/__test__/meta.json deleted file mode 100644 index 84d8f24d..00000000 --- a/test/__test__/meta.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "metaValid": { - "meta": {} - }, - "metaInvalid": { - "meta": null - }, - "canonicalValid": { - "meta": { - "canonical": "https://raw.githubusercontent.com/jsonresume/resume-schema/master/resume.json" - } - }, - "canonicalInvalid": { - "meta": { - "canonical": null - } - }, - "versionValid": { - "meta": { - "version": "v1.0.0" - } - }, - "versionInvalid": { - "meta": { - "version": null - } - }, - "lastModifiedValid": { - "meta": { - "lastModified": "2017-12-24T15:53:00" - } - }, - "lastModifiedInvalid": { - "meta": { - "lastModified": null - } - } -} diff --git a/test/__test__/projects.json b/test/__test__/projects.json deleted file mode 100644 index 022fec23..00000000 --- a/test/__test__/projects.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "projectsValid": { - "projects": [] - }, - "projectsInvalid": { - "projects": null - }, - "nameValid": { - "projects": [ - { - "name": "Miss Direction" - } - ] - }, - "nameInvalid": { - "projects": [ - { - "name": null - } - ] - }, - "descriptionValid": { - "projects": [ - { - "description": "A mapping engine that misguides you" - } - ] - }, - "descriptionInvalid": { - "projects": [ - { - "description": null - } - ] - }, - "highlightsValid": { - "projects": [ - { - "highlights": [] - } - ] - }, - "highlightsInvalid": { - "projects": [ - { - "highlights": null - } - ] - }, - "highlightsItemValid": { - "projects": [ - { - "highlights": [ - "Won award at AIHacks 2016" - ] - } - ] - }, - "highlightsItemInvalid": { - "projects": [ - { - "highlights": [ - null - ] - } - ] - }, - "keywordsValid": { - "projects": [ - { - "keywords": [] - } - ] - }, - "keywordsInvalid": { - "keywords": [ - { - "keywords": null - } - ] - }, - "keywordsItemValid": { - "projects": [ - { - "keywords": [ - "GoogleMaps" - ] - } - ] - }, - "keywordsItemInvalid": { - "projects": [ - { - "keywords": [ - null - ] - } - ] - }, - "startDateValid": { - "projects": [ - { - "startDate": "2015-08-24" - } - ] - }, - "startDateValid2": { - "projects": [ - { - "startDate": "2015-08" - } - ] - }, - "startDateValid3": { - "projects": [ - { - "startDate": "2015" - } - ] - }, - "startDateInvalid": { - "projects": [ - { - "startDate": null - } - ] - }, - "endDateValid": { - "projects": [ - { - "endDate": "2016-08-24" - } - ] - }, - "endDateValid2": { - "projects": [ - { - "endDate": "2016-08" - } - ] - }, - "endDateValid3": { - "projects": [ - { - "endDate": "2016" - } - ] - }, - "endDateInvalid": { - "projects": [ - { - "endDate": null - } - ] - }, - "rolesValid": { - "projects": [ - { - "roles": [] - } - ] - }, - "rolesInvalid": { - "keywords": [ - { - "roles": null - } - ] - }, - "rolesItemValid": { - "projects": [ - { - "roles": [ - "Team lead" - ] - } - ] - }, - "rolesItemInvalid": { - "projects": [ - { - "roles": [ - null - ] - } - ] - }, - "entityValid": { - "projects": [ - { - "entity": "Smoogle" - } - ] - }, - "entityInvalid": { - "projects": [ - { - "entity": null - } - ] - }, - "typeValid": { - "projects": [ - { - "type": "application" - } - ] - }, - "typeInvalid": { - "projects": [ - { - "type": null - } - ] - } -} diff --git a/test/__test__/publications.json b/test/__test__/publications.json deleted file mode 100644 index 08bdff8d..00000000 --- a/test/__test__/publications.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "publicationsValid": { - "publications": [] - }, - "publicationsInvalid": { - "publications": null - }, - "nameValid": { - "publications": [ - { - "name": "Video compression for 3d media" - } - ] - }, - "nameInvalid": { - "publications": [ - { - "name": null - } - ] - }, - "publisherValid": { - "publications": [ - { - "publisher": "Hooli" - } - ] - }, - "publisherInvalid": { - "publications": [ - { - "publisher": null - } - ] - }, - "releaseDateValid": { - "publications": [ - { - "releaseDate": "2014-10-01" - } - ] - }, - "releaseDateValid2": { - "publications": [ - { - "releaseDate": "2014-10" - } - ] - }, - "releaseDateValid3": { - "publications": [ - { - "releaseDate": "2014" - } - ] - }, - "releaseDateInvalid": { - "publications": [ - { - "releaseDate": null - } - ] - }, - "urlValid": { - "publications": [ - { - "url": "http://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)" - } - ] - }, - "urlInvalid": { - "publications": [ - { - "url": null - } - ] - }, - "summaryValid": { - "publications": [ - { - "summary": "Innovative middle-out compression algorithm that changes the way we store data." - } - ] - }, - "summaryInvalid": { - "publications": [ - { - "summary": null - } - ] - } -} diff --git a/test/__test__/references.json b/test/__test__/references.json deleted file mode 100644 index 0183185d..00000000 --- a/test/__test__/references.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "referencesValid": { - "references": [] - }, - "referencesInvalid": { - "references": null - }, - "nameValid": { - "references": [ - { - "name": "Erlich Bachman" - } - ] - }, - "nameInvalid": { - "references": [ - { - "name": null - } - ] - }, - "referenceValid": { - "references": [ - { - "reference": "It is my pleasure to recommend Richard, his performance working as a consultant for Main St. Company proved that he will be a valuable addition to any company." - } - ] - }, - "referenceInvalid": { - "references": [ - { - "reference": null - } - ] - } -} diff --git a/test/__test__/schema.json b/test/__test__/schema.json deleted file mode 100644 index a599327e..00000000 --- a/test/__test__/schema.json +++ /dev/null @@ -1,9 +0,0 @@ - -{ - "valid": { - "$schema": "foo-bar-baz" - }, - "invalid": { - "$schema": {} - } -} diff --git a/test/__test__/skills.json b/test/__test__/skills.json deleted file mode 100644 index 2b080807..00000000 --- a/test/__test__/skills.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "skillsValid": { - "skills": [] - }, - "skillsInvalid": { - "skills": null - }, - "nameValid": { - "skills": [ - { - "name": "Web Development" - } - ] - }, - "nameInvalid": { - "skills": [ - { - "name": null - } - ] - }, - "levelValid": { - "skills": [ - { - "level": "Master" - } - ] - }, - "levelInvalid": { - "skills": [ - { - "level": null - } - ] - }, - "keywordsValid": { - "skills": [ - { - "keywords": [] - } - ] - }, - "keywordsInvalid": { - "skills": [ - { - "keywords": null - } - ] - }, - "keywordsItemValid": { - "skills": [ - { - "keywords": [ - "HTML" - ] - } - ] - }, - "keywordsItemInvalid": { - "skills": [ - { - "keywords": [ - null - ] - } - ] - } -} diff --git a/test/__test__/volunteer.json b/test/__test__/volunteer.json deleted file mode 100644 index 28a847a7..00000000 --- a/test/__test__/volunteer.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "volunteerValid": { - "volunteer": [] - }, - "volunteerInvalid": { - "volunteer": null - }, - "organizationValid": { - "volunteer": [ - { - "organization": "CoderDojo" - } - ] - }, - "organizationInvalid": { - "volunteer": [ - { - "organization": null - } - ] - }, - "positionValid": { - "volunteer": [ - { - "position": "Teacher" - } - ] - }, - "positionInvalid": { - "volunteer": [ - { - "position": null - } - ] - }, - "urlValid": { - "volunteer": [ - { - "url": "http://coderdojo.example.com/" - } - ] - }, - "urlInvalid": { - "volunteer": [ - { - "url": null - } - ] - }, - "startDateValid": { - "volunteer": [ - { - "startDate": "2012-01-01" - } - ] - }, - "startDateValid2": { - "volunteer": [ - { - "startDate": "2012-01" - } - ] - }, - "startDateValid3": { - "volunteer": [ - { - "startDate": "2012" - } - ] - }, - "startDateInvalid": { - "volunteer": [ - { - "startDate": null - } - ] - }, - "endDateValid": { - "volunteer": [ - { - "endDate": "2013-01-01" - } - ] - }, - "endDateValid2": { - "volunteer": [ - { - "endDate": "2013-01" - } - ] - }, - "endDateValid3": { - "volunteer": [ - { - "endDate": "2013" - } - ] - }, - "endDateInvalid": { - "volunteer": [ - { - "endDate": null - } - ] - }, - "summaryValid": { - "volunteer": [ - { - "summary": "Global movement of free coding clubs for young people." - } - ] - }, - "summaryInvalid": { - "volunteer": [ - { - "summary": null - } - ] - }, - "highlightsValid": { - "volunteer": [ - { - "highlights": [] - } - ] - }, - "highlightsInvalid": { - "volunteer": [ - { - "highlights": null - } - ] - }, - "highlightsItemValid": { - "volunteer": [ - { - "highlights": [ - "Awarded 'Teacher of the Month'" - ] - } - ] - }, - "highlightsItemInvalid": { - "volunteer": [ - { - "highlights": [ - null - ] - } - ] - } -} diff --git a/test/__test__/work.json b/test/__test__/work.json deleted file mode 100644 index c31a568e..00000000 --- a/test/__test__/work.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "workValid": { - "work": [] - }, - "workInvalid": { - "work": null - }, - "nameValid": { - "work": [ - { - "name": "Pied Piper" - } - ] - }, - "nameInvalid": { - "work": [ - { - "name": null - } - ] - }, - "locationValid": { - "work": [ - { - "location": "Palo Alto, CA" - } - ] - }, - "locationInvalid": { - "work": [ - { - "location": null - } - ] - }, - "descriptionValid": { - "work": [ - { - "description": "Awesome compression company" - } - ] - }, - "descriptionInvalid": { - "work": [ - { - "description": null - } - ] - }, - "positionValid": { - "work": [ - { - "position": "CEO/President" - } - ] - }, - "positionInvalid": { - "work": [ - { - "position": null - } - ] - }, - "urlValid": { - "work": [ - { - "url": "http://piedpiper.example.com" - } - ] - }, - "urlInvalid": { - "work": [ - { - "url": null - } - ] - }, - "startDateValid": { - "work": [ - { - "startDate": "2013-12-01" - } - ] - }, - "startDateValid2": { - "work": [ - { - "startDate": "2013-12" - } - ] - }, - "startDateValid3": { - "work": [ - { - "startDate": "2013" - } - ] - }, - "startDateInvalid": { - "work": [ - { - "startDate": null - } - ] - }, - "endDateValid": { - "work": [ - { - "endDate": "2014-12-01" - } - ] - }, - "endDateValid2": { - "work": [ - { - "endDate": "2014-12" - } - ] - }, - "endDateValid3": { - "work": [ - { - "endDate": "2014" - } - ] - }, - "endDateInvalid": { - "work": [ - { - "endDate": null - } - ] - }, - "summaryValid": { - "work": [ - { - "summary": "Pied Piper is a multi-platform technology based on a proprietary universal compression algorithm that has consistently fielded high Weisman Scores™ that are not merely competitive, but approach the theoretical limit of lossless compression." - } - ] - }, - "summaryInvalid": { - "work": [ - { - "summary": null - } - ] - }, - "highlightsValid": { - "work": [ - { - "highlights": [] - } - ] - }, - "highlightsInvalid": { - "work": [ - { - "highlights": null - } - ] - }, - "highlightsItemValid": { - "work": [ - { - "highlights": [ - "Successfully won Techcrunch Disrupt" - ] - } - ] - }, - "highlightsItemInvalid": { - "work": [ - { - "highlights": [ - null - ] - } - ] - } -} diff --git a/test/awards.spec.js b/test/awards.spec.js deleted file mode 100644 index 95b4dd73..00000000 --- a/test/awards.spec.js +++ /dev/null @@ -1,99 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/awards.json'); - -test('awards - valid', (t) => { - validate(fixtures.awardsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('awards - invalid', (t) => { - validate(fixtures.awardsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('awards[].title - valid', (t) => { - validate(fixtures.titleValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('awards[].title - invalid', (t) => { - validate(fixtures.titleInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('awards[].date - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.dateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('awards[].date - valid [YYYY-MM]', (t) => { - validate(fixtures.dateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('awards[].date - valid [YYYY]', (t) => { - validate(fixtures.dateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('awards[].date - invalid', (t) => { - validate(fixtures.dateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('awards[].awarder - valid', (t) => { - validate(fixtures.awarderValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('awards[].awarder - invalid', (t) => { - validate(fixtures.awarderInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('awards[].summary - valid', (t) => { - validate(fixtures.summaryValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('awards[].summary - invalid', (t) => { - validate(fixtures.summaryInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/basics.spec.js b/test/basics.spec.js deleted file mode 100644 index 3f997a1e..00000000 --- a/test/basics.spec.js +++ /dev/null @@ -1,291 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/basics.json'); - -test('basics - valid', (t) => { - validate(fixtures.basicsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics - invalid', (t) => { - validate(fixtures.basicsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.name - valid', (t) => { - validate(fixtures.nameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.name - invalid', (t) => { - validate(fixtures.nameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.label - valid', (t) => { - validate(fixtures.labelValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.label - invalid', (t) => { - validate(fixtures.labelInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.image - valid', (t) => { - validate(fixtures.imageValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.image - invalid', (t) => { - validate(fixtures.imageInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.email - valid', (t) => { - validate(fixtures.emailValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.email - invalid', (t) => { - validate(fixtures.emailInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.phone - valid', (t) => { - validate(fixtures.phoneValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.phone - invalid', (t) => { - validate(fixtures.phoneInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.url - valid', (t) => { - validate(fixtures.urlValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.url - invalid', (t) => { - validate(fixtures.urlInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.summary - valid', (t) => { - validate(fixtures.summaryValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.summary - invalid', (t) => { - validate(fixtures.summaryInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.location - valid', (t) => { - validate(fixtures.locationValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.location - invalid', (t) => { - validate(fixtures.locationInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.location.address - valid', (t) => { - validate(fixtures.locationAddressValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.location.address - invalid', (t) => { - validate(fixtures.locationAddressInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.location.postal - valid', (t) => { - validate(fixtures.locationPostalValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.location.postal - invalid', (t) => { - validate(fixtures.locationPostalInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.location.city - valid', (t) => { - validate(fixtures.locationCityValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.location.city - invalid', (t) => { - validate(fixtures.locationCityInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.location.country - valid', (t) => { - validate(fixtures.locationCountryValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.location.country - invalid', (t) => { - validate(fixtures.locationCountryInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.location.region - valid', (t) => { - validate(fixtures.locationRegionValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.location.region - invalid', (t) => { - validate(fixtures.locationRegionInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.profiles - valid', (t) => { - validate(fixtures.profilesValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.profiles - invalid', (t) => { - validate(fixtures.profilesInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.profiles[].network - valid', (t) => { - validate(fixtures.profilesNetworkValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.profiles[].network - invalid', (t) => { - validate(fixtures.profilesNetworkInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.profiles[].username - valid', (t) => { - validate(fixtures.profilesUsernameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.profiles[].username - invalid', (t) => { - validate(fixtures.profilesUsernameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('basics.profiles[].url - valid', (t) => { - validate(fixtures.profilesUrlValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('basics.profiles[].url - invalid', (t) => { - validate(fixtures.profilesUrlInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/dates.spec.js b/test/dates.spec.js deleted file mode 100644 index b1012c9d..00000000 --- a/test/dates.spec.js +++ /dev/null @@ -1,54 +0,0 @@ -var test = require('tape'); -var ZSchema = require('z-schema'); -const fixtures = require('./__test__/dates.json'); -// var mockDateSchema = require('./__test__/mockDateSchema.json'); - -const mockDateSchema = { - "type": "string", - "description": "Mock Date Format", - "pattern": "^([1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]|[1-2][0-9]{3}-[0-1][0-9]|[1-2][0-9]{3})$" -}; - -function dateValidate(resumeJson, callback) { - var callbackWrapper = function(err, valid) { - if(err) { - callback(err) - } else { - callback(null, {valid: valid}); - } - } - - new ZSchema().validate(resumeJson, mockDateSchema, callbackWrapper); -} - -test('dates - YYYY-MM-DD', (t) => { - dateValidate(fixtures.yearMonthDay, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('dates - YYYY-MM', (t) => { - dateValidate(fixtures.yearMonth, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('dates - YYYY', (t) => { - dateValidate(fixtures.yearMonthDay, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('dates - invalid', (t) => { - dateValidate(fixtures.invalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/education.spec.js b/test/education.spec.js deleted file mode 100644 index 8303721c..00000000 --- a/test/education.spec.js +++ /dev/null @@ -1,179 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/education.json'); - -test('eductaion - valid', (t) => { - validate(fixtures.educationValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education - invalid', (t) => { - validate(fixtures.educationInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].institution - valid', (t) => { - validate(fixtures.institutionValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].institution - invalid', (t) => { - validate(fixtures.institutionInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].area - valid', (t) => { - validate(fixtures.areaValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].area - invalid', (t) => { - validate(fixtures.areaInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].studyType - valid', (t) => { - validate(fixtures.studyTypeValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].studyType - invalid', (t) => { - validate(fixtures.studyTypeInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].startDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.startDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].startDate - valid [YYYY-MM]', (t) => { - validate(fixtures.startDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].startDate - valid [YYYY]', (t) => { - validate(fixtures.startDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].startDate - invalid', (t) => { - validate(fixtures.startDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].endDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.endDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].endDate - valid [YYYY-MM]', (t) => { - validate(fixtures.endDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].endDate - valid [YYYY]', (t) => { - validate(fixtures.endDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].endDate - invalid', (t) => { - validate(fixtures.endDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].score - valid', (t) => { - validate(fixtures.scoreValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].score - invalid', (t) => { - validate(fixtures.scoreInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].courses - valid', (t) => { - validate(fixtures.coursesValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].courses - invalid', (t) => { - validate(fixtures.coursesInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('education[].courses[item] - valid', (t) => { - validate(fixtures.coursesItemValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('education[].courses[item] - invalid', (t) => { - validate(fixtures.coursesItemInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/interests.spec.js b/test/interests.spec.js deleted file mode 100644 index a1809f3e..00000000 --- a/test/interests.spec.js +++ /dev/null @@ -1,67 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/interests.json'); - -test('interests - valid', (t) => { - validate(fixtures.interestsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('interests - invalid', (t) => { - validate(fixtures.interestsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('interests[].name - valid', (t) => { - validate(fixtures.nameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('interests[].name - invalid', (t) => { - validate(fixtures.nameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('interests[].keywords - valid', (t) => { - validate(fixtures.keywordsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('interests[].keywords - invalid', (t) => { - validate(fixtures.keywordsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('interests[].keywords[item] - valid', (t) => { - validate(fixtures.keywordsItemValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('interests[].keywords[item] - invalid', (t) => { - validate(fixtures.keywordsItemInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/languages.spec.js b/test/languages.spec.js deleted file mode 100644 index d081d861..00000000 --- a/test/languages.spec.js +++ /dev/null @@ -1,51 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/languages.json'); - -test('languages - valid', (t) => { - validate(fixtures.languagesValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('languages - invalid', (t) => { - validate(fixtures.languagesInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('languages[].language - valid', (t) => { - validate(fixtures.languageValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('languages[].language - invalid', (t) => { - validate(fixtures.languageInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('languages[].fluency - valid', (t) => { - validate(fixtures.fluencyValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('languages[].fluency - invalid', (t) => { - validate(fixtures.fluencyInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/meta.spec.js b/test/meta.spec.js deleted file mode 100644 index b7c6dbe3..00000000 --- a/test/meta.spec.js +++ /dev/null @@ -1,67 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/meta.json'); - -test('meta - valid', (t) => { - validate(fixtures.metaValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('meta - invalid', (t) => { - validate(fixtures.metaInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('meta.canonical - valid', (t) => { - validate(fixtures.canonicalValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('meta.canonical - invalid', (t) => { - validate(fixtures.canonicalInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('meta.version - valid', (t) => { - validate(fixtures.versionValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('meta.version - invalid', (t) => { - validate(fixtures.versionInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('meta.lastModified - valid', (t) => { - validate(fixtures.lastModifiedValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('meta.lastModified - invalid', (t) => { - validate(fixtures.lastModifiedInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/projects.spec.js b/test/projects.spec.js deleted file mode 100644 index aaae1379..00000000 --- a/test/projects.spec.js +++ /dev/null @@ -1,243 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/projects.json'); - -test('projects - valid', (t) => { - validate(fixtures.projectsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects - invalid', (t) => { - validate(fixtures.projectsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].name - valid', (t) => { - validate(fixtures.nameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].name - invalid', (t) => { - validate(fixtures.nameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].description - valid', (t) => { - validate(fixtures.descriptionValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].description - invalid', (t) => { - validate(fixtures.descriptionInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].highlights - valid', (t) => { - validate(fixtures.highlightsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].highlights - invalid', (t) => { - validate(fixtures.highlightsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].highlights[item] - valid', (t) => { - validate(fixtures.highlightsItemValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].highlights[item] - invalid', (t) => { - validate(fixtures.highlightsItemInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].keywords - valid', (t) => { - validate(fixtures.keywordsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].keywords - invalid', (t) => { - validate(fixtures.keywordsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].keywords[item] - valid', (t) => { - validate(fixtures.keywordsItemValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].keywords[item] - invalid', (t) => { - validate(fixtures.keywordsItemInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].startDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.startDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].startDate - valid [YYYY-MM]', (t) => { - validate(fixtures.startDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].startDate - valid [YYYY]', (t) => { - validate(fixtures.startDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].startDate - invalid', (t) => { - validate(fixtures.startDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].endDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.endDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].endDate - valid [YYYY-MM]', (t) => { - validate(fixtures.endDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].endDate - valid [YYYY]', (t) => { - validate(fixtures.endDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].endDate - invalid', (t) => { - validate(fixtures.endDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].roles - valid', (t) => { - validate(fixtures.rolesValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].roles - invalid', (t) => { - validate(fixtures.rolesInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].roles[item] - valid', (t) => { - validate(fixtures.rolesItemValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].roles[item] - invalid', (t) => { - validate(fixtures.rolesItemInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].entity - valid', (t) => { - validate(fixtures.entityValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].entity - invalid', (t) => { - validate(fixtures.entityInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('projects[].type - valid', (t) => { - validate(fixtures.typeValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('projects[].type - invalid', (t) => { - validate(fixtures.typeInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/publications.spec.js b/test/publications.spec.js deleted file mode 100644 index 86d24b2c..00000000 --- a/test/publications.spec.js +++ /dev/null @@ -1,115 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/publications.json'); - -test('publications - valid', (t) => { - validate(fixtures.publicationsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications - invalid', (t) => { - validate(fixtures.publicationsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('publications[].name - valid', (t) => { - validate(fixtures.nameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications[].name - invalid', (t) => { - validate(fixtures.nameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('publications[].publisher - valid', (t) => { - validate(fixtures.publisherValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications[].publisher - invalid', (t) => { - validate(fixtures.publisherInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('publications[].releaseDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.releaseDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications[].releaseDate - valid [YYYY-MM]', (t) => { - validate(fixtures.releaseDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications[].releaseDate - valid [YYYY]', (t) => { - validate(fixtures.releaseDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications[].releaseDate - invalid', (t) => { - validate(fixtures.releaseDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('publications[].url - valid', (t) => { - validate(fixtures.urlValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications[].url - invalid', (t) => { - validate(fixtures.urlInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('publications[].summary - valid', (t) => { - validate(fixtures.summaryValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('publications[].summary - invalid', (t) => { - validate(fixtures.summaryInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/references.spec.js b/test/references.spec.js deleted file mode 100644 index 4d483cd7..00000000 --- a/test/references.spec.js +++ /dev/null @@ -1,51 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/references.json'); - -test('references - valid', (t) => { - validate(fixtures.referencesValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('references - invalid', (t) => { - validate(fixtures.referencesInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('references[].name - valid', (t) => { - validate(fixtures.nameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('references[].name - invalid', (t) => { - validate(fixtures.nameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('references[].reference - valid', (t) => { - validate(fixtures.referenceValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('references[].reference - invalid', (t) => { - validate(fixtures.referenceInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/skills.spec.js b/test/skills.spec.js deleted file mode 100644 index 94b2eb46..00000000 --- a/test/skills.spec.js +++ /dev/null @@ -1,83 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/skills.json'); - -test('skills - valid', (t) => { - validate(fixtures.skillsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('skills - invalid', (t) => { - validate(fixtures.skillsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('skills[].name - valid', (t) => { - validate(fixtures.nameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('skills[].name - invalid', (t) => { - validate(fixtures.nameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('skills[].level - valid', (t) => { - validate(fixtures.levelValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('skills[].level - invalid', (t) => { - validate(fixtures.levelInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('skills[].keywords - valid', (t) => { - validate(fixtures.keywordsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('skills[].keywords - invalid', (t) => { - validate(fixtures.keywordsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('skills[].keywords[item] - valid', (t) => { - validate(fixtures.keywordsItemValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('skills[].keywords[item] - invalid', (t) => { - validate(fixtures.keywordsItemInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/volunteer.spec.js b/test/volunteer.spec.js deleted file mode 100644 index 4ad41dd3..00000000 --- a/test/volunteer.spec.js +++ /dev/null @@ -1,115 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/volunteer.json'); - -test('volunteer - valid', (t) => { - validate(fixtures.volunteerValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer - invalid', (t) => { - validate(fixtures.volunteerInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('volunteer[].organization - valid', (t) => { - validate(fixtures.organizationValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer[].organization - invalid', (t) => { - validate(fixtures.organizationInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('volunteer[].position - valid', (t) => { - validate(fixtures.positionValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer[].position - invalid', (t) => { - validate(fixtures.positionInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('volunteer[].url - valid', (t) => { - validate(fixtures.urlValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer[].url - invalid', (t) => { - validate(fixtures.urlInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('volunteer[].startDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.startDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer[].startDate - valid [YYYY-MM]', (t) => { - validate(fixtures.startDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer[].startDate - valid [YYYY]', (t) => { - validate(fixtures.startDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer[].startDate - invalid', (t) => { - validate(fixtures.startDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('volunteer[].endDate - valid', (t) => { - validate(fixtures.endDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('volunteer[].endDate - invalid', (t) => { - validate(fixtures.endDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/test/work.spec.js b/test/work.spec.js deleted file mode 100644 index fdf7c585..00000000 --- a/test/work.spec.js +++ /dev/null @@ -1,211 +0,0 @@ -var test = require('tape'); -var { validate } = require('../validator'); -const fixtures = require('./__test__/work.json'); - -test('work - valid', (t) => { - validate(fixtures.workValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work - invalid', (t) => { - validate(fixtures.workInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].name - valid', (t) => { - validate(fixtures.nameValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].name - invalid', (t) => { - validate(fixtures.nameInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].location - valid', (t) => { - validate(fixtures.locationValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].location - invalid', (t) => { - validate(fixtures.locationInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].description - valid', (t) => { - validate(fixtures.descriptionValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].description - invalid', (t) => { - validate(fixtures.descriptionInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].position - valid', (t) => { - validate(fixtures.positionValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].position - invalid', (t) => { - validate(fixtures.positionInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].url - valid', (t) => { - validate(fixtures.urlValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].url - invalid', (t) => { - validate(fixtures.urlInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].startDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.startDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].startDate - valid [YYYY-MM]', (t) => { - validate(fixtures.startDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].startDate - valid [YYYY]', (t) => { - validate(fixtures.startDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].startDate - invalid', (t) => { - validate(fixtures.startDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].endDate - valid [YYYY-MM-DD]', (t) => { - validate(fixtures.endDateValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].endDate - valid [YYYY-MM]', (t) => { - validate(fixtures.endDateValid2, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].endDate - valid [YYYY]', (t) => { - validate(fixtures.endDateValid3, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].endDate - invalid', (t) => { - validate(fixtures.endDateInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].summary - valid', (t) => { - validate(fixtures.summaryValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].summary - invalid', (t) => { - validate(fixtures.summaryInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].highlights - valid', (t) => { - validate(fixtures.highlightsValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].highlights - invalid', (t) => { - validate(fixtures.highlightsInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); - -test('work[].highlights[item] - valid', (t) => { - validate(fixtures.highlightsItemValid, (err, valid) => { - t.equal(err, null, 'err should be null'); - t.true(valid, 'valid is true'); - }); - t.end(); -}); - -test('work[].highlights[item] - invalid', (t) => { - validate(fixtures.highlightsItemInvalid, (err, valid) => { - t.notEqual(err, null, 'err should contain an error'); - t.false(valid, 'valid is false'); - }); - t.end(); -}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..bf26d445 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Node 16", + "baseUrl": ".", + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "ES6", + + "noEmit": true, + "strict": true, + "alwaysStrict": true, + "declaration": true, + "allowJs": true, + + /* Additional Checks */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "noUncheckedIndexedAccess": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + + // "strictNullChecks": true, + // "strictBindCallApply": true, + "strictFunctionTypes": true, + // "strictPropertyInitialization": true, + // "noImplicitAny": true, + // "noImplicitThis": true, + "useUnknownInCatchVariables": true, + "stripInternal": true, + + /* Module Resolution Options */ + "moduleResolution": "node", + "isolatedModules": true, + // "importsNotUsedAsValues": "error", + "resolveJsonModule": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + + "incremental": true, + "tsBuildInfoFile": ".tsbuildinfo" + }, + "include": ["schema.json", "vitest.config.ts", "types.d.ts"], + "exclude": ["dist", "node_modules"] +} diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 00000000..b7657ed7 --- /dev/null +++ b/types.d.ts @@ -0,0 +1,405 @@ +/* tslint:disable */ +/** + * This file was automatically generated by json-schema-to-typescript. + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, + * and run json-schema-to-typescript to regenerate this file. + */ + +/** + * The address, use an array to specify multiple address lines. + */ +export type Address = string | AddressLine[]; +/** + * A single line of an address. + */ +export type AddressLine = string; + +export interface ResumeSchema { + /** + * link to the version of the schema that can validate the resume + */ + $schema?: string; + basics?: { + name?: string; + /** + * e.g. Web Developer + */ + label?: string; + /** + * URL (as per RFC 3986) to a image in JPEG or PNG format + */ + image?: string; + /** + * e.g. thomas@gmail.com + */ + email?: string; + /** + * Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923 + */ + phone?: string; + /** + * URL (as per RFC 3986) to your website, e.g. personal homepage + */ + url?: string; + /** + * Write a short 2-3 sentence biography about yourself + */ + summary?: string; + location?: { + address?: Address; + postalCode?: string; + city?: string; + /** + * code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN + */ + countryCode?: string; + /** + * The general region where you live. Can be a US state, or a province, for instance. + */ + region?: string; + [k: string]: unknown; + }; + /** + * Specify any number of social networks that you participate in + */ + profiles?: [ + { + /** + * e.g. Facebook or Twitter + */ + network?: string; + /** + * e.g. neutralthoughts + */ + username?: string; + /** + * e.g. http://twitter.example.com/neutralthoughts + */ + url?: string; + [k: string]: unknown; + }, + ]; + [k: string]: unknown; + }; + work?: [ + { + /** + * e.g. Facebook + */ + name?: string; + /** + * e.g. Menlo Park, CA + */ + location?: string; + /** + * e.g. Social Media Company + */ + description?: string; + /** + * e.g. Software Engineer + */ + position?: string; + /** + * e.g. http://facebook.example.com + */ + url?: string; + startDate?: string; + endDate?: string; + /** + * Give an overview of your responsibilities at the company + */ + summary?: string; + /** + * Specify multiple accomplishments + */ + highlights?: [string]; + /** + * Specify technologies or skills used + */ + keywords?: [string]; + [k: string]: unknown; + }, + ]; + volunteer?: [ + { + /** + * e.g. Facebook + */ + organization?: string; + /** + * e.g. Software Engineer + */ + position?: string; + /** + * e.g. http://facebook.example.com + */ + url?: string; + startDate?: string; + endDate?: string; + /** + * Give an overview of your responsibilities at the company + */ + summary?: string; + /** + * Specify accomplishments and achievements + */ + highlights?: [string]; + [k: string]: unknown; + }, + ]; + education?: [ + { + /** + * e.g. Massachusetts Institute of Technology + */ + institution?: string; + /** + * e.g. http://facebook.example.com + */ + url?: string; + /** + * e.g. Arts + */ + area?: string; + /** + * e.g. Bachelor + */ + studyType?: string; + startDate?: string; + endDate?: string; + /** + * grade point average, e.g. 3.67/4.0 + */ + score?: string; + /** + * a short summary of your studies, e.g. Thesis + */ + summary?: string; + /** + * List notable courses/subjects + */ + courses?: [string]; + [k: string]: unknown; + }, + ]; + /** + * Specify any awards you have received throughout your professional career + */ + awards?: [ + { + /** + * e.g. One of the 100 greatest minds of the century + */ + title?: string; + date?: string; + /** + * e.g. Time Magazine + */ + awarder?: string; + /** + * e.g. Received for my work with Quantum Physics + */ + summary?: string; + [k: string]: unknown; + }, + ]; + /** + * Specify any certificates you have received throughout your professional career + */ + certificates?: [ + { + /** + * e.g. Certified Kubernetes Administrator + */ + name?: string; + /** + * e.g. 1989-06-12 + */ + date?: string; + /** + * e.g. http://example.com + */ + url?: string; + /** + * e.g. CNCF + */ + issuer?: string; + [k: string]: unknown; + }, + ]; + /** + * Specify your publications through your career + */ + publications?: [ + { + /** + * e.g. The World Wide Web + */ + name?: string; + /** + * e.g. IEEE, Computer Magazine + */ + publisher?: string; + releaseDate?: string; + /** + * e.g. http://www.computer.org.example.com/csdl/mags/co/1996/10/rx069-abs.html + */ + url?: string; + /** + * Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML. + */ + summary?: string; + /** + * The DOI of the publication + */ + doi?: string; + [k: string]: unknown; + }, + ]; + /** + * List out your professional skill-set + */ + skills?: [ + { + /** + * e.g. Web Development + */ + name?: string; + /** + * e.g. Master + */ + level?: string; + /** + * List some keywords pertaining to this skill + */ + keywords?: [string]; + [k: string]: unknown; + }, + ]; + /** + * List any other languages you speak + */ + languages?: [ + { + /** + * e.g. English, Spanish + */ + language?: string; + /** + * e.g. Fluent, Beginner + */ + fluency?: string; + [k: string]: unknown; + }, + ]; + interests?: [ + { + /** + * e.g. Philosophy + */ + name?: string; + keywords?: [string]; + [k: string]: unknown; + }, + ]; + /** + * List references you have received + */ + references?: [ + { + /** + * e.g. Timothy Cook + */ + name?: string; + /** + * e.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing. + */ + reference?: string; + [k: string]: unknown; + }, + ]; + /** + * Specify career projects + */ + projects?: [ + { + /** + * e.g. The World Wide Web + */ + name?: string; + /** + * Short summary of project. e.g. Collated works of 2017. + */ + description?: string; + /** + * Specify multiple features + */ + highlights?: [string]; + /** + * Specify special elements involved + */ + keywords?: [string]; + startDate?: string; + endDate?: string; + /** + * e.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html + */ + url?: string; + /** + * Specify your role on this project or in company + */ + roles?: [string]; + /** + * Specify the relevant company/entity affiliations e.g. 'greenpeace', 'corporationXYZ' + */ + entity?: string; + /** + * e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference' + */ + type?: string; + /** + * Specify the goal of the project, e.g. 'Sucessfully introducing Scrum' + */ + goal?: string; + /** + * Specify the contract authority, e.g. CTO, CDO, project manager + */ + authority?: string; + /** + * Specify the industry of the entity, e.g. automotive, energy, health + */ + industry?: string; + /** + * Specify the contract volume if not 100% capacity, e.g. 20d, 6m + */ + volume?: string; + /** + * Specify your team size, e.g. 'Lead of 6 software engineers' + */ + team?: string; + /** + * Specify importand stakeholders + */ + stakeholder?: [string]; + [k: string]: unknown; + }, + ]; + /** + * The schema version and any other tooling configuration lives here + */ + meta?: { + /** + * URL (as per RFC 3986) to latest version of this document + */ + canonical?: string; + /** + * A version field which follows semver - e.g. v1.0.0 + */ + version?: string; + /** + * Using ISO 8601 with YYYY-MM-DDThh:mm:ss + */ + lastModified?: string; + [k: string]: unknown; + }; +} diff --git a/utils/validate.js b/utils/validate.js new file mode 100644 index 00000000..d3937eb1 --- /dev/null +++ b/utils/validate.js @@ -0,0 +1,12 @@ +import Ajv from "ajv"; +import addFormats from "ajv-formats"; + +import schema from "../schema.json"; + +const ajv = new Ajv({ + allowUnionTypes: true, +}); + +addFormats(ajv); + +export default ajv.compile(schema); diff --git a/validator.js b/validator.js deleted file mode 100644 index 8e09f0d4..00000000 --- a/validator.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -var ZSchema = require('z-schema'); -var schema = require('./schema'); - -function validate(resumeJson, callback) { - var callbackWrapper = function(err, valid) { - if(err) { - callback(err) - } else { - callback(null, {valid: valid}); - } - } - - new ZSchema().validate(resumeJson, schema, callbackWrapper); -} - -module.exports = { - validate: validate, - schema: schema -}; diff --git a/verify-node-version.cjs b/verify-node-version.cjs new file mode 100644 index 00000000..1ba6718c --- /dev/null +++ b/verify-node-version.cjs @@ -0,0 +1,17 @@ +/* eslint-disable no-console */ +/* eslint-disable unicorn/no-process-exit */ +let requiredVersion = require("fs").readFileSync(".nvmrc", { encoding: "utf8" }).trim(); + +if (!requiredVersion.includes("v")) { + requiredVersion = `v${requiredVersion}`; +} + +if (process.env.SKIP_CHECK !== undefined) { + process.exit(0); +} + +if (!(requiredVersion.split(".")[0] <= process.version.split(".")[0])) { + console.error(`[!] This project requires Node.js ${requiredVersion}, current version is ${process.version}`); + + process.exit(1); +} diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 00000000..00003e05 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: {}, +});