From 6db3f3057c41b285c8518e4c336d52358cdaf09e Mon Sep 17 00:00:00 2001 From: lotyp Date: Tue, 13 Dec 2022 12:52:40 +0200 Subject: [PATCH] feat: initial commit --- .czrc | 3 + .editorconfig | 21 + .eslintrc.js | 3 + .github/dependabot.yml | 27 + .github/labeler.yml | 17 + .github/workflows/auto-merge.yml | 44 + .github/workflows/auto-rebase.yml | 24 + .github/workflows/ci.yml | 64 + .github/workflows/codeql-analysis.yml | 42 + .github/workflows/label.yml | 24 + .github/workflows/release-please.yml | 39 + .gitignore | 35 + .markdownlint.json | 3 + .npmrc | 1 + .prettierrc.js | 1 + .secretlintrc.js | 1 + .yamllint | 57 + LICENSE.md | 21 + Makefile | 130 + README.md | 0 assets/logo.gh-dark-mode-only.png | Bin 0 -> 10219 bytes assets/logo.gh-light-mode-only.png | Bin 0 -> 12710 bytes commitlint.config.js | 3 + lint-staged.config.js | 8 + package.json | 30 + packages/commitizen-config/.czrc | 3 + packages/commitizen-config/LICENSE.md | 21 + packages/commitizen-config/README.md | 49 + packages/commitizen-config/package.json | 37 + .../commitizen-config/scripts/postinstall.js | 16 + packages/commitlint-config/LICENSE.md | 21 + packages/commitlint-config/README.md | 56 + packages/commitlint-config/index.js | 11 + packages/commitlint-config/package.json | 37 + .../commitlint-config/scripts/postinstall.js | 16 + packages/eslint-config/LICENSE.md | 21 + packages/eslint-config/README.md | 160 + packages/eslint-config/index.js | 43 + packages/eslint-config/jest.js | 8 + packages/eslint-config/package.json | 52 + packages/eslint-config/scripts/postinstall.js | 16 + packages/eslint-config/ts.js | 49 + packages/lint-staged-config/LICENSE.md | 21 + packages/lint-staged-config/README.md | 73 + packages/lint-staged-config/index.js | 4 + packages/lint-staged-config/package.json | 35 + .../lint-staged-config/scripts/postinstall.js | 12 + packages/lint-staged-config/yml.js | 4 + packages/markdownlint-config/README.md | 68 + packages/markdownlint-config/index.json | 20 + packages/markdownlint-config/package.json | 37 + .../scripts/postinstall.js | 16 + packages/prettier-config/LICENSE.md | 21 + packages/prettier-config/README.md | 60 + packages/prettier-config/index.js | 23 + packages/prettier-config/package.json | 34 + .../prettier-config/scripts/postinstall.js | 9 + packages/secretlint-config/LICENSE.md | 21 + packages/secretlint-config/README.md | 57 + packages/secretlint-config/index.json | 7 + packages/secretlint-config/package.json | 37 + .../secretlint-config/scripts/postinstall.js | 12 + pnpm-lock.yaml | 3739 +++++++++++++++++ pnpm-workspace.yaml | 6 + 64 files changed, 5530 insertions(+) create mode 100644 .czrc create mode 100644 .editorconfig create mode 100644 .eslintrc.js create mode 100644 .github/dependabot.yml create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/auto-merge.yml create mode 100644 .github/workflows/auto-rebase.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 .github/workflows/label.yml create mode 100644 .github/workflows/release-please.yml create mode 100644 .gitignore create mode 100644 .markdownlint.json create mode 100644 .npmrc create mode 100644 .prettierrc.js create mode 100644 .secretlintrc.js create mode 100644 .yamllint create mode 100644 LICENSE.md create mode 100644 Makefile create mode 100644 README.md create mode 100644 assets/logo.gh-dark-mode-only.png create mode 100644 assets/logo.gh-light-mode-only.png create mode 100644 commitlint.config.js create mode 100644 lint-staged.config.js create mode 100644 package.json create mode 100644 packages/commitizen-config/.czrc create mode 100644 packages/commitizen-config/LICENSE.md create mode 100644 packages/commitizen-config/README.md create mode 100644 packages/commitizen-config/package.json create mode 100644 packages/commitizen-config/scripts/postinstall.js create mode 100644 packages/commitlint-config/LICENSE.md create mode 100644 packages/commitlint-config/README.md create mode 100644 packages/commitlint-config/index.js create mode 100644 packages/commitlint-config/package.json create mode 100644 packages/commitlint-config/scripts/postinstall.js create mode 100644 packages/eslint-config/LICENSE.md create mode 100644 packages/eslint-config/README.md create mode 100644 packages/eslint-config/index.js create mode 100644 packages/eslint-config/jest.js create mode 100644 packages/eslint-config/package.json create mode 100644 packages/eslint-config/scripts/postinstall.js create mode 100644 packages/eslint-config/ts.js create mode 100644 packages/lint-staged-config/LICENSE.md create mode 100644 packages/lint-staged-config/README.md create mode 100644 packages/lint-staged-config/index.js create mode 100644 packages/lint-staged-config/package.json create mode 100644 packages/lint-staged-config/scripts/postinstall.js create mode 100644 packages/lint-staged-config/yml.js create mode 100644 packages/markdownlint-config/README.md create mode 100644 packages/markdownlint-config/index.json create mode 100644 packages/markdownlint-config/package.json create mode 100644 packages/markdownlint-config/scripts/postinstall.js create mode 100644 packages/prettier-config/LICENSE.md create mode 100644 packages/prettier-config/README.md create mode 100644 packages/prettier-config/index.js create mode 100644 packages/prettier-config/package.json create mode 100644 packages/prettier-config/scripts/postinstall.js create mode 100644 packages/secretlint-config/LICENSE.md create mode 100644 packages/secretlint-config/README.md create mode 100644 packages/secretlint-config/index.json create mode 100644 packages/secretlint-config/package.json create mode 100644 packages/secretlint-config/scripts/postinstall.js create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml diff --git a/.czrc b/.czrc new file mode 100644 index 00000000..d1bcc209 --- /dev/null +++ b/.czrc @@ -0,0 +1,3 @@ +{ + "path": "cz-conventional-changelog" +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..213849c9 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# editorconfig.org +# https://github.com/twbs/bootstrap/blob/main/.editorconfig + +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[Makefile] +indent_style = tab diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..0cbe327e --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: './packages/eslint-config', +}; diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..15a0a0cf --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,27 @@ +--- + +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + commit-message: + include: "scope" + prefix: "github-actions" + labels: + - "deps" + open-pull-requests-limit: 10 + + - package-ecosystem: "npm" + schedule: + interval: "weekly" + commit-message: + include: "scope" + prefix: "npm" + labels: + - "deps" + open-pull-requests-limit: 16 + versioning-strategy: "increase" + +... diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 00000000..cdd5277a --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,17 @@ +--- + +# this file is for the labeler workflow job +# Documentation https://github.com/marketplace/actions/labeler + +"type: documentation": + - assets/**/* + - .github/* + - ./*.md + +"type: maintenance": + - .dependabot/* + - .github/**/* + - app/tests/**/* + - tests/**/* + +... diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 00000000..a06b6497 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,44 @@ +# yamllint disable rule:line-length +--- + +name: Dependabot auto-approve and auto-merge + +on: # yamllint disable-line rule:truthy + pull_request: + +permissions: + pull-requests: write + contents: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v1.3.5 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - name: Approve a PR + run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + - name: Enable auto-merge for Dependabot PRs (for patch and minor updates) + if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch' }} + run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Request reviews for Dependabot PRs (for all other updates) + if: ${{ steps.metadata.outputs.update-type != 'version-update:semver-minor' && steps.metadata.outputs.update-type != 'version-update:semver-patch' }} + run: gh pr edit "$PR_URL" --add-reviewer lotyp + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +... diff --git a/.github/workflows/auto-rebase.yml b/.github/workflows/auto-rebase.yml new file mode 100644 index 00000000..3f1f78dc --- /dev/null +++ b/.github/workflows/auto-rebase.yml @@ -0,0 +1,24 @@ +--- + +name: Rebase pull requests + +on: # yamllint disable-line rule:truthy + push: + release: + types: + - published + +jobs: + auto-rebase: + name: Rebase dependabot PRs + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/master' || github.event == 'release' + timeout-minutes: 5 + + steps: + - name: Request rebase + uses: 'bbeesley/gha-auto-dependabot-rebase@1.2.0' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +... diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..af247573 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,64 @@ +--- + +name: CI + +on: # yamllint disable-line rule:truthy + push: + branches: + - master + pull_request: + branches: + - master + - develop + +jobs: + integration: + name: Node ${{ matrix.node }} - ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: true + matrix: + os: ["ubuntu-22.04"] + node: ["18"] + steps: + - name: Check out the codebase + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + cache: 'npm' + registry-url: 'https://registry.npmjs.org/' + + - name: Load cached frontend dependencies + id: cached-yarn-dependencies + uses: actions/cache@v3 + with: + path: node_modules + key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install frontend dependencies + if: steps.cached-yarn-dependencies.outputs.cache-hit != 'true' + run: yarn install + + - name: Mix frontend code + run: pnpm run build + + - if: github.event_name == 'pull_request' + name: Validate all commits from PR + uses: wagoid/commitlint-github-action@v5 + env: + NODE_PATH: ${{ github.workspace }}/node_modules + + - name: Linting + run: pnpm run lint + + - name: Config git user + run: | + git config --global user.name "${{ github.actor }}" + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + +... diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 00000000..e1139aaf --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,42 @@ +--- +name: CodeQL + +'on': + push: + branches: + - master + pull_request: + branches: + - master + schedule: + - cron: '22 6 * * 0' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: + - javascript + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml new file mode 100644 index 00000000..1dab44c7 --- /dev/null +++ b/.github/workflows/label.yml @@ -0,0 +1,24 @@ +--- + +# This workflow will triage pull requests and apply a label based on the +# paths that are modified in the pull request. +# +# To use this workflow, you will need to set up a .github/labeler.yml +# file with configuration. For more information, see: +# https://github.com/actions/labeler/blob/master/README.md + +name: Add labels + +on: # yamllint disable-line rule:truthy + pull_request: + +jobs: + label: + runs-on: ubuntu-latest + steps: + - name: Apply labels + uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + +... diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..6aae2968 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,39 @@ +--- + +# https://github.com/google-github-actions/release-please-action#release-types-supported + +name: Release please + +on: # yamllint disable-line rule:truthy + push: + branches: + - master + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - name: Create release and changelog + uses: google-github-actions/release-please-action@v3 + id: release + with: + token: ${{ secrets.GITHUB_TOKEN }} + release-type: node + package-name: npm-shareable-configs + default-branch: master + changelog-types: | + [ + { "type": "feat", "section": "Features", "hidden": false }, + { "type": "fix", "section": "Bug Fixes", "hidden": false }, + { "type": "perf", "section": "Performance Improvements", "hidden": false }, + { "type": "docs", "section": "Documentation", "hidden": false }, + { "type": "style", "section": "Styles", "hidden": false }, + { "type": "deps", "section": "Dependencies", "hidden": false }, + { "type": "refactor", "section": "Code Refactoring", "hidden": false }, + { "type": "ci", "section": "Continuous Integration", "hidden": false }, + { "type": "test", "section": "Tests", "hidden": false }, + { "type": "revert", "section": "Reverts", "hidden": true }, + { "type": "build", "section": "Build System", "hidden": true }, + { "type": "chore", "section": "Miscellaneous", "hidden": true } + ] +... diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5ff0f708 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# https://github.com/toptal/gitignore/blob/master/templates/Node.gitignore + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Turborepo task cache +.turbo + +# Custom Additions + +# Bundle output directories +dist/ +build/ + +# Jest folder of detailed test coverage +coverage/ diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 00000000..9f26e12c --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,3 @@ +{ + "extends": "./packages/markdownlint-config/index.json" +} diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..3e775efb --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +auto-install-peers=true diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000..08457d2c --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1 @@ +module.exports = './packages/prettier-config'; diff --git a/.secretlintrc.js b/.secretlintrc.js new file mode 100644 index 00000000..8dc402b9 --- /dev/null +++ b/.secretlintrc.js @@ -0,0 +1 @@ +module.exports = {...require('./packages/secretlint-config/index.json')}; diff --git a/.yamllint b/.yamllint new file mode 100644 index 00000000..5b4bb769 --- /dev/null +++ b/.yamllint @@ -0,0 +1,57 @@ +--- + +extends: default + +ignore: | + pnpm-lock.yaml + pnpm-workspace.yaml + node_modules/ + +# Overwrite above default rules +rules: + braces: + # Defaults + # min-spaces-inside: 0 + # max-spaces-inside: 0 + + # Keep 0 min-spaces to not error on empty {} collection definitions + min-spaces-inside: 0 + + # Allow one space inside braces to improve code readability + max-spaces-inside: 1 + + brackets: + # Defaults + # min-spaces-inside: 0 + # max-spaces-inside: 0 + + # Keep 0 min-spaces to not error on empty [] collection definitions + min-spaces-inside: 0 + + # Allow one space inside braces to improve code readability + max-spaces-inside: 1 + + colons: + # Defaults + # min-spaces-before: 0 + # max-spaces-after: 1 + + # Allow multiple spaces after a colon to allow indentation of YAML + # dictionary values + max-spaces-after: -1 + + commas: + # Defaults + # max-spaces-after: 1 + + # Allow multiple spaces after a comma to allow indentation of YAML + # dictionary values + max-spaces-after: -1 + + comments: + require-starting-space: true + min-spaces-from-content: 1 + + line-length: disable + +... diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..d433d59e --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @lotyp + +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. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..4accf643 --- /dev/null +++ b/Makefile @@ -0,0 +1,130 @@ +# BuildKit enables higher performance docker builds and caching possibility +# to decrease build times and increase productivity for free. +export DOCKER_BUILDKIT ?= 1 + +# Binary to use, when executing docker-compose tasks +DOCKER ?= docker +DOCKER_COMPOSE ?= docker-compose + +# Support image with all needed binaries, like envsubst, mkcert, wait4x +SUPPORT_IMAGE ?= wayofdev/build-deps:alpine-latest + +BUILDER_PARAMS ?= docker run --rm -i -v $(shell pwd):/home/wod + +BUILDER ?= $(BUILDER_PARAMS) $(SUPPORT_IMAGE) +NPM_BIN ?= pnpm + + +# Self documenting Makefile code +# ------------------------------------------------------------------------------------ +ifneq ($(TERM),) + BLACK := $(shell tput setaf 0) + RED := $(shell tput setaf 1) + GREEN := $(shell tput setaf 2) + YELLOW := $(shell tput setaf 3) + LIGHTPURPLE := $(shell tput setaf 4) + PURPLE := $(shell tput setaf 5) + BLUE := $(shell tput setaf 6) + WHITE := $(shell tput setaf 7) + RST := $(shell tput sgr0) +else + BLACK := "" + RED := "" + GREEN := "" + YELLOW := "" + LIGHTPURPLE := "" + PURPLE := "" + BLUE := "" + WHITE := "" + RST := "" +endif +MAKE_LOGFILE = /tmp/npm-shareable-configs.log +MAKE_CMD_COLOR := $(BLUE) + +default: all + +help: ## Show this menu + @echo 'Management commands for package:' + @echo 'Usage:' + @echo ' ${MAKE_CMD_COLOR}make${RST} Prepares and spins up project with default settings' + @grep -E '^[a-zA-Z_0-9%-]+:.*?## .*$$' Makefile | awk 'BEGIN {FS = ":.*?## "}; {printf " ${MAKE_CMD_COLOR}make %-21s${RST} %s\n", $$1, $$2}' + @echo + @echo ' 📑 Logs are stored in $(MAKE_LOGFILE)' + @echo + @echo ' 📦 Package npm-shareable-configs (github.com/wayofdev/npm-shareable-configs)' + @echo ' 🤠 Author Andrij Orlenko (github.com/lotyp)' + @echo ' 🏢 ${YELLOW}Org wayofdev (github.com/wayofdev)${RST}' +.PHONY: help + +.EXPORT_ALL_VARIABLES: + + +# Default action +# Defines default command when `make` is executed without additional parameters +# ------------------------------------------------------------------------------------ +all: install hooks +.PHONY: all + + +# System Actions +# ------------------------------------------------------------------------------------ +install: + $(NPM_BIN) install +.PHONY: install + +update: + $(NPM_BIN) update +.PHONY: update + +build: + $(NPM_BIN) run build +.PHONY: build + +purge: + rm -rf .pnpm-store node_modules pnpm-lock.yaml +.PHONY: purge + + +# Testing and Code Quality +# ------------------------------------------------------------------------------------ +lint: ## Run eslint task + $(NPM_BIN) run lint +.PHONY: lint + +lint-staged: + $(NPM_BIN) run lint-staged +.PHONY: lint-staged + +commitlint: + $(NPM_BIN) run --no-install commitlint --edit "${1}" +.PHONY: commitlint + +test: ## Run unit tests + $(NPM_BIN) run test +.PHONY: test + +format: ## Run prettier formatting + $(NPM_BIN) run format +.PHONY: format + +ylint: ## Lints yaml files inside project + yamllint . +.PHONY: ylint + +actionlint: ## Lint github actions using actionlint + $(BUILDER) actionlint -color +.PHONY: actionlint + + +# Git Actions +# ------------------------------------------------------------------------------------ +hooks: ## Install git hooks from husky + $(NPM_BIN) run prepare +.PHONY: hooks + + +# Docker Actions +# -------------- +ssh: + $(DOCKER_COMPOSE) run --rm -it app sh +.PHONY: ssh diff --git a/README.md b/README.md new file mode 100644 index 00000000..e69de29b diff --git a/assets/logo.gh-dark-mode-only.png b/assets/logo.gh-dark-mode-only.png new file mode 100644 index 0000000000000000000000000000000000000000..9d695eaf02b9b3aeec6f3500ecf9e7c7ff07b063 GIT binary patch literal 10219 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 Xv9jl?Dr&&ndo+k^NS&&y4iEkZ8&r9! literal 0 HcmV?d00001 diff --git a/assets/logo.gh-light-mode-only.png b/assets/logo.gh-light-mode-only.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3bfde764279c3858ba9540a39292e6f8be3519 GIT binary patch literal 12710 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 literal 0 HcmV?d00001 diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 00000000..07fe4a12 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['./packages/commitlint-config'], +}; diff --git a/lint-staged.config.js b/lint-staged.config.js new file mode 100644 index 00000000..217860d0 --- /dev/null +++ b/lint-staged.config.js @@ -0,0 +1,8 @@ +const config = require('./packages/lint-staged-config'); +const ymlConfig = require('./packages/lint-staged-config/yml'); + +module.exports = { + '*': ['secretlint'], + ...ymlConfig, + ...config, +}; diff --git a/package.json b/package.json new file mode 100644 index 00000000..97685b18 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "@wayofdev/npm-shareable-configs", + "version": "1.0.0", + "author": "lotyp7@gmail.com", + "description": "Shareable configurations with fully automated package publishing to NPM Registry.", + "keywords": [], + "license": "MIT", + "homepage": "https://wayof.dev", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "main": "index.js", + "scripts": { + "prepare": "husky install", + "lint": "pnpm run lint:md && pnpm run lint:js && pnpm run lint:secrets", + "lint:md": "markdownlint --fix **/*.md --ignore node_modules --ignore **/CHANGELOG.md", + "lint:js": "eslint --fix **/*.js", + "lint:secrets": "secretlint **/*" + }, + "devDependencies": { + "commitizen": "^4.2.6", + "eslint": "^8.29.0", + "husky": "^8.0.2", + "lint-staged": "^13.1.0", + "markdownlint": "^0.26.2", + "markdownlint-cli": "^0.32.2", + "prettier": "^2.8.1", + "secretlint": "^5.3.0" + } +} diff --git a/packages/commitizen-config/.czrc b/packages/commitizen-config/.czrc new file mode 100644 index 00000000..e6f6f0b4 --- /dev/null +++ b/packages/commitizen-config/.czrc @@ -0,0 +1,3 @@ +{ + "path": "cz-conventional-changelog" +} \ No newline at end of file diff --git a/packages/commitizen-config/LICENSE.md b/packages/commitizen-config/LICENSE.md new file mode 100644 index 00000000..d433d59e --- /dev/null +++ b/packages/commitizen-config/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @lotyp + +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. diff --git a/packages/commitizen-config/README.md b/packages/commitizen-config/README.md new file mode 100644 index 00000000..87ef502a --- /dev/null +++ b/packages/commitizen-config/README.md @@ -0,0 +1,49 @@ +# DEPRECATED - Commitizen Config + +~~My personal shareable commitizen configuration.~~ + +**Why?** - This package no longer uses a postinstall script to auto create a `.czrc` file and it is preferred to follow `commitizen`'s instructions to install and set up. + +## Install + +```bash +yarn add -D commitizen @wayofdev/commitizen-config +``` + +## Usage + +**`.czrc`** + +```bash +{ + "path": "cz-conventional-changelog" +} +``` + +## Add an NPM Script + +Running this command: + +```bash +npm set-script commit "git-cz" +``` + +Will create: + +**`package.json`** + +```json +"scripts": { + "commit": "git-cz" +}, +``` + +## Under The Hood + +### `.czrc` + +- `cz-conventional-changelog` + +## License + +MIT diff --git a/packages/commitizen-config/package.json b/packages/commitizen-config/package.json new file mode 100644 index 00000000..016ebcf1 --- /dev/null +++ b/packages/commitizen-config/package.json @@ -0,0 +1,37 @@ +{ + "name": "@wayofdev/commitizen-config", + "version": "1.0.0", + "description": "A shareable commitizen configuration for projects.", + "keywords": [ + "commitizen", + "commitizen-config" + ], + "author": "lotyp7@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "homepage": "https://github.com/wayofdev/npm-shareable-configs/tree/master/packages/commitizen-config#readme", + "main": ".czrc", + "files": [ + ".czrc", + "scripts/*" + ], + "scripts": { + "test": "echo \"No test specified\"" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wayofdev/npm-shareable-configs.git", + "directory": "packages/commitizen-config" + }, + "dependencies": { + "cz-conventional-changelog": "^3.3.0" + }, + "peerDependencies": { + "commitizen": ">= 4" + } +} diff --git a/packages/commitizen-config/scripts/postinstall.js b/packages/commitizen-config/scripts/postinstall.js new file mode 100644 index 00000000..0040cc30 --- /dev/null +++ b/packages/commitizen-config/scripts/postinstall.js @@ -0,0 +1,16 @@ +/* eslint-disable security/detect-non-literal-fs-filename */ +const fs = require('node:fs'); +const path = require('node:path'); + +const filePath = path.join(process.env.INIT_CWD, '.czrc'); + +const fileConfigObject = { + path: 'cz-conventional-changelog', +}; + +if (!fs.existsSync(filePath)) { + fs.writeFileSync( + filePath, + `${JSON.stringify(fileConfigObject, undefined, 2)}` + ); +} diff --git a/packages/commitlint-config/LICENSE.md b/packages/commitlint-config/LICENSE.md new file mode 100644 index 00000000..d433d59e --- /dev/null +++ b/packages/commitlint-config/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @lotyp + +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. diff --git a/packages/commitlint-config/README.md b/packages/commitlint-config/README.md new file mode 100644 index 00000000..e39bdf5e --- /dev/null +++ b/packages/commitlint-config/README.md @@ -0,0 +1,56 @@ +# Commitlint Config + +My personal shareable commitlint configuration. + +## Install + +```bash +yarn add -D @commitlint/cli @wayofdev/commitlint-config +``` + +## Usage + +**`commitlint.config.js`** + +```js +module.exports = { + extends: ['@wayofdev/commitlint-config'], +}; +``` + +## Extending + +**`commitlint.config.js`** + +```js +module.exports = { + extends: ['@wayofdev/commitlint-config'], + rules: { + 'body-leading-blank': [2, 'always'], + }, +}; +``` + +## Add a Husky Hook + +Install husky: + +```bash +yarn add -D husky && npm set-script prepare "husky install" && yarn prepare +``` + +Add the hook: + +```bash +npx husky add .husky/commit-msg 'npx --no-install commitlint --edit' +``` + +## Under The Hood + +### `index.js` + +- `@commitlint/config-conventional` + +## License + +MIT diff --git a/packages/commitlint-config/index.js b/packages/commitlint-config/index.js new file mode 100644 index 00000000..4ba25a68 --- /dev/null +++ b/packages/commitlint-config/index.js @@ -0,0 +1,11 @@ +const automaticCommitPattern = /^chore\(release\):.*\[skip ci]/; + +module.exports = { + extends: ['@commitlint/config-conventional'], + /* + This resolves a linting conflict between commitlint's body-max-line-length + due to @semantic-release/git putting release notes in the commit body + https://github.com/semantic-release/git/issues/331 + */ + ignores: [commitMessage => automaticCommitPattern.test(commitMessage)], +}; diff --git a/packages/commitlint-config/package.json b/packages/commitlint-config/package.json new file mode 100644 index 00000000..4e8d190a --- /dev/null +++ b/packages/commitlint-config/package.json @@ -0,0 +1,37 @@ +{ + "name": "@wayofdev/commitlint-config", + "version": "1.0.0", + "description": "A shareable commitlint configuration for projects.", + "keywords": [ + "commitlint", + "commitlint-config" + ], + "author": "lotyp7@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "homepage": "https://github.com/wayofdev/npm-shareable-configs/tree/master/packages/commitlint-config#readme", + "main": "index.js", + "files": [ + "index.js", + "scripts/*" + ], + "scripts": { + "test": "echo \"No test specified\"" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wayofdev/npm-shareable-configs.git", + "directory": "packages/commitlint-config" + }, + "dependencies": { + "@commitlint/config-conventional": "^17.3.0" + }, + "peerDependencies": { + "@commitlint/cli": ">= 17" + } +} diff --git a/packages/commitlint-config/scripts/postinstall.js b/packages/commitlint-config/scripts/postinstall.js new file mode 100644 index 00000000..808bd34b --- /dev/null +++ b/packages/commitlint-config/scripts/postinstall.js @@ -0,0 +1,16 @@ +/* eslint-disable security/detect-non-literal-fs-filename */ +const fs = require('node:fs'); +const path = require('node:path'); + +const filePath = path.join(process.env.INIT_CWD, 'commitlint.config.js'); + +const fileConfigObject = { + extends: '@wayofdev/commitlint-config', +}; + +if (!fs.existsSync(filePath)) { + fs.writeFileSync( + filePath, + `module.exports = ${JSON.stringify(fileConfigObject, undefined, 2)}` + ); +} diff --git a/packages/eslint-config/LICENSE.md b/packages/eslint-config/LICENSE.md new file mode 100644 index 00000000..d433d59e --- /dev/null +++ b/packages/eslint-config/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @lotyp + +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. diff --git a/packages/eslint-config/README.md b/packages/eslint-config/README.md new file mode 100644 index 00000000..94e68884 --- /dev/null +++ b/packages/eslint-config/README.md @@ -0,0 +1,160 @@ +# Eslint Config + +My personal shareable eslint configuration. + +## Install + +```bash +yarn add -D eslint @wayofdev/eslint-config +``` + +## Usage + +**`.eslintrc.js`** + +### JS + +```js +module.exports = { + extends: '@wayofdev/eslint-config', +}; +``` + +### TS + +```js +module.exports = { + extends: '@wayofdev/eslint-config/ts', +}; +``` + +### Jest + +```js +module.exports = { + extends: '@wayofdev/eslint-config/jest', +}; +``` + +## Extending + +An example configuring a mixed JS/TS, `tsconfig`-compatible configuration. + +**`.eslintrc.js`** + +```js +module.exports = { + // ignore linting in dist bundle output folder + ignorePatterns: ['dist/**'], + // enable global variables + env: { + browser: true, + node: true, + jest: true, + } + overrides: [ + { + files: ['**/*.ts'], + extends: [ + '@wayofdev/eslint-config/ts', + // add jest linting + '@wayofdev/eslint-config/jest', + ], + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir: __dirname, + }, + }, + { + files: ['**/*.js'], + extends: [ + '@wayofdev/eslint-config', + // add jest linting + '@wayofdev/eslint-config/jest', + ], + }, + ], +}; +``` + +## Add an NPM Script + +Running this command: + +```bash +npm set-script lint:js "eslint --fix **/*.{js,jsx,ts,tsx}" +``` + +Will create: + +**`package.json`** + +```json +"scripts": { + "lint:js": "eslint --fix **/*.{js,jsx,ts,tsx}" +}, +``` + +## Add a Pre-commit Hook + +**`lint-staged.config.js`** + +```js +module.exports = { + '*.{js,jsx,ts,tsx}': ['prettier --cache --write', 'eslint --cache --fix'], +}; +``` + +## Under The Hood + +### `index.js` + +- Plugins + - `eslint-plugin-prettier` +- Parser + - default `eslint` parser +- Extends + - `eslint-plugin-unicorn` + - `eslint-plugin-promise` + - `eslint-plugin-sonarjs` + - `eslint-plugin-security`, + - default `eslint` ruleset + - `eslint-config-airbnb-base` + - `eslint-config-prettier` +- Rules + - [Prettier Special Rules](https://github.com/prettier/eslint-config-prettier#special-rules) + - Other rules can be found in the config + +### `ts.js` + +- Plugins + - `@typescript-eslint/eslint-plugin` + - `eslint-plugin-prettier` +- Parser + - `@typescript-eslint/parser` +- Extends + - `eslint-plugin-unicorn` + - `eslint-plugin-promise` + - `eslint-plugin-sonarjs` + - `eslint-plugin-security`, + - `@typescript-eslint/eslint-plugin` + - `eslint-config-airbnb-typescript` + - `eslint-config-prettier` +- Rules + - [Prettier Special Rules](https://github.com/prettier/eslint-config-prettier#special-rules) + - Other rules can be found in the config + +### `jest.js` + +- Plugins + - `jest` + - `jest-dom` + - `jest-formatting` +- Extends + - `plugin:jest/recommended` + - `plugin:jest-dom/recommended` + - `plugin:jest-formatting/recommended` + +## License + +MIT diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js new file mode 100644 index 00000000..10b5ffe5 --- /dev/null +++ b/packages/eslint-config/index.js @@ -0,0 +1,43 @@ +module.exports = { + // Plugins that provide the processors to parse code for linting + plugins: ['sonarjs', 'prettier'], + extends: [ + 'plugin:unicorn/recommended', + 'plugin:promise/recommended', + 'plugin:sonarjs/recommended', + 'plugin:security/recommended', + // Uses the recommended rules from eslint + 'eslint:recommended', + /* + Uses the recommended rules from eslint-config-airbnb-base + Note: depends on eslint-plugin-import to work + */ + 'airbnb-base', + /* + Enables eslint-plugin-prettier and displays prettier errors as + ESLint errors. Make sure this is always the last configuration + in the extends array. + https://github.com/prettier/eslint-plugin-prettier#recommended-configuration + */ + 'plugin:prettier/recommended', + ], + // @babel/eslint-parser and prettier rules go here + rules: { + // https://github.com/prettier/eslint-config-prettier#max-len + 'max-len': [ + 'error', + { + code: 80, + ignoreUrls: true, + }, + ], + // https://stackoverflow.com/questions/44939304/eslint-should-be-listed-in-the-projects-dependencies-not-devdependencies + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: true, + }, + ], + 'unicorn/prefer-module': 0, + }, +}; diff --git a/packages/eslint-config/jest.js b/packages/eslint-config/jest.js new file mode 100644 index 00000000..029ae78f --- /dev/null +++ b/packages/eslint-config/jest.js @@ -0,0 +1,8 @@ +module.exports = { + plugins: ['jest', 'jest-dom', 'jest-formatting'], + extends: [ + 'plugin:jest/recommended', + 'plugin:jest-dom/recommended', + 'plugin:jest-formatting/recommended', + ], +}; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json new file mode 100644 index 00000000..1683f5bc --- /dev/null +++ b/packages/eslint-config/package.json @@ -0,0 +1,52 @@ +{ + "name": "@wayofdev/eslint-config", + "version": "1.0.0", + "description": "A shareable eslint configuration for projects.", + "keywords": [ + "eslint", + "eslint-config" + ], + "author": "lotyp7@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "homepage": "https://github.com/wayofdev/npm-shareable-configs/tree/master/packages/eslint-config#readme", + "main": "index.js", + "files": [ + "index.js", + "ts.js", + "jest.js", + "scripts/*" + ], + "scripts": { + "test": "echo \"No test specified\"" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wayofdev/npm-shareable-configs.git", + "directory": "packages/eslint-config" + }, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.38.1", + "@typescript-eslint/parser": "^5.38.1", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^27.0.4", + "eslint-plugin-jest-dom": "^4.0.2", + "eslint-plugin-jest-formatting": "^3.1.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.0.1", + "eslint-plugin-security": "^1.5.0", + "eslint-plugin-sonarjs": "^0.16.0", + "eslint-plugin-unicorn": "^44.0.0" + }, + "peerDependencies": { + "eslint": ">= 8" + } +} diff --git a/packages/eslint-config/scripts/postinstall.js b/packages/eslint-config/scripts/postinstall.js new file mode 100644 index 00000000..301bc746 --- /dev/null +++ b/packages/eslint-config/scripts/postinstall.js @@ -0,0 +1,16 @@ +/* eslint-disable security/detect-non-literal-fs-filename */ +const fs = require('node:fs'); +const path = require('node:path'); + +const filePath = path.join(process.env.INIT_CWD, '.eslintrc.js'); + +const fileConfigObject = { + extends: '@wayofdev/eslint-config', +}; + +if (!fs.existsSync(filePath)) { + fs.writeFileSync( + filePath, + `module.exports = ${JSON.stringify(fileConfigObject, undefined, 2)}` + ); +} diff --git a/packages/eslint-config/ts.js b/packages/eslint-config/ts.js new file mode 100644 index 00000000..3c46260d --- /dev/null +++ b/packages/eslint-config/ts.js @@ -0,0 +1,49 @@ +module.exports = { + // Plugins that provide the processors to parse code for linting + plugins: ['sonarjs', '@typescript-eslint', 'prettier'], + /* + A parser that converts TypeScript into an ESTree-compatible + form so it can be used in ESLint. + */ + parser: '@typescript-eslint/parser', + extends: [ + 'plugin:unicorn/recommended', + 'plugin:promise/recommended', + 'plugin:sonarjs/recommended', + 'plugin:security/recommended', + // Uses the recommended rules from the @typescript-eslint/eslint-plugin + 'plugin:@typescript-eslint/recommended', + /* + Uses the recommended rules from eslint-config-airbnb-typescript + depends on @typescript-eslint/eslint-plugin + and eslint-plugin-import to work + */ + 'airbnb-typescript/base', + /* + Enables eslint-plugin-prettier and displays prettier errors as + ESLint errors. Make sure this is always the last configuration + in the extends array. + https://github.com/prettier/eslint-plugin-prettier#recommended-configuration + */ + 'plugin:prettier/recommended', + ], + // @typescript-eslint/parser and prettier rules go here + rules: { + // https://github.com/prettier/eslint-config-prettier#max-len + 'max-len': [ + 'error', + { + code: 80, + ignoreUrls: true, + }, + ], + // https://stackoverflow.com/questions/44939304/eslint-should-be-listed-in-the-projects-dependencies-not-devdependencies + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: true, + }, + ], + 'unicorn/prefer-module': 0, + }, +}; diff --git a/packages/lint-staged-config/LICENSE.md b/packages/lint-staged-config/LICENSE.md new file mode 100644 index 00000000..d433d59e --- /dev/null +++ b/packages/lint-staged-config/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @lotyp + +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. diff --git a/packages/lint-staged-config/README.md b/packages/lint-staged-config/README.md new file mode 100644 index 00000000..2ad1e06f --- /dev/null +++ b/packages/lint-staged-config/README.md @@ -0,0 +1,73 @@ +# Lint-Staged Config + +My personal shareable lint-staged configuration. + +## Install + +```bash +yarn add -D lint-staged @wayofdev/lint-staged-config +``` + +## Usage + +**`lint-staged.config.js`** + +```js +module.exports = require('@wayofdev/lint-staged-config'); +``` + +### YML + +```js +module.exports = require('@wayofdev/lint-staged-config/yml'); +``` + +## Extending + +A comprehensive example: + +**`lint-staged.config.js`** + +```js +const config = require('@wayofdev/lint-staged-config'); +const ymlConfig = require('@wayofdev/lint-staged-config/yml'); + +module.exports = { + // check for credentials + '*': ['secretlint'], + // ignore prettier on unknown extensions + '!(*.{md,js,jsx,ts,tsx,json,css,scss,yml,yaml})': [ + 'prettier --cache --write --ignore-unknown', + ], + ...ymlConfig, + ...config, + // lint and fix changed markdown files + '*.md': ['prettier --cache --write', 'markdownlint'], + // lint and fix changed json files + '*.json': ['prettier --cache --write'], + // lint and fix changed css and scss files + '*.{css,scss}': ['prettier --cache --write', 'stylelint --cache --fix'], + // execute tests related to files changed in the current commit only + '*.{js,jsx,ts,tsx}': [ + 'yarn test --bail --passWithNoTests --findRelatedTests --coverage', + ], +}; +``` + +## Add a Husky Hook + +Install husky: + +```bash +yarn add -D husky && npm set-script prepare "husky install" && yarn prepare +``` + +Add the hook: + +```bash +npx husky add .husky/pre-commit 'npx --no-install lint-staged' +``` + +## License + +MIT diff --git a/packages/lint-staged-config/index.js b/packages/lint-staged-config/index.js new file mode 100644 index 00000000..f0d18ec5 --- /dev/null +++ b/packages/lint-staged-config/index.js @@ -0,0 +1,4 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +module.exports = { + '*.{js,jsx,ts,tsx}': ['prettier --cache --write', 'eslint --cache --fix'], +}; diff --git a/packages/lint-staged-config/package.json b/packages/lint-staged-config/package.json new file mode 100644 index 00000000..621d4697 --- /dev/null +++ b/packages/lint-staged-config/package.json @@ -0,0 +1,35 @@ +{ + "name": "@wayofdev/lint-staged-config", + "version": "1.0.0", + "description": "A shareable lint-staged configuration for projects.", + "keywords": [ + "lint-staged", + "lint-staged-config" + ], + "author": "lotyp7@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "homepage": "https://github.com/wayofdev/npm-shareable-configs/tree/master/packages/lint-staged-config#readme", + "main": "index.js", + "files": [ + "index.js", + "yml.js", + "scripts/*" + ], + "scripts": { + "test": "echo \"No test specified\"" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wayofdev/npm-shareable-configs.git", + "directory": "packages/lint-staged-config" + }, + "peerDependencies": { + "lint-staged": ">= 13" + } +} diff --git a/packages/lint-staged-config/scripts/postinstall.js b/packages/lint-staged-config/scripts/postinstall.js new file mode 100644 index 00000000..5ea7ea75 --- /dev/null +++ b/packages/lint-staged-config/scripts/postinstall.js @@ -0,0 +1,12 @@ +/* eslint-disable security/detect-non-literal-fs-filename */ +const fs = require('node:fs'); +const path = require('node:path'); + +const filePath = path.join(process.env.INIT_CWD, 'lint-staged.config.js'); + +if (!fs.existsSync(filePath)) { + fs.writeFileSync( + filePath, + `module.exports = require('@wayofdev/lint-staged-config');` + ); +} diff --git a/packages/lint-staged-config/yml.js b/packages/lint-staged-config/yml.js new file mode 100644 index 00000000..d5b90ee9 --- /dev/null +++ b/packages/lint-staged-config/yml.js @@ -0,0 +1,4 @@ +module.exports = { + '*.{yml,yaml}': ['prettier --cache --write', 'yamllint --strict .'], + '.github/workflows/*.{yml,yaml}': ['actionlint'], +}; diff --git a/packages/markdownlint-config/README.md b/packages/markdownlint-config/README.md new file mode 100644 index 00000000..c21872c4 --- /dev/null +++ b/packages/markdownlint-config/README.md @@ -0,0 +1,68 @@ +# Markdownlint Config + +My personal shareable markdownlint configuration. + +## Install + +```bash +yarn add -D markdownlint @wayofdev/markdownlint-config +``` + +## Usage + +**`.markdownlint.json`** + +```bash +{ + "extends": "./node_modules/@wayofdev/markdownlint-config/index.json" +} +``` + +## Extending + +**`.markdownlint.json`** + +```bash +{ + "extends": "./node_modules/@wayofdev/markdownlint-config/index.json", + "MD013": false, +} +``` + +## Add an NPM Script + +Running this command: + +```bash +npm set-script lint:md "markdownlint --fix **/*.md --ignore node_modules --ignore **/CHANGELOG.md" +``` + +Will create: + +**`package.json`** + +```json +"scripts": { + "lint:md": "markdownlint --fix **/*.md --ignore node_modules --ignore **/CHANGELOG.md" +}, +``` + +## Add a Pre-commit Hook + +**`lint-staged.config.js`** + +```js +module.exports = { + '*.md': ['prettier --cache --write', 'markdownlint'], +}; +``` + +## Under The Hood + +### `index.json` + +- `markdownlint-cli` + +## License + +MIT diff --git a/packages/markdownlint-config/index.json b/packages/markdownlint-config/index.json new file mode 100644 index 00000000..30cc4516 --- /dev/null +++ b/packages/markdownlint-config/index.json @@ -0,0 +1,20 @@ +{ + "default": true, + "MD004": { + "style": "dash" + }, + "MD007": { + "indent": 2 + }, + "MD026": false, + "MD029": { + "style": "ordered" + }, + "MD033": false, + "MD034": false, + "MD036": false, + "MD041": false, + "line-length": false, + "no-hard-tabs": false, + "whitespace": false +} diff --git a/packages/markdownlint-config/package.json b/packages/markdownlint-config/package.json new file mode 100644 index 00000000..2a968473 --- /dev/null +++ b/packages/markdownlint-config/package.json @@ -0,0 +1,37 @@ +{ + "name": "@wayofdev/markdownlint-config", + "version": "1.0.0", + "description": "A shareable markdownlint configuration for projects.", + "keywords": [ + "markdownlint", + "markdownlint-config" + ], + "author": "lotyp7@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "homepage": "https://github.com/wayofdev/npm-shareable-configs/tree/master/packages/markdownlint-config#readme", + "main": "index.json", + "files": [ + "index.json", + "scripts/*" + ], + "scripts": { + "test": "echo \"No test specified\"" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wayofdev/npm-shareable-configs.git", + "directory": "packages/markdownlint-config" + }, + "peerDependencies": { + "markdownlint": ">= 0" + }, + "dependencies": { + "markdownlint-cli": "^0.32.2" + } +} diff --git a/packages/markdownlint-config/scripts/postinstall.js b/packages/markdownlint-config/scripts/postinstall.js new file mode 100644 index 00000000..73b21f5b --- /dev/null +++ b/packages/markdownlint-config/scripts/postinstall.js @@ -0,0 +1,16 @@ +/* eslint-disable security/detect-non-literal-fs-filename */ +const fs = require('node:fs'); +const path = require('node:path'); + +const filePath = path.join(process.env.INIT_CWD, '.markdownlint.json'); + +const fileConfigObject = { + extends: './node_modules/@wayofdev/markdownlint-config/index.json', +}; + +if (!fs.existsSync(filePath)) { + fs.writeFileSync( + filePath, + `${JSON.stringify(fileConfigObject, undefined, 2)}` + ); +} diff --git a/packages/prettier-config/LICENSE.md b/packages/prettier-config/LICENSE.md new file mode 100644 index 00000000..d433d59e --- /dev/null +++ b/packages/prettier-config/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @lotyp + +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. diff --git a/packages/prettier-config/README.md b/packages/prettier-config/README.md new file mode 100644 index 00000000..23282d5a --- /dev/null +++ b/packages/prettier-config/README.md @@ -0,0 +1,60 @@ +# Prettier Config + +My personal shareable prettier configuration. + +## Install + +```bash +yarn add -D prettier @wayofdev/prettier-config +``` + +## Usage + +**`.prettierrc.js`** + +```js +module.exports = '@wayofdev/prettier-config'; +``` + +## Extending + +**`.prettierrc.js`** + +```js +module.exports = { + ...require('@wayofdev/prettier-config'), + semi: false, +}; +``` + +## Add an NPM Script + +Running this command: + +```bash +npm set-script lint:prettier "prettier --write ." +``` + +Will create: + +**`package.json`** + +```json +"scripts": { + "lint:prettier": "prettier --write ." +}, +``` + +## Add a Pre-commit Hook + +**`lint-staged.config.js`** + +```js +module.exports = { + '**/*': ['prettier --cache --write --ignore-unknown'], +}; +``` + +## License + +MIT diff --git a/packages/prettier-config/index.js b/packages/prettier-config/index.js new file mode 100644 index 00000000..f0e5d7db --- /dev/null +++ b/packages/prettier-config/index.js @@ -0,0 +1,23 @@ +module.exports = { + endOfLine: 'auto', + // https://prettier.io/docs/en/options.html#print-width + printWidth: 80, + tabWidth: 2, + arrowParens: 'avoid', + singleQuote: true, + semi: true, + trailingComma: 'es5', + bracketSpacing: true, + overrides: [ + { + files: ['*.html'], + options: { + // disable to prevent conflicts with html-validate + trailingComma: 'none', + // https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting + htmlWhitespaceSensitivity: 'css', + singleAttributePerLine: true, + }, + }, + ], +}; diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json new file mode 100644 index 00000000..2fc1b835 --- /dev/null +++ b/packages/prettier-config/package.json @@ -0,0 +1,34 @@ +{ + "name": "@wayofdev/prettier-config", + "version": "1.0.0", + "description": "A shareable prettier configuration for projects.", + "keywords": [ + "prettier", + "prettier-config" + ], + "author": "lotyp7@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "homepage": "https://github.com/wayofdev/npm-shareable-configs/tree/master/packages/prettier-config#readme", + "main": "index.js", + "files": [ + "index.js", + "scripts/*" + ], + "scripts": { + "test": "echo \"No test specified\"" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wayofdev/npm-shareable-configs.git", + "directory": "packages/prettier-config" + }, + "peerDependencies": { + "prettier": ">= 2" + } +} diff --git a/packages/prettier-config/scripts/postinstall.js b/packages/prettier-config/scripts/postinstall.js new file mode 100644 index 00000000..ea4e2233 --- /dev/null +++ b/packages/prettier-config/scripts/postinstall.js @@ -0,0 +1,9 @@ +/* eslint-disable security/detect-non-literal-fs-filename */ +const fs = require('node:fs'); +const path = require('node:path'); + +const filePath = path.join(process.env.INIT_CWD, '.prettierrc.js'); + +if (!fs.existsSync(filePath)) { + fs.writeFileSync(filePath, `module.exports = "@wayofdev/prettier-config"`); +} diff --git a/packages/secretlint-config/LICENSE.md b/packages/secretlint-config/LICENSE.md new file mode 100644 index 00000000..d433d59e --- /dev/null +++ b/packages/secretlint-config/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @lotyp + +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. diff --git a/packages/secretlint-config/README.md b/packages/secretlint-config/README.md new file mode 100644 index 00000000..429ae245 --- /dev/null +++ b/packages/secretlint-config/README.md @@ -0,0 +1,57 @@ +# Secretlint Config + +My personal shareable secretlint configuration. + +## Install + +```bash +yarn add -D secretlint @wayofdev/secretlint-config +``` + +## Usage + +**`.secretlintrc.js`** + +```js +module.exports = { + ...require('@wayofdev/secretlint-config'), +}; +``` + +## Add an NPM Script + +Running this command: + +```bash +npm set-script lint:secrets "npx secretlint **/*" +``` + +Will create: + +**`package.json`** + +```json +"scripts": { + "lint:secrets": "npx secretlint **/*" +}, +``` + +## Add a Pre-commit Hook + +**`lint-staged.config.js`** + +```js +module.exports = { + '*': ['secretlint'], +}; +``` + +## Under The Hood + +### `index.json` + +- `@secretlint/secretlint-rule-preset-recommend` + +## License + +MIT diff --git a/packages/secretlint-config/index.json b/packages/secretlint-config/index.json new file mode 100644 index 00000000..7a1a5df3 --- /dev/null +++ b/packages/secretlint-config/index.json @@ -0,0 +1,7 @@ +{ + "rules": [ + { + "id": "@secretlint/secretlint-rule-preset-recommend" + } + ] +} diff --git a/packages/secretlint-config/package.json b/packages/secretlint-config/package.json new file mode 100644 index 00000000..c269e7b9 --- /dev/null +++ b/packages/secretlint-config/package.json @@ -0,0 +1,37 @@ +{ + "name": "@wayofdev/secretlint-config", + "version": "1.0.3", + "description": "A shareable secretlint configuration for projects.", + "keywords": [ + "secretlint", + "secretlint-config" + ], + "author": "lotyp7@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/wayofdev/npm-shareable-configs/issues" + }, + "homepage": "https://github.com/wayofdev/npm-shareable-configs/tree/master/packages/secretlint-config#readme", + "main": "index.json", + "files": [ + "index.json", + "scripts/*" + ], + "scripts": { + "test": "echo \"No test specified\"" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wayofdev/npm-shareable-configs.git", + "directory": "packages/secretlint-config" + }, + "peerDependencies": { + "secretlint": ">= 5" + }, + "dependencies": { + "@secretlint/secretlint-rule-preset-recommend": "^5.3.0" + } +} diff --git a/packages/secretlint-config/scripts/postinstall.js b/packages/secretlint-config/scripts/postinstall.js new file mode 100644 index 00000000..2d09b60c --- /dev/null +++ b/packages/secretlint-config/scripts/postinstall.js @@ -0,0 +1,12 @@ +/* eslint-disable security/detect-non-literal-fs-filename */ +const fs = require('node:fs'); +const path = require('node:path'); + +const filePath = path.join(process.env.INIT_CWD, '.secretlintrc.js'); + +if (!fs.existsSync(filePath)) { + fs.writeFileSync( + filePath, + `module.exports = { ...require('@wayofdev/secretlint-config') };` + ); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..cc29b5ad --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3739 @@ +lockfileVersion: 5.4 + +importers: + + .: + specifiers: + commitizen: ^4.2.6 + eslint: ^8.29.0 + husky: ^8.0.2 + lint-staged: ^13.1.0 + markdownlint: ^0.26.2 + markdownlint-cli: ^0.32.2 + prettier: ^2.8.1 + secretlint: ^5.3.0 + devDependencies: + commitizen: 4.2.6 + eslint: 8.29.0 + husky: 8.0.2 + lint-staged: 13.1.0 + markdownlint: 0.26.2 + markdownlint-cli: 0.32.2 + prettier: 2.8.1 + secretlint: 5.3.0 + + packages/commitizen-config: + specifiers: + commitizen: '>= 4' + cz-conventional-changelog: ^3.3.0 + dependencies: + commitizen: 4.2.6 + cz-conventional-changelog: 3.3.0 + + packages/commitlint-config: + specifiers: + '@commitlint/cli': '>= 17' + '@commitlint/config-conventional': ^17.3.0 + dependencies: + '@commitlint/cli': 17.3.0 + '@commitlint/config-conventional': 17.3.0 + + packages/eslint-config: + specifiers: + '@typescript-eslint/eslint-plugin': ^5.38.1 + '@typescript-eslint/parser': ^5.38.1 + eslint: '>= 8' + eslint-config-airbnb-base: ^15.0.0 + eslint-config-airbnb-typescript: ^17.0.0 + eslint-config-prettier: ^8.5.0 + eslint-plugin-import: ^2.26.0 + eslint-plugin-jest: ^27.0.4 + eslint-plugin-jest-dom: ^4.0.2 + eslint-plugin-jest-formatting: ^3.1.0 + eslint-plugin-prettier: ^4.2.1 + eslint-plugin-promise: ^6.0.1 + eslint-plugin-security: ^1.5.0 + eslint-plugin-sonarjs: ^0.16.0 + eslint-plugin-unicorn: ^44.0.0 + dependencies: + '@typescript-eslint/eslint-plugin': 5.46.1_imrg37k3svwu377c6q7gkarwmi + '@typescript-eslint/parser': 5.46.1_ha6vam6werchizxrnqvarmz2zu + eslint: 8.29.0 + eslint-config-airbnb-base: 15.0.0_lt3hqehuojhfcbzgzqfngbtmrq + eslint-config-airbnb-typescript: 17.0.0_wmbfqyzc3rp5gdyh5jpn7s32my + eslint-config-prettier: 8.5.0_eslint@8.29.0 + eslint-plugin-import: 2.26.0_z7hwuz3w5sq2sbhy7d4iqrnsvq + eslint-plugin-jest: 27.1.6_ly5exmwff5fio7d4gxjjnyhwtu + eslint-plugin-jest-dom: 4.0.3_eslint@8.29.0 + eslint-plugin-jest-formatting: 3.1.0_eslint@8.29.0 + eslint-plugin-prettier: 4.2.1_5dgjrgoi64tgrv3zzn3walur3u + eslint-plugin-promise: 6.1.1_eslint@8.29.0 + eslint-plugin-security: 1.5.0 + eslint-plugin-sonarjs: 0.16.0_eslint@8.29.0 + eslint-plugin-unicorn: 44.0.2_eslint@8.29.0 + + packages/lint-staged-config: + specifiers: + lint-staged: '>= 13' + dependencies: + lint-staged: 13.1.0 + + packages/markdownlint-config: + specifiers: + markdownlint: '>= 0' + markdownlint-cli: ^0.32.2 + dependencies: + markdownlint: 0.26.2 + markdownlint-cli: 0.32.2 + + packages/prettier-config: + specifiers: + prettier: '>= 2' + dependencies: + prettier: 2.8.1 + + packages/secretlint-config: + specifiers: + '@secretlint/secretlint-rule-preset-recommend': ^5.2.4 + secretlint: '>= 5' + dependencies: + '@secretlint/secretlint-rule-preset-recommend': 5.3.0 + secretlint: 5.3.0 + +packages: + + /@azu/format-text/1.0.1: + resolution: {integrity: sha512-fyPhr8C1DHQqq/xC8gIg2jmYTw/SoY+KgtVFs6H+DFhfh4Hr4OSDeQZuK1eGpOjhuckWy9A1Hhq84+uRjoznLQ==} + + /@azu/style-format/1.0.0: + resolution: {integrity: sha512-L7iaxNrk0OLsH7kw3yx3KVQTKhc2zeW0D9SLrRCqbTZi3XtvSVmmjqO73kR4EnWbTRZ18mwdAikbFYJ0coZ55Q==} + dependencies: + '@azu/format-text': 1.0.1 + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/runtime/7.20.6: + resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@commitlint/cli/17.3.0: + resolution: {integrity: sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==} + engines: {node: '>=v14'} + hasBin: true + dependencies: + '@commitlint/format': 17.0.0 + '@commitlint/lint': 17.3.0 + '@commitlint/load': 17.3.0 + '@commitlint/read': 17.2.0 + '@commitlint/types': 17.0.0 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.6.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: false + + /@commitlint/config-conventional/17.3.0: + resolution: {integrity: sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==} + engines: {node: '>=v14'} + dependencies: + conventional-changelog-conventionalcommits: 5.0.0 + dev: false + + /@commitlint/config-validator/17.1.0: + resolution: {integrity: sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + ajv: 8.11.2 + + /@commitlint/ensure/17.3.0: + resolution: {integrity: sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: false + + /@commitlint/execute-rule/17.0.0: + resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==} + engines: {node: '>=v14'} + + /@commitlint/format/17.0.0: + resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + chalk: 4.1.2 + dev: false + + /@commitlint/is-ignored/17.2.0: + resolution: {integrity: sha512-rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + semver: 7.3.7 + dev: false + + /@commitlint/lint/17.3.0: + resolution: {integrity: sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/is-ignored': 17.2.0 + '@commitlint/parse': 17.2.0 + '@commitlint/rules': 17.3.0 + '@commitlint/types': 17.0.0 + dev: false + + /@commitlint/load/17.3.0: + resolution: {integrity: sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw==} + engines: {node: '>=v14'} + requiresBuild: true + dependencies: + '@commitlint/config-validator': 17.1.0 + '@commitlint/execute-rule': 17.0.0 + '@commitlint/resolve-extends': 17.3.0 + '@commitlint/types': 17.0.0 + '@types/node': 14.18.34 + chalk: 4.1.2 + cosmiconfig: 7.1.0 + cosmiconfig-typescript-loader: 4.3.0_rlet5slz3ltveuzxg6noqqckla + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: 10.9.1_ewcgsh5jhk3o7xvttutb4bhery + typescript: 4.9.4 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + /@commitlint/message/17.2.0: + resolution: {integrity: sha512-/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q==} + engines: {node: '>=v14'} + dev: false + + /@commitlint/parse/17.2.0: + resolution: {integrity: sha512-vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + dev: false + + /@commitlint/read/17.2.0: + resolution: {integrity: sha512-bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/top-level': 17.0.0 + '@commitlint/types': 17.0.0 + fs-extra: 10.1.0 + git-raw-commits: 2.0.11 + minimist: 1.2.7 + dev: false + + /@commitlint/resolve-extends/17.3.0: + resolution: {integrity: sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.1.0 + '@commitlint/types': 17.0.0 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + + /@commitlint/rules/17.3.0: + resolution: {integrity: sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/ensure': 17.3.0 + '@commitlint/message': 17.2.0 + '@commitlint/to-lines': 17.0.0 + '@commitlint/types': 17.0.0 + execa: 5.1.1 + dev: false + + /@commitlint/to-lines/17.0.0: + resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==} + engines: {node: '>=v14'} + dev: false + + /@commitlint/top-level/17.0.0: + resolution: {integrity: sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==} + engines: {node: '>=v14'} + dependencies: + find-up: 5.0.0 + dev: false + + /@commitlint/types/17.0.0: + resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==} + engines: {node: '>=v14'} + dependencies: + chalk: 4.1.2 + + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + /@eslint/eslintrc/1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.19.0 + ignore: 5.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/config-array/0.11.7: + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@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 + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@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.14.0 + + /@secretlint/config-creator/5.3.0: + resolution: {integrity: sha512-FxL1rVxOMCIiUtwc0cm1vRj2IJOhk2SDH35DGtELs7bX+wa4jhoKVnm+2T8P87sybJXMkiKdKWnPzf3nFr6WUA==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + + /@secretlint/config-loader/5.3.0: + resolution: {integrity: sha512-FqUMqbHCopeT1trBdUgdkmYFWleIqxyUQydKi8s5U67s4CnhXnMaLJpgTwcvFwHv2ymTjTpVU62nCt1AITM2CA==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/profiler': 5.3.0 + '@secretlint/types': 5.3.0 + ajv: 8.11.2 + debug: 4.3.4 + rc-config-loader: 4.1.1 + try-resolve: 1.0.1 + transitivePeerDependencies: + - supports-color + + /@secretlint/core/5.3.0: + resolution: {integrity: sha512-j37r5SEUFmNCp+VIYade6PHFQLBwvu7NKg3neyzK6VNZlC3PGiDvWVZaeMmQF4MtlTemztrypJPn460m8FTGXQ==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/profiler': 5.3.0 + '@secretlint/types': 5.3.0 + debug: 4.3.4 + structured-source: 3.0.2 + transitivePeerDependencies: + - supports-color + + /@secretlint/formatter/5.3.0: + resolution: {integrity: sha512-iZ/U404hf9boSo7Cy0/uGoXA0Exh1+Vc+g75HtbUU1a9eDnQprG+fAaAknekaKhRq4Cs4yR7O3se8IioPtLPZA==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/linter-formatter': 12.2.4 + '@textlint/types': 12.2.3 + chalk: 4.1.2 + debug: 4.3.4 + pluralize: 8.0.0 + strip-ansi: 6.0.1 + table: 6.8.1 + terminal-link: 2.1.1 + try-resolve: 1.0.1 + transitivePeerDependencies: + - supports-color + + /@secretlint/node/5.3.0: + resolution: {integrity: sha512-sM84NcTXaehE2gz1ZXIRCpBYG7VyRTa2eqXAPzhDWiyoCZ0bKieMe72Y4RBPjrRiKGgiQlR3JyjOuhqP/zyFBA==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/config-loader': 5.3.0 + '@secretlint/core': 5.3.0 + '@secretlint/formatter': 5.3.0 + '@secretlint/profiler': 5.3.0 + '@secretlint/source-creator': 5.3.0 + debug: 4.3.4 + p-map: 4.0.0 + transitivePeerDependencies: + - supports-color + + /@secretlint/profiler/5.3.0: + resolution: {integrity: sha512-iCNr7z/VofSclFgGjQVee8GfNT3F+GSipijF2m55w8p0UQ671fyIfDRNo9xRhvRAv5vuZ+OXOM/qS7wEnA87Uw==} + + /@secretlint/secretlint-rule-aws/5.3.0: + resolution: {integrity: sha512-axfARZd+XKtwDvKJAV0waimFyfnhiGMSat0kEh3P+dEEdhMi9OOHln0e3Q3W0ItePfGF9O0yLFfPBkBG9YvuHg==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/regexp-string-matcher': 2.0.2 + regx: 1.0.4 + dev: false + + /@secretlint/secretlint-rule-basicauth/5.3.0: + resolution: {integrity: sha512-HJeXiRd6OwfOA9eA5HvyHec4vQWxwSzhkcvqRXODrpEsrKOW+PN0zC2rZK8iou9wiDOoHHWM5LbzfNM+LnndHA==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/regexp-string-matcher': 2.0.2 + dev: false + + /@secretlint/secretlint-rule-filter-comments/5.3.0: + resolution: {integrity: sha512-3cnCZCOqcOrS7xCWvAqbbnNYlLx5NrnYZRZa6kIna1aMYyyeoTR7Z42wiYwZoB+Y8mrmUPg2ZBbDVldLGMWj8g==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + dev: false + + /@secretlint/secretlint-rule-gcp/5.3.0: + resolution: {integrity: sha512-yjUHWN5L2VHOlmowYc3Cbox46Vf2as+m+ni5j5eYqzwDh5c7ujTCkmSp2JBX+ciTTMlqWC1uwksERGfn6FLlxA==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/regexp-string-matcher': 2.0.2 + node-forge: 1.3.1 + dev: false + + /@secretlint/secretlint-rule-github/5.3.0: + resolution: {integrity: sha512-GkgQfakA+k5bBgtnDPFjDkOirDRvykb9QCkJLp4/pgW4ZWFewS13vRPcJNoQfA4ymyjtje0gJ7+UzHOgkzLqgw==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/regexp-string-matcher': 2.0.2 + dev: false + + /@secretlint/secretlint-rule-npm/5.3.0: + resolution: {integrity: sha512-1Rw4Lr8AqhScDw9EtWx7/QVOT2tzQBN8ttcw16cEtwD0eUrE9sXLIW7rLAkC/21nSfhTT/aiLUYSDvWednfg5A==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/regexp-string-matcher': 2.0.2 + dev: false + + /@secretlint/secretlint-rule-preset-recommend/5.3.0: + resolution: {integrity: sha512-b/73Et1G8uZr+4y/tOqHkH9YfjfSiney7Nl2XufoGqVB/gt27vfCSsj8XYMtHxrH3VffvEJ837txOtRDUHX3HQ==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/secretlint-rule-aws': 5.3.0 + '@secretlint/secretlint-rule-basicauth': 5.3.0 + '@secretlint/secretlint-rule-filter-comments': 5.3.0 + '@secretlint/secretlint-rule-gcp': 5.3.0 + '@secretlint/secretlint-rule-github': 5.3.0 + '@secretlint/secretlint-rule-npm': 5.3.0 + '@secretlint/secretlint-rule-privatekey': 5.3.0 + '@secretlint/secretlint-rule-sendgrid': 5.3.0 + '@secretlint/secretlint-rule-slack': 5.3.0 + dev: false + + /@secretlint/secretlint-rule-privatekey/5.3.0: + resolution: {integrity: sha512-d8be2U7+fXOGKkDRRKdP+oKoRwvJ1aXZ9bu4qxQgPoZSAo/L0CFOn/dLskpC1aGs+Blo2LRHR1qwrMuxH1EW9w==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@textlint/regexp-string-matcher': 2.0.2 + dev: false + + /@secretlint/secretlint-rule-sendgrid/5.3.0: + resolution: {integrity: sha512-HDqV/44KU+jYmybGK+BIo3VZglm99hBxrkVlPOK6styC8OPLDhl+VnTvucQJgYZWq1fKB7faaPyz5kUwLdL3iA==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/regexp-string-matcher': 2.0.2 + dev: false + + /@secretlint/secretlint-rule-slack/5.3.0: + resolution: {integrity: sha512-TLH5veqm4z45RG7hhESJrI3Gq92JYITm0LXMIDfcM8nLG7sSgztElpOfCNPNr/6wAFqIqLldWe0FgKZxsAyICQ==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + '@textlint/regexp-string-matcher': 2.0.2 + dev: false + + /@secretlint/source-creator/5.3.0: + resolution: {integrity: sha512-Wp9u0mgidda1MJ6/sIg+gELUHo2edIhvQ/vIgaA2q+SJNQWKwMeVoJ71zM5TeZ5G0zUEyzXLsC4dzSaVGjJ52g==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + '@secretlint/types': 5.3.0 + istextorbinary: 6.0.0 + + /@secretlint/types/5.3.0: + resolution: {integrity: sha512-IYugNzn0xUc95d1u+41AO9GBDVF/crGEC98oCZhqEFC56NzvZCA8m1ciYF+Mv2MmTExYphKBnuqgA9Z7L/WmgQ==} + engines: {node: ^14.13.1 || >=16.0.0} + + /@testing-library/dom/8.19.0: + resolution: {integrity: sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==} + engines: {node: '>=12'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/runtime': 7.20.6 + '@types/aria-query': 4.2.2 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.14 + lz-string: 1.4.4 + pretty-format: 27.5.1 + dev: false + + /@textlint/ast-node-types/12.2.2: + resolution: {integrity: sha512-VQAXUSGdmEajHXrMxeM9ZTS8UBJSVB0ghJFHpFfqYKlcDsjIqClSmTprY6521HoCoSLoUIGBxTC3jQyUMJFIWw==} + + /@textlint/linter-formatter/12.2.4: + resolution: {integrity: sha512-vF/qPrDYLH9jGB/HU8euVLv7BBATYmviBl9fGcx5vO8Lq/D2vHS9MUdk1JddgW/cDqnrI0nNVlLFUphJsXtp6w==} + dependencies: + '@azu/format-text': 1.0.1 + '@azu/style-format': 1.0.0 + '@textlint/module-interop': 12.2.3 + '@textlint/types': 12.2.3 + chalk: 4.1.2 + debug: 4.3.4 + is-file: 1.0.0 + js-yaml: 3.14.1 + lodash: 4.17.21 + optionator: 0.9.1 + pluralize: 2.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + table: 6.8.1 + text-table: 0.2.0 + try-resolve: 1.0.1 + transitivePeerDependencies: + - supports-color + + /@textlint/module-interop/12.2.3: + resolution: {integrity: sha512-tBtjf+hcOV8bTGae48bBj05Z8PmC6AQ+wCLl4PWE1zqUZIo9hxJL5nRpBn8l6HT6HCdtACE0UU85op9QmjmPXw==} + + /@textlint/regexp-string-matcher/2.0.2: + resolution: {integrity: sha512-OXLD9XRxMhd3S0LWuPHpiARQOI7z9tCOs0FsynccW2lmyZzHHFJ9/eR6kuK9xF459Qf+740qI5h+/0cx+NljzA==} + dependencies: + escape-string-regexp: 4.0.0 + lodash.sortby: 4.7.0 + lodash.uniq: 4.5.0 + lodash.uniqwith: 4.5.0 + dev: false + + /@textlint/types/12.2.3: + resolution: {integrity: sha512-7948CPxVsZu99zlIWDyxwT6MI33WpwKwVSD9jk0e5M8VcdxMUnecVq6D40h8LAtfsT5V8NTJqFxKFT6+LpiBvg==} + dependencies: + '@textlint/ast-node-types': 12.2.2 + + /@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + + /@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + /@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + /@tsconfig/node16/1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + + /@types/aria-query/4.2.2: + resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} + dev: false + + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: false + + /@types/json5/0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + + /@types/node/14.18.34: + resolution: {integrity: sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA==} + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: false + + /@typescript-eslint/eslint-plugin/5.46.1_imrg37k3svwu377c6q7gkarwmi: + resolution: {integrity: sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==} + 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.46.1_ha6vam6werchizxrnqvarmz2zu + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/type-utils': 5.46.1_ha6vam6werchizxrnqvarmz2zu + '@typescript-eslint/utils': 5.46.1_ha6vam6werchizxrnqvarmz2zu + debug: 4.3.4 + eslint: 8.29.0 + ignore: 5.2.1 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.9.4 + typescript: 4.9.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/parser/5.46.1_ha6vam6werchizxrnqvarmz2zu: + resolution: {integrity: sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==} + 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.46.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.9.4 + debug: 4.3.4 + eslint: 8.29.0 + typescript: 4.9.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager/5.46.1: + resolution: {integrity: sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/visitor-keys': 5.46.1 + dev: false + + /@typescript-eslint/type-utils/5.46.1_ha6vam6werchizxrnqvarmz2zu: + resolution: {integrity: sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.9.4 + '@typescript-eslint/utils': 5.46.1_ha6vam6werchizxrnqvarmz2zu + debug: 4.3.4 + eslint: 8.29.0 + tsutils: 3.21.0_typescript@4.9.4 + typescript: 4.9.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/types/5.46.1: + resolution: {integrity: sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@typescript-eslint/typescript-estree/5.46.1_typescript@4.9.4: + resolution: {integrity: sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/visitor-keys': 5.46.1 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.9.4 + typescript: 4.9.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/utils/5.46.1_ha6vam6werchizxrnqvarmz2zu: + resolution: {integrity: sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==} + 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 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.9.4 + eslint: 8.29.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.29.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + /@typescript-eslint/visitor-keys/5.46.1: + resolution: {integrity: sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.46.1 + eslint-visitor-keys: 3.3.0 + dev: false + + /JSONStream/1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: false + + /acorn-jsx/5.3.2_acorn@8.8.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.1 + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + + /acorn/8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + engines: {node: '>=0.4.0'} + hasBin: 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 + + /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 + + /ajv/8.11.2: + resolution: {integrity: sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex/6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: false + + /ansi-styles/6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /aria-query/5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.1.0 + dev: false + + /array-ify/1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: false + + /array-includes/3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.5 + get-intrinsic: 1.1.3 + is-string: 1.0.7 + dev: false + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + /array.prototype.flat/1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.5 + es-shim-unscopables: 1.0.0 + dev: false + + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + /available-typed-arrays/1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /binaryextensions/4.18.0: + resolution: {integrity: sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==} + engines: {node: '>=0.8'} + + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + + /boundary/1.0.1: + resolution: {integrity: sha512-AaLhxHwYVh55iOTJncV3DE5o7RakEUSSj64XXEWRTiIhlp7aDI8qR0vY/k8Uw0Z234VjZi/iG/WxfrvqYPUCww==} + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /builtin-modules/3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: false + + /cachedir/2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.3 + dev: false + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /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 + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + /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 + + /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 + + /chardet/0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + /ci-info/3.7.0: + resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==} + engines: {node: '>=8'} + dev: false + + /clean-regexp/1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: false + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + + /cli-spinners/2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} + + /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 + + /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 + + /cli-width/3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + /cliui/8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /clone/1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /colorette/2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + + /commander/9.4.1: + resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} + engines: {node: ^12.20.0 || >=14} + + /commitizen/4.2.6: + resolution: {integrity: sha512-RyTM+EiD9GO01DJUn9MRRAet3XUHGfoUZoksLfr+1ym1Xt2q5EYJs9Fg2BtKSb5Mo53i0BtMBmWMHQXVlZ/L9w==} + engines: {node: '>= 12'} + hasBin: true + dependencies: + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0 + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.4 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.6 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + /compare-func/2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: false + + /concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /confusing-browser-globals/1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: false + + /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: false + + /conventional-changelog-conventionalcommits/5.0.0: + resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: false + + /conventional-commit-types/3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + + /conventional-commits-parser/3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: false + + /cosmiconfig-typescript-loader/4.3.0_rlet5slz3ltveuzxg6noqqckla: + resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=3' + dependencies: + '@types/node': 14.18.34 + cosmiconfig: 7.1.0 + ts-node: 10.9.1_ewcgsh5jhk3o7xvttutb4bhery + typescript: 4.9.4 + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + 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 + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + /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 + + /cz-conventional-changelog/3.3.0: + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.2.6 + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.3 + optionalDependencies: + '@commitlint/load': 17.3.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + /dargs/7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: false + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: false + + /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 + + /decamelize-keys/1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + /decamelize/1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + /dedent/0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + + /deep-equal/2.1.0: + resolution: {integrity: sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==} + dependencies: + call-bind: 1.0.2 + es-get-iterator: 1.1.2 + get-intrinsic: 1.1.3 + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: false + + /deep-extend/0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /defaults/1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + + /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: false + + /detect-file/1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + + /detect-indent/6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + + /dom-accessibility-api/0.5.14: + resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==} + dev: false + + /dot-prop/5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: false + + /eastasianwidth/0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + /entities/3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /es-abstract/1.20.5: + resolution: {integrity: sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==} + 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.3 + get-symbol-description: 1.0.0 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.7 + 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.2 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + unbox-primitive: 1.0.2 + dev: false + + /es-get-iterator/1.1.2: + resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + dev: false + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: false + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-config-airbnb-base/15.0.0_lt3hqehuojhfcbzgzqfngbtmrq: + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.29.0 + eslint-plugin-import: 2.26.0_z7hwuz3w5sq2sbhy7d4iqrnsvq + object.assign: 4.1.4 + object.entries: 1.1.6 + semver: 6.3.0 + dev: false + + /eslint-config-airbnb-typescript/17.0.0_wmbfqyzc3rp5gdyh5jpn7s32my: + resolution: {integrity: sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.13.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + dependencies: + '@typescript-eslint/eslint-plugin': 5.46.1_imrg37k3svwu377c6q7gkarwmi + '@typescript-eslint/parser': 5.46.1_ha6vam6werchizxrnqvarmz2zu + eslint: 8.29.0 + eslint-config-airbnb-base: 15.0.0_lt3hqehuojhfcbzgzqfngbtmrq + eslint-plugin-import: 2.26.0_z7hwuz3w5sq2sbhy7d4iqrnsvq + dev: false + + /eslint-config-prettier/8.5.0_eslint@8.29.0: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.29.0 + dev: false + + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + dependencies: + debug: 3.2.7 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-module-utils/2.7.4_h4dlhne3g63bjzyi45ugdl2u4u: + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + 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.46.1_ha6vam6werchizxrnqvarmz2zu + debug: 3.2.7 + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.6 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import/2.26.0_z7hwuz3w5sq2sbhy7d4iqrnsvq: + 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.46.1_ha6vam6werchizxrnqvarmz2zu + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.4_h4dlhne3g63bjzyi45ugdl2u4u + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-plugin-jest-dom/4.0.3_eslint@8.29.0: + resolution: {integrity: sha512-9j+n8uj0+V0tmsoS7bYC7fLhQmIvjRqRYEcbDSi+TKPsTThLLXCyj5swMSSf/hTleeMktACnn+HFqXBr5gbcbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6', yarn: '>=1'} + peerDependencies: + eslint: ^6.8.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@babel/runtime': 7.20.6 + '@testing-library/dom': 8.19.0 + eslint: 8.29.0 + requireindex: 1.2.0 + dev: false + + /eslint-plugin-jest-formatting/3.1.0_eslint@8.29.0: + resolution: {integrity: sha512-XyysraZ1JSgGbLSDxjj5HzKKh0glgWf+7CkqxbTqb7zEhW7X2WHo5SBQ8cGhnszKN+2Lj3/oevBlHNbHezoc/A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=0.8.0' + dependencies: + eslint: 8.29.0 + dev: false + + /eslint-plugin-jest/27.1.6_ly5exmwff5fio7d4gxjjnyhwtu: + resolution: {integrity: sha512-XA7RFLSrlQF9IGtAmhddkUkBuICCTuryfOTfCSWcZHiHb69OilIH05oozH2XA6CEOtztnOd0vgXyvxZodkxGjg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.46.1_imrg37k3svwu377c6q7gkarwmi + '@typescript-eslint/utils': 5.46.1_ha6vam6werchizxrnqvarmz2zu + eslint: 8.29.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + /eslint-plugin-prettier/4.2.1_5dgjrgoi64tgrv3zzn3walur3u: + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.29.0 + eslint-config-prettier: 8.5.0_eslint@8.29.0 + prettier: 2.8.1 + prettier-linter-helpers: 1.0.0 + dev: false + + /eslint-plugin-promise/6.1.1_eslint@8.29.0: + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.29.0 + dev: false + + /eslint-plugin-security/1.5.0: + resolution: {integrity: sha512-hAFVwLZ/UeXrlyVD2TDarv/x00CoFVpaY0IUZhKjPjiFxqkuQVixsK4f2rxngeQOqSxi6OUjzJM/jMwKEVjJ8g==} + dependencies: + safe-regex: 2.1.1 + dev: false + + /eslint-plugin-sonarjs/0.16.0_eslint@8.29.0: + resolution: {integrity: sha512-al8ojAzcQW8Eu0tWn841ldhPpPcjrJ59TzzTfAVWR45bWvdAASCmrGl8vK0MWHyKVDdC0i17IGbtQQ1KgxLlVA==} + engines: {node: '>=14'} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.29.0 + dev: false + + /eslint-plugin-unicorn/44.0.2_eslint@8.29.0: + resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} + engines: {node: '>=14.18'} + peerDependencies: + eslint: '>=8.23.1' + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + ci-info: 3.7.0 + clean-regexp: 1.0.0 + eslint: 8.29.0 + eslint-utils: 3.0.0_eslint@8.29.0 + esquery: 1.4.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.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.8 + strip-indent: 3.0.0 + dev: false + + /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: false + + /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 + + /eslint-utils/3.0.0_eslint@8.29.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.29.0 + eslint-visitor-keys: 2.1.0 + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + /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} + + /eslint/8.29.0: + resolution: {integrity: sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.7 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + 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.29.0 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.19.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.1 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.2.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.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 + transitivePeerDependencies: + - supports-color + + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.1 + acorn-jsx: 5.3.2_acorn@8.8.1 + eslint-visitor-keys: 3.3.0 + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: false + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /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: false + + /execa/6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + + /expand-tilde/2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + + /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 + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff/1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + dev: false + + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + 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 + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fastq/1.14.0: + resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} + dependencies: + reusify: 1.0.4 + + /figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + + /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 + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /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 + + /find-root/1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + /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 + + /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 + + /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 + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + + /flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + + /for-each/0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + + /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: false + + /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 + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /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.5 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + + /get-intrinsic/1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: false + + /get-stdin/9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + /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.3 + dev: false + + /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: false + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /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 + + /glob/8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.1 + once: 1.4.0 + + /global-dirs/0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + + /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 + + /global-prefix/1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + 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 + + /globals/13.19.0: + resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /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.12 + ignore: 5.2.1 + merge2: 1.4.1 + slash: 3.0.0 + + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.1.3 + dev: false + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.3 + dev: false + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /homedir-polyfill/1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: false + + /human-signals/3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + + /husky/8.0.2: + resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} + 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 + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore/5.2.1: + resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} + engines: {node: '>= 4'} + + /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 + + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + /ini/3.0.1: + resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + /inquirer/8.2.4: + resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.6.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.3 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /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: false + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: false + + /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: false + + /is-builtin-module/3.2.0: + resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: false + + /is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-file/1.0.0: + resolution: {integrity: sha512-ZGMuc+xA8mRnrXtmtf2l/EkIW2zaD2LSBWlaOVEF6yH4RTndHob65V4SwWWdtGKVthQfXPVKsXqw4TDUjbVxVQ==} + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-interactive/1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + /is-map/2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false + + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: false + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + /is-plain-obj/1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + /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: false + + /is-set/2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false + + /is-stream/3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-text-path/1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: false + + /is-typed-array/1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: false + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + /is-utf8/0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + /is-weakmap/2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-weakset/2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + dev: false + + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + /isarray/2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /istextorbinary/6.0.0: + resolution: {integrity: sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==} + engines: {node: '>=10'} + dependencies: + binaryextensions: 4.18.0 + textextensions: 5.15.0 + + /js-sdsl/4.2.0: + resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.7 + dev: false + + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + + /jsonc-parser/3.1.0: + resolution: {integrity: sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==} + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + + /jsonparse/1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: false + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + /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 + + /lilconfig/2.0.6: + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + engines: {node: '>=10'} + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /linkify-it/4.0.1: + resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + dependencies: + uc.micro: 1.0.6 + + /lint-staged/13.1.0: + resolution: {integrity: sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.19 + commander: 9.4.1 + debug: 4.3.4 + execa: 6.1.0 + lilconfig: 2.0.6 + listr2: 5.0.6 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.2 + pidtree: 0.6.0 + string-argv: 0.3.1 + yaml: 2.1.3 + transitivePeerDependencies: + - enquirer + - supports-color + + /listr2/5.0.6: + resolution: {integrity: sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.6.0 + through: 2.3.8 + wrap-ansi: 7.0.0 + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /lodash.camelcase/4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false + + /lodash.isfunction/3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: false + + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + /lodash.kebabcase/4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: false + + /lodash.map/4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + /lodash.mergewith/4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + /lodash.snakecase/4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + dev: false + + /lodash.sortby/4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: false + + /lodash.startcase/4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: false + + /lodash.truncate/4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + /lodash.uniq/4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + /lodash.uniqwith/4.5.0: + resolution: {integrity: sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==} + dev: false + + /lodash.upperfirst/4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + dev: false + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + /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 + + /longest/2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /lz-string/1.4.4: + resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} + hasBin: true + dev: false + + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + /map-obj/1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + /markdown-it/13.0.1: + resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 3.0.1 + linkify-it: 4.0.1 + mdurl: 1.0.1 + uc.micro: 1.0.6 + + /markdownlint-cli/0.32.2: + resolution: {integrity: sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==} + engines: {node: '>=14'} + hasBin: true + dependencies: + commander: 9.4.1 + get-stdin: 9.0.0 + glob: 8.0.3 + ignore: 5.2.1 + js-yaml: 4.1.0 + jsonc-parser: 3.1.0 + markdownlint: 0.26.2 + markdownlint-rule-helpers: 0.17.2 + minimatch: 5.1.1 + run-con: 1.2.11 + + /markdownlint-rule-helpers/0.17.2: + resolution: {integrity: sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==} + engines: {node: '>=12'} + + /markdownlint/0.26.2: + resolution: {integrity: sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==} + engines: {node: '>=14'} + dependencies: + markdown-it: 13.0.1 + + /mdurl/1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + + /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.1 + 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: false + + /meow/9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + 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 + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + /merge/2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch/5.1.1: + resolution: {integrity: sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + + /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 + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /mute-stream/0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: false + + /natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + /node-forge/1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: false + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + + /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.11.0 + semver: 7.3.8 + validate-npm-package-license: 3.0.4 + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: false + + /npm-run-path/5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + + /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: false + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + 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: false + + /object.entries/1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.5 + dev: false + + /object.values/1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.5 + dev: false + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + + /onetime/6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + + /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 + + /ora/5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.7.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + /os-tmpdir/1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /parse-passwd/1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key/4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pidtree/0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + /pluralize/2.0.0: + resolution: {integrity: sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==} + + /pluralize/8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + /prettier-linter-helpers/1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.2.0 + dev: false + + /prettier/2.8.1: + resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==} + engines: {node: '>=10.13.0'} + hasBin: 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: false + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + + /q/1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: false + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + /rc-config-loader/4.1.1: + resolution: {integrity: sha512-S10o85x/szboh7FOxUyU+KuED+gr9V7SEnUBOzSn+vd1K8J2MtkP1RCPWg8Sw5kkuZKr7976bFzacCM6QtAApQ==} + dependencies: + debug: 4.3.4 + js-yaml: 4.1.0 + json5: 2.2.1 + require-from-string: 2.0.2 + transitivePeerDependencies: + - supports-color + + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: false + + /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 + + /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 + + /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 + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + + /regexp-tree/0.1.24: + resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} + hasBin: true + dev: false + + /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: false + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + /regx/1.0.4: + resolution: {integrity: sha512-Z/5ochRUyD5TkJgFq+66ajKePlj6KzpSLfDO2lOLOLu7E82xAjNux0m8mx1DAXBj5ECHiRCBWoqL25b4lkwcgw==} + dev: false + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + /requireindex/1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} + dev: false + + /resolve-dir/1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + /resolve-global/1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /run-async/2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + /run-con/1.2.11: + resolution: {integrity: sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 3.0.1 + minimist: 1.2.7 + strip-json-comments: 3.1.1 + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /rxjs/7.6.0: + resolution: {integrity: sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==} + dependencies: + tslib: 2.4.1 + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex-test/1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + is-regex: 1.1.4 + dev: false + + /safe-regex/2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.24 + dev: false + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /secretlint/5.3.0: + resolution: {integrity: sha512-NAgrHYNpv8dqtyNuV8Kkmo3S1Il2XRPP0dWBVTLDBbGIwWQuKJQicJFxUpTitSsZ229wABBRvzR6IyX/HcK9CQ==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@secretlint/config-creator': 5.3.0 + '@secretlint/formatter': 5.3.0 + '@secretlint/node': 5.3.0 + '@secretlint/profiler': 5.3.0 + debug: 4.3.4 + globby: 11.1.0 + meow: 9.0.0 + read-pkg: 5.2.0 + transitivePeerDependencies: + - supports-color + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: false + + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + object-inspect: 1.12.2 + dev: false + + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + /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 + + /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 + + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + + /spdx-license-ids/3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + + /split2/3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.0 + dev: false + + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + /string-argv/0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + + /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 + + /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 + + /string.prototype.trimend/1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.5 + dev: false + + /string.prototype.trimstart/1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.5 + dev: false + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi/7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: false + + /strip-final-newline/3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + /structured-source/3.0.2: + resolution: {integrity: sha512-Ap7JHfKgmH40SUjumqyKTHYHNZ8GvGQskP34ks0ElHCDEig+bYGpmXVksxPSrgcY9rkJqhVMzfeg5GIpZelfpQ==} + dependencies: + boundary: 1.0.1 + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-hyperlinks/2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /table/6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.11.2 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /terminal-link/2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + + /text-extensions/1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: false + + /text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + /textextensions/5.15.0: + resolution: {integrity: sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==} + engines: {node: '>=0.8'} + + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + /through2/4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.0 + dev: false + + /tmp/0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + /try-resolve/1.0.1: + resolution: {integrity: sha512-yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ==} + + /ts-node/10.9.1_ewcgsh5jhk3o7xvttutb4bhery: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + 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.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 14.18.34 + acorn: 8.8.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.9.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.7 + strip-bom: 3.0.0 + dev: false + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + + /tslib/2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + + /tsutils/3.21.0_typescript@4.9.4: + 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.9.4 + dev: false + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + /typescript/4.9.4: + resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} + engines: {node: '>=4.2.0'} + hasBin: true + + /uc.micro/1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + + /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: false + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + + /util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + /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 + + /wcwidth/1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + + /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: false + + /which-collection/1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: false + + /which-typed-array/1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: false + + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + + /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 + + /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 + + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + /yaml/2.1.3: + resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==} + engines: {node: '>= 14'} + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + /yargs-parser/21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: false + + /yargs/17.6.2: + resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + 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.1.1 + dev: false + + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..069501d7 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +--- + +packages: + - "packages/*" + +...