From 52fdff1ae831034ce631320581cecbbaedccc41c Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Sun, 19 May 2024 15:04:05 -0700 Subject: [PATCH] fix: refine github actions --- .github/README.md | 9 + .github/actions/ignore/action.yml | 24 ++ .github/actions/setup/action.yml | 22 +- .github/actions/setup/action.yml.bak | 19 ++ .github/workflows/check.yml | 64 ++--- .github/workflows/deployment.yml.todo | 157 ++++++++++ .github/workflows/docs-deploy.yml | 2 +- .github/workflows/integration.yml | 61 ++++ .github/workflows/pull-request.yml | 32 +++ .github/workflows/report.yml | 21 ++ docs/playbook.md | 6 + package.json | 2 + pnpm-lock.yaml | 397 ++++++++++++++++++++++++++ 13 files changed, 767 insertions(+), 49 deletions(-) create mode 100644 .github/README.md create mode 100644 .github/actions/ignore/action.yml create mode 100644 .github/actions/setup/action.yml.bak create mode 100644 .github/workflows/deployment.yml.todo create mode 100644 .github/workflows/integration.yml create mode 100644 .github/workflows/pull-request.yml create mode 100644 .github/workflows/report.yml diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 00000000..46f7e54e --- /dev/null +++ b/.github/README.md @@ -0,0 +1,9 @@ +# Automation + +Automating tasks with GitHub Actions + +## TODO + +### Examples + +- https://github.com/kporten/template-react/tree/main/.github/workflows diff --git a/.github/actions/ignore/action.yml b/.github/actions/ignore/action.yml new file mode 100644 index 00000000..7cfb9073 --- /dev/null +++ b/.github/actions/ignore/action.yml @@ -0,0 +1,24 @@ +name: Ignore +description: Determine if a workspace has new changes that need to be deployed + +inputs: + workspace: + description: Workspace name to check + required: true + +outputs: + ignore: + description: Boolean value that indicates if the workspace can be ignored + value: ${{ steps.check.outputs.ignore }} + +runs: + using: composite + steps: + - id: check + run: | + if ! pnpm dlx turbo-ignore ${{ inputs.workspace }}; then + echo "ignore=false" >> $GITHUB_OUTPUT + else + echo "ignore=true" >> $GITHUB_OUTPUT + fi + shell: bash diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index d1e1c065..4a7351db 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -1,19 +1,15 @@ -inputs: - CACHIX_AUTH_TOKEN: - required: true +name: Setup +description: Setup environment and cache runs: using: composite steps: - - name: Install nix - uses: cachix/install-nix-action@v21 - - - name: Setup cachix - uses: cachix/cachix-action@v12 + - uses: pnpm/action-setup@v3 + - uses: actions/setup-node@v4 with: - name: gerschtli - authToken: ${{ inputs.CACHIX_AUTH_TOKEN }} - - - name: Build dev shell + node-version: lts/* + cache: pnpm + - run: pnpm install + shell: bash + - run: pnpm add --global turbo shell: bash - run: nix develop --profile profile && rm profile diff --git a/.github/actions/setup/action.yml.bak b/.github/actions/setup/action.yml.bak new file mode 100644 index 00000000..d1e1c065 --- /dev/null +++ b/.github/actions/setup/action.yml.bak @@ -0,0 +1,19 @@ +inputs: + CACHIX_AUTH_TOKEN: + required: true + +runs: + using: composite + steps: + - name: Install nix + uses: cachix/install-nix-action@v21 + + - name: Setup cachix + uses: cachix/cachix-action@v12 + with: + name: gerschtli + authToken: ${{ inputs.CACHIX_AUTH_TOKEN }} + + - name: Build dev shell + shell: bash + run: nix develop --profile profile && rm profile diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index f89b4836..828ceaea 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -11,63 +11,57 @@ on: - 'docs' - 'infra' - 'nhost' - pull_request: - branches: [main] - types: [opened, synchronize] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: - cog_check: - name: check conventional commit compliance + commit: + name: Check conventional commit compliance runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Conventional commits check uses: cocogitto/cocogitto-action@v3 with: check-latest-tag-only: true - # linter: - # name: Lint Code Base - # runs-on: ubuntu-latest - # steps: - # - name: Checkout Code - # uses: actions/checkout@v4 - # with: - # # Full git history is needed to get a proper list of changed files within `super-linter` - # fetch-depth: 0 - # - name: Lint Code Base - # uses: github/super-linter@v5 - # env: - # VALIDATE_ALL_CODEBASE: false - # IGNORE_GENERATED_FILES: true - # # FILTER_REGEX_EXCLUDE: CHANGELOG.md - # DEFAULT_BRANCH: main - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - build: - name: Build and Test + # linter: + # name: Lint Code Base + # runs-on: ubuntu-latest + # steps: + # - name: Checkout Code + # uses: actions/checkout@v4 + # with: + # # Full git history is needed to get a proper list of changed files within `super-linter` + # fetch-depth: 0 + # - name: Lint Code Base + # uses: github/super-linter@v5 + # env: + # VALIDATE_ALL_CODEBASE: false + # IGNORE_GENERATED_FILES: true + # # FILTER_REGEX_EXCLUDE: CHANGELOG.md + # DEFAULT_BRANCH: main + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + check: + name: Check tests pass timeout-minutes: 15 runs-on: ubuntu-latest # To use Remote Caching, uncomment the next lines and follow the steps below. env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM }} - steps: - - name: Check out code + - name: ๐Ÿ“ฅ Checkout uses: actions/checkout@v4 with: fetch-depth: 2 # for turbo only run tasks for changed workspaces. - - uses: pnpm/action-setup@v3 - - uses: actions/setup-node@v4 - with: - node-version: lts/* - cache: 'pnpm' - - run: pnpm install - - name: Test with coverage - run: pnpm turbo test:unit:coverage + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿงช Test coverage + run: turbo test:unit:coverage --filter='[HEAD^1]' # steps: # - name: Check out code # uses: actions/checkout@v4 diff --git a/.github/workflows/deployment.yml.todo b/.github/workflows/deployment.yml.todo new file mode 100644 index 00000000..9b5943a1 --- /dev/null +++ b/.github/workflows/deployment.yml.todo @@ -0,0 +1,157 @@ +name: Deployment + +on: + push: + branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + +jobs: + versioning: + runs-on: ubuntu-latest + outputs: + published: ${{ steps.changesets.outputs.published }} + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿ“ Process changesets + uses: changesets/action@v1 + id: changesets + with: + title: 'chore: update versions' + commit: 'chore: update versions' + version: pnpm exec changeset version + publish: pnpm exec changeset tag + createGithubReleases: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + status: + if: needs.versioning.outputs.published == 'true' + needs: + - versioning + runs-on: ubuntu-latest + outputs: + express-ignore: ${{ steps.express.outputs.ignore }} + keystone-ignore: ${{ steps.keystone.outputs.ignore }} + next-ignore: ${{ steps.next.outputs.ignore }} + vite-ignore: ${{ steps.vite.outputs.ignore }} + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿช„ Analyze express app + id: express + uses: ./.github/actions/ignore + with: + workspace: express + - name: ๐Ÿช„ Analyze keystone app + id: keystone + uses: ./.github/actions/ignore + with: + workspace: keystone + - name: ๐Ÿช„ Analyze next app + id: next + uses: ./.github/actions/ignore + with: + workspace: next + - name: ๐Ÿช„ Analyze vite app + id: vite + uses: ./.github/actions/ignore + with: + workspace: vite + + express: + if: needs.status.outputs.express-ignore == 'false' + needs: + - status + runs-on: ubuntu-latest + env: + TURBO_API: ${{ vars.TURBO_API }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v3 + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿ—๏ธ Build + run: turbo build --filter express + # - name: ๐Ÿš€ Deploy + # run: + + keystone: + if: needs.status.outputs.keystone-ignore == 'false' + needs: + - status + runs-on: ubuntu-latest + env: + TURBO_API: ${{ vars.TURBO_API }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v3 + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿ—๏ธ Build + run: turbo build --filter keystone + env: + SKIP_ENV_REQUIRED: 1 + # - name: ๐Ÿš€ Deploy + # run: + + next: + if: needs.status.outputs.next-ignore == 'false' + needs: + - status + runs-on: ubuntu-latest + env: + TURBO_API: ${{ vars.TURBO_API }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v3 + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿ—๏ธ Build + run: turbo build --filter next + # - name: ๐Ÿš€ Deploy + # run: + + vite: + if: needs.status.outputs.vite-ignore == 'false' + needs: + - status + runs-on: ubuntu-latest + env: + TURBO_API: ${{ vars.TURBO_API }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v3 + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿ—๏ธ Build + run: turbo build --filter vite + # env: + # VITE_CLERK_PUBLISHABLE_KEY: ${{ vars.VITE_CLERK_PUBLISHABLE_KEY }} + # VITE_SENTRY_DSN: ${{ vars.SENTRY_DSN }} + # VITE_TRPC_URL: ${{ vars.VITE_TRPC_URL }} + # - name: ๐Ÿš€ Deploy + # uses: actions/upload-artifact@v3 + # with: + # name: vite + # path: ./apps/vite/dist + # if-no-files-found: error + # retention-days: 1 diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 16356b5b..d9f0a425 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -38,7 +38,7 @@ jobs: uses: actions/configure-pages@v5 with: enablement: true - - name: Setup PNPM ๐Ÿ“ƒ + - name: Setup PNPM โš™๏ธ uses: pnpm/action-setup@v3 - name: Setup Node ๐Ÿ“ uses: actions/setup-node@v4 diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml new file mode 100644 index 00000000..03910cf5 --- /dev/null +++ b/.github/workflows/integration.yml @@ -0,0 +1,61 @@ +name: Integration + +on: + pull_request: + branches: [main] + types: [opened, reopened, synchronize] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + cog_check: + name: check conventional commit compliance + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Conventional commits check + uses: cocogitto/cocogitto-action@v3 + with: + check-latest-tag-only: true + # audit: + # runs-on: ubuntu-latest + # steps: + # - name: ๐Ÿ“ฅ Checkout + # uses: actions/checkout@v4 + # - name: โš™๏ธ Setup + # uses: ./.github/actions/setup + # - name: ๐Ÿพ Audit dependencies + # uses: snyk/actions/node@master + # with: + # args: --all-projects --severity-threshold high --fail-on all + # env: + # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + + + test: + name: Build and Test + timeout-minutes: 15 + runs-on: ubuntu-latest + # To use Remote Caching, uncomment the next lines and follow the steps below. + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 2 # for turbo only run tasks for changed workspaces. + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿ—๏ธ Build packages + run: turbo build --filter './packages/*' --continue + - name: ๐Ÿ”ฆ Lint code + run: turbo lint --filter='[HEAD^1]' + - name: ๐Ÿงช Test coverage + run: turbo test:unit:coverage --filter='[HEAD^1]' diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 00000000..b193c08f --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,32 @@ +name: Pull Request + +on: + pull_request: + types: [opened, reopened, edited, synchronize] + branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: ๐Ÿ–๏ธ Conventional commits check + uses: cocogitto/cocogitto-action@v3 + with: + check-latest-tag-only: true + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿ”ฆ Lint pull request title + run: pnpm exec commitlint -x @commitlint/config-conventional <<< "$TITLE" + # run: cog check <<< "$TITLE" + env: + TITLE: ${{ github.event.pull_request.title }} + # - name: ๐Ÿ“ Check changeset status + # run: pnpm exec changeset status --since origin/main diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml new file mode 100644 index 00000000..90c07cdf --- /dev/null +++ b/.github/workflows/report.yml @@ -0,0 +1,21 @@ +name: Report + +on: + schedule: + - cron: '0 4 * * 1' + workflow_dispatch: + +jobs: + audit: + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ“ฅ Checkout + uses: actions/checkout@v3 + - name: โš™๏ธ Setup + uses: ./.github/actions/setup + - name: ๐Ÿพ Audit dependencies + uses: snyk/actions/node@master + with: + args: --all-projects --severity-threshold high --fail-on all + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} diff --git a/docs/playbook.md b/docs/playbook.md index a22513ed..9984f2ff 100644 --- a/docs/playbook.md +++ b/docs/playbook.md @@ -53,6 +53,12 @@ In this Playbook, we will be using [svelte-add](https://github.com/svelte-add/sv pnpm add -D @dotenv-run/cli -w ``` +Add **commitlint** + +```shell +pnpm add -D @commitlint/cli @commitlint/config-conventional -w +``` + ### Testing We will use [vitest](https://vitest.dev/) for Component (mocked) testing and diff --git a/package.json b/package.json index 47ca7e31..6c03da30 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,8 @@ "devDependencies": { "@changesets/changelog-github": "0.5.0", "@changesets/cli": "2.27.2", + "@commitlint/cli": "19.3.0", + "@commitlint/config-conventional": "19.2.2", "@dotenv-run/cli": "1.3.5", "@markuplint/astro-parser": "4.6.2", "@markuplint/svelte-parser": "4.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56c61370..515270ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,12 @@ importers: '@changesets/cli': specifier: 2.27.2 version: 2.27.2 + '@commitlint/cli': + specifier: 19.3.0 + version: 19.3.0(@types/node@20.12.12)(typescript@5.4.5) + '@commitlint/config-conventional': + specifier: 19.2.2 + version: 19.2.2 '@dotenv-run/cli': specifier: 1.3.5 version: 1.3.5 @@ -2240,6 +2246,75 @@ packages: bundledDependencies: - is-unicode-supported + '@commitlint/cli@19.3.0': + resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} + engines: {node: '>=v18'} + hasBin: true + + '@commitlint/config-conventional@19.2.2': + resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} + engines: {node: '>=v18'} + + '@commitlint/config-validator@19.0.3': + resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + engines: {node: '>=v18'} + + '@commitlint/ensure@19.0.3': + resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} + engines: {node: '>=v18'} + + '@commitlint/execute-rule@19.0.0': + resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} + engines: {node: '>=v18'} + + '@commitlint/format@19.3.0': + resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==} + engines: {node: '>=v18'} + + '@commitlint/is-ignored@19.2.2': + resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} + engines: {node: '>=v18'} + + '@commitlint/lint@19.2.2': + resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==} + engines: {node: '>=v18'} + + '@commitlint/load@19.2.0': + resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} + engines: {node: '>=v18'} + + '@commitlint/message@19.0.0': + resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} + engines: {node: '>=v18'} + + '@commitlint/parse@19.0.3': + resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} + engines: {node: '>=v18'} + + '@commitlint/read@19.2.1': + resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} + engines: {node: '>=v18'} + + '@commitlint/resolve-extends@19.1.0': + resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} + engines: {node: '>=v18'} + + '@commitlint/rules@19.0.3': + resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} + engines: {node: '>=v18'} + + '@commitlint/to-lines@19.0.0': + resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} + engines: {node: '>=v18'} + + '@commitlint/top-level@19.0.0': + resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} + engines: {node: '>=v18'} + + '@commitlint/types@19.0.3': + resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} + engines: {node: '>=v18'} + '@cspell/cspell-bundled-dicts@8.8.1': resolution: {integrity: sha512-zP/cC7ABk9PM6X1/itEOYa9raWrdUtUXCcUtHLnEr83HhPUHZ8vzaBgMJ176No/7EgZ4BHGXVvA0v079ukXVxw==} engines: {node: '>=18'} @@ -4451,6 +4526,9 @@ packages: '@types/concat-stream@2.0.3': resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==} + '@types/conventional-commits-parser@5.0.0': + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/cookie@0.5.4': resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} @@ -4959,6 +5037,10 @@ packages: '@yr/monotone-cubic-spline@1.0.3': resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==} + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -5081,6 +5163,9 @@ packages: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -5586,6 +5671,9 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -5608,6 +5696,19 @@ packages: console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -5625,6 +5726,14 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig-typescript-loader@5.0.0: + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -5937,6 +6046,10 @@ packages: resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} engines: {node: '>=0.12'} + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -6179,6 +6292,10 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} @@ -6708,6 +6825,10 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} @@ -6907,6 +7028,11 @@ packages: git-hooks-list@3.1.0: resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -7421,6 +7547,10 @@ packages: resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} engines: {node: '>=0.10.0'} + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} @@ -7485,6 +7615,10 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} @@ -7647,6 +7781,10 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} @@ -7772,9 +7910,16 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} @@ -7799,15 +7944,24 @@ packages: lodash.isstring@4.0.1: resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -7817,6 +7971,9 @@ packages: lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -7971,6 +8128,10 @@ packages: memoizee@0.4.15: resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} @@ -8453,6 +8614,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@5.0.0: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} @@ -8465,6 +8630,10 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-map@2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} @@ -8554,6 +8723,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -9821,6 +9994,10 @@ packages: spdx-license-ids@3.0.17: resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -10287,6 +10464,10 @@ packages: resolution: {integrity: sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==} deprecated: no longer maintained + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -10301,6 +10482,9 @@ packages: resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} engines: {node: '>=12.22'} + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + timers-ext@0.1.7: resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} @@ -10585,6 +10769,10 @@ packages: unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unified-engine@11.2.1: resolution: {integrity: sha512-xBAdZ8UY2X4R9Hm6X6kMne4Nz0PlpOc1oE6DPeqJnewr5Imkb8uT5Eyvy1h7xNekPL3PSWh3ZJyNrMW6jnNQBg==} @@ -12389,6 +12577,117 @@ snapshots: picocolors: 1.0.1 sisteransi: 1.0.5 + '@commitlint/cli@19.3.0(@types/node@20.12.12)(typescript@5.4.5)': + dependencies: + '@commitlint/format': 19.3.0 + '@commitlint/lint': 19.2.2 + '@commitlint/load': 19.2.0(@types/node@20.12.12)(typescript@5.4.5) + '@commitlint/read': 19.2.1 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/config-conventional@19.2.2': + dependencies: + '@commitlint/types': 19.0.3 + conventional-changelog-conventionalcommits: 7.0.2 + + '@commitlint/config-validator@19.0.3': + dependencies: + '@commitlint/types': 19.0.3 + ajv: 8.13.0 + + '@commitlint/ensure@19.0.3': + dependencies: + '@commitlint/types': 19.0.3 + 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 + + '@commitlint/execute-rule@19.0.0': {} + + '@commitlint/format@19.3.0': + dependencies: + '@commitlint/types': 19.0.3 + chalk: 5.3.0 + + '@commitlint/is-ignored@19.2.2': + dependencies: + '@commitlint/types': 19.0.3 + semver: 7.6.2 + + '@commitlint/lint@19.2.2': + dependencies: + '@commitlint/is-ignored': 19.2.2 + '@commitlint/parse': 19.0.3 + '@commitlint/rules': 19.0.3 + '@commitlint/types': 19.0.3 + + '@commitlint/load@19.2.0(@types/node@20.12.12)(typescript@5.4.5)': + dependencies: + '@commitlint/config-validator': 19.0.3 + '@commitlint/execute-rule': 19.0.0 + '@commitlint/resolve-extends': 19.1.0 + '@commitlint/types': 19.0.3 + chalk: 5.3.0 + cosmiconfig: 9.0.0(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/message@19.0.0': {} + + '@commitlint/parse@19.0.3': + dependencies: + '@commitlint/types': 19.0.3 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + + '@commitlint/read@19.2.1': + dependencies: + '@commitlint/top-level': 19.0.0 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + + '@commitlint/resolve-extends@19.1.0': + dependencies: + '@commitlint/config-validator': 19.0.3 + '@commitlint/types': 19.0.3 + global-directory: 4.0.1 + import-meta-resolve: 4.1.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + + '@commitlint/rules@19.0.3': + dependencies: + '@commitlint/ensure': 19.0.3 + '@commitlint/message': 19.0.0 + '@commitlint/to-lines': 19.0.0 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + + '@commitlint/to-lines@19.0.0': {} + + '@commitlint/top-level@19.0.0': + dependencies: + find-up: 7.0.0 + + '@commitlint/types@19.0.3': + dependencies: + '@types/conventional-commits-parser': 5.0.0 + chalk: 5.3.0 + '@cspell/cspell-bundled-dicts@8.8.1': dependencies: '@cspell/dict-ada': 4.0.2 @@ -14916,6 +15215,10 @@ snapshots: dependencies: '@types/node': 20.12.8 + '@types/conventional-commits-parser@5.0.0': + dependencies: + '@types/node': 20.12.12 + '@types/cookie@0.5.4': {} '@types/cookie@0.6.0': {} @@ -15566,6 +15869,11 @@ snapshots: '@yr/monotone-cubic-spline@1.0.3': {} + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + abbrev@1.1.1: {} abbrev@2.0.0: {} @@ -15689,6 +15997,8 @@ snapshots: call-bind: 1.0.7 is-array-buffer: 3.0.4 + array-ify@1.0.0: {} + array-includes@3.1.8: dependencies: call-bind: 1.0.7 @@ -16319,6 +16629,11 @@ snapshots: commondir@1.0.1: {} + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + concat-map@0.0.1: {} concat-stream@2.0.0: @@ -16346,6 +16661,21 @@ snapshots: console-control-strings@1.1.0: {} + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@7.0.2: + dependencies: + compare-func: 2.0.0 + + conventional-commits-parser@5.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + convert-source-map@2.0.0: {} cookie@0.5.0: {} @@ -16358,6 +16688,13 @@ snapshots: core-util-is@1.0.3: {} + cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): + dependencies: + '@types/node': 20.12.12 + cosmiconfig: 9.0.0(typescript@5.4.5) + jiti: 1.21.0 + typescript: 5.4.5 + cosmiconfig@9.0.0(typescript@5.4.5): dependencies: env-paths: 2.2.1 @@ -16737,6 +17074,8 @@ snapshots: es5-ext: 0.10.64 type: 2.7.2 + dargs@8.1.0: {} + data-uri-to-buffer@4.0.1: {} data-urls@5.0.0: @@ -16953,6 +17292,10 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + dotenv-expand@10.0.0: {} dotenv@16.0.3: {} @@ -17786,6 +18129,12 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + find-up@7.0.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + find-yarn-workspace-root2@1.2.16: dependencies: micromatch: 4.0.5 @@ -17994,6 +18343,12 @@ snapshots: git-hooks-list@3.1.0: {} + git-raw-commits@4.0.0: + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 + github-from-package@0.0.0: {} github-slugger@2.0.0: {} @@ -18632,6 +18987,8 @@ snapshots: is-obj@1.0.1: {} + is-obj@2.0.0: {} + is-path-inside@3.0.3: {} is-plain-obj@1.1.0: {} @@ -18681,6 +19038,10 @@ snapshots: dependencies: has-symbols: 1.0.3 + is-text-path@2.0.0: + dependencies: + text-extensions: 2.4.0 + is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 @@ -18860,6 +19221,8 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonparse@1.3.1: {} + jsonpointer@5.0.1: {} jsonwebtoken@9.0.2: @@ -19038,8 +19401,14 @@ snapshots: dependencies: p-locate: 5.0.0 + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + lodash-es@4.17.21: {} + lodash.camelcase@4.3.0: {} + lodash.castarray@4.4.0: {} lodash.debounce@4.0.8: {} @@ -19056,18 +19425,26 @@ snapshots: lodash.isstring@4.0.1: {} + lodash.kebabcase@4.1.1: {} + lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} + lodash.mergewith@4.6.2: {} + lodash.once@4.1.1: {} + lodash.snakecase@4.1.1: {} + lodash.sortby@4.7.0: {} lodash.startcase@4.4.0: {} lodash.uniq@4.5.0: {} + lodash.upperfirst@4.3.1: {} + lodash@4.17.21: {} log-symbols@6.0.0: @@ -19385,6 +19762,8 @@ snapshots: next-tick: 1.1.0 timers-ext: 0.1.7 + meow@12.1.1: {} + meow@13.2.0: {} meow@6.1.1: @@ -20025,6 +20404,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 + p-limit@4.0.0: + dependencies: + yocto-queue: 1.0.0 + p-limit@5.0.0: dependencies: yocto-queue: 1.0.0 @@ -20037,6 +20420,10 @@ snapshots: dependencies: p-limit: 3.1.0 + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + p-map@2.1.0: {} p-queue@8.0.1: @@ -20155,6 +20542,8 @@ snapshots: path-exists@4.0.0: {} + path-exists@5.0.0: {} + path-is-absolute@1.0.1: {} path-key@3.1.1: {} @@ -21524,6 +21913,8 @@ snapshots: spdx-license-ids@3.0.17: {} + split2@4.2.0: {} + sprintf-js@1.0.3: {} stackback@0.0.2: {} @@ -22142,6 +22533,8 @@ snapshots: text-encoding@0.6.4: {} + text-extensions@2.4.0: {} + text-table@0.2.0: {} thenify-all@1.6.0: @@ -22154,6 +22547,8 @@ snapshots: throttle-debounce@5.0.0: {} + through@2.3.8: {} + timers-ext@0.1.7: dependencies: es5-ext: 0.10.64 @@ -22404,6 +22799,8 @@ snapshots: pako: 0.2.9 tiny-inflate: 1.0.3 + unicorn-magic@0.1.0: {} + unified-engine@11.2.1: dependencies: '@types/concat-stream': 2.0.3