From 7b86f4b0de28a7ce06a5ae378326d3db036390d1 Mon Sep 17 00:00:00 2001 From: Lexus Drumgold Date: Sun, 22 Oct 2023 19:28:03 -0400 Subject: [PATCH] chore: grease migration - https://github.com/flex-development/grease/tree/grease@3.0.0-alpha.3 Signed-off-by: Lexus Drumgold --- .dictionary.txt | 8 - .editorconfig | 2 +- .eslintignore | 1 + .github/.gitconfig | 16 +- .github/ISSUE_TEMPLATE/feature.yml | 2 +- .github/dependabot.yml | 14 +- .github/infrastructure.yml | 1 + .github/workflows/ci.yml | 41 +- .github/workflows/release.yml | 52 +- .lintstagedrc.json | 2 +- .npmrc | 2 +- CHANGELOG.md | 161 +-- CONTRIBUTING.md | 1 - grease.config.json | 8 + grease/commands/changelog.command.ts | 319 ------ grease/commands/index.ts | 6 - grease/enums/index.ts | 6 - grease/enums/repo-provider.ts | 17 - grease/index.ts | 33 - grease/interfaces/commit.interface.ts | 113 -- grease/interfaces/context.interface.ts | 48 - grease/interfaces/entry.interface.ts | 62 -- grease/interfaces/index.ts | 8 - grease/models/formatter.model.ts | 294 ------ grease/models/grammar.model.ts | 75 -- grease/models/index.ts | 7 - grease/options/changelog.options.ts | 352 ------ grease/options/commit-raw.options.ts | 39 - grease/options/commit.options.ts | 27 - grease/options/index.ts | 9 - grease/options/semver-tags.options.ts | 25 - grease/providers/changelog.service.ts | 617 ----------- grease/providers/index.ts | 6 - grease/types/author.ts | 21 - grease/types/breaking-change.ts | 28 - grease/types/commit-group.ts | 64 -- grease/types/commit-transformer.ts | 24 - grease/types/index.ts | 14 - grease/types/raw-commit-field.ts | 18 - grease/types/reference.ts | 38 - grease/types/repo-keywords.ts | 35 - grease/types/repo-provider-map.ts | 20 - grease/types/trailer.ts | 23 - package.json | 20 +- scripts/release.sh | 25 +- scripts/typecheck-build.sh | 12 - .../conventional-changelog-writer/index.d.ts | 12 - yarn.lock | 998 ++++++++---------- 48 files changed, 636 insertions(+), 3090 deletions(-) create mode 100644 grease.config.json delete mode 100644 grease/commands/changelog.command.ts delete mode 100644 grease/commands/index.ts delete mode 100644 grease/enums/index.ts delete mode 100644 grease/enums/repo-provider.ts delete mode 100644 grease/index.ts delete mode 100644 grease/interfaces/commit.interface.ts delete mode 100644 grease/interfaces/context.interface.ts delete mode 100644 grease/interfaces/entry.interface.ts delete mode 100644 grease/interfaces/index.ts delete mode 100644 grease/models/formatter.model.ts delete mode 100644 grease/models/grammar.model.ts delete mode 100644 grease/models/index.ts delete mode 100644 grease/options/changelog.options.ts delete mode 100644 grease/options/commit-raw.options.ts delete mode 100644 grease/options/commit.options.ts delete mode 100644 grease/options/index.ts delete mode 100644 grease/options/semver-tags.options.ts delete mode 100644 grease/providers/changelog.service.ts delete mode 100644 grease/providers/index.ts delete mode 100644 grease/types/author.ts delete mode 100644 grease/types/breaking-change.ts delete mode 100644 grease/types/commit-group.ts delete mode 100644 grease/types/commit-transformer.ts delete mode 100644 grease/types/index.ts delete mode 100644 grease/types/raw-commit-field.ts delete mode 100644 grease/types/reference.ts delete mode 100644 grease/types/repo-keywords.ts delete mode 100644 grease/types/repo-provider-map.ts delete mode 100644 grease/types/trailer.ts delete mode 100644 scripts/typecheck-build.sh delete mode 100644 typings/conventional-changelog-writer/index.d.ts diff --git a/.dictionary.txt b/.dictionary.txt index 9a66e0b..4821c22 100644 --- a/.dictionary.txt +++ b/.dictionary.txt @@ -1,28 +1,20 @@ -ardatan attw bdougie booleanish cefc codecov -commitish commitlintrc dedupe dessant dohm dprint -emojify fbca ggshield golevelup gpgsign -groupby hmarr iife -infile jchen -keyid -ksort -larsgw lcov lintstagedrc mkbuild diff --git a/.editorconfig b/.editorconfig index 7b86861..d931b04 100644 --- a/.editorconfig +++ b/.editorconfig @@ -50,5 +50,5 @@ max_line_length = 130 max_line_length = 100 # yaml -[*.yml] +[{*.yaml,*.yml}] max_line_length = 100 diff --git a/.eslintignore b/.eslintignore index 7f0839a..aedb060 100644 --- a/.eslintignore +++ b/.eslintignore @@ -25,6 +25,7 @@ yarn.lock !.cspell.json !.dprint.* !.github/ +!.grease*.* !.lintstagedrc.json !.markdownlint.jsonc !.vscode/ diff --git a/.github/.gitconfig b/.github/.gitconfig index bd74537..2e50bbc 100644 --- a/.github/.gitconfig +++ b/.github/.gitconfig @@ -25,7 +25,7 @@ chb = "!f() { git checkout -b \"$@\" && git pou \"$@\"; }; f" chp = "!f() { git checkout $@ && git pull; }; f" # commit with message -cm = "!f() { git commit -s -m \"$@\"; }; f" +cm = "!f() { git commit -S -s -m \"$@\"; }; f" # tell git to start tracking branch and push to origin pou = "!f() { git push origin --no-verify -u $@; }; f" @@ -62,7 +62,7 @@ fpnv = "!f() { git pnv --force ; }; f" pnv = "!f() { git push --no-verify $@; }; f" [branch] -autosetuprebase = always +autoSetupRebase = always [checkout] defaultRemote = origin @@ -85,6 +85,12 @@ tool = vscode [difftool "vscode"] cmd = code-insiders --wait --diff $LOCAL $REMOTE +[filter "lfs"] +clean = git-lfs clean -- %f +smudge = git-lfs smudge -- %f +process = git-lfs filter-process +required = true + [gitflow "prefix"] feature = feat/ hotfix = hotfix/ @@ -97,6 +103,10 @@ program = gpg2 [init] defaultBranch = main +[log] +date = iso8601-strict +decorate = short + [merge] tool = vscode @@ -111,6 +121,8 @@ autoStash = true [tag] forceSignAnnotated = true +gpgsign = true +sort = -creatordate [url "git@github.com:"] insteadOf = gh: diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml index c21cc46..0be6422 100644 --- a/.github/ISSUE_TEMPLATE/feature.yml +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -2,8 +2,8 @@ name: Feature description: Suggest new feature or improvement title: 👀 labels: - - type:feat - status:needs-triage + - type:feat body: - type: markdown attributes: diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 63fc8b4..571f4fd 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -28,17 +28,23 @@ updates: include: scope directory: / groups: - conventional-changelog: + commitlint: patterns: - - '@types/conventional-recommended-bump' - - conventional-changelog-conventionalcommits - - conventional-recommended-bump + - '@commitlint/*' + dependencies: + dependency-type: production + eslint: + patterns: + - '@types/eslint' + - eslint flex-development: + dependency-type: development patterns: - '@flex-development/*' nestjs: patterns: - '@nestjs/*' + - rxjs typescript-eslint: patterns: - '@typescript-eslint/*' diff --git a/.github/infrastructure.yml b/.github/infrastructure.yml index 2dab09a..ac8b68b 100644 --- a/.github/infrastructure.yml +++ b/.github/infrastructure.yml @@ -25,6 +25,7 @@ branches: - context: auto-merge - context: auto-review - context: build + - context: changelog - context: commitlint - context: dependabot-dedupe - context: format diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74a37ba..ffcd8e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,7 +89,7 @@ jobs: key: ${{ steps.cache-key.outputs.result }} path: ${{ env.CACHE_PATH }} - id: version - name: Get package version + name: Get manifest version run: echo "result=$(jq .version package.json -r)" >>$GITHUB_OUTPUT - id: version-typescript name: Get TypeScript version @@ -322,6 +322,7 @@ jobs: with: cache: yarn cache-dependency-path: yarn.lock + check-latest: true node-version: ${{ matrix.node-version }} - id: cache if: steps.test-files-check.outputs.files_exists == 'true' @@ -405,3 +406,41 @@ jobs: with: name: ${{ env.TARFILE }} path: ${{ env.TARFILE }} + changelog: + needs: + - build + - commitlint + - format + - gitguardian + - lint + - preflight + - spelling + - test + - typescript + runs-on: ubuntu-latest + env: + NODE_NO_WARNINGS: 1 + steps: + - id: checkout + name: Checkout ${{ env.REF_NAME }} + uses: actions/checkout@v4.1.1 + with: + fetch-depth: 0 + persist-credentials: false + ref: ${{ env.REF }} + - id: node + name: Setup Node.js + uses: actions/setup-node@v3.8.1 + with: + cache: yarn + cache-dependency-path: yarn.lock + node-version-file: .nvmrc + - id: cache + name: Restore dependencies cache + uses: actions/cache@v3.3.2 + with: + key: ${{ needs.preflight.outputs.cache-key }} + path: ${{ env.CACHE_PATH }} + - id: summary + name: Get changelog preview + run: echo "$(grease changelog)" >>$GITHUB_STEP_SUMMARY diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6a5a84e..5cc5292 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,15 +37,16 @@ on: type: string env: REF: ${{ inputs.sha || github.event.pull_request.merge_commit_sha }} - REF_NAME: ${{ format('main@{0}', inputs.sha || github.event.pull_request.merge_commit_sha) }} + REF_NAME: | + ${{ format('{0}@{1}', github.base_ref, inputs.sha || github.event.pull_request.merge_commit_sha) }} jobs: preflight: if: | (github.event.pull_request.merged && startsWith(github.head_ref, 'release/')) || (github.event_name == 'workflow_dispatch' && github.ref_name == 'main') - runs-on: ubuntu-latest permissions: contents: read + runs-on: ubuntu-latest outputs: prerelease: ${{ steps.dist-tag.outputs.prerelease }} tag: ${{ steps.tag.outputs.result }} @@ -60,11 +61,11 @@ jobs: with: ref: ${{ env.REF }} - id: version - name: Get package version + name: Get release version run: echo "result=$(jq .version package.json -r)" >>$GITHUB_OUTPUT - id: tag-prefix name: Get release tag prefix - run: echo "result=$(jq .tagPrefix package.json -r)" >>$GITHUB_OUTPUT + run: echo "result=$(jq .tagprefix grease.config.json -r)" >>$GITHUB_OUTPUT - id: tag name: Get release tag run: | @@ -76,9 +77,6 @@ jobs: target: ${{ steps.version.outputs.result }} publish: needs: preflight - permissions: - contents: write - packages: read runs-on: ubuntu-latest environment: name: release @@ -86,13 +84,9 @@ jobs: ${{ format('{0}/{1}/releases/tag/{2}', github.server_url, github.repository, needs.preflight.outputs.tag) }} env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_REPO_TOKEN }} HUSKY: 0 - NODE_ENV: production - NODE_NO_WARNINGS: 1 - NOTES_FILE: ./RELEASE_NOTES.md - PRERELEASE: ${{ needs.preflight.outputs.prerelease }} - TAG: ${{ needs.preflight.outputs.tag }} + NOTES_FILE: RELEASE_NOTES.md steps: - id: checkout name: Checkout ${{ env.REF_NAME }} @@ -101,47 +95,39 @@ jobs: fetch-depth: 0 persist-credentials: true ref: ${{ env.REF }} + token: ${{ env.GITHUB_TOKEN }} - id: gpg-import name: Import GPG key uses: crazy-max/ghaction-import-gpg@v6.0.0 with: git_config_global: true + git_push_gpgsign: false git_tag_gpgsign: true git_user_signingkey: true gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - # todo: remove when https://github.com/crazy-max/ghaction-import-gpg/issues/118 is resolved - - id: gpg-trust - name: Set trust on GPG key - run: | - gpg --no-tty --command-fd 0 --edit-key ${{ steps.gpg-import.outputs.keyid }} << EOTRUST - trust - 5 - y - quit - EOTRUST + passphrase: ${{ secrets.GPG_PASSPHRASE }} + trust_level: 5 - id: yarn name: Install dependencies run: yarn - id: pack name: Pack project + env: + NODE_NO_WARNINGS: 1 run: yarn pack -o %s-%v.tgz - id: release-notes name: Generate release notes - run: yarn changelog --outfile $NOTES_FILE --write + run: grease changelog -wo $NOTES_FILE && echo "$(cat $NOTES_FILE)" >>$GITHUB_STEP_SUMMARY - id: tag name: Create annotated tag - env: - GIT_AUTHOR_EMAIL: ${{ steps.gpg-import.outputs.email }} - GIT_COMMITTER_EMAIL: ${{ steps.gpg-import.outputs.email }} - run: | - git tag --annotate --force --sign $TAG --message "release: $TAG" - git tag --verify $TAG - git push origin $TAG + run: 'grease tag -ps -m "release: {tag}" ${{ needs.preflight.outputs.version }}' - id: publish name: Publish release env: - GITHUB_TOKEN: ${{ secrets.PAT_REPO }} - run: gh release create $TAG *.tgz -t=$TAG -p=$PRERELEASE -F=$NOTES_FILE + PRERELEASE: ${{ needs.preflight.outputs.prerelease }} + TAG: ${{ needs.preflight.outputs.tag }} + run: | + gh release create $TAG *.tgz --title=$TAG --notes-file=$NOTES_FILE --verify-tag --prerelease=$PRERELEASE --discussion-category=releases - id: close-issues name: Close released issues uses: bdougie/close-issues-based-on-label@master diff --git a/.lintstagedrc.json b/.lintstagedrc.json index 22fc68b..86ca2c7 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -8,6 +8,6 @@ "src/**/*.ts": [ "vitest --changed --coverage --run", "yarn build", - "yarn check:types:build" + "bash -c tsc -p tsconfig.build.json" ] } diff --git a/.npmrc b/.npmrc index a196de9..58e6651 100644 --- a/.npmrc +++ b/.npmrc @@ -1,5 +1,5 @@ # https://docs.npmjs.com/cli/configuring-npm/npmrc @flex-development:registry=https://npm.pkg.github.com -//npm.pkg.github.com/:_authToken=${PAT_BOT} +//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN} //npm.pkg.github.com/:always-auth=true diff --git a/CHANGELOG.md b/CHANGELOG.md index e3c95f1..415e499 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,101 +2,102 @@ ### :package: Build -- preserve `name` property on classes and functions ([e3bad9a](https://github.com/flex-development/nest-commander/commit/e3bad9a0a9a359d4e270c5a0bbd24f2f6224a13e)) -- **deps-dev:** Bump @arethetypeswrong/cli from 0.7.1 to 0.8.0 ([#36](https://github.com/flex-development/nest-commander/pull/36)) ([84a9540](https://github.com/flex-development/nest-commander/commit/84a9540461f15bd77a05817d4f1d6cf1a574465f)) -- **deps-dev:** Bump @swc/core from 1.3.78 to 1.3.80 ([#30](https://github.com/flex-development/nest-commander/pull/30)) ([47b1cc5](https://github.com/flex-development/nest-commander/commit/47b1cc5c38278d5f050f40a5ddcd621386af9689)) -- **deps-dev:** Bump @swc/core from 1.3.80 to 1.3.81 ([#41](https://github.com/flex-development/nest-commander/pull/41)) ([fed8d71](https://github.com/flex-development/nest-commander/commit/fed8d71d9d0610ad4ace6feba6e46c5983a40108)) -- **deps-dev:** Bump cspell from 7.0.1 to 7.1.1 ([#35](https://github.com/flex-development/nest-commander/pull/35)) ([369e15b](https://github.com/flex-development/nest-commander/commit/369e15bfa095cef36ad6eab374c8ee561cba4919)) -- **deps-dev:** Bump cspell from 7.0.1-alpha.8 to 7.0.1-alpha.9 ([#1](https://github.com/flex-development/nest-commander/pull/1)) ([df9a508](https://github.com/flex-development/nest-commander/commit/df9a508bf8f897fed09fb9f4f65e845c7ce5eeb5)) -- **deps-dev:** Bump cspell from 7.0.1-alpha.9 to 7.0.1 ([#23](https://github.com/flex-development/nest-commander/pull/23)) ([b97da31](https://github.com/flex-development/nest-commander/commit/b97da31f56a0cb5c25c59b0d14849e8e5ceebb18)) -- **deps-dev:** Bump cspell from 7.1.1 to 7.2.0 ([#37](https://github.com/flex-development/nest-commander/pull/37)) ([556b8a9](https://github.com/flex-development/nest-commander/commit/556b8a961ebda99e53f81b867cbbf8e569b5808a)) -- **deps-dev:** Bump esbuild from 0.19.0 to 0.19.1 ([#5](https://github.com/flex-development/nest-commander/pull/5)) ([c93b0be](https://github.com/flex-development/nest-commander/commit/c93b0be39157d6172859a148aca63f9dcb74f987)) -- **deps-dev:** Bump esbuild from 0.19.1 to 0.19.2 ([#8](https://github.com/flex-development/nest-commander/pull/8)) ([ca37c82](https://github.com/flex-development/nest-commander/commit/ca37c82c41e6217b7cadf2547c66521df8bd8aa2)) -- **deps-dev:** Bump eslint from 8.46.0 to 8.47.0 ([#6](https://github.com/flex-development/nest-commander/pull/6)) ([436982e](https://github.com/flex-development/nest-commander/commit/436982eedb64975b7c315668f26655a251299a4d)) -- **deps-dev:** Bump eslint from 8.47.0 to 8.48.0 ([#31](https://github.com/flex-development/nest-commander/pull/31)) ([e91bcc6](https://github.com/flex-development/nest-commander/commit/e91bcc6ce185970faed3daf378d01d0cdd670223)) -- **deps-dev:** Bump eslint-import-resolver-typescript from 3.5.5 to 3.6.0 ([#3](https://github.com/flex-development/nest-commander/pull/3)) ([9fca355](https://github.com/flex-development/nest-commander/commit/9fca3556f7e91c3beac4c27dcb816688bce1feae)) -- **deps-dev:** Bump eslint-plugin-markdownlint from 0.4.1 to 0.5.0 ([#9](https://github.com/flex-development/nest-commander/pull/9)) ([b698eba](https://github.com/flex-development/nest-commander/commit/b698ebab77383b08eea9c8583667aecede164f57)) -- **deps-dev:** Bump graphql from 16.7.1 to 16.8.0 ([#10](https://github.com/flex-development/nest-commander/pull/10)) ([c37e720](https://github.com/flex-development/nest-commander/commit/c37e720805f76b27270bb6410fabfdd99d262a00)) -- **deps-dev:** Bump lint-staged from 13.2.3 to 14.0.0 ([#11](https://github.com/flex-development/nest-commander/pull/11)) ([c983443](https://github.com/flex-development/nest-commander/commit/c983443dc796c204ce829b1da71aae9f55e8836e)) -- **deps-dev:** Bump lint-staged from 14.0.0 to 14.0.1 ([#25](https://github.com/flex-development/nest-commander/pull/25)) ([d59f126](https://github.com/flex-development/nest-commander/commit/d59f126f32b1a2f79b8cd230987f8ae363b3e37b)) -- **deps-dev:** Bump prettier from 3.0.1 to 3.0.2 ([#14](https://github.com/flex-development/nest-commander/pull/14)) ([8862be2](https://github.com/flex-development/nest-commander/commit/8862be2635ccc428926720a3b01a09551bd02b1b)) -- **deps-dev:** Bump prettier from 3.0.2 to 3.0.3 ([#38](https://github.com/flex-development/nest-commander/pull/38)) ([2f3f56e](https://github.com/flex-development/nest-commander/commit/2f3f56e193d077a068db32b9f3a3447053641f6b)) -- **deps-dev:** Bump pretty-format from 29.6.2 to 29.6.3 ([#22](https://github.com/flex-development/nest-commander/pull/22)) ([1a9eace](https://github.com/flex-development/nest-commander/commit/1a9eace137b672168ebcf0c48bed42e0d6cdd0a6)) -- **deps-dev:** Bump rxjs from 8.0.0-alpha.10 to 8.0.0-alpha.11 ([#17](https://github.com/flex-development/nest-commander/pull/17)) ([1be5136](https://github.com/flex-development/nest-commander/commit/1be5136527160395609618ac8ec5b97a68731b56)) -- **deps-dev:** Bump rxjs from 8.0.0-alpha.11 to 8.0.0-alpha.12 ([#24](https://github.com/flex-development/nest-commander/pull/24)) ([79b6fb1](https://github.com/flex-development/nest-commander/commit/79b6fb14e4feb51d8a2e61b6234342b1b962dc6b)) -- **deps-dev:** Bump the conventional-changelog group with 5 updates ([#32](https://github.com/flex-development/nest-commander/pull/32)) ([3261af8](https://github.com/flex-development/nest-commander/commit/3261af8fbe4bcda2a1a40c7e64d03f22f6352d51)) -- **deps-dev:** Bump the flex-development group with 1 update ([#13](https://github.com/flex-development/nest-commander/pull/13)) ([5861712](https://github.com/flex-development/nest-commander/commit/58617123ecef0247e59f06b52119b8e704ae81ab)) -- **deps-dev:** bump the flex-development group with 2 updates ([b092bc9](https://github.com/flex-development/nest-commander/commit/b092bc99e2aa26f0cfdd969714202b0c3d24a913)) -- **deps-dev:** Bump the nestjs group with 3 updates ([#19](https://github.com/flex-development/nest-commander/pull/19)) ([a84f518](https://github.com/flex-development/nest-commander/commit/a84f5180bfe49cb3da78b1b4b09867e333e51cc0)) -- **deps-dev:** Bump the nestjs group with 3 updates ([#26](https://github.com/flex-development/nest-commander/pull/26)) ([00298b3](https://github.com/flex-development/nest-commander/commit/00298b3898c170b06cd831523f9a73e1ee47f0af)) -- **deps-dev:** Bump the nestjs group with 3 updates ([#33](https://github.com/flex-development/nest-commander/pull/33)) ([58e0a16](https://github.com/flex-development/nest-commander/commit/58e0a16bd33e18bf59ed30638bb4ebc5e2dc1f91)) -- **deps-dev:** Bump the nestjs group with 3 updates ([#39](https://github.com/flex-development/nest-commander/pull/39)) ([7c3aa12](https://github.com/flex-development/nest-commander/commit/7c3aa126ec90d02d75ad81e915eb75de6aa762ee)) -- **deps-dev:** Bump the typescript-eslint group with 2 updates ([#20](https://github.com/flex-development/nest-commander/pull/20)) ([342080c](https://github.com/flex-development/nest-commander/commit/342080cd01b2a541e06cd616ecc11094158179be)) -- **deps-dev:** Bump the typescript-eslint group with 2 updates ([#34](https://github.com/flex-development/nest-commander/pull/34)) ([fee417e](https://github.com/flex-development/nest-commander/commit/fee417e6a93ee59daad2e402bece98f2f3458022)) -- **deps-dev:** Bump the typescript-eslint group with 2 updates ([#7](https://github.com/flex-development/nest-commander/pull/7)) ([e1e0d9c](https://github.com/flex-development/nest-commander/commit/e1e0d9c42f55a3a8eb23a23c04c706452bfaed6d)) -- **deps-dev:** Bump the vitest group with 3 updates ([#16](https://github.com/flex-development/nest-commander/pull/16)) ([95c0d86](https://github.com/flex-development/nest-commander/commit/95c0d860cb6e8e2375eb35b6b3b6a565f4c6c3f4)) -- **deps-dev:** Bump the vitest group with 3 updates ([#29](https://github.com/flex-development/nest-commander/pull/29)) ([d97c663](https://github.com/flex-development/nest-commander/commit/d97c66392a93c7c6230d59a0f0fb682556e14915)) -- **deps-dev:** bump typescript from 5.1.6 to 5.2.1-rc ([6f943a5](https://github.com/flex-development/nest-commander/commit/6f943a5622c786295f8af0415870abb8023c764c)) -- **deps-dev:** bump typescript from 5.2.1-rc to 5.2.2 ([20af3bf](https://github.com/flex-development/nest-commander/commit/20af3bfb943c28900f8c0de84815776265883030)) -- **deps:** bump @flex-development/tutils from 6.0.0-alpha.19 to 6.0.0-alpha.20 ([61807e7](https://github.com/flex-development/nest-commander/commit/61807e7da7fdb11fb327fcb83a877e71fe02ec29)) -- **yarn:** bump yarn from 4.0.0-rc.39 to 4.0.0-rc.49 ([833b53b](https://github.com/flex-development/nest-commander/commit/833b53b39f4465a1f30976ac54f02f3d3bb10c53)) -- **yarn:** bump yarn from 4.0.0-rc.49 to 4.0.0-rc.50 ([157babe](https://github.com/flex-development/nest-commander/commit/157babe758b76b80143871751d858f51b191ce14)) +- [[`e3bad9a`](https://github.com/flex-development/nest-commander/commit/e3bad9a0a9a359d4e270c5a0bbd24f2f6224a13e)] preserve `name` property on classes and functions +- [[`84a9540`](https://github.com/flex-development/nest-commander/commit/84a9540461f15bd77a05817d4f1d6cf1a574465f)] **deps-dev:** Bump @arethetypeswrong/cli from 0.7.1 to 0.8.0 ([#36](https://github.com/flex-development/nest-commander/issues/36)) +- [[`47b1cc5`](https://github.com/flex-development/nest-commander/commit/47b1cc5c38278d5f050f40a5ddcd621386af9689)] **deps-dev:** Bump @swc/core from 1.3.78 to 1.3.80 ([#30](https://github.com/flex-development/nest-commander/issues/30)) +- [[`fed8d71`](https://github.com/flex-development/nest-commander/commit/fed8d71d9d0610ad4ace6feba6e46c5983a40108)] **deps-dev:** Bump @swc/core from 1.3.80 to 1.3.81 ([#41](https://github.com/flex-development/nest-commander/issues/41)) +- [[`369e15b`](https://github.com/flex-development/nest-commander/commit/369e15bfa095cef36ad6eab374c8ee561cba4919)] **deps-dev:** Bump cspell from 7.0.1 to 7.1.1 ([#35](https://github.com/flex-development/nest-commander/issues/35)) +- [[`df9a508`](https://github.com/flex-development/nest-commander/commit/df9a508bf8f897fed09fb9f4f65e845c7ce5eeb5)] **deps-dev:** Bump cspell from 7.0.1-alpha.8 to 7.0.1-alpha.9 ([#1](https://github.com/flex-development/nest-commander/issues/1)) +- [[`b97da31`](https://github.com/flex-development/nest-commander/commit/b97da31f56a0cb5c25c59b0d14849e8e5ceebb18)] **deps-dev:** Bump cspell from 7.0.1-alpha.9 to 7.0.1 ([#23](https://github.com/flex-development/nest-commander/issues/23)) +- [[`556b8a9`](https://github.com/flex-development/nest-commander/commit/556b8a961ebda99e53f81b867cbbf8e569b5808a)] **deps-dev:** Bump cspell from 7.1.1 to 7.2.0 ([#37](https://github.com/flex-development/nest-commander/issues/37)) +- [[`c93b0be`](https://github.com/flex-development/nest-commander/commit/c93b0be39157d6172859a148aca63f9dcb74f987)] **deps-dev:** Bump esbuild from 0.19.0 to 0.19.1 ([#5](https://github.com/flex-development/nest-commander/issues/5)) +- [[`ca37c82`](https://github.com/flex-development/nest-commander/commit/ca37c82c41e6217b7cadf2547c66521df8bd8aa2)] **deps-dev:** Bump esbuild from 0.19.1 to 0.19.2 ([#8](https://github.com/flex-development/nest-commander/issues/8)) +- [[`436982e`](https://github.com/flex-development/nest-commander/commit/436982eedb64975b7c315668f26655a251299a4d)] **deps-dev:** Bump eslint from 8.46.0 to 8.47.0 ([#6](https://github.com/flex-development/nest-commander/issues/6)) +- [[`e91bcc6`](https://github.com/flex-development/nest-commander/commit/e91bcc6ce185970faed3daf378d01d0cdd670223)] **deps-dev:** Bump eslint from 8.47.0 to 8.48.0 ([#31](https://github.com/flex-development/nest-commander/issues/31)) +- [[`9fca355`](https://github.com/flex-development/nest-commander/commit/9fca3556f7e91c3beac4c27dcb816688bce1feae)] **deps-dev:** Bump eslint-import-resolver-typescript from 3.5.5 to 3.6.0 ([#3](https://github.com/flex-development/nest-commander/issues/3)) +- [[`b698eba`](https://github.com/flex-development/nest-commander/commit/b698ebab77383b08eea9c8583667aecede164f57)] **deps-dev:** Bump eslint-plugin-markdownlint from 0.4.1 to 0.5.0 ([#9](https://github.com/flex-development/nest-commander/issues/9)) +- [[`c37e720`](https://github.com/flex-development/nest-commander/commit/c37e720805f76b27270bb6410fabfdd99d262a00)] **deps-dev:** Bump graphql from 16.7.1 to 16.8.0 ([#10](https://github.com/flex-development/nest-commander/issues/10)) +- [[`c983443`](https://github.com/flex-development/nest-commander/commit/c983443dc796c204ce829b1da71aae9f55e8836e)] **deps-dev:** Bump lint-staged from 13.2.3 to 14.0.0 ([#11](https://github.com/flex-development/nest-commander/issues/11)) +- [[`d59f126`](https://github.com/flex-development/nest-commander/commit/d59f126f32b1a2f79b8cd230987f8ae363b3e37b)] **deps-dev:** Bump lint-staged from 14.0.0 to 14.0.1 ([#25](https://github.com/flex-development/nest-commander/issues/25)) +- [[`8862be2`](https://github.com/flex-development/nest-commander/commit/8862be2635ccc428926720a3b01a09551bd02b1b)] **deps-dev:** Bump prettier from 3.0.1 to 3.0.2 ([#14](https://github.com/flex-development/nest-commander/issues/14)) +- [[`2f3f56e`](https://github.com/flex-development/nest-commander/commit/2f3f56e193d077a068db32b9f3a3447053641f6b)] **deps-dev:** Bump prettier from 3.0.2 to 3.0.3 ([#38](https://github.com/flex-development/nest-commander/issues/38)) +- [[`1a9eace`](https://github.com/flex-development/nest-commander/commit/1a9eace137b672168ebcf0c48bed42e0d6cdd0a6)] **deps-dev:** Bump pretty-format from 29.6.2 to 29.6.3 ([#22](https://github.com/flex-development/nest-commander/issues/22)) +- [[`1be5136`](https://github.com/flex-development/nest-commander/commit/1be5136527160395609618ac8ec5b97a68731b56)] **deps-dev:** Bump rxjs from 8.0.0-alpha.10 to 8.0.0-alpha.11 ([#17](https://github.com/flex-development/nest-commander/issues/17)) +- [[`79b6fb1`](https://github.com/flex-development/nest-commander/commit/79b6fb14e4feb51d8a2e61b6234342b1b962dc6b)] **deps-dev:** Bump rxjs from 8.0.0-alpha.11 to 8.0.0-alpha.12 ([#24](https://github.com/flex-development/nest-commander/issues/24)) +- [[`3261af8`](https://github.com/flex-development/nest-commander/commit/3261af8fbe4bcda2a1a40c7e64d03f22f6352d51)] **deps-dev:** Bump the conventional-changelog group with 5 updates ([#32](https://github.com/flex-development/nest-commander/issues/32)) +- [[`5861712`](https://github.com/flex-development/nest-commander/commit/58617123ecef0247e59f06b52119b8e704ae81ab)] **deps-dev:** Bump the flex-development group with 1 update ([#13](https://github.com/flex-development/nest-commander/issues/13)) +- [[`b092bc9`](https://github.com/flex-development/nest-commander/commit/b092bc99e2aa26f0cfdd969714202b0c3d24a913)] **deps-dev:** bump the flex-development group with 2 updates +- [[`a84f518`](https://github.com/flex-development/nest-commander/commit/a84f5180bfe49cb3da78b1b4b09867e333e51cc0)] **deps-dev:** Bump the nestjs group with 3 updates ([#19](https://github.com/flex-development/nest-commander/issues/19)) +- [[`00298b3`](https://github.com/flex-development/nest-commander/commit/00298b3898c170b06cd831523f9a73e1ee47f0af)] **deps-dev:** Bump the nestjs group with 3 updates ([#26](https://github.com/flex-development/nest-commander/issues/26)) +- [[`58e0a16`](https://github.com/flex-development/nest-commander/commit/58e0a16bd33e18bf59ed30638bb4ebc5e2dc1f91)] **deps-dev:** Bump the nestjs group with 3 updates ([#33](https://github.com/flex-development/nest-commander/issues/33)) +- [[`7c3aa12`](https://github.com/flex-development/nest-commander/commit/7c3aa126ec90d02d75ad81e915eb75de6aa762ee)] **deps-dev:** Bump the nestjs group with 3 updates ([#39](https://github.com/flex-development/nest-commander/issues/39)) +- [[`342080c`](https://github.com/flex-development/nest-commander/commit/342080cd01b2a541e06cd616ecc11094158179be)] **deps-dev:** Bump the typescript-eslint group with 2 updates ([#20](https://github.com/flex-development/nest-commander/issues/20)) +- [[`fee417e`](https://github.com/flex-development/nest-commander/commit/fee417e6a93ee59daad2e402bece98f2f3458022)] **deps-dev:** Bump the typescript-eslint group with 2 updates ([#34](https://github.com/flex-development/nest-commander/issues/34)) +- [[`e1e0d9c`](https://github.com/flex-development/nest-commander/commit/e1e0d9c42f55a3a8eb23a23c04c706452bfaed6d)] **deps-dev:** Bump the typescript-eslint group with 2 updates ([#7](https://github.com/flex-development/nest-commander/issues/7)) +- [[`95c0d86`](https://github.com/flex-development/nest-commander/commit/95c0d860cb6e8e2375eb35b6b3b6a565f4c6c3f4)] **deps-dev:** Bump the vitest group with 3 updates ([#16](https://github.com/flex-development/nest-commander/issues/16)) +- [[`d97c663`](https://github.com/flex-development/nest-commander/commit/d97c66392a93c7c6230d59a0f0fb682556e14915)] **deps-dev:** Bump the vitest group with 3 updates ([#29](https://github.com/flex-development/nest-commander/issues/29)) +- [[`6f943a5`](https://github.com/flex-development/nest-commander/commit/6f943a5622c786295f8af0415870abb8023c764c)] **deps-dev:** bump typescript from 5.1.6 to 5.2.1-rc +- [[`20af3bf`](https://github.com/flex-development/nest-commander/commit/20af3bfb943c28900f8c0de84815776265883030)] **deps-dev:** bump typescript from 5.2.1-rc to 5.2.2 +- [[`61807e7`](https://github.com/flex-development/nest-commander/commit/61807e7da7fdb11fb327fcb83a877e71fe02ec29)] **deps:** bump @flex-development/tutils from 6.0.0-alpha.19 to 6.0.0-alpha.20 +- [[`833b53b`](https://github.com/flex-development/nest-commander/commit/833b53b39f4465a1f30976ac54f02f3d3bb10c53)] **yarn:** bump yarn from 4.0.0-rc.39 to 4.0.0-rc.49 +- [[`157babe`](https://github.com/flex-development/nest-commander/commit/157babe758b76b80143871751d858f51b191ce14)] **yarn:** bump yarn from 4.0.0-rc.49 to 4.0.0-rc.50 ### :robot: Continuous Integration -- **deps:** Bump actions/checkout from 3.5.3 to 3.6.0 ([#27](https://github.com/flex-development/nest-commander/pull/27)) ([449468e](https://github.com/flex-development/nest-commander/commit/449468edc6abffb01fe44307706d5788e1a56127)) -- **deps:** Bump actions/setup-node from 3.7.0 to 3.8.0 ([#12](https://github.com/flex-development/nest-commander/pull/12)) ([6f14363](https://github.com/flex-development/nest-commander/commit/6f14363b64529a9a6fd0c898baa0674a688b5885)) -- **deps:** Bump actions/setup-node from 3.8.0 to 3.8.1 ([#15](https://github.com/flex-development/nest-commander/pull/15)) ([a460e3b](https://github.com/flex-development/nest-commander/commit/a460e3b2e526bda51f0789f13231b2ca237f159d)) -- **workflows:** [`ci`] add `jobs.preflight.outputs.cache-key` ([aebd5f1](https://github.com/flex-development/nest-commander/commit/aebd5f105fd90240a1338487c0c74fa6a4defd87)) -- **workflows:** [`dependabot-auto`] enable global yarn cache ([f446665](https://github.com/flex-development/nest-commander/commit/f446665698d013fe3f8c4c99594c816c1a436fde)) +- [[`449468e`](https://github.com/flex-development/nest-commander/commit/449468edc6abffb01fe44307706d5788e1a56127)] **deps:** Bump actions/checkout from 3.5.3 to 3.6.0 ([#27](https://github.com/flex-development/nest-commander/issues/27)) +- [[`6f14363`](https://github.com/flex-development/nest-commander/commit/6f14363b64529a9a6fd0c898baa0674a688b5885)] **deps:** Bump actions/setup-node from 3.7.0 to 3.8.0 ([#12](https://github.com/flex-development/nest-commander/issues/12)) +- [[`a460e3b`](https://github.com/flex-development/nest-commander/commit/a460e3b2e526bda51f0789f13231b2ca237f159d)] **deps:** Bump actions/setup-node from 3.8.0 to 3.8.1 ([#15](https://github.com/flex-development/nest-commander/issues/15)) +- [[`aebd5f1`](https://github.com/flex-development/nest-commander/commit/aebd5f105fd90240a1338487c0c74fa6a4defd87)] **workflows:** [`ci`] add `jobs.preflight.outputs.cache-key` +- [[`f446665`](https://github.com/flex-development/nest-commander/commit/f446665698d013fe3f8c4c99594c816c1a436fde)] **workflows:** [`dependabot-auto`] enable global yarn cache ### :pencil: Documentation -- "what is this?" ([2cbb22c](https://github.com/flex-development/nest-commander/commit/2cbb22c5921ec9c06edb60be58a589bf10647d69)) -- qa ([6962882](https://github.com/flex-development/nest-commander/commit/69628828980769eaf4d98c75dc6ac0ef2041b471)) +- [[`2cbb22c`](https://github.com/flex-development/nest-commander/commit/2cbb22c5921ec9c06edb60be58a589bf10647d69)] "what is this?" +- [[`6962882`](https://github.com/flex-development/nest-commander/commit/69628828980769eaf4d98c75dc6ac0ef2041b471)] qa ### :sparkles: Features -- [`ProgramFactory`] run cli application with specific arguments ([98693de](https://github.com/flex-development/nest-commander/commit/98693de2c6a8df95c5fa9df26008d9b909e4b4ae)) -- `ProgramFactory`, `ProgramModule` ([06a67ab](https://github.com/flex-development/nest-commander/commit/06a67ab6062ba7d922a59f271f5e22571b310405)) -- `ProgramFactoryOptions` ([8a69e3a](https://github.com/flex-development/nest-commander/commit/8a69e3af1ab150a3bf6df985c3c538e55e6c3c57)) -- add command examples from decorators ([df16a8c](https://github.com/flex-development/nest-commander/commit/df16a8cc6a538dc67b40a8a8a7cbd89f34d0bfe4)) -- **abstracts:** `CommandRunner` ([34955c6](https://github.com/flex-development/nest-commander/commit/34955c6a09ee4f8cb95c644196729adb5ba68a87)) -- **decorators:** `Command`, `Option`, `Subcommand` ([9f7412c](https://github.com/flex-development/nest-commander/commit/9f7412ce9e5e31c2a5ee9d4e218560ea8ed5cf72)) -- **enums:** `MetadataKey`, `MetadataName` ([0026f3c](https://github.com/flex-development/nest-commander/commit/0026f3c30edfbeed1aff16416e9ca156b25429b8)) -- **interfaces:** [`ArgumentOptions`] `choices?`, `parser?` ([bcf5959](https://github.com/flex-development/nest-commander/commit/bcf59592874dcd03574ed8033155d39af998a908)) -- **interfaces:** `ArgumentOptions`, `ProgramOptions`, `VersionOptions` ([7fafef4](https://github.com/flex-development/nest-commander/commit/7fafef4397ad1340dd3bb07b48b3d0a7af85155b)) -- **interfaces:** `CliApplicationContext` ([0e1c4a7](https://github.com/flex-development/nest-commander/commit/0e1c4a779428b332df0a2c9261ede164fa994bc9)) -- **metadata:** `CommandMetadata`, `OptionMetadata` ([d1d7e43](https://github.com/flex-development/nest-commander/commit/d1d7e437743b08391c16518cc83a43e21d329fa6)) -- **metadata:** `RunnerMetadata` ([93b7166](https://github.com/flex-development/nest-commander/commit/93b7166bf88d84fc45c836b315e0a87ab14a96ae)) -- **models:** `Program` ([6dfcb9f](https://github.com/flex-development/nest-commander/commit/6dfcb9f179e8dbe36e324bb7c6eaa586611c910a)) -- **models:** `ProgramOptions` ([50c3c2a](https://github.com/flex-development/nest-commander/commit/50c3c2a9a1b45fbfc2e69bdd9d6abd6771f64c60)) -- **providers:** [`CliUtilityService`] `.BOOLEAN_CHOICES` ([3bb45ff](https://github.com/flex-development/nest-commander/commit/3bb45ff4786e53e296137b64cbf813f7f44d0677)) -- **providers:** [`HelpService`] default help text format ([d629b00](https://github.com/flex-development/nest-commander/commit/d629b00d653c01a3563b3b0b0a61f2920c5c51b6)) -- **providers:** `CliUtilityService` ([9ad7400](https://github.com/flex-development/nest-commander/commit/9ad7400a3660765be4e4c0878ed2ea4ec1c24c73)) -- **types:** `ArgumentFallback` ([403477b](https://github.com/flex-development/nest-commander/commit/403477b0445ff84b64225c09acf983a2dbfed6b4)) -- **types:** `DiscoveredCommand`, `DiscoveredOption` ([9ed5f06](https://github.com/flex-development/nest-commander/commit/9ed5f063f7430b8bea3a32978d475344a5da2018)) -- **types:** `DoneFn`, `ErrorFn`, `ExitFn` ([85a1467](https://github.com/flex-development/nest-commander/commit/85a14672f4839b7052ed56a5c778c83369ef8852)) -- **types:** `OptionFallback` ([b9c37d3](https://github.com/flex-development/nest-commander/commit/b9c37d3e2ee75fa860fb73b65c86e9c0a8db06ec)) +- [[`98693de`](https://github.com/flex-development/nest-commander/commit/98693de2c6a8df95c5fa9df26008d9b909e4b4ae)] [`ProgramFactory`] run cli application with specific arguments +- [[`06a67ab`](https://github.com/flex-development/nest-commander/commit/06a67ab6062ba7d922a59f271f5e22571b310405)] `ProgramFactory`, `ProgramModule` +- [[`8a69e3a`](https://github.com/flex-development/nest-commander/commit/8a69e3af1ab150a3bf6df985c3c538e55e6c3c57)] `ProgramFactoryOptions` +- [[`df16a8c`](https://github.com/flex-development/nest-commander/commit/df16a8cc6a538dc67b40a8a8a7cbd89f34d0bfe4)] add command examples from decorators +- [[`34955c6`](https://github.com/flex-development/nest-commander/commit/34955c6a09ee4f8cb95c644196729adb5ba68a87)] **abstracts:** `CommandRunner` +- [[`9f7412c`](https://github.com/flex-development/nest-commander/commit/9f7412ce9e5e31c2a5ee9d4e218560ea8ed5cf72)] **decorators:** `Command`, `Option`, `Subcommand` +- [[`0026f3c`](https://github.com/flex-development/nest-commander/commit/0026f3c30edfbeed1aff16416e9ca156b25429b8)] **enums:** `MetadataKey`, `MetadataName` +- [[`bcf5959`](https://github.com/flex-development/nest-commander/commit/bcf59592874dcd03574ed8033155d39af998a908)] **interfaces:** [`ArgumentOptions`] `choices?`, `parser?` +- [[`7fafef4`](https://github.com/flex-development/nest-commander/commit/7fafef4397ad1340dd3bb07b48b3d0a7af85155b)] **interfaces:** `ArgumentOptions`, `ProgramOptions`, `VersionOptions` +- [[`0e1c4a7`](https://github.com/flex-development/nest-commander/commit/0e1c4a779428b332df0a2c9261ede164fa994bc9)] **interfaces:** `CliApplicationContext` +- [[`d1d7e43`](https://github.com/flex-development/nest-commander/commit/d1d7e437743b08391c16518cc83a43e21d329fa6)] **metadata:** `CommandMetadata`, `OptionMetadata` +- [[`93b7166`](https://github.com/flex-development/nest-commander/commit/93b7166bf88d84fc45c836b315e0a87ab14a96ae)] **metadata:** `RunnerMetadata` +- [[`6dfcb9f`](https://github.com/flex-development/nest-commander/commit/6dfcb9f179e8dbe36e324bb7c6eaa586611c910a)] **models:** `Program` +- [[`50c3c2a`](https://github.com/flex-development/nest-commander/commit/50c3c2a9a1b45fbfc2e69bdd9d6abd6771f64c60)] **models:** `ProgramOptions` +- [[`3bb45ff`](https://github.com/flex-development/nest-commander/commit/3bb45ff4786e53e296137b64cbf813f7f44d0677)] **providers:** [`CliUtilityService`] `.BOOLEAN_CHOICES` +- [[`d629b00`](https://github.com/flex-development/nest-commander/commit/d629b00d653c01a3563b3b0b0a61f2920c5c51b6)] **providers:** [`HelpService`] default help text format +- [[`9ad7400`](https://github.com/flex-development/nest-commander/commit/9ad7400a3660765be4e4c0878ed2ea4ec1c24c73)] **providers:** `CliUtilityService` +- [[`403477b`](https://github.com/flex-development/nest-commander/commit/403477b0445ff84b64225c09acf983a2dbfed6b4)] **types:** `ArgumentFallback` +- [[`9ed5f06`](https://github.com/flex-development/nest-commander/commit/9ed5f063f7430b8bea3a32978d475344a5da2018)] **types:** `DiscoveredCommand`, `DiscoveredOption` +- [[`85a1467`](https://github.com/flex-development/nest-commander/commit/85a14672f4839b7052ed56a5c778c83369ef8852)] **types:** `DoneFn`, `ErrorFn`, `ExitFn` +- [[`b9c37d3`](https://github.com/flex-development/nest-commander/commit/b9c37d3e2ee75fa860fb73b65c86e9c0a8db06ec)] **types:** `OptionFallback` ### :house_with_garden: Housekeeping -- add changelog command ([37df933](https://github.com/flex-development/nest-commander/commit/37df933043810f8585891328cbfa91aca20c90e8)) -- initial commit ([bef6576](https://github.com/flex-development/nest-commander/commit/bef657687b811c448653f4ba15e2d6be7d6d4124)) -- **tests:** [`integration/ProgramModule`] use `describe.each` ([7fd5a78](https://github.com/flex-development/nest-commander/commit/7fd5a7805f48ccf26ffcbe700a4ced5ff14e3e6e)) -- **tests:** [codecov] remove `tokens` component ([c5c84eb](https://github.com/flex-development/nest-commander/commit/c5c84eba3d2444303a92094c4aaed51676d0e7f4)) -- **tests:** codecov integration ([f45bfde](https://github.com/flex-development/nest-commander/commit/f45bfded8dc1c25a42580ddda399d3e94149aa18)) +- [[`37df933`](https://github.com/flex-development/nest-commander/commit/37df933043810f8585891328cbfa91aca20c90e8)] add changelog command +- [[`bef6576`](https://github.com/flex-development/nest-commander/commit/bef657687b811c448653f4ba15e2d6be7d6d4124)] initial commit +- [[`7fd5a78`](https://github.com/flex-development/nest-commander/commit/7fd5a7805f48ccf26ffcbe700a4ced5ff14e3e6e)] **tests:** [`integration/ProgramModule`] use `describe.each` +- [[`c5c84eb`](https://github.com/flex-development/nest-commander/commit/c5c84eba3d2444303a92094c4aaed51676d0e7f4)] **tests:** [codecov] remove `tokens` component +- [[`f45bfde`](https://github.com/flex-development/nest-commander/commit/f45bfded8dc1c25a42580ddda399d3e94149aa18)] **tests:** codecov integration ### :mechanical_arm: Refactors -- `ProgramModule` -> `CommandRunnerModule` ([211edde](https://github.com/flex-development/nest-commander/commit/211eddec749a5936451a6fab9a131e922a298372)) -- **models:** [`Program`] run `done` callback with last-run command ([f4115d2](https://github.com/flex-development/nest-commander/commit/f4115d2bdabb7e112453cd0f7008c7dc43b19a1e)) -- **providers:** [`HelpService`] wrap list item descriptions ([2645ded](https://github.com/flex-development/nest-commander/commit/2645ded056521b3163f032ebaa81b5ee5095be1a)) -- **types:** [`DoneFn`] use generic type ([2841def](https://github.com/flex-development/nest-commander/commit/2841defe60aa3e72bf9836e3e8cafbc29e6781a8)) -- **types:** [`ErrorFn`] use generic type ([fddb5b2](https://github.com/flex-development/nest-commander/commit/fddb5b2308f7c28bbfd34a49e3d63b4a9535b2c0)) +- [[`211edde`](https://github.com/flex-development/nest-commander/commit/211eddec749a5936451a6fab9a131e922a298372)] `ProgramModule` -> `CommandRunnerModule` +- [[`f4115d2`](https://github.com/flex-development/nest-commander/commit/f4115d2bdabb7e112453cd0f7008c7dc43b19a1e)] **models:** [`Program`] run `done` callback with last-run command +- [[`2645ded`](https://github.com/flex-development/nest-commander/commit/2645ded056521b3163f032ebaa81b5ee5095be1a)] **providers:** [`HelpService`] wrap list item descriptions +- [[`2841def`](https://github.com/flex-development/nest-commander/commit/2841defe60aa3e72bf9836e3e8cafbc29e6781a8)] **types:** [`DoneFn`] use generic type +- [[`fddb5b2`](https://github.com/flex-development/nest-commander/commit/fddb5b2308f7c28bbfd34a49e3d63b4a9535b2c0)] **types:** [`ErrorFn`] use generic type ### :white_check_mark: Testing -- [`integration/ProgramModule`] help text output ([8efd214](https://github.com/flex-development/nest-commander/commit/8efd214d92f0e9b92090cd64af782ce50bc1676f)) -- [codecov] match components to current and incoming directory names ([edf3a7b](https://github.com/flex-development/nest-commander/commit/edf3a7b0e4c6ea58252a9021ae66024a30daa328)) -- **interfaces:** [`VersionOptions`] fix test file name ([5c5861d](https://github.com/flex-development/nest-commander/commit/5c5861d319df70ee5a1c76ec923d39342f0d11b0)) +- [[`8efd214`](https://github.com/flex-development/nest-commander/commit/8efd214d92f0e9b92090cd64af782ce50bc1676f)] [`integration/ProgramModule`] help text output +- [[`edf3a7b`](https://github.com/flex-development/nest-commander/commit/edf3a7b0e4c6ea58252a9021ae66024a30daa328)] [codecov] match components to current and incoming directory names +- [[`5c5861d`](https://github.com/flex-development/nest-commander/commit/5c5861d319df70ee5a1c76ec923d39342f0d11b0)] **interfaces:** [`VersionOptions`] fix test file name + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 06f4527..29c0656 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -107,7 +107,6 @@ Follow the steps below to setup your local development environment: | `GITHUB_TOKEN` | | `HOMEBREW_BREWFILE` | | `NODE_NO_WARNINGS` | -| `PAT_BOT` | | `ZSH_DOTENV_FILE` | #### GitHub Actions diff --git a/grease.config.json b/grease.config.json new file mode 100644 index 0000000..1342d45 --- /dev/null +++ b/grease.config.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://raw.githubusercontent.com/flex-development/grease/main/grease.schema.json", + "tag": { + "message": "release: {tag}", + "sign": true + }, + "tagprefix": "" +} diff --git a/grease/commands/changelog.command.ts b/grease/commands/changelog.command.ts deleted file mode 100644 index be905c5..0000000 --- a/grease/commands/changelog.command.ts +++ /dev/null @@ -1,319 +0,0 @@ -/** - * @file Commands - ChangelogCommand - * @module grease/commands/ChangelogCommand - */ - -import * as mlly from '@flex-development/mlly' -import { - CliUtilityService, - Command, - CommandRunner, - Option -} from '@flex-development/nest-commander' -import type * as commander from '@flex-development/nest-commander/commander' -import type { PackageJson } from '@flex-development/pkg-types' -import { - DOT, - fallback, - isNull, - trim, - type EmptyArray -} from '@flex-development/tutils' -import type { ChangelogOptions as Opts } from '../options' -import { ChangelogService } from '../providers' - -/** - * `changelog` command model. - * - * @class - * @extends {CommandRunner} - */ -@Command({ - description: 'changelog generator', - examples: ['', '-sw'], - name: 'changelog' -}) -class ChangelogCommand extends CommandRunner { - /** - * Creates a new `changelog` command runner. - * - * @param {ChangelogService} changelog - Changelog generator service - * @param {CliUtilityService} util - Utilities service instance - */ - constructor( - protected readonly changelog: ChangelogService, - protected readonly util: CliUtilityService - ) { - super() - } - - /** - * Parses the `--cwd` flag. - * - * @see {@linkcode Opts.cwd} - * - * @protected - * - * @param {string} val - Value to parse - * @return {string} Parsed option value - */ - @Option({ - description: 'path to current working directory', - fallback: { value: DOT }, - flags: '-c, --cwd <path>' - }) - protected parseCwd(val: string): string { - return trim(val) - } - - /** - * Parses the `--debug` flag. - * - * @see {@linkcode Opts.debug} - * - * @protected - * - * @param {string} val - Value to parse - * @return {boolean} Parsed option value - */ - @Option({ - description: 'enable verbose output', - fallback: { value: false }, - flags: '-d, --debug', - preset: 'true' - }) - protected parseDebug(val: string): boolean { - return this.util.parseBoolean(val) - } - - /** - * Parses the `--from` flag. - * - * @see {@linkcode Opts.from} - * - * @protected - * - * @param {string} val - Value to parse - * @return {string} Parsed option value - */ - @Option({ - description: 'beginning of commit revision range', - fallback: { value: '' }, - flags: '-f, --from <commitish>' - }) - protected parseFrom(val: string): string { - return trim(val) - } - - /** - * Parses the `--infile` flag. - * - * @see {@linkcode Opts.infile} - * - * @protected - * - * @param {string} val - Value to parse - * @return {string} Parsed option value - */ - @Option({ - description: 'read CHANGELOG from this file', - flags: '-i, --infile <path>' - }) - protected parseInfile(val: string): string { - return trim(val) - } - - /** - * Parses the `--outfile` flag. - * - * @see {@linkcode Opts.outfile} - * - * @protected - * - * @param {string} val - Value to parse - * @return {string} Parsed option value - */ - @Option({ - description: 'write content to this file', - flags: '-o, --outfile <path>', - implies: { write: true } - }) - protected parseOutfile(val: string): string { - return trim(val) - } - - /** - * Parses the `--pkg` flag. - * - * @see {@linkcode Opts.pkg} - * - * @protected - * - * @param {string} val - Value to parse - * @return {PackageJson} Parsed option value - */ - @Option({ - description: 'module id of package directory or manifest', - env: 'npm_package_json', - fallback: { value: DOT }, - flags: '-p, --pkg <path>' - }) - protected parsePkg(val: string): PackageJson { - return fallback( - mlly.readPackageJson(val.replace(/\/?package\.json$/, '')), - {}, - isNull - ) - } - - /** - * Parses the `--releases` flag. - * - * @see {@linkcode Opts.releases} - * - * @protected - * - * @param {string} val - Value to parse - * @return {number} Parsed option value - */ - @Option({ - description: 'number of releases to generate', - fallback: { value: 1 }, - flags: '-r, --releases <count>' - }) - protected parseReleases(val: string): number { - return this.util.parseInt(val) - } - - /** - * Parses the `--samefile` flag. - * - * @see {@linkcode Opts.samefile} - * - * @protected - * - * @param {string} val - Value to parse - * @return {boolean} Parsed option value - */ - @Option({ - description: 'output content to infile', - fallback: { value: false }, - flags: '-s, --samefile [option]', - preset: 'true' - }) - protected parseSamefile(val: string): boolean { - return this.util.parseBoolean(val) - } - - /** - * Parses the `--tagprefix` flag. - * - * @see {@linkcode Opts.tagprefix} - * - * @protected - * - * @param {string} val - Value to parse - * @return {string} Parsed option value - */ - @Option({ - description: 'tag prefix to apply during git tag comparisons', - fallback: { value: '' }, - flags: '-T, --tagprefix <prefix>' - }) - protected parseTagPrefix(val: string): string { - return trim(val) - } - - /** - * Parses the `--to` flag. - * - * @see {@linkcode Opts.to} - * - * @protected - * - * @param {string} val - Value to parse - * @return {string} Parsed option value - */ - @Option({ - description: 'end of commit revision range', - fallback: { value: 'HEAD' }, - flags: '-t, --to <commitish>' - }) - protected parseTo(val: string): string { - return trim(val) - } - - /** - * Parses the `--unstable` flag. - * - * @see {@linkcode Opts.unstable} - * - * @protected - * - * @param {string} val - Value to parse - * @return {boolean} Parsed option value - */ - @Option({ - description: 'include unstable releases', - fallback: { value: true }, - flags: '-u, --unstable [option]', - preset: 'true' - }) - protected parseUnstable(val: string): boolean { - return this.util.parseBoolean(val) - } - - /** - * Parses the `--write` flag. - * - * @see {@linkcode Opts.write} - * - * @protected - * - * @param {string} val - Value to parse - * @return {boolean} Parsed option value - */ - @Option({ - description: 'write content to file', - fallback: { value: false }, - flags: '-w, --write [option]', - preset: 'true' - }) - protected parseWrite(val: string): boolean { - return this.util.parseBoolean(val) - } - - /** - * Command action handler. - * - * @see {@linkcode Opts} - * - * @public - * @async - * - * @param {EmptyArray} _ - Parsed command arguments - * @param {Opts} opts - Parsed command options - * @return {Promise<void>} Nothing when complete - */ - public async run(_: EmptyArray, opts: Opts): Promise<void> { - return void (await this.changelog.generate(opts)) - } - - /** - * Set the current command. - * - * @see {@linkcode command} - * - * @public - * @override - * - * @param {commander.Command} cmd - New command instance - * @return {this} `this` command runner - */ - public override setCommand(cmd: commander.Command): this { - cmd.showHelpAfterError() - return super.setCommand(cmd) - } -} - -export default ChangelogCommand diff --git a/grease/commands/index.ts b/grease/commands/index.ts deleted file mode 100644 index 7421979..0000000 --- a/grease/commands/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @file Entry Point - Commands - * @module grease/commands - */ - -export { default as ChangelogCommand } from './changelog.command' diff --git a/grease/enums/index.ts b/grease/enums/index.ts deleted file mode 100644 index 9690687..0000000 --- a/grease/enums/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @file Entry Point - Enums - * @module grease/enums/RepoProvider - */ - -export { default as RepoProvider } from './repo-provider' diff --git a/grease/enums/repo-provider.ts b/grease/enums/repo-provider.ts deleted file mode 100644 index 00fe7c8..0000000 --- a/grease/enums/repo-provider.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * @file Enums - RepoProvider - * @module grease/enums/RepoProvider - */ - -/** - * Repository provider names. - * - * @enum {Lowercase<string>} - */ -enum RepoProvider { - BITBUCKET = 'bitbucket', - GITHUB = 'github', - GITLAB = 'gitlab' -} - -export default RepoProvider diff --git a/grease/index.ts b/grease/index.ts deleted file mode 100644 index aa9f6e2..0000000 --- a/grease/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env node - -/** - * @file grease - * @module grease - */ - -import { Program, ProgramFactory } from '@flex-development/nest-commander' -import { Module } from '@nestjs/common' -import { ChangelogCommand } from './commands' -import { Grammar } from './models' -import { ChangelogService } from './providers' - -/** - * CLI application module. - * - * @class - */ -@Module({ - providers: [ChangelogCommand, ChangelogService, Grammar] -}) -class ProgramModule { - /** - * Creates a new CLI application module. - * - * @param {Program} program - CLI program instance - */ - constructor(protected readonly program: Program) { - program.name('grease') - } -} - -await (await ProgramFactory.create(ProgramModule)).run() diff --git a/grease/interfaces/commit.interface.ts b/grease/interfaces/commit.interface.ts deleted file mode 100644 index 6d44e76..0000000 --- a/grease/interfaces/commit.interface.ts +++ /dev/null @@ -1,113 +0,0 @@ -/** - * @file Interfaces - Commit - * @module grease/interfaces/Commit - */ - -import type { Nullable } from '@flex-development/tutils' -import type { Author, BreakingChange, Reference, Trailer } from '../types' - -/** - * A parsed commit. - * - * @see https://conventionalcommits.org - */ -interface Commit { - /** - * Commit author details. - * - * @see {@linkcode Author} - */ - author: Author - - /** - * Commit body text. - */ - body: Nullable<string> - - /** - * Boolean indicating if commit contains breaking changes. - */ - breaking: boolean - - /** - * Breaking changes noted in {@linkcode subject} and {@linkcode trailers}. - * - * @see {@linkcode BreakingChange} - */ - breaking_changes: BreakingChange[] - - /** - * Commit date in strict ISO 8601 format (`%cI`). - * - * @see https://git-scm.com/docs/pretty-formats/2.21.0 - */ - date: string - - /** - * Abbreviated commit SHA. - */ - hash: string - - /** - * Commit {@linkcode type}, {@linkcode scope}, breaking change indicator, and - * {@linkcode subject}. - */ - header: string - - /** - * Users mentioned in commit message. - */ - mentions: string[] - - /** - * Pull request number if commit {@linkcode subject} includes a pull request - * reference. - */ - pr: Nullable<number> - - /** - * Issue and/or pull request references. - * - * @see {@linkcode Reference} - */ - references: Reference[] - - /** - * Commit scope. - */ - scope: Nullable<string> - - /** - * Commit SHA. - */ - sha: string - - /** - * Commit subject. - */ - subject: string - - /** - * Tags associated with commit. - */ - tags: string[] - - /** - * Commit message trailers. - * - * @see {@linkcode Trailer} - */ - trailers: Trailer[] - - /** - * Commit type. - */ - type: string - - /** - * Tagged commit version. - */ - version: Nullable<string> -} - -export type { Commit as default } diff --git a/grease/interfaces/context.interface.ts b/grease/interfaces/context.interface.ts deleted file mode 100644 index 45b76fb..0000000 --- a/grease/interfaces/context.interface.ts +++ /dev/null @@ -1,48 +0,0 @@ -/** - * @file Interfaces - Context - * @module grease/interfaces/Context - */ - -import type { Dot } from '@flex-development/tutils' -import type { RepoProvider } from '../enums' -import type { RepoKeywords } from '../types' - -/** - * Changelog context. - */ -interface Context { - /** - * Repository hostname. - * - * @see {@linkcode RepoProvider} - * - * @example - * 'github.com' - */ - host: `${RepoProvider}${Dot}${'com' | 'org'}` - - /** - * Keywords used in reference URLs. - * - * @see {@linkcode RepoKeywords} - */ - keywords: RepoKeywords - - /** - * Repository owner. - * - * @example - * 'flex-development' - */ - owner: string - - /** - * Repository name on {@linkcode host}. - * - * @example - * 'grease' - */ - repo: string -} - -export type { Context as default } diff --git a/grease/interfaces/entry.interface.ts b/grease/interfaces/entry.interface.ts deleted file mode 100644 index 6765458..0000000 --- a/grease/interfaces/entry.interface.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @file Interfaces - Entry - * @module grease/interfaces/Entry - */ - -import type { Nullable } from '@flex-development/tutils' -import type { CommitGroup } from '../types' -import type Commit from './commit.interface' - -/** - * Object representing a changelog entry. - */ -interface Entry { - /** - * Changelog entry date. - * - * @see https://github.com/felixge/node-dateformat - * - * @default key.date || dateformat(tutils.timeiso(), 'yyyy-mm-dd', true) - */ - date: string - - /** - * Parsed commit groups. - * - * @see {@linkcode CommitGroup} - */ - groups: CommitGroup[] - - /** - * Key commit. - * - * @see {@linkcode Commit} - */ - key: Commit - - /** - * Last released version. - */ - last_version: Nullable<string> - - /** - * Entry is for patch release? - * - * @default !!semver.patch(entry.version) - */ - patch: boolean - - /** - * Entry is for prerelease? - * - * @default !!semver.prerelease(entry.version) - */ - prerelease: boolean - - /** - * Release version. - */ - version: string -} - -export type { Entry as default } diff --git a/grease/interfaces/index.ts b/grease/interfaces/index.ts deleted file mode 100644 index dad4b22..0000000 --- a/grease/interfaces/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @file Entry Point - Interfaces - * @module grease/interfaces - */ - -export type { default as Commit } from './commit.interface' -export type { default as Context } from './context.interface' -export type { default as Entry } from './entry.interface' diff --git a/grease/models/formatter.model.ts b/grease/models/formatter.model.ts deleted file mode 100644 index 9f8c6fb..0000000 --- a/grease/models/formatter.model.ts +++ /dev/null @@ -1,294 +0,0 @@ -/** - * @file Models - Formatter - * @module grease/models/Formatter - */ - -import { - cast, - get, - ifelse, - iterate, - template, - trim -} from '@flex-development/tutils' -import type { Commit, Context, Entry } from '../interfaces' -import type { BreakingChange, CommitGroup } from '../types' -import Grammar from './grammar.model' - -/** - * Data model encapsulating changelog formatting. - * - * @class - */ -class Formatter { - /** - * Create a new changelog formatter. - * - * @param {Grammar} [grammar=new Grammar()] - Changelog grammar instance - */ - constructor(protected readonly grammar: Grammar = new Grammar()) {} - - /** - * Format breaking change notes. - * - * @see {@linkcode Entry} - * - * @public - * - * @param {Entry} entry - Changelog entry object - * @return {string} Formatted breaking change notes - */ - public formatBreakingChanges(entry: Entry): string { - /** - * Breaking changes. - * - * @const {BreakingChange[]} changes - */ - const changes: BreakingChange[] = iterate( - entry.groups.length, - [], - (acc: BreakingChange[], i: number): typeof acc => [ - ...acc, - ...get(entry.groups, `${i}.commits`)!.flatMap(commit => { - return commit.breaking_changes - }) - ] - ) - - return this.section( - '### ⚠ BREAKING CHANGES', - template('{changes}\n\n', { - changes: iterate(changes.length, '', (acc, i) => { - const [brk] = cast<[BreakingChange]>(changes.slice(i)) - return template('{acc}{newline}- {change}', { - acc, - change: brk.scope - ? template('**{scope}:** {subject}', brk) - : brk.subject, - newline: ifelse(acc, '\n', acc) - }) - }) - }) - ) - } - - /** - * Format a commit message. - * - * @see {@linkcode Commit} - * @see {@linkcode Context} - * - * @public - * - * @param {Commit} commit - Parsed commit - * @param {Context} context - Changelog context - * @return {string} Formatted commit message - */ - public formatCommit(commit: Commit, context: Context): string { - return template('- {scope}{subject} ([{hash}]({url}))', { - hash: commit.hash, - scope: commit.scope ? `**${commit.scope}:** ` : '', - subject: commit.subject.replace(`#${commit.pr}`, () => { - return template('[#{pr}]({url})', { - pr: commit.pr, - url: this.formatPullRequestUrl(commit, context) - }) - }), - url: this.formatCommitUrl(commit, context) - }).replaceAll(this.grammar.mention, (_, mention, user) => { - return template('[{mention}]({host}/{user})', { - host: this.formatRepositoryHost(context), - mention, - user - }) - }) - } - - /** - * Format a commit group. - * - * @see {@linkcode Commit} - * @see {@linkcode Context} - * - * @public - * - * @param {CommitGroup} group - Parsed commit group - * @param {Context} context - Changelog context - * @return {string} Formatted commit group - */ - public formatCommitGroup(group: CommitGroup, context: Context): string { - return this.section( - template('### {section}', { section: group.section }), - template('{commits}\n', { - commits: group.hidden - ? '' - : iterate(group.commits.length, '', (acc, i) => { - return template('{acc}{newline}{commit}', { - acc, - commit: this.formatCommit(group.commits[i]!, context), - newline: ifelse(acc, '\n', acc) - }) - }) - }) - ) - } - - /** - * Format a commit URL. - * - * @see {@linkcode Commit} - * @see {@linkcode Context} - * - * @public - * - * @param {Commit} commit - Parsed commit - * @param {Context} context - Changelog context - * @return {string} Formatted commit URL - */ - public formatCommitUrl(commit: Commit, context: Context): string { - return template('{repository}/{keyword}/{sha}', { - keyword: context.keywords.commit, - repository: this.formatRepository(context), - sha: commit.sha - }) - } - - /** - * Format a repository compare url. - * - * @see {@linkcode Context} - * @see {@linkcode Entry} - * - * @public - * - * @param {Entry} entry - Changelog entry object - * @param {Context} context - Changelog context - * @return {string} Formatted compare url - */ - public formatCompareUrl(entry: Entry, context: Context): string { - return template('{repository}/compare/{last_version}...{version}', { - last_version: entry.last_version, - repository: this.formatRepository(context), - version: entry.key.version || entry.key.sha - }) - } - - /** - * Format a changelog entry. - * - * @see {@linkcode Context} - * - * @public - * - * @param {Entry} entry - Changelog entry object - * @param {Context} context - Changelog context - * @return {string} Formatted changelog entry - */ - public formatEntry(entry: Entry, context: Context): string { - return this.section( - this.formatEntryTitle(entry, context), - template('{breaking_changes}{groups}\n', { - breaking_changes: this.formatBreakingChanges(entry), - groups: iterate(entry.groups.length, '', (acc, i) => { - return template('{acc}{newline}{group}', { - acc, - group: this.formatCommitGroup(entry.groups[i]!, context), - newline: ifelse(acc, '\n', acc) - }) - }) - }) - ) - } - - /** - * Format a changelog entry title. - * - * @see {@linkcode Context} - * @see {@linkcode Entry} - * - * @public - * - * @param {Entry} entry - Changelog entry object - * @param {Context} context - Changelog context - * @return {string} Formatted changelog entry title - */ - public formatEntryTitle(entry: Entry, context: Context): string { - return template( - template('## {header} ({date})', { - date: entry.date, - header: entry.last_version ? '[{version}]({compare})' : '{version}' - }), - { - compare: this.formatCompareUrl(entry, context), - version: entry.version - } - ) - } - - /** - * Format a pull request URL. - * - * @see {@linkcode Commit} - * @see {@linkcode Context} - * - * @public - * - * @param {Commit} commit - Parsed commit - * @param {Context} context - Changelog context - * @return {string} Formatted pull request URL - */ - public formatPullRequestUrl(commit: Commit, context: Context): string { - return template('{repository}/{keyword}/{pr}', { - keyword: context.keywords.pr, - pr: commit.pr, - repository: this.formatRepository(context) - }) - } - - /** - * Format a repository URL. - * - * @public - * - * @param {Context} context - Changelog context - * @return {string} Formatted repository url - */ - public formatRepository(context: Context): string { - return template('{host}/{owner}/{repo}', { - host: this.formatRepositoryHost(context), - owner: context.owner, - repo: context.repo - }) - } - - /** - * Format a repository host URL. - * - * @public - * - * @param {Context} context - Changelog context - * @return {string} Formatted repository host url - */ - public formatRepositoryHost(context: Context): string { - return template('https://{host}', { host: context.host }) - } - - /** - * Create a changelog section. - * - * @protected - * - * @param {string} title - Section title - * @param {string} text - Section content - * @return {string} Formatted changelog section - */ - protected section(title: string, text: string): string { - return ifelse( - trim(text), - template('{title}\n\n{text}', { text, title }), - '' - ) - } -} - -export default Formatter diff --git a/grease/models/grammar.model.ts b/grease/models/grammar.model.ts deleted file mode 100644 index 2c61ae0..0000000 --- a/grease/models/grammar.model.ts +++ /dev/null @@ -1,75 +0,0 @@ -/** - * @file Models - Grammar - * @module grease/models/Grammar - */ - -/** - * Data model encapsulating changelog grammar. - * - * @class - */ -class Grammar { - /** - * Regular expression matching fields in a raw commit. - * - * @public - * - * @return {RegExp} Git log field regex - */ - public get field(): RegExp { - return /^-(?<field>.*?)-(?=\n*)$/m - } - - /** - * Regular expression matching a commit header. - * - * @see https://regex101.com/r/WAJeLp - * - * @public - * - * @return {RegExp} Commit header regex - */ - public get header(): RegExp { - return /^(?<type>[a-z]+)(?:\((?<scope>[a-z-]+)\))?(?<breaking>!)?: +(?<subject>(?:.+ \(#(?<pr>\d+)\))|.+)/i - } - - /** - * Regular expression matching mentions (e.g. `@unicornware`) in a raw commit. - * - * @see https://regex101.com/r/upbRpj - * - * @public - * - * @return {RegExp} Mention regex - */ - public get mention(): RegExp { - return /\B(?<mention>@(?<user>[\w-]{1,38}(?=[^\w-]\B|\s)))/g - } - - /** - * Regular expression matching issue references in commit bodies. - * - * @see https://regex101.com/r/Thsp1M - * - * @public - * - * @return {RegExp} Issue reference regex - */ - public get reference(): RegExp { - return /(?:(?:(?<action>(?:close|resolve)[ds]?|fix(?:e[ds])?|releases) +)|(?<repository>(?<owner>[\da-z](?:-(?=[\da-z])|[\da-z]){0,38}(?<=[\da-z]))\/(?<repo>\S+)))?(?<ref>(?<prefix>#|gh-)(?<number>\d+))/gi - } - - /** - * Regular expression matching components of a git trailer. - * - * @see https://git-scm.com/docs/git-interpret-trailers - * @see https://regex101.com/r/I56Kgg - * - * @return {RegExp} Git trailer components regex - */ - public get trailer(): RegExp { - return /(?<token>^.+?(?=:)): (?<value>.+?(?=\n*$))/gs - } -} - -export default Grammar diff --git a/grease/models/index.ts b/grease/models/index.ts deleted file mode 100644 index 3a544d9..0000000 --- a/grease/models/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @file Entry Point - Models - * @module grease/models - */ - -export { default as Formatter } from './formatter.model' -export { default as Grammar } from './grammar.model' diff --git a/grease/options/changelog.options.ts b/grease/options/changelog.options.ts deleted file mode 100644 index 55c6d58..0000000 --- a/grease/options/changelog.options.ts +++ /dev/null @@ -1,352 +0,0 @@ -/** - * @file Options - ChangelogOptions - * @module grease/options/ChangelogOptions - */ - -import { Type } from '@flex-development/commitlint-config' -import pathe from '@flex-development/pathe' -import type { PackageJson } from '@flex-development/pkg-types' -import { - CompareResult, - cast, - constant, - defaults, - fallback, - identity, - isNull, - type EmptyArray, - type EmptyString, - type Fn, - type Omit, - type Optional, - type Times -} from '@flex-development/tutils' -import * as emoji from 'node-emoji' -import { RepoProvider } from '../enums' -import type { Commit } from '../interfaces' -import { Formatter } from '../models' -import type { CommitGroup, CommitTransformer } from '../types' - -/** - * Changelog generation options. - * - * @class - */ -class ChangelogOptions { - /** - * Path to current working directory. - * - * @default process.cwd() - * - * @public - * @instance - * @member {string} cwd - */ - public cwd: string - - /** - * Enable verbose output. - * - * @default false - * - * @public - * @instance - * @member {boolean} debug - */ - public debug: boolean - - /** - * Changelog formatter. - * - * @default - * new Formatter() - * - * @public - * @instance - * @member {Formatter} formatter - */ - public formatter: Formatter - - /** - * Revision range start. - * - * @default - * based on `options.releases` - * - * @public - * @instance - * @member {string} from - */ - public from: string - - /** - * Commit grouping function. - * - * @default commit=>commit.type - * - * @public - * @instance - * @member {Fn<[Commit], string>} groupby - */ - public groupby: Fn<[commit: Commit], string> - - /** - * An array of commit group objects representing explicitly supported commit - * message types, and whether they should show up in generated changelog. - * - * @default - * [ - * { section: ':sparkles: Features', type: Type.FEAT }, - * { section: ':bug: Fixes', type: Type.FIX }, - * { section: ':mechanical_arm: Refactors', type: Type.REFACTOR }, - * { section: ':fire: Performance Improvements', type: Type.PERF }, - * { section: ':wastebasket: Reverts', type: Type.REVERT }, - * { section: ':pencil: Documentation', type: Type.DOCS }, - * { section: ':white_check_mark: Testing', type: Type.TEST }, - * { section: ':package: Build', type: Type.BUILD }, - * { section: ':robot: Continuous Integration', type: Type.CI }, - * { section: ':house_with_garden: Housekeeping', type: Type.CHORE }, - * { hidden: true, type: Type.RELEASE }, - * { hidden: true, type: Type.STYLE }, - * { hidden: true, type: Type.WIP }, - * ] - * - * @public - * @instance - * @member {Omit<CommitGroup, 'commits'>[]} groups - */ - public groups: Omit<CommitGroup, 'commits'>[] - - /** - * Commit group sorting function. - * - * @public - * @instance - * @member {Fn<Times<2, CommitGroup>, CompareResult>} groupsort - */ - public groupsort: Fn<Times<2, CommitGroup>, CompareResult> - - /** - * Read `CHANGELOG` from this file. - * - * @public - * @instance - * @member {Optional<string>} infile - */ - public infile?: Optional<string> - - /** - * Write changelog entries to this file. - * - * @public - * @instance - * @member {Optional<string>} outfile - */ - public outfile?: Optional<string> - - /** - * Package context. - * - * @default {} - * - * @public - * @instance - * @member {PackageJson} pkg - */ - public pkg: PackageJson - - /** - * Number of releases to generate. - * - * To regenerate the entire changelog, pass `0`. - * - * @default 1 - * - * @public - * @instance - * @member {number} releases - */ - public releases: number - - /** - * Repository provider. - * - * @default RepoProvider.GITHUB - * - * @public - * @instance - * @member {RepoProvider} repo - */ - public repo: RepoProvider - - /** - * Output content to {@linkcode infile}. - * - * @default false - * - * @public - * @instance - * @member {boolean} samefile - */ - public samefile: boolean - - /** - * Tag prefix to apply during git tag comparisons. - * - * @default '' - * - * @public - * @instance - * @member {string} tagprefix - */ - public tagprefix: string - - /** - * Revision range end. - * - * @default 'HEAD' - * - * @public - * @instance - * @member {string} to - */ - public to: string - - /** - * Parsed commit transformer. - * - * @see {@linkcode CommitTransformer} - * - * @public - * @instance - * @member {CommitTransformer} transform - */ - public transform: CommitTransformer - - /** - * Include unstable releases. - * - * @default true - * - * @public - * @instance - * @member {boolean} unstable - */ - public unstable: boolean - - /** - * Write content to {@linkcode outfile} instead of {@linkcode process.stdout}. - * - * @default false - * - * @public - * @instance - * @member {boolean} write - */ - public write: boolean - - /** - * Create a new changelog options object. - * - * @param {Partial<ChangelogOptions>} [opts] - Changelog options - */ - constructor(opts?: Partial<ChangelogOptions>) { - const { - cwd, - debug, - formatter, - from, - groupby, - groups, - groupsort, - infile, - outfile, - pkg, - releases, - repo, - samefile, - tagprefix, - to, - transform, - unstable, - write - } = defaults(fallback(opts, {}), { - cwd: process.cwd(), - debug: false, - formatter: new Formatter(), - from: '', - groupby: (commit: Commit): string => fallback(commit.type, '', isNull), - groups: [ - { section: ':sparkles: Features', type: Type.FEAT }, - { section: ':bug: Fixes', type: Type.FIX }, - { section: ':mechanical_arm: Refactors', type: Type.REFACTOR }, - { section: ':fire: Performance Improvements', type: Type.PERF }, - { section: ':wastebasket: Reverts', type: Type.REVERT }, - { section: ':pencil: Documentation', type: Type.DOCS }, - { section: ':white_check_mark: Testing', type: Type.TEST }, - { section: ':package: Build', type: Type.BUILD }, - { section: ':robot: Continuous Integration', type: Type.CI }, - { section: ':house_with_garden: Housekeeping', type: Type.CHORE }, - { hidden: true as const, type: Type.RELEASE }, - { hidden: true as const, type: Type.STYLE }, - { hidden: true as const, type: Type.WIP } - ], - groupsort: (a: CommitGroup, b: CommitGroup): CompareResult => { - /** - * Function used to remove emojis from commit group titles. - * - * @const {Fn<EmptyArray, EmptyString>} format - */ - const format: Fn<EmptyArray, EmptyString> = constant('') - - return a.hidden - ? CompareResult.GREATER_THAN - : b.hidden - ? CompareResult.LESS_THAN - : emoji - .emojify(a.section, { format }) - .localeCompare(emoji.emojify(b.section, { format })) - }, - infile: undefined, - outfile: undefined, - pkg: {}, - releases: 1, - repo: RepoProvider.GITHUB, - samefile: false, - tagprefix: '', - to: 'HEAD', - transform: identity, - unstable: true, - write: false - }) - - this.cwd = pathe.resolve(cwd) - this.debug = debug - this.formatter = formatter - this.from = releases === 0 ? '' : from - this.groupby = groupby - this.groups = groups - this.groupsort = groupsort - this.infile = infile - this.outfile = outfile - this.pkg = pkg - this.releases = releases - this.repo = repo - this.samefile = infile && infile === outfile ? true : samefile - this.tagprefix = tagprefix - this.to = to || 'HEAD' - this.transform = cast(transform) - this.unstable = unstable - this.write = write - - // reset samefile if changelog is being overwritten - if (this.write && !this.releases) this.samefile = true - - // reset outfile if changelog should be output to infile - if (this.samefile) { - this.outfile = this.infile = this.infile ?? 'CHANGELOG.md' - } - } -} - -export default ChangelogOptions diff --git a/grease/options/commit-raw.options.ts b/grease/options/commit-raw.options.ts deleted file mode 100644 index 3303f03..0000000 --- a/grease/options/commit-raw.options.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @file Options - RawCommitOptions - * @module grease/options/RawCommitOptions - */ - -/** - * Commit retrieval and parsing options. - */ -type RawCommitOptions = { - /** - * Path to current working directory. - * - * @default process.cwd() - */ - cwd?: string - - /** - * Enable verbose output. - * - * @default false - */ - debug?: boolean - - /** - * Revision range start. - * - * @default '' - */ - from?: string - - /** - * Revision range end. - * - * @default 'HEAD' - */ - to?: string -} - -export type { RawCommitOptions as default } diff --git a/grease/options/commit.options.ts b/grease/options/commit.options.ts deleted file mode 100644 index d2bdbc5..0000000 --- a/grease/options/commit.options.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @file Options - CommitOptions - * @module grease/options/CommitOptions - */ - -import type { CommitTransformer } from '../types' -import type RawCommitOptions from './commit-raw.options' - -/** - * Commit retrieval and parsing options. - * - * @see {@linkcode RawCommitOptions} - * - * @extends {RawCommitOptions} - */ -type CommitOptions = RawCommitOptions & { - /** - * Parsed commit transformer. - * - * @see {@linkcode CommitTransformer} - * - * @default identity - */ - transform?: CommitTransformer -} - -export type { CommitOptions as default } diff --git a/grease/options/index.ts b/grease/options/index.ts deleted file mode 100644 index 4a6e3b2..0000000 --- a/grease/options/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @file Entry Point - Options - * @module grease/options - */ - -export { default as ChangelogOptions } from './changelog.options' -export type { default as RawCommitOptions } from './commit-raw.options' -export type { default as CommitOptions } from './commit.options' -export type { default as SemverTagOptions } from './semver-tags.options' diff --git a/grease/options/semver-tags.options.ts b/grease/options/semver-tags.options.ts deleted file mode 100644 index ac9ea53..0000000 --- a/grease/options/semver-tags.options.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @file Options - SemverTagOptions - * @module grease/options/SemverTagOptions - */ - -/** - * Semver tag retrieval options. - */ -type SemverTagOptions = { - /** - * Tag prefix to consider when validating tags. - * - * @default '' - */ - tagprefix?: string - - /** - * Include unstable releases. - * - * @default true - */ - unstable?: boolean -} - -export type { SemverTagOptions as default } diff --git a/grease/providers/changelog.service.ts b/grease/providers/changelog.service.ts deleted file mode 100644 index 66a8ef0..0000000 --- a/grease/providers/changelog.service.ts +++ /dev/null @@ -1,617 +0,0 @@ -/** - * @file changelog - ChangelogService - * @module config/changelog/providers/ChangelogService - */ - -import { - at, - cast, - construct, - entries, - fallback, - fork, - get, - group, - includes, - isNaN, - join, - ksort, - noop, - objectify, - pick, - select, - sift, - sort, - split, - template, - timeiso, - trim, - type Construct, - type Nullable, - type Pick -} from '@flex-development/tutils' -import { Injectable } from '@nestjs/common' -import consola from 'consola' -import dateformat, { masks } from 'dateformat' -import { exec, execFile, execSync } from 'node:child_process' -import { - ReadStream, - createReadStream, - createWriteStream, - type WriteStream -} from 'node:fs' -import { Readable } from 'node:stream' -import util from 'node:util' -import semver from 'semver' -import { RepoProvider } from '../enums' -import type { Commit, Context, Entry } from '../interfaces' -import { Grammar } from '../models' -import { - ChangelogOptions, - type CommitOptions, - type SemverTagOptions -} from '../options' -import type { - BreakingChange, - CommitGroup, - RawCommitField, - RepoProviderMap, - Trailer -} from '../types' - -/** - * Encapsulates logic for generating changelogs. - * - * @class - */ -@Injectable() -class ChangelogService { - /** - * Format string passed to `git log`. - * - * @see https://git-scm.com/docs/git-log#_pretty_formats - * - * @public - * @static - * @readonly - * @member {string} GIT_LOG_FORMAT - */ - public static readonly GIT_LOG_FORMAT: string = join( - [ - '%s%n', - 'author.email', - '%n%ae%n', - 'author.name', - '%n%an%n', - 'body', - '%n%b%n', - 'date', - '%n%cI%n', - 'hash', - '%n%h%n', - 'sha', - '%n%H%n', - 'tags', - '%n%D%n', - 'trailers', - '%n%(trailers)%n' - ], - '-' - ) - - /** - * Repository provider configuration map. - * - * @public - * @static - * @readonly - * @member {RepoProviderMap} PROVIDERS - */ - public static readonly PROVIDERS: RepoProviderMap = { - [RepoProvider.BITBUCKET]: { - host: `${RepoProvider.BITBUCKET}.org`, - keywords: { commit: 'commit', issue: 'issues', pr: 'pull-requests' } - }, - [RepoProvider.GITHUB]: { - host: `${RepoProvider.GITHUB}.com`, - keywords: { commit: 'commit', issue: 'issues', pr: 'pull' } - }, - [RepoProvider.GITLAB]: { - host: `${RepoProvider.GITLAB}.com`, - keywords: { commit: 'commit', issue: 'issues', pr: 'merge_requests' } - } - } - - /** - * Create a new changelog service. - * - * @param {Grammar} grammar - Changelog grammar instance - */ - constructor(protected readonly grammar: Grammar) {} - - /** - * Get an array of parsed commits. - * - * @see {@linkcode CommitOptions} - * - * @template T - Transformed commit type - * - * @public - * @async - * - * @param {CommitOptions} opts - Commit retrieval and parsing options - * @return {Promise<T[]>} Parsed commit array - */ - public async commits<T extends Commit = Commit>( - opts: CommitOptions - ): Promise<T[]> { - /** - * String used to separate commit logs. - * - * @const {string} LOG_DELIMITER - */ - const LOG_DELIMITER: string = '--$--' - - /** - * Git command arguments. - * - * @const {string[]} args - */ - const args: string[] = sift([ - 'log', - `--format=${ChangelogService.GIT_LOG_FORMAT}%n${LOG_DELIMITER}`, - '--decorate-refs=refs/tags', - '--decorate=short', - join(sift([opts.from, opts.to || 'HEAD']), '..') - ]) - - // filter commits by directory - if (opts.cwd !== process.cwd()) args.push(`-- ${opts.cwd}`) - - // debug git log command - if (opts.debug) consola.info('git', ...args) - - /** - * Git command output. - * - * @const {{ stderr: string; stdout: string }} gitlog - */ - const gitlog: { - stderr: string - stdout: string - } = await util.promisify(execFile)('git', args, { - cwd: opts.cwd, - maxBuffer: Number.POSITIVE_INFINITY - }) - - /** - * Array containing parsed commits. - * - * @const {T[]} commits - */ - const commits: T[] = [] - - // parse raw commits - for (let chunk of split(gitlog.stdout, LOG_DELIMITER + '\n')) { - if (!(chunk = trim(chunk))) continue - - // get commit header and raw fields - const [[header = ''], raw_fields]: [string[], string[]] = fork( - split(chunk, /^(?=-.*?-\n*$)/gm), - raw => !this.grammar.field.test(raw) - ) - - // extract commit header data - const { - groups: { - breaking = null, - pr = 'null', - scope = null, - subject = '', - type = '' - } = {} - } = pick(this.grammar.header.exec(header)!, ['groups']) - - /** - * Commit fields object. - * - * @const {Construct<Record<RawCommitField, string>>} fields - */ - const fields: Construct<Record<RawCommitField, string>> = construct( - cast<Record<RawCommitField, string>>( - objectify( - raw_fields, - raw => get(this.grammar.field.exec(raw)!.groups, 'field', ''), - raw => trim(raw.replace(this.grammar.field, '')) - ) - ) - ) - - /** - * Tags associated with commit. - * - * @const {string[]} tags - */ - const tags: string[] = select( - split(fields.tags, ','), - tag => !!trim(tag), - tag => trim(tag.replace(/^tag: */, '')) - ) - - /** - * Commit message trailers. - * - * @const {Trailer[]} trailers - */ - const trailers: Trailer[] = select( - split(fields.trailers, '\n'), - trailer => !!trim(trailer), - trailer => { - const { token, value } = this.grammar.trailer.exec(trailer)!.groups! - return { token: token!, value: trim(value!) } - } - ) - - /** - * Breaking changes noted in commit subject and trailers. - * - * @const {BreakingChange[]} breaking_changes - */ - const breaking_changes: BreakingChange[] = select( - trailers, - trailer => /^BREAKING[ -]CHANGE/.test(trailer.token), - trailer => ({ scope: null, subject: trailer.value, type }) - ) - - // add subject to breaking changes if breaking change is in subject - if (breaking && !includes(breaking_changes, subject)) { - breaking_changes.unshift({ scope, subject, type }) - } - - /** - * Parsed commit object. - * - * @var {T} commit - */ - let commit: T = cast({ - ...fields, - body: fields.body.replace(fields.trailers, ''), - breaking: !!breaking_changes.length, - breaking_changes, - header: header.replace(/\n$/, ''), - mentions: select( - [...chunk.matchAll(this.grammar.mention)], - null, - match => get(match, 'groups.user')! - ), - pr: fallback(+pr, null, isNaN), - references: select( - [...chunk.matchAll(this.grammar.reference)], - null, - match => ({ - action: get(match, 'groups.action', null), - number: +get(match, 'groups.number', ''), - owner: get(match, 'groups.owner', null), - ref: get(match, 'groups.ref', ''), - repo: get(match, 'groups.repo', null) - }) - ), - scope, - subject, - tags, - trailers, - type, - version: at(tags, 0, null) - }) - - // transform commit - if (opts.transform) commit = await opts.transform(commit, chunk) - - // add parsed commit - commits.push(ksort(commit, { deep: true })) - } - - return commits - } - - /** - * Get an array of changelog entry objects. - * - * @public - * - * @param {Commit[]} commits - Parsed commit array - * @param {string[]} tags - Semver tags - * @param {ChangelogOptions} opts - Changelog options - * @return {Entry[]} Changelog entry object array - */ - public entries( - commits: Commit[], - tags: string[], - opts: ChangelogOptions - ): Entry[] { - return select( - entries( - group(commits, commit => { - if (commit.version) return commit.version - - /** - * Git command used to get tag containing {@linkcode commit}. - * - * @see https://git-scm.com/docs/git-describe - * - * @const {string} cmd - */ - const cmd: string = join( - [ - 'git', - 'describe', - '--candidates=1', - '--contains', - template('--match="{tagprefix}*"', { tagprefix: opts.tagprefix }), - commit.sha - ], - ' ' - ) - - // get tag containing commit - try { - return trim( - execSync(cmd, { - encoding: 'utf8', - stdio: ['ignore', 'pipe', 'ignore'] - }) - ).replace(/~\d+$/, '') - } catch { - const [tag] = tags - return tag?.replace(opts.tagprefix, '') === opts.pkg.version - ? template('{tag}+{sha}', { sha: get(commits, '0.sha'), tag }) - : opts.pkg.version! - } - }) - ), - null, - ([version, commits]) => { - const { groupby, groups, groupsort } = opts - - /** - * Key commit. - * - * @const {Nullable<Commit>} key - */ - const key: Nullable<Commit> = fallback( - commits!.find(commit => commit.version === version), - null - ) - - /** - * Grouped commits map. - * - * @const {Record<string, Commit[]>} map - */ - const map: Record<string, Commit[]> = cast(group(commits!, groupby)) - - return { - date: dateformat(key?.date ?? timeiso(), masks.isoDate), - groups: sort( - entries(map).reduce<CommitGroup[]>((acc, [type, commits]) => { - const [group] = select(groups, group => group.type === type) - return group && !group.hidden - ? [ - ...acc, - { - ...group, - commits: sort(commits, (a, b) => { - return a.header.localeCompare(b.header) - }) - } - ] - : acc - }, []), - groupsort - ), - key: key ?? at(commits, 0)!, - last_version: fallback(tags[tags.indexOf(version) + 1], null), - patch: !!semver.patch(version), - prerelease: !!semver.prerelease(version), - version - } - } - ) - } - - /** - * Generate a changelog. - * - * @public - * @async - * - * @param {ChangelogOptions} [opts] - Changelog options - * @return {Promise<void>} Nothing when complete - */ - public async generate(opts?: ChangelogOptions): Promise<void> { - opts = new ChangelogOptions(opts) - - /** - * Git semver tags. - * - * @const {string[]} tags - */ - const tags: string[] = await this.tags(opts) - - // set revision start range based on release count - if (opts.releases && opts.to === 'HEAD' && !includes(tags, opts.from)) { - opts.from = fallback(tags[opts.releases - 1], '') - } - - /** - * Parsed commits. - * - * @const {Commit[]} commits - */ - const commits: Commit[] = await this.commits(opts) - - return void (await this.write(this.entries(commits, tags, opts), opts)) - } - - /** - * Get the owner and name of the current repository. - * - * @public - * @async - * - * @param {RepoProvider} provider - Repository provider - * @return {Promise<Pick<Context, 'owner' | 'repo'>>} Repository owner + name - */ - public async repository( - provider: RepoProvider - ): Promise<Pick<Context, 'owner' | 'repo'>> { - // get repository url - let { stdout } = await util.promisify(exec)('git remote get-url origin') - - // remove repository host from remote url - stdout = stdout.replace( - new RegExp(`https://${ChangelogService.PROVIDERS[provider].host}/`), - '' - ) - - return cast<Pick<Context, 'owner' | 'repo'>>( - get(/(?<owner>\S+)\/(?<repo>\S+)(?=\.git)/.exec(stdout)!, 'groups') - ) - } - - /** - * Get an array containing all git semver tags in reverse chronological order. - * - * @see {@linkcode SemverTagOptions} - * - * @public - * @async - * - * @param {SemverTagOptions} opts - Tag retrieval options - * @return {Promise<string[]>} Semver tags array - */ - public async tags(opts: SemverTagOptions): Promise<string[]> { - const { tagprefix, unstable } = new ChangelogOptions(opts) - - /** - * Git command arguments. - * - * @const {string[]} args - */ - const args: string[] = [ - 'log', - '--decorate-refs=refs/tags', - '--decorate=short', - '--format=%D' - ] - - /** - * Git command output. - * - * @const {{ stderr: string; stdout: string }} gitlog - */ - const gitlog: { - stderr: string - stdout: string - } = await util.promisify(execFile)('git', args, { - cwd: process.cwd(), - maxBuffer: Number.POSITIVE_INFINITY - }) - - return select( - select( - split(gitlog.stdout, '\n'), - tag => !!trim(tag), - tag => trim(tag).replace(/^tag: */, '') - ), - tag => { - return ( - tag.startsWith(tagprefix) && - !!semver.valid(tag = tag.replace(tagprefix, '')) && - (!unstable ? !semver.parse(tag)!.prerelease.length : true) - ) - } - ) - } - - /** - * Write changelog entries. - * - * @public - * @async - * - * @param {Entry[]} entries - Changelog entry objects - * @param {ChangelogOptions} opts - Changelog options - * @return {Promise<void>} Nothing when complete - */ - public async write(entries: Entry[], opts: ChangelogOptions): Promise<void> { - /** - * Changelog context. - * - * @const {Context} context - */ - const context: Context = ksort({ - ...ChangelogService.PROVIDERS[opts.repo], - ...(await this.repository(opts.repo)) - }) - - /** - * File writer. - * - * If writing to file is disabled, {@linkcode process.stdout} will be used - * to write changelog entries. A write stream will be used otherwise. - * - * @see {@linkcode NodeJS.WriteStream} - * @see {@linkcode WriteStream} - * @see {@linkcode createWriteStream} - * - * @const {WriteStream | (NodeJS.WriteStream & { fd: 1 })} writer - */ - const writer: WriteStream | (NodeJS.WriteStream & { fd: 1 }) = - opts.write && opts.outfile - ? createWriteStream(opts.outfile) - : process.stdout - - /** - * Readable changelog. - * - * @const {Readable} changelog - */ - const changelog: Readable = new Readable({ read: noop }) - - // add error handler to readable changelog - changelog.on('error', consola.error.bind({})) - - // add newline chunk if writing changelog to stdout in debug mode - if (opts.debug && !opts.write) changelog.push('\n') - - // add changelog entry chunks to readable changelog - for (const entry of entries) { - changelog.push(opts.formatter.formatEntry(entry, context)) - } - - // output changelog if infile should not be added to readable changelog - if (!(opts.infile && opts.releases)) return void changelog.pipe(writer) - - /** - * Readable {@linkcode opts.infile} stream. - * - * @const {ReadStream} infile - */ - const infile: ReadStream = createReadStream(opts.infile) - - // add error handler to infile stream - infile.on('error', () => { - if (opts.debug) consola.error('infile does not exist.') - if (opts.samefile) changelog.pipe(writer) - }) - - // add infile to readable changelog - for await (const chunk of infile) changelog.push(chunk) - - // write changelog to infile, outfile, or stdout - return void changelog.pipe(writer) - } -} - -export default ChangelogService diff --git a/grease/providers/index.ts b/grease/providers/index.ts deleted file mode 100644 index 7f5ef6c..0000000 --- a/grease/providers/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @file Entry Point - Providers - * @module grease/providers - */ - -export { default as ChangelogService } from './changelog.service' diff --git a/grease/types/author.ts b/grease/types/author.ts deleted file mode 100644 index dc4b0c3..0000000 --- a/grease/types/author.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * @file Type Definitions - Author - * @module grease/types/Author - */ - -/** - * A commit author. - */ -type Author = { - /** - * Commit author email. - */ - email: string - - /** - * Commit author name. - */ - name: string -} - -export type { Author as default } diff --git a/grease/types/breaking-change.ts b/grease/types/breaking-change.ts deleted file mode 100644 index b0baceb..0000000 --- a/grease/types/breaking-change.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * @file Type Definitions - BreakingChange - * @module grease/types/BreakingChange - */ - -import type { Nullable } from '@flex-development/tutils' - -/** - * Object representing a breaking change noted in a commit subject or trailer. - */ -type BreakingChange = { - /** - * Commit scope if breaking change was noted in a scoped commit message. - */ - scope: Nullable<string> - - /** - * Commit subject or breaking change trailer value. - */ - subject: string - - /** - * Commit type. - */ - type: string -} - -export type { BreakingChange as default } diff --git a/grease/types/commit-group.ts b/grease/types/commit-group.ts deleted file mode 100644 index 0f031d6..0000000 --- a/grease/types/commit-group.ts +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file Type Definitions - CommitGroup - * @module grease/types/CommitGroup - */ - -import type { Commit } from '../interfaces' - -/** - * A hidden group of commits. - * - * @internal - */ -type HiddenCommitGroup = { - /** - * Remove commit group from changelog. - */ - hidden: true - - /** - * Group title. - */ - section?: string - - /** - * Group type. - */ - type: string -} - -/** - * A visible group of commits. - * - * @internal - */ -type VisibleCommitGroup = { - /** - * Remove commit group from changelog. - */ - hidden?: false - - /** - * Group title. - */ - section: string - - /** - * Group type. - */ - type: string -} - -/** - * A group of commits. - */ -type CommitGroup = { - /** - * Grouped commits. - * - * @see {@linkcode Commit} - */ - commits: Commit[] -} & (HiddenCommitGroup | VisibleCommitGroup) - -export type { CommitGroup as default } diff --git a/grease/types/commit-transformer.ts b/grease/types/commit-transformer.ts deleted file mode 100644 index 4147ad1..0000000 --- a/grease/types/commit-transformer.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * @file Type Definitions - CommitTransformer - * @module grease/types/CommitTransformer - */ - -import type { Commit } from '../interfaces' - -/** - * Parsed commit transformer. - * - * @see {@linkcode Commit} - * - * @template T - Transformed commit type - * - * @param {Commit} commit - Parsed commit - * @param {string} raw - Raw commit - * @return {T} Transformed commit - */ -type CommitTransformer = <T extends Commit>( - commit: Commit, - raw: string -) => Promise<T> | T - -export type { CommitTransformer as default } diff --git a/grease/types/index.ts b/grease/types/index.ts deleted file mode 100644 index 64692e8..0000000 --- a/grease/types/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @file Entry Point - Type Definitions - * @module grease/types - */ - -export type { default as Author } from './author' -export type { default as BreakingChange } from './breaking-change' -export type { default as CommitGroup } from './commit-group' -export type { default as CommitTransformer } from './commit-transformer' -export type { default as RawCommitField } from './raw-commit-field' -export type { default as Reference } from './reference' -export type { default as RepoKeywords } from './repo-keywords' -export type { default as RepoProviderMap } from './repo-provider-map' -export type { default as Trailer } from './trailer' diff --git a/grease/types/raw-commit-field.ts b/grease/types/raw-commit-field.ts deleted file mode 100644 index 5f57625..0000000 --- a/grease/types/raw-commit-field.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * @file Type Definitions - RawCommitField - * @module grease/types/RawCommitField - */ - -/** - * Raw commit field names. - */ -type RawCommitField = - | 'body' - | 'date' - | 'hash' - | 'sha' - | 'tags' - | 'trailers' - | `author.${'email' | 'name'}` - -export type { RawCommitField as default } diff --git a/grease/types/reference.ts b/grease/types/reference.ts deleted file mode 100644 index dd5d882..0000000 --- a/grease/types/reference.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @file Type Definitions - Reference - * @module grease/types/Reference - */ - -import type { Nullable } from '@flex-development/tutils' - -/** - * Object representing a reference to an issue or pull request in a commit. - */ -type Reference = { - /** - * Reference action, if any. - */ - action: Nullable<string> - - /** - * Issue or pull request number. - */ - number: number - - /** - * Repository owner. - */ - owner: Nullable<string> - - /** - * The referenced issue or pull request. - */ - ref: string - - /** - * Repository name. - */ - repo: Nullable<string> -} - -export type { Reference as default } diff --git a/grease/types/repo-keywords.ts b/grease/types/repo-keywords.ts deleted file mode 100644 index 44d7340..0000000 --- a/grease/types/repo-keywords.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * @file Type Definitions - RepoKeywords - * @module grease/types/RepoKeywords - */ - -/** - * Keywords used in reference URLs. - */ -type RepoKeywords = { - /** - * Commit reference keyword. - * - * @example - * 'commit' - */ - commit: string - - /** - * Issue reference keyword. - * - * @example - * 'issues' - */ - issue: string - - /** - * Pull request reference keyword. - * - * @example - * 'pull' - */ - pr: string -} - -export type { RepoKeywords as default } diff --git a/grease/types/repo-provider-map.ts b/grease/types/repo-provider-map.ts deleted file mode 100644 index 6e443e4..0000000 --- a/grease/types/repo-provider-map.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @file Type Definitions - RepoProviderMap - * @module grease/types/RepoProviderMap - */ - -import type { Pick, Simplify } from '@flex-development/tutils' -import type { RepoProvider } from '../enums' -import type { Context } from '../interfaces' - -/** - * Repository provider configuration map. - * - * @see {@linkcode Context} - * @see {@linkcode RepoProvider} - */ -type RepoProviderMap = Simplify< - Record<RepoProvider, Pick<Context, 'host' | 'keywords'>> -> - -export type { RepoProviderMap as default } diff --git a/grease/types/trailer.ts b/grease/types/trailer.ts deleted file mode 100644 index b201551..0000000 --- a/grease/types/trailer.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @file Type Definitions - Trailer - * @module grease/types/Trailer - */ - -/** - * Object representing a trailer line in a commit message. - * - * @see https://git-scm.com/docs/git-interpret-trailers - */ -type Trailer = { - /** - * Trailer token. - */ - token: string - - /** - * Trailer value. - */ - value: string -} - -export type { Trailer as default } diff --git a/package.json b/package.json index 5b4eb0c..ed86006 100644 --- a/package.json +++ b/package.json @@ -47,14 +47,16 @@ "types": "./dist/index.d.mts", "scripts": { "build": "mkbuild", - "changelog": "yarn grease changelog -T=$(jq .tagPrefix package.json -r)", + "bump": "grease bump", + "bump:recommend": "yarn bump --recommend", + "changelog": "grease changelog", "check:ci": "yarn dedupe --check && yarn check:format && yarn check:lint && yarn check:spelling && yarn typecheck && yarn test:cov && yarn pack && yarn check:types:build && attw package.tgz && yarn clean:pack && yarn pkg-size", "check:format": "dprint check --incremental=false", "check:lint": "eslint --exit-on-fatal-error --max-warnings 0 .", "check:spelling": "cspell lint --color --no-progress --relative $@ \"**\"", "check:types": "tsc -p tsconfig.typecheck.json", "check:types:attw": "yarn pack && attw package.tgz && yarn clean:pack", - "check:types:build": "bash ./scripts/typecheck-build.sh", + "check:types:build": "tsc -p tsconfig.build.json", "check:upgrades": "yarn upgrade-interactive", "clean:build": "trash ./{dist,*.tgz}", "clean:coverage": "trash ./coverage", @@ -68,14 +70,12 @@ "fix:dedupe": "yarn dedupe --strategy=highest", "fix:format": "dprint fmt", "fix:lint": "yarn check:lint --cache --fix", - "grease": "node --enable-source-maps --loader=./loader.mjs ./grease", "pkg-size": "pkg-size --sizes size --sort-by name", "postinstall": "[ -f ./node_modules/.bin/husky ] && chmod +x .husky/* && husky install || exit 0", "postpack": "toggle-scripts +postinstall", "postpublish": "toggle-scripts +prepack", "prepack": "toggle-scripts -postinstall && yarn build", "prepublishOnly": "toggle-scripts -prepack", - "recommended-bump": "conventional-recommended-bump --preset=conventionalcommits --tag-prefix=$(jq .tagPrefix package.json -r) --verbose", "release": "bash ./scripts/release.sh", "test": "vitest run", "test:cov": "yarn clean:coverage; yarn test --coverage", @@ -99,6 +99,7 @@ "@flex-development/commitlint-config": "1.0.1", "@flex-development/decorator-regex": "2.0.0", "@flex-development/esm-types": "2.0.0", + "@flex-development/grease": "3.0.0-alpha.3", "@flex-development/mkbuild": "1.0.0-alpha.22", "@flex-development/mlly": "1.0.0-alpha.18", "@flex-development/toggle-pkg-type": "2.0.1", @@ -107,7 +108,6 @@ "@nestjs/core": "10.2.7", "@nestjs/testing": "10.2.7", "@types/chai": "4.3.5", - "@types/conventional-recommended-bump": "6.1.0", "@types/dateformat": "5.0.0", "@types/eslint": "8.44.6", "@types/is-ci": "3.0.0", @@ -122,14 +122,12 @@ "chai": "5.0.0-alpha.1", "chai-each": "0.0.1", "commander": "11.0.0", - "conventional-changelog-conventionalcommits": "7.0.2", - "conventional-recommended-bump": "9.0.0", "cross-env": "7.0.3", "cspell": "7.3.8", "dateformat": "5.0.3", "dprint": "0.41.0", "editorconfig": "2.0.0", - "esbuild": "0.19.4", + "esbuild": "0.19.5", "eslint": "8.52.0", "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-chai-expect": "3.0.0", @@ -148,7 +146,6 @@ "is-ci": "3.0.1", "jsonc-eslint-parser": "2.3.0", "lint-staged": "14.0.1", - "node-emoji": "2.1.0", "node-notifier": "10.0.1", "pkg-size": "2.4.0", "prettier": "3.0.3", @@ -160,7 +157,6 @@ "trash-cli": "5.0.0", "ts-dedent": "2.2.0", "typescript": "5.2.2", - "version-bump-prompt": "6.1.0", "vite": "4.4.11", "vite-tsconfig-paths": "4.2.1", "vitest": "0.34.3", @@ -178,7 +174,6 @@ } }, "resolutions": { - "@ardatan/sync-fetch": "larsgw/sync-fetch#head=worker_threads", "chai": "5.0.0-alpha.1" }, "engines": { @@ -187,6 +182,5 @@ }, "packageManager": "yarn@4.0.0-rc.50", "readme": "README.md", - "sideEffects": false, - "tagPrefix": "" + "sideEffects": false } diff --git a/scripts/release.sh b/scripts/release.sh index c14bb8b..e9349d1 100644 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -1,5 +1,7 @@ #!/bin/sh +set -e + # Local Release Workflow # # 1. run typecheck @@ -8,18 +10,14 @@ # 4. run postbuild typecheck # 5. analyze types # 6. print package size report -# 7. get new package version +# 7. get release version data # 8. get release branch name -# 9. switch to release branch -# 10. stage changes -# 11. commit changes -# 12. push release branch to origin -# 13. create pull request -# 14. cleanup +# 9. create release branch +# 10. push release branch +# 11. cleanup # # References: # -# - https://cli.github.com/manual/gh_pr_create # - https://github.com/arethetypeswrong/arethetypeswrong.github.io yarn typecheck @@ -28,11 +26,8 @@ yarn pack yarn check:types:build attw package.tgz yarn pkg-size -VERSION=$(jq .version package.json -r) -RELEASE_BRANCH=release/$VERSION -git switch -c $RELEASE_BRANCH -git add . -git commit -s -m "release: $(jq .tagPrefix package.json -r)$VERSION" -git push origin -u --no-verify $RELEASE_BRANCH -gh pr create --assignee @me --label scope:release --web +RELEASE_VERSION=$(grease bump -j $@) +RELEASE_BRANCH=release/$(jq .version -r <<<$RELEASE_VERSION) +git branch $RELEASE_BRANCH +git push origin --no-verify --set-upstream $RELEASE_BRANCH yarn clean:pack diff --git a/scripts/typecheck-build.sh b/scripts/typecheck-build.sh deleted file mode 100644 index ddcfc15..0000000 --- a/scripts/typecheck-build.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# Postbuild Typecheck Workflow - -# set initial tsconfig file -TSCONFIG='tsconfig.build.json' - -# change tsconfig file if typescript version is not at least 5 -[[ ! $(jq .devDependencies.typescript package.json -r) = 5* ]] && TSCONFIG=__tests__/ts/v4/$TSCONFIG - -# run typecheck -tsc -p $TSCONFIG diff --git a/typings/conventional-changelog-writer/index.d.ts b/typings/conventional-changelog-writer/index.d.ts deleted file mode 100644 index c7d1b5a..0000000 --- a/typings/conventional-changelog-writer/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {} from 'conventional-changelog-writer' - -declare module 'conventional-changelog-writer' { - namespace GeneratedContext { - interface ExtraContext { - currentTag?: string | undefined - gitSemverTags: string[] - linkCompare?: boolean | undefined - previousTag?: string | undefined - } - } -} diff --git a/yarn.lock b/yarn.lock index 7e8b4a4..ae56f25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -827,9 +827,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/android-arm64@npm:0.19.4" +"@esbuild/android-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-arm64@npm:0.19.5" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -841,9 +841,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/android-arm@npm:0.19.4" +"@esbuild/android-arm@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-arm@npm:0.19.5" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -855,9 +855,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/android-x64@npm:0.19.4" +"@esbuild/android-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-x64@npm:0.19.5" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -869,9 +869,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/darwin-arm64@npm:0.19.4" +"@esbuild/darwin-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/darwin-arm64@npm:0.19.5" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -883,9 +883,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/darwin-x64@npm:0.19.4" +"@esbuild/darwin-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/darwin-x64@npm:0.19.5" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -897,9 +897,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/freebsd-arm64@npm:0.19.4" +"@esbuild/freebsd-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/freebsd-arm64@npm:0.19.5" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -911,9 +911,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/freebsd-x64@npm:0.19.4" +"@esbuild/freebsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/freebsd-x64@npm:0.19.5" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -925,9 +925,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-arm64@npm:0.19.4" +"@esbuild/linux-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-arm64@npm:0.19.5" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -939,9 +939,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-arm@npm:0.19.4" +"@esbuild/linux-arm@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-arm@npm:0.19.5" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -953,9 +953,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-ia32@npm:0.19.4" +"@esbuild/linux-ia32@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-ia32@npm:0.19.5" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -967,9 +967,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-loong64@npm:0.19.4" +"@esbuild/linux-loong64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-loong64@npm:0.19.5" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -981,9 +981,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-mips64el@npm:0.19.4" +"@esbuild/linux-mips64el@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-mips64el@npm:0.19.5" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -995,9 +995,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-ppc64@npm:0.19.4" +"@esbuild/linux-ppc64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-ppc64@npm:0.19.5" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -1009,9 +1009,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-riscv64@npm:0.19.4" +"@esbuild/linux-riscv64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-riscv64@npm:0.19.5" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -1023,9 +1023,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-s390x@npm:0.19.4" +"@esbuild/linux-s390x@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-s390x@npm:0.19.5" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -1037,9 +1037,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/linux-x64@npm:0.19.4" +"@esbuild/linux-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-x64@npm:0.19.5" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -1051,9 +1051,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/netbsd-x64@npm:0.19.4" +"@esbuild/netbsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/netbsd-x64@npm:0.19.5" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -1065,9 +1065,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/openbsd-x64@npm:0.19.4" +"@esbuild/openbsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/openbsd-x64@npm:0.19.5" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -1079,9 +1079,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/sunos-x64@npm:0.19.4" +"@esbuild/sunos-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/sunos-x64@npm:0.19.5" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -1093,9 +1093,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/win32-arm64@npm:0.19.4" +"@esbuild/win32-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-arm64@npm:0.19.5" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -1107,9 +1107,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/win32-ia32@npm:0.19.4" +"@esbuild/win32-ia32@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-ia32@npm:0.19.5" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -1121,9 +1121,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.4": - version: 0.19.4 - resolution: "@esbuild/win32-x64@npm:0.19.4" +"@esbuild/win32-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-x64@npm:0.19.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1177,6 +1177,16 @@ __metadata: languageName: node linkType: hard +"@flex-development/aggregate-error-ponyfill@npm:3.1.1": + version: 3.1.1 + resolution: "@flex-development/aggregate-error-ponyfill@npm:3.1.1::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Faggregate-error-ponyfill%2F3.1.1%2F06789d036a0573f507331cc4d1068616a4e58c9e" + dependencies: + "@types/es-abstract": "npm:1.17.3" + es-abstract: "npm:1.21.1" + checksum: 8fe64d928008289cc48cc6928cbdd18ee5b53e1395e3150c15f40777b6c95ce3b1685cf05a0c4505401c941bd01be156d7491264d4e8709d8e15d565f2788e27 + languageName: node + linkType: hard + "@flex-development/builtin-modules@npm:1.0.0": version: 1.0.0 resolution: "@flex-development/builtin-modules@npm:1.0.0::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Fbuiltin-modules%2F1.0.0%2F7f6d30784550e9e03c3e93e9f846d958d016f1c9" @@ -1283,6 +1293,40 @@ __metadata: languageName: node linkType: hard +"@flex-development/grease@npm:3.0.0-alpha.3": + version: 3.0.0-alpha.3 + resolution: "@flex-development/grease@npm:3.0.0-alpha.3::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Fgrease%2F3.0.0-alpha.3%2Fe4430e3ac15f6aceda3e2e0a7cb3dc10944bc63b" + dependencies: + "@flex-development/aggregate-error-ponyfill": "npm:3.1.1" + "@flex-development/commitlint-config": "npm:1.0.1" + "@flex-development/errnode": "npm:2.0.0" + "@flex-development/mkbuild": "npm:1.0.0-alpha.23" + "@flex-development/mlly": "npm:1.0.0-alpha.18" + "@flex-development/pathe": "npm:2.0.0" + "@flex-development/pkg-types": "npm:3.0.0" + "@flex-development/tutils": "npm:6.0.0-alpha.25" + "@nestjs/common": "npm:10.2.7" + "@nestjs/cqrs": "npm:10.2.6" + "@types/node": "npm:20.8.6" + "@types/semver": "npm:7.5.0" + class-validator: "npm:0.14.0" + esbuild: "npm:0.19.5" + fast-glob: "npm:3.3.1" + is-unicode-supported: "npm:1.3.0" + json5: "npm:2.2.3" + node-emoji: "npm:2.1.0" + reflect-metadata: "npm:0.1.13" + rxjs: "npm:7.8.1" + semver: "npm:7.5.4" + string-width: "npm:6.1.0" + tinyrainbow: "npm:1.1.1" + word-wrap: "npm:1.2.5" + bin: + grease: dist/cli.mjs + checksum: a06d9be65bf1d59a8b254bf380abba9090903d0ad8e84c42fca2e5c2bea5d1ca454f0687fce2631385429eb86f9a5e833ce168f0948789d868dad6122f067f7d + languageName: node + linkType: hard + "@flex-development/import-regex@npm:2.0.3": version: 2.0.3 resolution: "@flex-development/import-regex@npm:2.0.3::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Fimport-regex%2F2.0.3%2Fc6f01b00c68004a7d39a562b87e52b4c35db4d49" @@ -1350,6 +1394,35 @@ __metadata: languageName: node linkType: hard +"@flex-development/mkbuild@npm:1.0.0-alpha.23": + version: 1.0.0-alpha.23 + resolution: "@flex-development/mkbuild@npm:1.0.0-alpha.23::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Fmkbuild%2F1.0.0-alpha.23%2F01fc88d62df2030b9fcc7a780061d20542e086a9" + dependencies: + "@flex-development/decorator-regex": "npm:2.0.0" + "@flex-development/errnode": "npm:2.0.0" + "@flex-development/ext-regex": "npm:2.0.0" + "@flex-development/mlly": "npm:1.0.0-alpha.18" + "@flex-development/pathe": "npm:2.0.0" + "@flex-development/pkg-types": "npm:3.0.0" + "@flex-development/toggle-pkg-type": "npm:2.0.1" + "@flex-development/tsconfig-utils": "npm:2.0.2" + "@flex-development/tutils": "npm:6.0.0-alpha.22" + consola: "npm:3.2.3" + cosmiconfig: "npm:8.2.0" + exit-hook: "npm:3.2.0" + fast-glob: "npm:3.3.1" + pretty-bytes: "npm:6.1.1" + tinyrainbow: "npm:1.1.1" + peerDependencies: + "@types/node": ">=16.18.23" + esbuild: ">=0.19.0" + typescript: ">=5.0.4" + bin: + mkbuild: dist/cli.mjs + checksum: d756447ea76a39893a3420d2d8d2dc33e38a965865ef24e763b61233e5009d88eb6b63cc6895d02cf7ac1feca1dbaee8506df63d1447f22387d3f5ecff9de41e + languageName: node + linkType: hard + "@flex-development/mlly@npm:1.0.0-alpha.15": version: 1.0.0-alpha.15 resolution: "@flex-development/mlly@npm:1.0.0-alpha.15::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Fmlly%2F1.0.0-alpha.15%2Fd4b18cf2f07b10873bdfec41513707a2801042c9" @@ -1397,6 +1470,7 @@ __metadata: "@flex-development/commitlint-config": "npm:1.0.1" "@flex-development/decorator-regex": "npm:2.0.0" "@flex-development/esm-types": "npm:2.0.0" + "@flex-development/grease": "npm:3.0.0-alpha.3" "@flex-development/mkbuild": "npm:1.0.0-alpha.22" "@flex-development/mlly": "npm:1.0.0-alpha.18" "@flex-development/pathe": "npm:2.0.0" @@ -1408,7 +1482,6 @@ __metadata: "@nestjs/core": "npm:10.2.7" "@nestjs/testing": "npm:10.2.7" "@types/chai": "npm:4.3.5" - "@types/conventional-recommended-bump": "npm:6.1.0" "@types/dateformat": "npm:5.0.0" "@types/eslint": "npm:8.44.6" "@types/is-ci": "npm:3.0.0" @@ -1423,14 +1496,12 @@ __metadata: chai: "npm:5.0.0-alpha.1" chai-each: "npm:0.0.1" commander: "npm:11.0.0" - conventional-changelog-conventionalcommits: "npm:7.0.2" - conventional-recommended-bump: "npm:9.0.0" cross-env: "npm:7.0.3" cspell: "npm:7.3.8" dateformat: "npm:5.0.3" dprint: "npm:0.41.0" editorconfig: "npm:2.0.0" - esbuild: "npm:0.19.4" + esbuild: "npm:0.19.5" eslint: "npm:8.52.0" eslint-import-resolver-typescript: "npm:3.6.1" eslint-plugin-chai-expect: "npm:3.0.0" @@ -1449,7 +1520,6 @@ __metadata: is-ci: "npm:3.0.1" jsonc-eslint-parser: "npm:2.3.0" lint-staged: "npm:14.0.1" - node-emoji: "npm:2.1.0" node-notifier: "npm:10.0.1" pkg-size: "npm:2.4.0" prettier: "npm:3.0.3" @@ -1461,7 +1531,6 @@ __metadata: trash-cli: "npm:5.0.0" ts-dedent: "npm:2.2.0" typescript: "npm:5.2.2" - version-bump-prompt: "npm:6.1.0" vite: "npm:4.4.11" vite-tsconfig-paths: "npm:4.2.1" vitest: "npm:0.34.3" @@ -1607,6 +1676,24 @@ __metadata: languageName: node linkType: hard +"@flex-development/tutils@npm:6.0.0-alpha.22": + version: 6.0.0-alpha.22 + resolution: "@flex-development/tutils@npm:6.0.0-alpha.22::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Ftutils%2F6.0.0-alpha.22%2F22f766c2fbcdb4177f61acb9f10ce8abd66b9c01" + peerDependencies: + typescript: ">=5.0.4" + checksum: 9b8340958dc8b675446c3c6ae609daad11e0182863c1067b7cf3851b87c27c31176f3fbc6775c6ba752fbbb16c52c6bbc74d1344c87ee83e9e77b07fa4982265 + languageName: node + linkType: hard + +"@flex-development/tutils@npm:6.0.0-alpha.25": + version: 6.0.0-alpha.25 + resolution: "@flex-development/tutils@npm:6.0.0-alpha.25::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Ftutils%2F6.0.0-alpha.25%2F514989f908c827de2c4f28c7709873fb8e3fd62a" + peerDependencies: + typescript: ">=5.0.4" + checksum: 9f33799b67bad1057ad7da30d7f7d02888ce06f73fd42c8f07ddfc2fe292af14acb4cc3a377edb25f029cbc45e2ded944c3d200a54b549330d869e24f18ec5ef + languageName: node + linkType: hard + "@flex-development/tutils@npm:6.0.0-alpha.7": version: 6.0.0-alpha.7 resolution: "@flex-development/tutils@npm:6.0.0-alpha.7::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40flex-development%2Ftutils%2F6.0.0-alpha.7%2F786916dcfd30bf076b5ac74cb31ca4031f74e1f0" @@ -1735,36 +1822,6 @@ __metadata: languageName: node linkType: hard -"@jsdevtools/ez-spawn@npm:^3.0.4": - version: 3.0.4 - resolution: "@jsdevtools/ez-spawn@npm:3.0.4" - dependencies: - call-me-maybe: "npm:^1.0.1" - cross-spawn: "npm:^7.0.3" - string-argv: "npm:^0.3.1" - type-detect: "npm:^4.0.8" - checksum: 9899acd300980c1e02c063bee116d0b550f8a48e2d5e36484376fd7a9e7cc5888c234a1613a3629be7393f96013ef73fff03d974c3ab73191fc67c7257f7d36e - languageName: node - linkType: hard - -"@jsdevtools/version-bump-prompt@npm:6.1.0": - version: 6.1.0 - resolution: "@jsdevtools/version-bump-prompt@npm:6.1.0" - dependencies: - "@jsdevtools/ez-spawn": "npm:^3.0.4" - command-line-args: "npm:^5.1.1" - detect-indent: "npm:^6.0.0" - detect-newline: "npm:^3.1.0" - globby: "npm:^11.0.1" - inquirer: "npm:^7.3.3" - log-symbols: "npm:^4.0.0" - semver: "npm:^7.3.2" - bin: - bump: bin/bump.js - checksum: 26fb8269d1c04cac486d5e956d7a09463ca9ff81d0d731eca4c440d51c879715504698325b26a0a2aed7ce446f5432ca98d38b904b9028061441efbf1dc18dd2 - languageName: node - linkType: hard - "@lukeed/csprng@npm:^1.0.0": version: 1.1.0 resolution: "@lukeed/csprng@npm:1.1.0" @@ -1821,6 +1878,20 @@ __metadata: languageName: node linkType: hard +"@nestjs/cqrs@npm:10.2.6": + version: 10.2.6 + resolution: "@nestjs/cqrs@npm:10.2.6" + dependencies: + uuid: "npm:9.0.0" + peerDependencies: + "@nestjs/common": ^9.0.0 || ^10.0.0 + "@nestjs/core": ^9.0.0 || ^10.0.0 + reflect-metadata: 0.1.13 + rxjs: ^7.2.0 + checksum: 4987d0e41113d7f9b1cec51fab9fa58e76eccea0cdc86d7f6af7e965835e6615acfe02f7391daecd9efd1215712017b427bb73a6d1dd7e4ecd7dd0118f383efc + languageName: node + linkType: hard + "@nestjs/testing@npm:10.2.7": version: 10.2.7 resolution: "@nestjs/testing@npm:10.2.7" @@ -1998,31 +2069,7 @@ __metadata: languageName: node linkType: hard -"@types/conventional-changelog-core@npm:*": - version: 4.2.2 - resolution: "@types/conventional-changelog-core@npm:4.2.2" - dependencies: - "@types/conventional-changelog-writer": "npm:*" - "@types/conventional-commits-parser": "npm:*" - "@types/conventional-recommended-bump": "npm:*" - "@types/git-raw-commits": "npm:*" - "@types/node": "npm:*" - "@types/normalize-package-data": "npm:*" - checksum: c908ba04132fa19d9c55484ff2ff3bbc1da23cd7ef5cf73d062784c67e6f7e9bef26c868d7f57627826ad2a012539a3e41136af0d14ff055f04be6a7e3512299 - languageName: node - linkType: hard - -"@types/conventional-changelog-writer@npm:*": - version: 4.0.4 - resolution: "@types/conventional-changelog-writer@npm:4.0.4" - dependencies: - "@types/conventional-commits-parser": "npm:*" - "@types/node": "npm:*" - checksum: f4d0d6616fbb8dc5736a02ae7eb257b114bf883c8a48e439368e3d4abcbf359003b6a23587f8e40dd56b687713b173d6fc3e2563df7cdb8affec89606bd9ff91 - languageName: node - linkType: hard - -"@types/conventional-commits-parser@npm:*, @types/conventional-commits-parser@npm:3.0.3": +"@types/conventional-commits-parser@npm:3.0.3": version: 3.0.3 resolution: "@types/conventional-commits-parser@npm:3.0.3" dependencies: @@ -2031,17 +2078,6 @@ __metadata: languageName: node linkType: hard -"@types/conventional-recommended-bump@npm:*, @types/conventional-recommended-bump@npm:6.1.0": - version: 6.1.0 - resolution: "@types/conventional-recommended-bump@npm:6.1.0" - dependencies: - "@types/conventional-changelog-core": "npm:*" - "@types/conventional-changelog-writer": "npm:*" - "@types/conventional-commits-parser": "npm:*" - checksum: 2e9e58bdf77d62217e7f73de75cb569dda0048a36421da0e4fb8563e1e65779ba76746767d7a9ed29dff0b9502e27fe105babb3d7565b495d99d6ea59c33c175 - languageName: node - linkType: hard - "@types/dateformat@npm:5.0.0": version: 5.0.0 resolution: "@types/dateformat@npm:5.0.0" @@ -2049,6 +2085,22 @@ __metadata: languageName: node linkType: hard +"@types/es-abstract@npm:1.17.3": + version: 1.17.3 + resolution: "@types/es-abstract@npm:1.17.3" + dependencies: + "@types/es-to-primitive": "npm:*" + checksum: ae9da1ca8c02ad806cdd500ba62389553acd56400f6f8ec594f20f2eb6deb4437744e92c3b4f06f8fb135156a309176819ac637fb54d1ce33b9e4e13f8ac503b + languageName: node + linkType: hard + +"@types/es-to-primitive@npm:*": + version: 1.2.6 + resolution: "@types/es-to-primitive@npm:1.2.6" + checksum: ed1f4977969dd41482757cb0c029dc4ad37ce48c2e9e98d1ce6fe1aa612f0e8a633f9492a2507d70e7021c7b27fac395b0d8f8522f82a2f76379417c21d8eddd + languageName: node + linkType: hard + "@types/eslint@npm:8.44.6": version: 8.44.6 resolution: "@types/eslint@npm:8.44.6" @@ -2066,15 +2118,6 @@ __metadata: languageName: node linkType: hard -"@types/git-raw-commits@npm:*": - version: 2.0.1 - resolution: "@types/git-raw-commits@npm:2.0.1" - dependencies: - "@types/node": "npm:*" - checksum: b5d41433a5201b8fbd475d29d08df77d60a402acfdba9703125eab96449a7040721d698e8bad8debbb3377338e08c3d75faab409e2e2b47b6f0a66f535d1594f - languageName: node - linkType: hard - "@types/is-ci@npm:3.0.0": version: 3.0.0 resolution: "@types/is-ci@npm:3.0.0" @@ -2146,7 +2189,16 @@ __metadata: languageName: node linkType: hard -"@types/normalize-package-data@npm:*, @types/normalize-package-data@npm:^2.4.0": +"@types/node@npm:20.8.6": + version: 20.8.6 + resolution: "@types/node@npm:20.8.6" + dependencies: + undici-types: "npm:~5.25.1" + checksum: cdfe0a2d90005323bbaf8fa4002607af98d49016c81898cd7f574d9ec6fc980580ea1b97f7b6ecaa8614be8004cd03898766e99e1869428ba6ed3bcd66a15354 + languageName: node + linkType: hard + +"@types/normalize-package-data@npm:^2.4.0": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 @@ -2167,6 +2219,13 @@ __metadata: languageName: node linkType: hard +"@types/validator@npm:^13.7.10": + version: 13.11.5 + resolution: "@types/validator@npm:13.11.5" + checksum: 5d0def292cf04b8ecc2e499bdaa66a411f835a389f350136a13c5b25a1859c5158b2a9f20839f8e8b8ea61b348566887abf126735e797decaadfab0eb192b4cb + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:6.8.0": version: 6.8.0 resolution: "@typescript-eslint/eslint-plugin@npm:6.8.0" @@ -2485,15 +2544,6 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: "npm:^0.21.3" - checksum: 8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2 - languageName: node - linkType: hard - "ansi-escapes@npm:^5.0.0": version: 5.0.0 resolution: "ansi-escapes@npm:5.0.0" @@ -2603,13 +2653,6 @@ __metadata: languageName: node linkType: hard -"array-back@npm:^3.0.1, array-back@npm:^3.1.0": - version: 3.1.0 - resolution: "array-back@npm:3.1.0" - checksum: 7205004fcd0f9edd926db921af901b083094608d5b265738d0290092f9822f73accb468e677db74c7c94ef432d39e5ed75a7b1786701e182efb25bbba9734209 - languageName: node - linkType: hard - "array-buffer-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "array-buffer-byte-length@npm:1.0.0" @@ -2807,20 +2850,14 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind@npm:1.0.2" +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.4": + version: 1.0.5 + resolution: "call-bind@npm:1.0.5" dependencies: - function-bind: "npm:^1.1.1" - get-intrinsic: "npm:^1.0.2" - checksum: ca787179c1cbe09e1697b56ad499fd05dc0ae6febe5081d728176ade699ea6b1589240cb1ff1fe11fcf9f61538c1af60ad37e8eb2ceb4ef21cd6085dfd3ccedd - languageName: node - linkType: hard - -"call-me-maybe@npm:^1.0.1": - version: 1.0.2 - resolution: "call-me-maybe@npm:1.0.2" - checksum: 3d375b6f810a82c751157b199daba60452876186c19ac653e81bfc5fc10d1e2ba7aedb8622367c3a8aca6879f0e6a29435a1193b35edb8f7fd8267a67ea32373 + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.1" + set-function-length: "npm:^1.1.1" + checksum: 246d44db6ef9bbd418828dbd5337f80b46be4398d522eded015f31554cbb2ea33025b0203b75c7ab05a1a255b56ef218880cca1743e4121e306729f9e414da39 languageName: node linkType: hard @@ -2966,13 +3003,6 @@ __metadata: languageName: node linkType: hard -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: b0ec668fba5eeec575ed2559a0917ba41a6481f49063c8445400e476754e0957ee09e44dc032310f526182b8f1bf25e9d4ed371f74050af7be1383e06bc44952 - languageName: node - linkType: hard - "check-error@npm:^2.0.0": version: 2.0.0 resolution: "check-error@npm:2.0.0" @@ -2994,6 +3024,17 @@ __metadata: languageName: node linkType: hard +"class-validator@npm:0.14.0": + version: 0.14.0 + resolution: "class-validator@npm:0.14.0" + dependencies: + "@types/validator": "npm:^13.7.10" + libphonenumber-js: "npm:^1.10.14" + validator: "npm:^13.7.0" + checksum: bf550a4ab7b424467737c75e7e6171a45fe010ccab6af50793539d9d2e1f5cce1a35fbc8b11f9a5de4f049852f768232acca16f05cf80993a36369b494560f44 + languageName: node + linkType: hard + "clean-regexp@npm:^1.0.0": version: 1.0.0 resolution: "clean-regexp@npm:1.0.0" @@ -3029,15 +3070,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: "npm:^3.1.0" - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - "cli-cursor@npm:^4.0.0": version: 4.0.0 resolution: "cli-cursor@npm:4.0.0" @@ -3070,13 +3102,6 @@ __metadata: languageName: node linkType: hard -"cli-width@npm:^3.0.0": - version: 3.0.0 - resolution: "cli-width@npm:3.0.0" - checksum: 8730848b04fb189666ab037a35888d191c8f05b630b1d770b0b0e4c920b47bb5cc14bddf6b8ffe5bfc66cee97c8211d4d18e756c1ffcc75d7dbe7e1186cd7826 - languageName: node - linkType: hard - "cliui@npm:^8.0.1": version: 8.0.1 resolution: "cliui@npm:8.0.1" @@ -3136,18 +3161,6 @@ __metadata: languageName: node linkType: hard -"command-line-args@npm:^5.1.1": - version: 5.2.1 - resolution: "command-line-args@npm:5.2.1" - dependencies: - array-back: "npm:^3.1.0" - find-replace: "npm:^3.0.0" - lodash.camelcase: "npm:^4.3.0" - typical: "npm:^4.0.0" - checksum: e6a42652ae8843fbb56e2fba1e85da00a16a0482896bb1849092e1bc70b8bf353d945e69732bf4ae98370ff84e8910ff4933af8f2f747806a6b2cb5074799fdb - languageName: node - linkType: hard - "commander@npm:11.0.0": version: 11.0.0 resolution: "commander@npm:11.0.0" @@ -3260,29 +3273,6 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-conventionalcommits@npm:7.0.2": - version: 7.0.2 - resolution: "conventional-changelog-conventionalcommits@npm:7.0.2" - dependencies: - compare-func: "npm:^2.0.0" - checksum: 3cc6586ac57cc54c0595b28ae22e8b674c970034bad35e467f71aba395278a6ef43351cfbf782a5fc33eb13ed4ad843a145b89ad1444f5fa571e3bf9c1d5519b - languageName: node - linkType: hard - -"conventional-changelog-preset-loader@npm:^4.1.0": - version: 4.1.0 - resolution: "conventional-changelog-preset-loader@npm:4.1.0" - checksum: 8813c34884a9e3f4be9f3a9ffa216012ee40ef8c0eb1593a70fa8ab906e08de09cab9e0b769b187a43456dbcb24b01a517b3798ebc5b8b9264af2e32c976d9c9 - languageName: node - linkType: hard - -"conventional-commits-filter@npm:^4.0.0": - version: 4.0.0 - resolution: "conventional-commits-filter@npm:4.0.0" - checksum: 46d2d90531f024d596f61d353876276e5357adb5c4684e042467bb7d159feb0a2831b74656bd3038ac9ec38d99b0b24ac39f319ad511861e1299c4cdfb5a119a - languageName: node - linkType: hard - "conventional-commits-parser@npm:^4.0.0": version: 4.0.0 resolution: "conventional-commits-parser@npm:4.0.0" @@ -3297,36 +3287,6 @@ __metadata: languageName: node linkType: hard -"conventional-commits-parser@npm:^5.0.0": - version: 5.0.0 - resolution: "conventional-commits-parser@npm:5.0.0" - dependencies: - JSONStream: "npm:^1.3.5" - is-text-path: "npm:^2.0.0" - meow: "npm:^12.0.1" - split2: "npm:^4.0.0" - bin: - conventional-commits-parser: cli.mjs - checksum: 3b56a9313127f18c56b7fc0fdb0c49d2184ec18e0574e64580a0d5a3c3e0f3eecfb8bc3131dce967bfe9fd27debd5f42b7fc1f09e8e541e688e1dd2b57f49278 - languageName: node - linkType: hard - -"conventional-recommended-bump@npm:9.0.0": - version: 9.0.0 - resolution: "conventional-recommended-bump@npm:9.0.0" - dependencies: - conventional-changelog-preset-loader: "npm:^4.1.0" - conventional-commits-filter: "npm:^4.0.0" - conventional-commits-parser: "npm:^5.0.0" - git-raw-commits: "npm:^4.0.0" - git-semver-tags: "npm:^7.0.0" - meow: "npm:^12.0.1" - bin: - conventional-recommended-bump: cli.mjs - checksum: a24350a2e1633bf22da884933bd0fffe750547fa9df51d8d3aeaacf5d0447f12d9bc8bf994294b945c6c79beecdfc491f47b5e07d20ebacc663c48c057344b71 - languageName: node - linkType: hard - "convert-source-map@npm:^1.6.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" @@ -3549,13 +3509,6 @@ __metadata: languageName: node linkType: hard -"dargs@npm:^8.0.0": - version: 8.1.0 - resolution: "dargs@npm:8.1.0" - checksum: 33f1b8f5f08e72c8a28355a87c0e1a9b6a0fec99252ecd9cf4735e65dd5f2e19747c860251ed5747b38e7204c7915fd7a7146aee5aaef5882c69169aae8b1d09 - languageName: node - linkType: hard - "dateformat@npm:5.0.3": version: 5.0.3 resolution: "dateformat@npm:5.0.3" @@ -3624,6 +3577,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": + version: 1.1.1 + resolution: "define-data-property@npm:1.1.1" + dependencies: + get-intrinsic: "npm:^1.2.1" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + checksum: 5573c8df96b5857408cad64d9b91b69152e305ce4b06218e5f49b59c6cafdbb90a8bd8a0bb83c7bc67a8d479c04aa697063c9bc28d849b7282f9327586d6bc7b + languageName: node + linkType: hard + "define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": version: 1.2.0 resolution: "define-properties@npm:1.2.0" @@ -3648,20 +3612,6 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^6.0.0": - version: 6.1.0 - resolution: "detect-indent@npm:6.1.0" - checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d - languageName: node - linkType: hard - -"detect-newline@npm:^3.1.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - "diff-sequences@npm:^29.4.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -3780,6 +3730,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^10.2.1": + version: 10.3.0 + resolution: "emoji-regex@npm:10.3.0" + checksum: b9b084ebe904f13bb4b66ee4c29fb41a7a4a1165adcc33c1ce8056c0194b882cc91ebdc782f1a779b5d7ea7375c5064643a7734893d7c657b44c5c6b9d7bf1e7 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -3859,6 +3816,47 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:1.21.1": + version: 1.21.1 + resolution: "es-abstract@npm:1.21.1" + dependencies: + available-typed-arrays: "npm:^1.0.5" + call-bind: "npm:^1.0.2" + es-set-tostringtag: "npm:^2.0.1" + es-to-primitive: "npm:^1.2.1" + function-bind: "npm:^1.1.1" + function.prototype.name: "npm:^1.1.5" + get-intrinsic: "npm:^1.1.3" + get-symbol-description: "npm:^1.0.0" + globalthis: "npm:^1.0.3" + gopd: "npm:^1.0.1" + has: "npm:^1.0.3" + has-property-descriptors: "npm:^1.0.0" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + internal-slot: "npm:^1.0.4" + is-array-buffer: "npm:^3.0.1" + is-callable: "npm:^1.2.7" + is-negative-zero: "npm:^2.0.2" + is-regex: "npm:^1.1.4" + is-shared-array-buffer: "npm:^1.0.2" + is-string: "npm:^1.0.7" + is-typed-array: "npm:^1.1.10" + is-weakref: "npm:^1.0.2" + object-inspect: "npm:^1.12.2" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.4" + regexp.prototype.flags: "npm:^1.4.3" + safe-regex-test: "npm:^1.0.0" + string.prototype.trimend: "npm:^1.0.6" + string.prototype.trimstart: "npm:^1.0.6" + typed-array-length: "npm:^1.0.4" + unbox-primitive: "npm:^1.0.2" + which-typed-array: "npm:^1.1.9" + checksum: 065c46977cf2371b1f713c2e6dbcd2487caa2c3b10cfe5ec237206907379ae6cf538ad4d59ebe25763c21f9233a0764c44672b1155770f1397c5dba5d4e5c3e0 + languageName: node + linkType: hard + "es-abstract@npm:^1.20.4, es-abstract@npm:^1.22.1": version: 1.22.1 resolution: "es-abstract@npm:1.22.1" @@ -3937,32 +3935,32 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:0.19.4": - version: 0.19.4 - resolution: "esbuild@npm:0.19.4" - dependencies: - "@esbuild/android-arm": "npm:0.19.4" - "@esbuild/android-arm64": "npm:0.19.4" - "@esbuild/android-x64": "npm:0.19.4" - "@esbuild/darwin-arm64": "npm:0.19.4" - "@esbuild/darwin-x64": "npm:0.19.4" - "@esbuild/freebsd-arm64": "npm:0.19.4" - "@esbuild/freebsd-x64": "npm:0.19.4" - "@esbuild/linux-arm": "npm:0.19.4" - "@esbuild/linux-arm64": "npm:0.19.4" - "@esbuild/linux-ia32": "npm:0.19.4" - "@esbuild/linux-loong64": "npm:0.19.4" - "@esbuild/linux-mips64el": "npm:0.19.4" - "@esbuild/linux-ppc64": "npm:0.19.4" - "@esbuild/linux-riscv64": "npm:0.19.4" - "@esbuild/linux-s390x": "npm:0.19.4" - "@esbuild/linux-x64": "npm:0.19.4" - "@esbuild/netbsd-x64": "npm:0.19.4" - "@esbuild/openbsd-x64": "npm:0.19.4" - "@esbuild/sunos-x64": "npm:0.19.4" - "@esbuild/win32-arm64": "npm:0.19.4" - "@esbuild/win32-ia32": "npm:0.19.4" - "@esbuild/win32-x64": "npm:0.19.4" +"esbuild@npm:0.19.5": + version: 0.19.5 + resolution: "esbuild@npm:0.19.5" + dependencies: + "@esbuild/android-arm": "npm:0.19.5" + "@esbuild/android-arm64": "npm:0.19.5" + "@esbuild/android-x64": "npm:0.19.5" + "@esbuild/darwin-arm64": "npm:0.19.5" + "@esbuild/darwin-x64": "npm:0.19.5" + "@esbuild/freebsd-arm64": "npm:0.19.5" + "@esbuild/freebsd-x64": "npm:0.19.5" + "@esbuild/linux-arm": "npm:0.19.5" + "@esbuild/linux-arm64": "npm:0.19.5" + "@esbuild/linux-ia32": "npm:0.19.5" + "@esbuild/linux-loong64": "npm:0.19.5" + "@esbuild/linux-mips64el": "npm:0.19.5" + "@esbuild/linux-ppc64": "npm:0.19.5" + "@esbuild/linux-riscv64": "npm:0.19.5" + "@esbuild/linux-s390x": "npm:0.19.5" + "@esbuild/linux-x64": "npm:0.19.5" + "@esbuild/netbsd-x64": "npm:0.19.5" + "@esbuild/openbsd-x64": "npm:0.19.5" + "@esbuild/sunos-x64": "npm:0.19.5" + "@esbuild/win32-arm64": "npm:0.19.5" + "@esbuild/win32-ia32": "npm:0.19.5" + "@esbuild/win32-x64": "npm:0.19.5" dependenciesMeta: "@esbuild/android-arm": optional: true @@ -4010,7 +4008,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 30469ee958591312f475a8b2cbb58f43c959017b609ed6f92543ecda4e67deb0f71b63fda3a33bd573f1f85a2ff90acaf061a94047fd56eb80c14d4ea1aa4a6d + checksum: f8ffe0cbab8a80ec63b6962b7d722da9e3dbe79a57d3cd998e107e35792068facd6f63e58ae19e919891456ed6cb73114a9777f0e7353ec8613b4fc75571d56d languageName: node linkType: hard @@ -4549,17 +4547,6 @@ __metadata: languageName: node linkType: hard -"external-editor@npm:^3.0.3": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: "npm:^0.7.0" - iconv-lite: "npm:^0.4.24" - tmp: "npm:^0.0.33" - checksum: 776dff1d64a1d28f77ff93e9e75421a81c062983fd1544279d0a32f563c0b18c52abbb211f31262e2827e48edef5c9dc8f960d06dd2d42d1654443b88568056b - languageName: node - linkType: hard - "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -4640,15 +4627,6 @@ __metadata: languageName: node linkType: hard -"figures@npm:^3.0.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" - dependencies: - escape-string-regexp: "npm:^1.0.5" - checksum: a3bf94e001be51d3770500789157f067218d4bc681a65e1f69d482de15120bcac822dceb1a7b3803f32e4e3a61a46df44f7f2c8ba95d6375e7491502e0dd3d97 - languageName: node - linkType: hard - "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -4676,15 +4654,6 @@ __metadata: languageName: node linkType: hard -"find-replace@npm:^3.0.0": - version: 3.0.0 - resolution: "find-replace@npm:3.0.0" - dependencies: - array-back: "npm:^3.0.1" - checksum: 6b04bcfd79027f5b84aa1dfe100e3295da989bdac4b4de6b277f4d063e78f5c9e92ebc8a1fec6dd3b448c924ba404ee051cc759e14a3ee3e825fa1361025df08 - languageName: node - linkType: hard - "find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -4807,10 +4776,10 @@ __metadata: languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: d83f2968030678f0b8c3f2183d63dcd969344eb8b55b4eb826a94ccac6de8b87c95bebffda37a6386c74f152284eb02956ff2c496897f35d32bdc2628ac68ac5 +"function-bind@npm:^1.1.1, function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454 languageName: node linkType: hard @@ -4870,15 +4839,15 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": - version: 1.2.1 - resolution: "get-intrinsic@npm:1.2.1" +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": + version: 1.2.2 + resolution: "get-intrinsic@npm:1.2.2" dependencies: - function-bind: "npm:^1.1.1" - has: "npm:^1.0.3" + function-bind: "npm:^1.1.2" has-proto: "npm:^1.0.1" has-symbols: "npm:^1.0.3" - checksum: aee631852063f8ad0d4a374970694b5c17c2fb5c92bd1929476d7eb8798ce7aebafbf9a34022c05fd1adaa2ce846d5877a627ce1986f81fc65adf3b81824bd54 + hasown: "npm:^2.0.0" + checksum: aa96db4f809734d26d49b59bc8669d73a0ae792da561514e987735573a1dfaede516cd102f217a078ea2b42d4c4fb1f83d487932cb15d49826b726cc9cd4470b languageName: node linkType: hard @@ -4939,31 +4908,6 @@ __metadata: languageName: node linkType: hard -"git-raw-commits@npm:^4.0.0": - version: 4.0.0 - resolution: "git-raw-commits@npm:4.0.0" - dependencies: - dargs: "npm:^8.0.0" - meow: "npm:^12.0.1" - split2: "npm:^4.0.0" - bin: - git-raw-commits: cli.mjs - checksum: 95546f4afcb33cf00ff638f7fec55ad61d4d927447737900e1f6fcbbdbb341b3f150908424cc62acb6d9faaea6f1e8f55d0697b899f0589af9d2733afb20abfb - languageName: node - linkType: hard - -"git-semver-tags@npm:^7.0.0": - version: 7.0.1 - resolution: "git-semver-tags@npm:7.0.1" - dependencies: - meow: "npm:^12.0.1" - semver: "npm:^7.5.2" - bin: - git-semver-tags: cli.mjs - checksum: 07b8a352bd28ad7678a2e12c91b11b5e53aff017420497bbb1cba0645e609f58d0a7d02d5f2ea6c7cd3019d7631ce7737f64cc90c47d944753c6bd2a36c03211 - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -5047,7 +4991,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.1, globby@npm:^11.1.0": +"globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -5202,6 +5146,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.0": + version: 2.0.0 + resolution: "hasown@npm:2.0.0" + dependencies: + function-bind: "npm:^1.1.2" + checksum: c330f8d93f9d23fe632c719d4db3d698ef7d7c367d51548b836069e06a90fa9151e868c8e67353cfe98d67865bf7354855db28fa36eb1b18fa5d4a3f4e7f1c90 + languageName: node + linkType: hard + "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" @@ -5285,15 +5238,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: 6d3a2dac6e5d1fb126d25645c25c3a1209f70cceecc68b8ef51ae0da3cdc078c151fade7524a30b12a3094926336831fca09c666ef55b37e2c69638b5d6bd2e3 - languageName: node - linkType: hard - "iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -5386,35 +5330,14 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^7.3.3": - version: 7.3.3 - resolution: "inquirer@npm:7.3.3" - dependencies: - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.1.0" - cli-cursor: "npm:^3.1.0" - cli-width: "npm:^3.0.0" - external-editor: "npm:^3.0.3" - figures: "npm:^3.0.0" - lodash: "npm:^4.17.19" - mute-stream: "npm:0.0.8" - run-async: "npm:^2.4.0" - rxjs: "npm:^6.6.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - through: "npm:^2.3.6" - checksum: 052c6fce2d467343ced6500080b4b70eaf2ca996933fc3b5c9b0dd1ea275dd9c2a1070880f5f163f42bd13acf25c1ab8ab384444c1a413050db34aab69112583 - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.5": - version: 1.0.5 - resolution: "internal-slot@npm:1.0.5" +"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": + version: 1.0.6 + resolution: "internal-slot@npm:1.0.6" dependencies: - get-intrinsic: "npm:^1.2.0" - has: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.2" + hasown: "npm:^2.0.0" side-channel: "npm:^1.0.4" - checksum: e2eb5b348e427957dd4092cb57b9374a2cbcabbf61e5e5b4d99cb68eeaae29394e8efd79f23dc2b1831253346f3c16b82010737b84841225e934d80d04d68643 + checksum: bc2022eb1f277f2fcb2a60e7ced451c7ffc7a769b12e63c7a3fb247af8b5a1bed06428ce724046a8bca39ed6eb5b6832501a42f2e9a5ec4a9a7dc4e634431616 languageName: node linkType: hard @@ -5695,15 +5618,6 @@ __metadata: languageName: node linkType: hard -"is-text-path@npm:^2.0.0": - version: 2.0.0 - resolution: "is-text-path@npm:2.0.0" - dependencies: - text-extensions: "npm:^2.0.0" - checksum: e26ade26a6aa6b26c3f00c913871c3c1ceb5a2a5ca4380aac3f0e092b151ad8e2ce4cee1060fb7a13a5684fa55ce62c9df04fa7723b180c82a34ae4c0fa34adb - languageName: node - linkType: hard - "is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" @@ -5720,10 +5634,10 @@ __metadata: languageName: node linkType: hard -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 +"is-unicode-supported@npm:1.3.0": + version: 1.3.0 + resolution: "is-unicode-supported@npm:1.3.0" + checksum: 20a1fc161afafaf49243551a5ac33b6c4cf0bbcce369fcd8f2951fbdd000c30698ce320de3ee6830497310a8f41880f8066d440aa3eb0a853e2aa4836dd89abc languageName: node linkType: hard @@ -5896,6 +5810,15 @@ __metadata: languageName: node linkType: hard +"json5@npm:2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da + languageName: node + linkType: hard + "json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" @@ -5972,6 +5895,13 @@ __metadata: languageName: node linkType: hard +"libphonenumber-js@npm:^1.10.14": + version: 1.10.48 + resolution: "libphonenumber-js@npm:1.10.48" + checksum: 135b6cbaf7993ca9f48591a098741f2ef6f00e9ce748d9514f4dd5433d2fc41f05ca22af52f53a088f53968f65ff9a0f17756804eb391ad40785ece21d813791 + languageName: node + linkType: hard + "lilconfig@npm:2.1.0": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" @@ -6138,23 +6068,13 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21": +"lodash@npm:^4.17.15, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 languageName: node linkType: hard -"log-symbols@npm:^4.0.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: "npm:^4.1.0" - is-unicode-supported: "npm:^0.1.0" - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 - languageName: node - linkType: hard - "log-update@npm:^5.0.1": version: 5.0.1 resolution: "log-update@npm:5.0.1" @@ -6366,13 +6286,6 @@ __metadata: languageName: node linkType: hard -"meow@npm:^12.0.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: 8594c319f4671a562c1fef584422902f1bbbad09ea49cdf9bb26dc92f730fa33398dd28a8cf34fcf14167f1d1148d05a867e50911fc4286751a4fb662fdd2dc2 - languageName: node - linkType: hard - "meow@npm:^8.0.0, meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" @@ -6631,13 +6544,6 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:0.0.8": - version: 0.0.8 - resolution: "mute-stream@npm:0.0.8" - checksum: a2d2e79dde87e3424ffc8c334472c7f3d17b072137734ca46e6f221131f1b014201cc593b69a38062e974fb2394d3d1cb4349f80f012bbf8b8ac1b28033e515f - languageName: node - linkType: hard - "nanoid@npm:^3.3.6": version: 3.3.6 resolution: "nanoid@npm:3.3.6" @@ -6833,10 +6739,10 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: 532b0036f0472f561180fac0d04fe328ee01f57637624c83fb054f81b5bfe966cdf4200612a499ed391a7ca3c46b20a0bc3a55fc8241d944abe687c556a32b39 +"object-inspect@npm:^1.12.2, object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": + version: 1.13.1 + resolution: "object-inspect@npm:1.13.1" + checksum: 92f4989ed83422d56431bc39656d4c780348eb15d397ce352ade6b7fec08f973b53744bd41b94af021901e61acaf78fcc19e65bf464ecc0df958586a672700f0 languageName: node linkType: hard @@ -6918,13 +6824,6 @@ __metadata: languageName: node linkType: hard -"os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d - languageName: node - linkType: hard - "p-finally@npm:^2.0.0": version: 2.0.1 resolution: "p-finally@npm:2.0.1" @@ -7433,14 +7332,14 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" dependencies: call-bind: "npm:^1.0.2" define-properties: "npm:^1.2.0" - functions-have-names: "npm:^1.2.3" - checksum: c8229ec3f59f8312248268009cb9bf9145a3982117f747499b994e8efb378ac8b62e812fd88df75225d53cb4879d2bb2fe47b2a50776cba076d8ff71fc0b1629 + set-function-name: "npm:^2.0.0" + checksum: 3fa5610b8e411bbc3a43ddfd13162f3a817beb43155fbd8caa24d4fd0ce2f431a8197541808772a5a06e5946cebfb68464c827827115bde0d11720a92fe2981a languageName: node linkType: hard @@ -7539,16 +7438,6 @@ __metadata: languageName: node linkType: hard -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - "restore-cursor@npm:^4.0.0": version: 4.0.0 resolution: "restore-cursor@npm:4.0.0" @@ -7605,13 +7494,6 @@ __metadata: languageName: node linkType: hard -"run-async@npm:^2.4.0": - version: 2.4.1 - resolution: "run-async@npm:2.4.1" - checksum: c79551224dafa26ecc281cb1efad3510c82c79116aaf681f8a931ce70fdf4ca880d58f97d3b930a38992c7aad7955a08e065b32ec194e1dd49d7790c874ece50 - languageName: node - linkType: hard - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -7621,6 +7503,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: b10cac1a5258f885e9dd1b70d23c34daeb21b61222ee735d2ec40a8685bdca40429000703a44f0e638c27a684ac139e1c37e835d2a0dc16f6fc061a138ae3abb + languageName: node + linkType: hard + "rxjs@npm:8.0.0-alpha.12": version: 8.0.0-alpha.12 resolution: "rxjs@npm:8.0.0-alpha.12" @@ -7628,15 +7519,6 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^6.6.0": - version: 6.6.7 - resolution: "rxjs@npm:6.6.7" - dependencies: - tslib: "npm:^1.9.0" - checksum: c8263ebb20da80dd7a91c452b9e96a178331f402344bbb40bc772b56340fcd48d13d1f545a1e3d8e464893008c5e306cc42a1552afe0d562b1a6d4e1e6262b03 - languageName: node - linkType: hard - "safe-array-concat@npm:^1.0.0": version: 1.0.0 resolution: "safe-array-concat@npm:1.0.0" @@ -7667,7 +7549,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: 7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83 @@ -7683,7 +7565,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.5.4, semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.0, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:7.5.4, semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.0, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -7710,6 +7592,29 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.1.1": + version: 1.1.1 + resolution: "set-function-length@npm:1.1.1" + dependencies: + define-data-property: "npm:^1.1.1" + get-intrinsic: "npm:^1.2.1" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + checksum: 745ed1d7dc69a6185e0820082fe73838ab3dfd01e75cce83a41e4c1d68bbf34bc5fb38f32ded542ae0b557536b5d2781594499b5dcd19e7db138e06292a76c7b + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.0": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: "npm:^1.0.1" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.0" + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 + languageName: node + linkType: hard + "sh-syntax@npm:0.4.1": version: 0.4.1 resolution: "sh-syntax@npm:0.4.1" @@ -7892,13 +7797,6 @@ __metadata: languageName: node linkType: hard -"split2@npm:^4.0.0": - version: 4.2.0 - resolution: "split2@npm:4.2.0" - checksum: 09bbefc11bcf03f044584c9764cd31a252d8e52cea29130950b26161287c11f519807c5e54bd9e5804c713b79c02cefe6a98f4688630993386be353e03f534ab - languageName: node - linkType: hard - "ssri@npm:^10.0.0": version: 10.0.5 resolution: "ssri@npm:10.0.5" @@ -7922,7 +7820,7 @@ __metadata: languageName: node linkType: hard -"string-argv@npm:0.3.2, string-argv@npm:^0.3.1": +"string-argv@npm:0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" checksum: f9d3addf887026b4b5f997a271149e93bf71efc8692e7dc0816e8807f960b18bcb9787b45beedf0f97ff459575ee389af3f189d8b649834cac602f2e857e75af @@ -7940,6 +7838,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:6.1.0": + version: 6.1.0 + resolution: "string-width@npm:6.1.0" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^10.2.1" + strip-ansi: "npm:^7.0.1" + checksum: 8aefb456a230c8d7fe254049b1b2d62603da1a3b6c7fc9f3332f6779583cc1c72653f9b6e4cd0c1c92befee1565d4a0a7542d09ba4ceb6d96af02fbd8425bb03 + languageName: node + linkType: hard + "string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": version: 5.1.2 resolution: "string-width@npm:5.1.2" @@ -8154,13 +8063,6 @@ __metadata: languageName: node linkType: hard -"text-extensions@npm:^2.0.0": - version: 2.4.0 - resolution: "text-extensions@npm:2.4.0" - checksum: 9bdbc9959e004ccc86a6ec076d6c5bb6765978263e9d0d5febb640d7675c09919ea912f3fe9d50b68c3c7c43cc865610a7cb24954343abb31f74c205fbae4e45 - languageName: node - linkType: hard - "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -8177,7 +8079,7 @@ __metadata: languageName: node linkType: hard -"through@npm:>=2.2.7 <3, through@npm:^2.3.6": +"through@npm:>=2.2.7 <3": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198 @@ -8212,15 +8114,6 @@ __metadata: languageName: node linkType: hard -"tmp@npm:^0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" - dependencies: - os-tmpdir: "npm:~1.0.2" - checksum: 09c0abfd165cff29b32be42bc35e80b8c64727d97dedde6550022e88fa9fd39a084660415ed8e3ebaa2aca1ee142f86df8b31d4196d4f81c774a3a20fd4b6abf - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -8359,20 +8252,13 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.6.2, tslib@npm:^2.6.0": +"tslib@npm:2.6.2, tslib@npm:^2.1.0, tslib@npm:^2.6.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca languageName: node linkType: hard -"tslib@npm:^1.9.0": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: 7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb - languageName: node - linkType: hard - "tunnel@npm:^0.0.6": version: 0.0.6 resolution: "tunnel@npm:0.0.6" @@ -8389,7 +8275,7 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5, type-detect@npm:^4.0.8": +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d @@ -8410,13 +8296,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f - languageName: node - linkType: hard - "type-fest@npm:^0.6.0": version: 0.6.0 resolution: "type-fest@npm:0.6.0" @@ -8521,13 +8400,6 @@ __metadata: languageName: node linkType: hard -"typical@npm:^4.0.0": - version: 4.0.0 - resolution: "typical@npm:4.0.0" - checksum: aefe2c24b025cda22534ae2594df4a1df5db05b5fe3692890fd51db741ca4f18937a149f968b8d56d9a7b0756e7cd8843b1907bea21987ff4a06619c54d5a575 - languageName: node - linkType: hard - "uc.micro@npm:^1.0.1, uc.micro@npm:^1.0.5": version: 1.0.6 resolution: "uc.micro@npm:1.0.6" @@ -8645,6 +8517,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:9.0.0": + version: 9.0.0 + resolution: "uuid@npm:9.0.0" + bin: + uuid: dist/bin/uuid + checksum: 23857699a616d1b48224bc2b8440eae6e57d25463c3a0200e514ba8279dfa3bde7e92ea056122237839cfa32045e57d8f8f4a30e581d720fd72935572853ae2e + languageName: node + linkType: hard + "uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -8691,14 +8572,10 @@ __metadata: languageName: node linkType: hard -"version-bump-prompt@npm:6.1.0": - version: 6.1.0 - resolution: "version-bump-prompt@npm:6.1.0" - dependencies: - "@jsdevtools/version-bump-prompt": "npm:6.1.0" - bin: - bump: bump.js - checksum: 9e01b12cd683d8fa39afd2707bf6e53f0b78d5691b1c785690f095777c77c569c2e0aff04483b725367b4ed321547e17e7acfa5a20179a3e5f65274c5b1511a4 +"validator@npm:^13.7.0": + version: 13.11.0 + resolution: "validator@npm:13.11.0" + checksum: 4bf094641eb71729c06a42d669840e7189597ba655a8264adabac9bf03f95cd6fde5fbc894b0a13ee861bd4a852f56d2afdc9391aeaeb3fc0f9633a974140e12 languageName: node linkType: hard @@ -8889,16 +8766,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11": - version: 1.1.11 - resolution: "which-typed-array@npm:1.1.11" +"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.9": + version: 1.1.13 + resolution: "which-typed-array@npm:1.1.13" dependencies: available-typed-arrays: "npm:^1.0.5" - call-bind: "npm:^1.0.2" + call-bind: "npm:^1.0.4" for-each: "npm:^0.3.3" gopd: "npm:^1.0.1" has-tostringtag: "npm:^1.0.0" - checksum: bc9e8690e71d6c64893c9d88a7daca33af45918861003013faf77574a6a49cc6194d32ca7826e90de341d2f9ef3ac9e3acbe332a8ae73cadf07f59b9c6c6ecad + checksum: 605e3e10b7118af904a0e79d0d50b95275102f06ec902734024989cd71354929f7acee50de43529d3baf5858e2e4eb32c75e6ebd226c888ad976d8140e4a3e71 languageName: node linkType: hard @@ -8934,6 +8811,13 @@ __metadata: languageName: node linkType: hard +"word-wrap@npm:1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854 + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0"