diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b1e8dbd975..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -lib/ -coverage/ -node_modules/ -fixtures/ diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 17ae1dbce9..0000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = { - root: true, - plugins: ['@typescript-eslint', 'jest', 'import'], - env: { - es6: true, - node: true, - }, - parserOptions: { - sourceType: 'module', - ecmaVersion: 11, - ecmaFeatures: { - jsx: false, - }, - }, - extends: ['eslint:recommended', 'prettier'], - rules: { - // disallow non-import statements appearing before import statements - 'import/first': 'error', - // Forbid import of modules using absolute paths - 'import/no-absolute-path': 'error', - // disallow AMD require/define - 'import/no-amd': 'error', - // Forbid mutable exports - 'import/no-mutable-exports': 'error', - // Prevent importing the default as if it were named - 'import/no-named-default': 'error', - // Forbid a module from importing itself - 'import/no-self-import': 'error', - - // Forbid the use of extraneous packages - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: ['**/*.test.js', '**/*.test.ts', 'vitest'], - }, - ], - }, - overrides: [ - { - files: ['*.cts', '*.ts'], - parser: '@typescript-eslint/parser', - extends: [ - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'prettier', - ], - rules: { - '@typescript-eslint/no-unused-vars': 'off', - '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/triple-slash-reference': 'off', - - // TODO: enable those rules? - 'no-empty': 'off', - 'no-var': 'off', - }, - }, - { - files: ['*.test.ts', '*.test.js'], - extends: ['plugin:jest/recommended'], - rules: { - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-var-requires': 'off', - // disallow non-import statements appearing before import statements - 'import/first': 'off', - 'import/no-extraneous-dependencies': 'off', - 'jest/no-deprecated-functions': 'off' - }, - }, - ], -}; diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 580aaf0ac5..be7921be0c 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -144,15 +144,17 @@ yarn clean yarn install yarn build yarn test -npx lerna publish --conventional-commits --dist-tag [`next` | `[release-vXX(BRANCH)]`] --otp +npx lerna publish --conventional-commits --dist-tag [`next` | `next` | `[release-vXX(BRANCH)]`] --otp ``` If for some reason this stops in between, you can manually publish missing packages like this: ```sh -npm publish --tag [`next` | `[release-vXX(BRANCH)]`] --otp +npm publish --tag [`latest` | `next` | `[release-vXX(BRANCH)]`] --otp ``` +Depending on the state of the packages you might need to run `npm pack` in each failed package and then publish it. + #### Publishing (new) packages for the first time ```sh diff --git a/.github/workflows/container-build.yml b/.github/workflows/container-build.yml index 8c8acac2ce..f1007db102 100644 --- a/.github/workflows/container-build.yml +++ b/.github/workflows/container-build.yml @@ -34,7 +34,7 @@ jobs: type=ref,event=branch type=sha,prefix=,format=short - name: Build and push container image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: Dockerfile.ci diff --git a/.tool-versions b/.tool-versions index 8f95919df3..0e686c4258 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -nodejs 18.20.2 +nodejs 18.20.4 diff --git a/@alias/commitlint-config-angular/CHANGELOG.md b/@alias/commitlint-config-angular/CHANGELOG.md index ad9bda1532..6c1910afb8 100644 --- a/@alias/commitlint-config-angular/CHANGELOG.md +++ b/@alias/commitlint-config-angular/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package commitlint-config-angular + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package commitlint-config-angular diff --git a/@alias/commitlint-config-angular/package.json b/@alias/commitlint-config-angular/package.json index a0ad56a853..8f2e720292 100644 --- a/@alias/commitlint-config-angular/package.json +++ b/@alias/commitlint-config-angular/package.json @@ -1,7 +1,7 @@ { "name": "commitlint-config-angular", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Shareable commitlint config enforcing the angular commit convention", "files": [ "index.js" @@ -31,10 +31,10 @@ "node": ">=v18" }, "dependencies": { - "@commitlint/config-angular": "^19.4.1" + "@commitlint/config-angular": "^19.5.0" }, "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" } diff --git a/@alias/commitlint-config-lerna-scopes/CHANGELOG.md b/@alias/commitlint-config-lerna-scopes/CHANGELOG.md index 4e42c02d57..1e42a14ca1 100644 --- a/@alias/commitlint-config-lerna-scopes/CHANGELOG.md +++ b/@alias/commitlint-config-lerna-scopes/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package commitlint-config-lerna-scopes + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@alias/commitlint-config-lerna-scopes/package.json b/@alias/commitlint-config-lerna-scopes/package.json index b58a5d0270..d5f3e23a27 100644 --- a/@alias/commitlint-config-lerna-scopes/package.json +++ b/@alias/commitlint-config-lerna-scopes/package.json @@ -1,7 +1,7 @@ { "name": "commitlint-config-lerna-scopes", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "Shareable commitlint config enforcing lerna package names as scopes", "files": [ "index.js" @@ -31,10 +31,10 @@ "node": ">=v18" }, "dependencies": { - "@commitlint/config-lerna-scopes": "^19.0.0" + "@commitlint/config-lerna-scopes": "^19.5.0" }, "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@alias/commitlint-config-nx-scopes/CHANGELOG.md b/@alias/commitlint-config-nx-scopes/CHANGELOG.md index 519cf24708..4ef3e3916e 100644 --- a/@alias/commitlint-config-nx-scopes/CHANGELOG.md +++ b/@alias/commitlint-config-nx-scopes/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package commitlint-config-nx-scopes + + + + + ## [19.3.1](https://github.com/conventional-changelog/commitlint/compare/v19.3.0...v19.3.1) (2024-05-13) **Note:** Version bump only for package commitlint-config-nx-scopes diff --git a/@alias/commitlint-config-nx-scopes/package.json b/@alias/commitlint-config-nx-scopes/package.json index 766141c983..d8d0bced7c 100644 --- a/@alias/commitlint-config-nx-scopes/package.json +++ b/@alias/commitlint-config-nx-scopes/package.json @@ -1,7 +1,7 @@ { "name": "commitlint-config-nx-scopes", "type": "module", - "version": "19.3.1", + "version": "19.5.0", "description": "Shareable commitlint config enforcing nx project names as scopes", "files": [ "index.js" @@ -31,10 +31,10 @@ "node": ">=v18" }, "dependencies": { - "@commitlint/config-nx-scopes": "^19.3.1" + "@commitlint/config-nx-scopes": "^19.5.0" }, "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@alias/commitlint-config-patternplate/CHANGELOG.md b/@alias/commitlint-config-patternplate/CHANGELOG.md index 0cf7e165e6..fe4cd34eb1 100644 --- a/@alias/commitlint-config-patternplate/CHANGELOG.md +++ b/@alias/commitlint-config-patternplate/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package commitlint-config-patternplate + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package commitlint-config-patternplate diff --git a/@alias/commitlint-config-patternplate/package.json b/@alias/commitlint-config-patternplate/package.json index 99b81871c1..1018386940 100644 --- a/@alias/commitlint-config-patternplate/package.json +++ b/@alias/commitlint-config-patternplate/package.json @@ -1,7 +1,7 @@ { "name": "commitlint-config-patternplate", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint your commits, patternplate-style", "files": [ "index.js" @@ -31,10 +31,10 @@ "node": ">=v18" }, "dependencies": { - "@commitlint/config-patternplate": "^19.4.1" + "@commitlint/config-patternplate": "^19.5.0" }, "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" } diff --git a/@alias/commitlint/CHANGELOG.md b/@alias/commitlint/CHANGELOG.md index 1db841847d..d07aa52797 100644 --- a/@alias/commitlint/CHANGELOG.md +++ b/@alias/commitlint/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package commitlint + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package commitlint diff --git a/@alias/commitlint/cli.test.js b/@alias/commitlint/cli.test.js index debea53ba2..8a04c7314b 100644 --- a/@alias/commitlint/cli.test.js +++ b/@alias/commitlint/cli.test.js @@ -3,7 +3,7 @@ import {createRequire} from 'module'; import path from 'path'; import {fileURLToPath} from 'url'; -import {execa} from 'execa'; +import {x} from 'tinyexec'; import {fix} from '@commitlint/test'; const require = createRequire(import.meta.url); @@ -13,12 +13,17 @@ const __dirname = path.resolve(fileURLToPath(import.meta.url), '..'); const bin = require.resolve('./cli.js'); function cli(args, options, input) { - const c = execa(bin, args, { - cwd: options.cwd, - env: options.env, - input: input, + const result = x(bin, args, { + nodeOptions: { + cwd: options.cwd, + env: options.env, + }, }); - return c.catch((err) => err); + + result.process.stdin.write(input); + result.process.stdin.end(); + + return result; } const fixBootstrap = (fixture) => fix.bootstrap(fixture, __dirname); diff --git a/@alias/commitlint/package.json b/@alias/commitlint/package.json index 7400c14cf4..7d20a8c0a1 100644 --- a/@alias/commitlint/package.json +++ b/@alias/commitlint/package.json @@ -1,7 +1,7 @@ { "name": "commitlint", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint your commit messages", "files": [ "cli.js" @@ -36,13 +36,13 @@ }, "license": "MIT", "dependencies": { - "@commitlint/cli": "^19.4.1", - "@commitlint/types": "^19.0.3" + "@commitlint/cli": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0", - "execa": "^8.0.1" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0", + "tinyexec": "^0.3.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/cli/CHANGELOG.md b/@commitlint/cli/CHANGELOG.md index 4af64b0335..b97e2074ca 100644 --- a/@commitlint/cli/CHANGELOG.md +++ b/@commitlint/cli/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + + +### Features + +* **cli:** use special errorCode for missing rules/config [#4142](https://github.com/conventional-changelog/commitlint/issues/4142) ([#4143](https://github.com/conventional-changelog/commitlint/issues/4143)) ([d7070d8](https://github.com/conventional-changelog/commitlint/commit/d7070d8a4905da7834a018825b37d52c2dd29f62)) + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/cli diff --git a/@commitlint/cli/package.json b/@commitlint/cli/package.json index b9f56c5203..2c1ff9067b 100644 --- a/@commitlint/cli/package.json +++ b/@commitlint/cli/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/cli", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint your commit messages", "files": [ "index.cjs", @@ -39,8 +39,8 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0", + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0", "@types/lodash.merge": "^4.6.8", "@types/node": "^18.19.17", "@types/yargs": "^17.0.29", @@ -48,12 +48,12 @@ "lodash.merge": "^4.6.2" }, "dependencies": { - "@commitlint/format": "^19.3.0", - "@commitlint/lint": "^19.4.1", - "@commitlint/load": "^19.4.0", - "@commitlint/read": "^19.4.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", "yargs": "^17.0.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" diff --git a/@commitlint/cli/src/cli-error.ts b/@commitlint/cli/src/cli-error.ts index eb1c985179..69db5917bc 100644 --- a/@commitlint/cli/src/cli-error.ts +++ b/@commitlint/cli/src/cli-error.ts @@ -1,10 +1,22 @@ +export enum ExitCode { + CommitlintDefault = 0, + CommitlintErrorDefault = 1, + CommitLintWarning = 2, + CommitLintError = 3, + CommitlintInvalidArgument = 9, +} + export class CliError extends Error { __proto__ = Error; public type: string; - public error_code: number; + public error_code: ExitCode; - constructor(message: string, type: string, error_code = 1) { + constructor( + message: string, + type: string, + error_code = ExitCode.CommitlintErrorDefault + ) { super(message); this.type = type; diff --git a/@commitlint/cli/src/cli.test.ts b/@commitlint/cli/src/cli.test.ts index 90e5e67c50..d6a8c66ba7 100644 --- a/@commitlint/cli/src/cli.test.ts +++ b/@commitlint/cli/src/cli.test.ts @@ -2,11 +2,11 @@ import {describe, test, expect} from 'vitest'; import {createRequire} from 'module'; import path from 'path'; import {fileURLToPath} from 'url'; - import {fix, git} from '@commitlint/test'; -import {execa} from 'execa'; import fs from 'fs-extra'; import merge from 'lodash.merge'; +import {x} from 'tinyexec'; +import {ExitCode} from './cli-error.js'; const require = createRequire(import.meta.url); @@ -21,12 +21,17 @@ interface TestOptions { const cli = (args: string[], options: TestOptions) => { return (input = '') => { - return execa(bin, args, { - cwd: options.cwd, - env: options.env, - input: input, - reject: false, + const result = x(bin, args, { + nodeOptions: { + cwd: options.cwd, + env: options.env, + }, }); + + result.process?.stdin?.write(input); + result.process?.stdin?.end(); + + return result; }; }; @@ -35,153 +40,175 @@ const fixBootstrap = (fixture: string) => fix.bootstrap(fixture, __dirname); test('should throw when called without [input]', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli([], {cwd})(); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})(); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should reprint input from stdin', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli([], {cwd})('foo: bar'); - expect(actual.stdout).toContain('foo: bar'); + const result = cli([], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toContain('foo: bar'); }); test('should produce success output with --verbose flag', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['--verbose'], {cwd})('type: bar'); - expect(actual.stdout).toContain('0 problems, 0 warnings'); - expect(actual.stderr).toEqual(''); + const result = cli(['--verbose'], {cwd})('type: bar'); + const output = await result; + expect(output.stdout.trim()).toContain('0 problems, 0 warnings'); + expect(output.stderr).toEqual(''); }); test('should produce last commit and success output with --verbose flag', async () => { const cwd = await gitBootstrap('fixtures/simple'); - await execa('git', ['add', 'commitlint.config.js'], {cwd}); - await execa('git', ['commit', '-m', '"test: this should work"'], {cwd}); - const actual = await cli(['--last', '--verbose'], {cwd})(); - expect(actual.stdout).toContain('0 problems, 0 warnings'); - expect(actual.stdout).toContain('test: this should work'); - expect(actual.stderr).toEqual(''); + await x('git', ['add', 'commitlint.config.js'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); + const result = cli(['--last', '--verbose'], {cwd})(); + const output = await result; + expect(output.stdout.trim()).toContain('0 problems, 0 warnings'); + expect(output.stdout.trim()).toContain('test: this should work'); + expect(output.stderr).toEqual(''); }); test('regression test for running with --last flag', async () => { const cwd = await gitBootstrap('fixtures/last-flag-regression'); - await execa('git', ['add', 'commitlint.config.js'], {cwd}); - await execa('git', ['commit', '-m', '"test: this should work"'], {cwd}); - const actual = await cli(['--last', '--verbose'], {cwd})(); - expect(actual.stdout).toContain('0 problems, 0 warnings'); - expect(actual.stdout).toContain('test: this should work'); - expect(actual.stderr).toEqual(''); + await x('git', ['add', 'commitlint.config.js'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); + const result = cli(['--last', '--verbose'], {cwd})(); + const output = await result; + expect(output.stdout.trim()).toContain('0 problems, 0 warnings'); + expect(output.stdout.trim()).toContain('test: this should work'); + expect(output.stderr).toEqual(''); }); test('should produce no output with --quiet flag', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['--quiet'], {cwd})('foo: bar'); - expect(actual.stdout).toEqual(''); - expect(actual.stderr).toEqual(''); + const result = cli(['--quiet'], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toEqual(''); + expect(output.stderr).toEqual(''); }); test('should produce no output with -q flag', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['-q'], {cwd})('foo: bar'); - expect(actual.stdout).toEqual(''); - expect(actual.stderr).toEqual(''); + const result = cli(['-q'], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toEqual(''); + expect(output.stderr).toEqual(''); }); test('should produce help for empty config', async () => { const cwd = await gitBootstrap('fixtures/empty'); - const actual = await cli([], {cwd})('foo: bar'); - expect(actual.stdout).toContain('Please add rules'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toContain('Please add rules'); + expect(result.exitCode).toBe(ExitCode.CommitlintInvalidArgument); }); test('should produce help for problems', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli([], {cwd})('foo: bar'); - expect(actual.stdout).toContain( + const result = cli([], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toContain( 'Get help: https://github.com/conventional-changelog/commitlint/#what-is-commitlint' ); - expect(actual.exitCode).toBe(1); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should produce help for problems with correct helpurl', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli( + const result = cli( ['-H https://github.com/conventional-changelog/commitlint/#testhelpurl'], {cwd} )('foo: bar'); - expect(actual.stdout).toContain( + const output = await result; + expect(output.stdout.trim()).toContain( 'Get help: https://github.com/conventional-changelog/commitlint/#testhelpurl' ); - expect(actual.exitCode).toBe(1); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should fail for input from stdin without rules', async () => { const cwd = await gitBootstrap('fixtures/empty'); - const actual = await cli([], {cwd})('foo: bar'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('foo: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintInvalidArgument); }); test('should succeed for input from stdin with rules', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli([], {cwd})('type: bar'); - expect(actual.exitCode).toBe(0); + const result = cli([], {cwd})('type: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should fail for input from stdin with rule from rc', async () => { const cwd = await gitBootstrap('fixtures/simple'); - const actual = await cli([], {cwd})('foo: bar'); - expect(actual.stdout).toContain('type must not be one of [foo]'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toContain('type must not be one of [foo]'); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should work with --config option', async () => { const file = 'config/commitlint.config.js'; const cwd = await gitBootstrap('fixtures/specify-config-file'); - const actual = await cli(['--config', file], {cwd})('foo: bar'); - expect(actual.stdout).toContain('type must not be one of [foo]'); - expect(actual.exitCode).toBe(1); + const result = cli(['--config', file], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toContain('type must not be one of [foo]'); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should fail for input from stdin with rule from js', async () => { const cwd = await gitBootstrap('fixtures/extends-root'); - const actual = await cli(['--extends', './extended'], {cwd})('foo: bar'); - expect(actual.stdout).toContain('type must not be one of [foo]'); - expect(actual.exitCode).toBe(1); + const result = cli(['--extends', './extended'], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toContain('type must not be one of [foo]'); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should output help URL defined in config file', async () => { const cwd = await gitBootstrap('fixtures/help-url'); - const actual = await cli([], {cwd})('foo: bar'); - expect(actual.stdout).toContain('Get help: https://www.example.com/foo'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toContain( + 'Get help: https://www.example.com/foo' + ); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should produce no error output with --quiet flag', async () => { const cwd = await gitBootstrap('fixtures/simple'); - const actual = await cli(['--quiet'], {cwd})('foo: bar'); - expect(actual.stdout).toEqual(''); - expect(actual.stderr).toEqual(''); - expect(actual.exitCode).toBe(1); + const result = cli(['--quiet'], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toEqual(''); + expect(output.stderr).toEqual(''); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should produce no error output with -q flag', async () => { const cwd = await gitBootstrap('fixtures/simple'); - const actual = await cli(['-q'], {cwd})('foo: bar'); - expect(actual.stdout).toEqual(''); - expect(actual.stderr).toEqual(''); - expect(actual.exitCode).toBe(1); + const result = cli(['-q'], {cwd})('foo: bar'); + const output = await result; + expect(output.stdout.trim()).toEqual(''); + expect(output.stderr).toEqual(''); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should work with husky commitmsg hook and git commit', async () => { const cwd = await gitBootstrap('fixtures/husky/integration'); await writePkg({husky: {hooks: {'commit-msg': `'${bin}' -e`}}}, {cwd}); - // await execa('npm', ['install'], {cwd}); // npm install is failing on windows machines - await execa('git', ['add', 'package.json'], {cwd}); - const commit = await execa( - 'git', - ['commit', '-m', '"test: this should work"'], - {cwd} - ); + // await x('npm', ['install'], { nodeOptions: {cwd}}); // npm install is failing on windows machines + await x('git', ['add', 'package.json'], {nodeOptions: {cwd}}); + const commit = await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); expect(commit).toBeTruthy(); }); @@ -191,13 +218,11 @@ test('should work with husky commitmsg hook in sub packages', async () => { const cwd = path.join(upper, 'integration'); await writePkg({husky: {hooks: {'commit-msg': `'${bin}' -e`}}}, {cwd: upper}); - // await execa('npm', ['install'], {cwd}); // npm install is failing on windows machines - await execa('git', ['add', 'package.json'], {cwd}); - const commit = await execa( - 'git', - ['commit', '-m', '"test: this should work"'], - {cwd} - ); + // await x('npm', ['install'], { nodeOptions: {cwd}}); // npm install is failing on windows machines + await x('git', ['add', 'package.json'], {nodeOptions: {cwd}}); + const commit = await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); expect(commit).toBeTruthy(); }); @@ -208,13 +233,11 @@ test('should work with husky via commitlint -e $GIT_PARAMS', async () => { {cwd} ); - // await execa('npm', ['install'], {cwd}); // npm install is failing on windows machines - await execa('git', ['add', 'package.json'], {cwd}); - const commit = await execa( - 'git', - ['commit', '-m', '"test: this should work"'], - {cwd} - ); + // await x('npm', ['install'], { nodeOptions: {cwd}}); // npm install is failing on windows machines + await x('git', ['add', 'package.json'], {nodeOptions: {cwd}}); + const commit = await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); expect(commit).toBeTruthy(); }); @@ -225,13 +248,11 @@ test('should work with husky via commitlint -e %GIT_PARAMS%', async () => { {cwd} ); - // await execa('npm', ['install'], {cwd}); // npm install is failing on windows machines - await execa('git', ['add', 'package.json'], {cwd}); - const commit = await execa( - 'git', - ['commit', '-m', '"test: this should work"'], - {cwd} - ); + // await x('npm', ['install'], { nodeOptions: {cwd}}); // npm install is failing on windows machines + await x('git', ['add', 'package.json'], {nodeOptions: {cwd}}); + const commit = await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); expect(commit).toBeTruthy(); }); @@ -242,13 +263,11 @@ test('should work with husky via commitlint -e $HUSKY_GIT_PARAMS', async () => { {cwd} ); - // await execa('npm', ['install'], {cwd}); // npm install is failing on windows machines - await execa('git', ['add', 'package.json'], {cwd}); - const commit = await execa( - 'git', - ['commit', '-m', '"test: this should work"'], - {cwd} - ); + // await x('npm', ['install'], { nodeOptions: {cwd}}); // npm install is failing on windows machines + await x('git', ['add', 'package.json'], {nodeOptions: {cwd}}); + const commit = await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); expect(commit).toBeTruthy(); }); @@ -259,24 +278,23 @@ test('should work with husky via commitlint -e %HUSKY_GIT_PARAMS%', async () => {cwd} ); - // await execa('npm', ['install'], {cwd}); // npm install is failing on windows machines - await execa('git', ['add', 'package.json'], {cwd}); - const commit = await execa( - 'git', - ['commit', '-m', '"test: this should work"'], - {cwd} - ); + // await x('npm', ['install'], { nodeOptions: {cwd}}); // npm install is failing on windows machines + await x('git', ['add', 'package.json'], {nodeOptions: {cwd}}); + const commit = await x('git', ['commit', '-m', '"test: this should work"'], { + nodeOptions: {cwd}, + }); expect(commit).toBeTruthy(); }); test('should allow reading of environment variables for edit file, succeeding if valid', async () => { const cwd = await gitBootstrap('fixtures/simple'); await fs.writeFile(path.join(cwd, 'commit-msg-file'), 'foo'); - const actual = await cli(['--env', 'variable'], { + const result = cli(['--env', 'variable'], { cwd, env: {variable: 'commit-msg-file'}, })(); - expect(actual.exitCode).toBe(0); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should allow reading of environment variables for edit file, failing if invalid', async () => { @@ -285,74 +303,81 @@ test('should allow reading of environment variables for edit file, failing if in path.join(cwd, 'commit-msg-file'), 'foo: bar\n\nFoo bar bizz buzz.\n\nCloses #123.' ); - const actual = await cli(['--env', 'variable'], { + const result = cli(['--env', 'variable'], { cwd, env: {variable: 'commit-msg-file'}, })(); - expect(actual.exitCode).toBe(1); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should pick up parser preset and fail accordingly', async () => { const cwd = await gitBootstrap('fixtures/parser-preset'); - const actual = await cli(['--parser-preset', './parser-preset'], {cwd})( + const result = cli(['--parser-preset', './parser-preset'], {cwd})( 'type(scope): subject' ); - expect(actual.exitCode).toBe(1); - expect(actual.stdout).toContain('may not be empty'); + const output = await result; + expect(output.stdout.trim()).toContain('may not be empty'); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should pick up parser preset and succeed accordingly', async () => { const cwd = await gitBootstrap('fixtures/parser-preset'); - const actual = await cli(['--parser-preset', './parser-preset'], {cwd})( + const result = cli(['--parser-preset', './parser-preset'], {cwd})( '----type(scope): subject' ); - expect(actual.exitCode).toBe(0); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should pick up config from outside git repo and fail accordingly', async () => { const outer = await fixBootstrap('fixtures/outer-scope'); const cwd = await git.init(path.join(outer, 'inner-scope')); - const actual = await cli([], {cwd})('inner: bar'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('inner: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should pick up config from outside git repo and succeed accordingly', async () => { const outer = await fixBootstrap('fixtures/outer-scope'); const cwd = await git.init(path.join(outer, 'inner-scope')); - const actual = await cli([], {cwd})('outer: bar'); - expect(actual.exitCode).toBe(0); + const result = cli([], {cwd})('outer: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should pick up config from inside git repo with precedence and succeed accordingly', async () => { const outer = await fixBootstrap('fixtures/inner-scope'); const cwd = await git.init(path.join(outer, 'inner-scope')); - const actual = await cli([], {cwd})('inner: bar'); - expect(actual.exitCode).toBe(0); + const result = cli([], {cwd})('inner: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should pick up config from inside git repo with precedence and fail accordingly', async () => { const outer = await fixBootstrap('fixtures/inner-scope'); const cwd = await git.init(path.join(outer, 'inner-scope')); - const actual = await cli([], {cwd})('outer: bar'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('outer: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should handle --amend with signoff', async () => { const cwd = await gitBootstrap('fixtures/signoff'); await writePkg({husky: {hooks: {'commit-msg': `'${bin}' -e`}}}, {cwd}); - // await execa('npm', ['install'], {cwd}); // npm install is failing on windows machines - await execa('git', ['add', 'package.json'], {cwd}); - await execa( - 'git', - ['commit', '-m', '"test: this should work"', '--signoff'], - {cwd} - ); - const commit = await execa('git', ['commit', '--amend', '--no-edit'], {cwd}); + // await x('npm', ['install'], { nodeOptions: {cwd}}); // npm install is failing on windows machines + await x('git', ['add', 'package.json'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', '"test: this should work"', '--signoff'], { + nodeOptions: {cwd}, + }); + const commit = await x('git', ['commit', '--amend', '--no-edit'], { + nodeOptions: {cwd}, + }); expect(commit).toBeTruthy(); }, 10000); @@ -361,9 +386,10 @@ test('it uses parserOpts.commentChar when not using edit mode', async () => { const cwd = await gitBootstrap('fixtures/comment-char'); const input = 'header: foo\n$body\n'; - const actual = await cli([], {cwd})(input); - expect(actual.stdout).toContain('[body-empty]'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})(input); + const output = await result; + expect(output.stdout.trim()).toContain('[body-empty]'); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test("it doesn't use parserOpts.commentChar when using edit mode", async () => { @@ -373,22 +399,26 @@ test("it doesn't use parserOpts.commentChar when using edit mode", async () => { 'header: foo\n\n$body\n' ); - const actual = await cli(['--edit', '.git/COMMIT_EDITMSG'], {cwd})(); - expect(actual.stdout).not.toContain('[body-empty]'); - expect(actual.exitCode).toBe(0); + const result = cli(['--edit', '.git/COMMIT_EDITMSG'], {cwd})(); + const output = await result; + expect(output.stdout.trim()).not.toContain('[body-empty]'); + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('it uses core.commentChar git config when using edit mode', async () => { const cwd = await gitBootstrap('fixtures/comment-char'); - await execa('git', ['config', '--local', 'core.commentChar', '$'], {cwd}); + await x('git', ['config', '--local', 'core.commentChar', '$'], { + nodeOptions: {cwd}, + }); await fs.writeFile( path.join(cwd, '.git', 'COMMIT_EDITMSG'), 'header: foo\n\n$body\n' ); - const actual = await cli(['--edit', '.git/COMMIT_EDITMSG'], {cwd})(); - expect(actual.stdout).toContain('[body-empty]'); - expect(actual.exitCode).toBe(1); + const result = cli(['--edit', '.git/COMMIT_EDITMSG'], {cwd})(); + const output = await result; + expect(output.stdout.trim()).toContain('[body-empty]'); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('it falls back to # for core.commentChar when using edit mode', async () => { @@ -398,89 +428,96 @@ test('it falls back to # for core.commentChar when using edit mode', async () => 'header: foo\n\n#body\n' ); - const actual = await cli(['--edit', '.git/COMMIT_EDITMSG'], {cwd})(); - expect(actual.stdout).toContain('[body-empty]'); - expect(actual.stderr).toEqual(''); - expect(actual.exitCode).toBe(1); + const result = cli(['--edit', '.git/COMMIT_EDITMSG'], {cwd})(); + const output = await result; + expect(output.stdout.trim()).toContain('[body-empty]'); + expect(output.stderr).toEqual(''); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should handle linting with issue prefixes', async () => { const cwd = await gitBootstrap('fixtures/issue-prefixes'); - const actual = await cli([], {cwd})('foobar REF-1'); - expect(actual.exitCode).toBe(0); + const result = cli([], {cwd})('foobar REF-1'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }, 10000); test('should print full commit message when input from stdin fails', async () => { const cwd = await gitBootstrap('fixtures/simple'); const input = 'foo: bar\n\nFoo bar bizz buzz.\n\nCloses #123.'; // output text in plain text so we can compare it - const actual = await cli(['--color=false'], {cwd})(input); - - expect(actual.stdout).toContain(input); - expect(actual.exitCode).toBe(1); + const result = cli(['--color=false'], {cwd})(input); + const output = await result; + expect(output.stdout.trim()).toContain(input); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should not print commit message fully or partially when input succeeds', async () => { const cwd = await gitBootstrap('fixtures/default'); const message = 'type: bar\n\nFoo bar bizz buzz.\n\nCloses #123.'; // output text in plain text so we can compare it - const actual = await cli(['--color=false'], {cwd})(message); - - expect(actual.stdout).not.toContain(message); - expect(actual.stdout).not.toContain(message.split('\n')[0]); - expect(actual.exitCode).toBe(0); + const result = cli(['--color=false'], {cwd})(message); + const output = await result; + expect(output.stdout.trim()).not.toContain(message); + expect(output.stdout.trim()).not.toContain(message.split('\n')[0]); + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should fail for invalid formatters from configuration', async () => { const cwd = await gitBootstrap('fixtures/custom-formatter'); - const actual = await cli([], {cwd})('foo: bar'); - - expect(actual.stderr).toContain( + const result = cli([], {cwd})('foo: bar'); + const output = await result; + expect(output.stderr).toContain( 'Using format custom-formatter, but cannot find the module' ); - expect(actual.stdout).toEqual(''); - expect(actual.exitCode).toBe(1); + expect(output.stdout.trim()).toEqual(''); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should skip linting if message matches ignores config', async () => { const cwd = await gitBootstrap('fixtures/ignores'); - const actual = await cli([], {cwd})('WIP'); - expect(actual.exitCode).toBe(0); + const result = cli([], {cwd})('WIP'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should not skip linting if message does not match ignores config', async () => { const cwd = await gitBootstrap('fixtures/ignores'); - const actual = await cli([], {cwd})('foo'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('foo'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should not skip linting if defaultIgnores is false', async () => { const cwd = await gitBootstrap('fixtures/default-ignores-false'); - const actual = await cli([], {cwd})('fixup! foo: bar'); - expect(actual.exitCode).toBe(1); + const result = cli([], {cwd})('fixup! foo: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should skip linting if defaultIgnores is true', async () => { const cwd = await gitBootstrap('fixtures/default-ignores-true'); - const actual = await cli([], {cwd})('fixup! foo: bar'); - expect(actual.exitCode).toBe(0); + const result = cli([], {cwd})('fixup! foo: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should skip linting if defaultIgnores is unset', async () => { const cwd = await gitBootstrap('fixtures/default-ignores-unset'); - const actual = await cli([], {cwd})('fixup! foo: bar'); - expect(actual.exitCode).toBe(0); + const result = cli([], {cwd})('fixup! foo: bar'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should fail for invalid formatters from flags', async () => { const cwd = await gitBootstrap('fixtures/custom-formatter'); - const actual = await cli(['--format', 'through-flag'], {cwd})('foo: bar'); - - expect(actual.stderr).toContain( + const result = cli(['--format', 'through-flag'], {cwd})('foo: bar'); + const output = await result; + expect(output.stderr).toContain( 'Using format through-flag, but cannot find the module' ); - expect(actual.stdout).toEqual(''); - expect(actual.exitCode).toBe(1); + expect(output.stdout.trim()).toEqual(''); + expect(result.exitCode).toBe(ExitCode.CommitlintErrorDefault); }); test('should work with absolute formatter path', async () => { @@ -489,12 +526,12 @@ test('should work with absolute formatter path', async () => { '../fixtures/custom-formatter/formatters/custom.js' ); const cwd = await gitBootstrap('fixtures/custom-formatter'); - const actual = await cli(['--format', formatterPath], {cwd})( + const result = cli(['--format', formatterPath], {cwd})( 'test: this should work' ); - - expect(actual.stdout).toContain('custom-formatter-ok'); - expect(actual.exitCode).toBe(0); + const output = await result; + expect(output.stdout.trim()).toContain('custom-formatter-ok'); + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should work with relative formatter path', async () => { @@ -502,37 +539,41 @@ test('should work with relative formatter path', async () => { await gitBootstrap('fixtures/custom-formatter'), './formatters' ); - const actual = await cli(['--format', './custom.js'], {cwd})( + const result = cli(['--format', './custom.js'], {cwd})( 'test: this should work' ); - - expect(actual.stdout).toContain('custom-formatter-ok'); - expect(actual.exitCode).toBe(0); + const output = await result; + expect(output.stdout.trim()).toContain('custom-formatter-ok'); + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('strict: should exit with 3 on error', async () => { const cwd = await gitBootstrap('fixtures/warning'); - const actual = await cli(['--strict'], {cwd})('foo: abcdef'); - expect(actual.exitCode).toBe(3); + const result = cli(['--strict'], {cwd})('foo: abcdef'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitLintError); }); test('strict: should exit with 2 on warning', async () => { const cwd = await gitBootstrap('fixtures/warning'); - const actual = await cli(['--strict'], {cwd})('feat: abcdef'); - expect(actual.exitCode).toBe(2); + const result = cli(['--strict'], {cwd})('feat: abcdef'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitLintWarning); }); test('strict: should exit with 0 on success', async () => { const cwd = await gitBootstrap('fixtures/warning'); - const actual = await cli(['--strict'], {cwd})('feat: abc'); - expect(actual.exitCode).toBe(0); + const result = cli(['--strict'], {cwd})('feat: abc'); + await result; + expect(result.exitCode).toBe(ExitCode.CommitlintDefault); }); test('should print help', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['--help'], {cwd})(); + const result = cli(['--help'], {cwd})(); + const output = await result; const version = require('../package.json').version; - const stdout = actual.stdout.replace(`@${version}`, '@dev'); + const stdout = output.stdout.trim().replace(`@${version}`, '@dev'); expect(stdout).toMatchInlineSnapshot(` "@commitlint/cli@dev - Lint your commit messages @@ -565,16 +606,18 @@ test('should print help', async () => { test('should print version', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['--version'], {cwd})(); - expect(actual.stdout).toMatch('@commitlint/cli@'); + const result = cli(['--version'], {cwd})(); + const output = await result; + expect(output.stdout.trim()).toMatch('@commitlint/cli@'); }); describe('should print config', () => { test('should print config when flag is present but without value', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['--print-config', 'text', '--no-color'], {cwd})(); - - const stdout = actual.stdout + const result = cli(['--print-config', 'text', '--no-color'], {cwd})(); + const output = await result; + const stdout = output.stdout + .trim() .replace(/^{[^\n]/g, '{\n ') .replace(/[^\n]}$/g, '\n}') .replace(/(helpUrl:)\n[ ]+/, '$1 '); @@ -595,9 +638,10 @@ describe('should print config', () => { test('should print config when flag has `text` value', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['--print-config=text', '--no-color'], {cwd})(); - - const stdout = actual.stdout + const result = cli(['--print-config=text', '--no-color'], {cwd})(); + const output = await result; + const stdout = output.stdout + .trim() .replace(/^{[^\n]/g, '{\n ') .replace(/[^\n]}$/g, '\n}') .replace(/(helpUrl:)\n[ ]+/, '$1 '); @@ -618,9 +662,9 @@ describe('should print config', () => { test('should print config when flag has `json` value', async () => { const cwd = await gitBootstrap('fixtures/default'); - const actual = await cli(['--print-config=json', '--no-color'], {cwd})(); - - expect(actual.stdout).toMatchInlineSnapshot( + const result = cli(['--print-config=json', '--no-color'], {cwd})(); + const output = await result; + expect(output.stdout.trim()).toMatchInlineSnapshot( `"{"extends":[],"formatter":"@commitlint/format","plugins":{},"rules":{"type-enum":[2,"never",["foo"]]},"helpUrl":"https://github.com/conventional-changelog/commitlint/#what-is-commitlint","prompt":{}}"` ); }); diff --git a/@commitlint/cli/src/cli.ts b/@commitlint/cli/src/cli.ts index 5375fa6f2e..421eeb692b 100644 --- a/@commitlint/cli/src/cli.ts +++ b/@commitlint/cli/src/cli.ts @@ -15,12 +15,12 @@ import type { UserConfig, } from '@commitlint/types'; import type {Options} from 'conventional-commits-parser'; -import {execa, type ExecaError} from 'execa'; +import {x} from 'tinyexec'; import yargs, {type Arguments} from 'yargs'; import {CliFlags} from './types.js'; -import {CliError} from './cli-error.js'; +import {CliError, ExitCode} from './cli-error.js'; const require = createRequire(import.meta.url); @@ -297,20 +297,18 @@ async function main(args: MainArgs): Promise { // If reading from `.git/COMMIT_EDIT_MSG`, strip comments using // core.commentChar from git configuration, falling back to '#'. if (flags.edit) { - try { - const {stdout} = await execa('git', ['config', 'core.commentChar']); - opts.parserOpts.commentChar = stdout.trim() || gitDefaultCommentChar; - } catch (e) { - const execaError = e as ExecaError; - // git config returns exit code 1 when the setting is unset, - // don't warn in this case. - if (!execaError.failed || execaError.exitCode !== 1) { - console.warn( - 'Could not determine core.commentChar git configuration', - e - ); - } + const result = x('git', ['config', 'core.commentChar']); + const output = await result; + + if (result.exitCode && result.exitCode > 1) { + console.warn( + 'Could not determine core.commentChar git configuration', + output.stderr + ); opts.parserOpts.commentChar = gitDefaultCommentChar; + } else { + opts.parserOpts.commentChar = + output.stdout.trim() || gitDefaultCommentChar; } } @@ -318,6 +316,7 @@ async function main(args: MainArgs): Promise { messages.map((message) => lint(message, loaded.rules, opts)) ); + let isRulesEmpty = false; if (Object.keys(loaded.rules).length === 0) { let input = ''; @@ -342,6 +341,8 @@ async function main(args: MainArgs): Promise { warnings: [], input, }); + + isRulesEmpty = true; } const report = results.reduce<{ @@ -380,12 +381,15 @@ async function main(args: MainArgs): Promise { if (flags.strict) { if (report.errorCount > 0) { - throw new CliError(output, pkg.name, 3); + throw new CliError(output, pkg.name, ExitCode.CommitLintError); } if (report.warningCount > 0) { - throw new CliError(output, pkg.name, 2); + throw new CliError(output, pkg.name, ExitCode.CommitLintWarning); } } + if (isRulesEmpty) { + throw new CliError(output, pkg.name, ExitCode.CommitlintInvalidArgument); + } if (!report.valid) { throw new CliError(output, pkg.name); } diff --git a/@commitlint/config-angular-type-enum/CHANGELOG.md b/@commitlint/config-angular-type-enum/CHANGELOG.md index 27f7985ca1..d4afe2cdd5 100644 --- a/@commitlint/config-angular-type-enum/CHANGELOG.md +++ b/@commitlint/config-angular-type-enum/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-angular-type-enum + + + + + # [19.1.0](https://github.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0) (2024-03-12) diff --git a/@commitlint/config-angular-type-enum/package.json b/@commitlint/config-angular-type-enum/package.json index 59f2556ffa..2f8dcbf096 100644 --- a/@commitlint/config-angular-type-enum/package.json +++ b/@commitlint/config-angular-type-enum/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-angular-type-enum", "type": "module", - "version": "19.1.0", + "version": "19.5.0", "description": "Shareable commitlint config enforcing the angular commit convention types", "main": "index.js", "files": [ @@ -32,7 +32,7 @@ "node": ">=v18" }, "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" } diff --git a/@commitlint/config-angular/CHANGELOG.md b/@commitlint/config-angular/CHANGELOG.md index d7346e8156..1dd3f06d59 100644 --- a/@commitlint/config-angular/CHANGELOG.md +++ b/@commitlint/config-angular/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-angular + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/config-angular diff --git a/@commitlint/config-angular/package.json b/@commitlint/config-angular/package.json index d4400cc233..5736bde7ac 100644 --- a/@commitlint/config-angular/package.json +++ b/@commitlint/config-angular/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-angular", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Shareable commitlint config enforcing the angular commit convention", "main": "index.js", "files": [ @@ -32,11 +32,11 @@ "node": ">=v18" }, "devDependencies": { - "@commitlint/lint": "^19.4.1", - "@commitlint/utils": "^19.0.0" + "@commitlint/lint": "^19.5.0", + "@commitlint/utils": "^19.5.0" }, "dependencies": { - "@commitlint/config-angular-type-enum": "^19.1.0" + "@commitlint/config-angular-type-enum": "^19.5.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" } diff --git a/@commitlint/config-conventional/CHANGELOG.md b/@commitlint/config-conventional/CHANGELOG.md index eadcf4210a..5261526f8b 100644 --- a/@commitlint/config-conventional/CHANGELOG.md +++ b/@commitlint/config-conventional/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-conventional + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/config-conventional diff --git a/@commitlint/config-conventional/package.json b/@commitlint/config-conventional/package.json index 45214ff06d..aa608a87fe 100644 --- a/@commitlint/config-conventional/package.json +++ b/@commitlint/config-conventional/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-conventional", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Shareable commitlint config enforcing conventional commits", "main": "lib/index.js", "files": [ @@ -35,11 +35,11 @@ "node": ">=v18" }, "devDependencies": { - "@commitlint/lint": "^19.4.1", - "@commitlint/utils": "^19.0.0" + "@commitlint/lint": "^19.5.0", + "@commitlint/utils": "^19.5.0" }, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-conventionalcommits": "^7.0.2" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" diff --git a/@commitlint/config-lerna-scopes/CHANGELOG.md b/@commitlint/config-lerna-scopes/CHANGELOG.md index 7228504c8a..c10b62fe38 100644 --- a/@commitlint/config-lerna-scopes/CHANGELOG.md +++ b/@commitlint/config-lerna-scopes/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-lerna-scopes + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@commitlint/config-lerna-scopes/package.json b/@commitlint/config-lerna-scopes/package.json index 3f9daa6d63..f17da8b815 100644 --- a/@commitlint/config-lerna-scopes/package.json +++ b/@commitlint/config-lerna-scopes/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-lerna-scopes", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "Shareable commitlint config enforcing lerna package and workspace names as scopes", "main": "index.js", "files": [ @@ -46,8 +46,8 @@ "semver": "^7.6.0" }, "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0", + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0", "@types/glob": "^8.1.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" diff --git a/@commitlint/config-nx-scopes/CHANGELOG.md b/@commitlint/config-nx-scopes/CHANGELOG.md index 90779ca9a7..2566cbecd1 100644 --- a/@commitlint/config-nx-scopes/CHANGELOG.md +++ b/@commitlint/config-nx-scopes/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-nx-scopes + + + + + ## [19.3.1](https://github.com/conventional-changelog/commitlint/compare/v19.3.0...v19.3.1) (2024-05-13) **Note:** Version bump only for package @commitlint/config-nx-scopes diff --git a/@commitlint/config-nx-scopes/package.json b/@commitlint/config-nx-scopes/package.json index de411a3a7f..da6825fe76 100644 --- a/@commitlint/config-nx-scopes/package.json +++ b/@commitlint/config-nx-scopes/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-nx-scopes", "type": "module", - "version": "19.3.1", + "version": "19.5.0", "description": "Shareable commitlint config enforcing nx project names as scopes", "main": "index.js", "files": [ @@ -40,11 +40,11 @@ "node": ">=v18" }, "dependencies": { - "@commitlint/types": "^19.0.3" + "@commitlint/types": "^19.5.0" }, "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/config-patternplate/CHANGELOG.md b/@commitlint/config-patternplate/CHANGELOG.md index 9c0576b8c0..a09ddb4eee 100644 --- a/@commitlint/config-patternplate/CHANGELOG.md +++ b/@commitlint/config-patternplate/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-patternplate + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/config-patternplate diff --git a/@commitlint/config-patternplate/package.json b/@commitlint/config-patternplate/package.json index 27c6311f1c..77be436990 100644 --- a/@commitlint/config-patternplate/package.json +++ b/@commitlint/config-patternplate/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-patternplate", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint your commits, patternplate-style", "main": "index.js", "files": [ @@ -32,12 +32,12 @@ "node": ">=v18" }, "dependencies": { - "@commitlint/config-angular": "^19.4.1", + "@commitlint/config-angular": "^19.5.0", "glob": "^10.3.10", "lodash.merge": "^4.6.2" }, "devDependencies": { - "@commitlint/utils": "^19.0.0", + "@commitlint/utils": "^19.5.0", "@types/lodash.merge": "^4.6.8" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" diff --git a/@commitlint/config-pnpm-scopes/CHANGELOG.md b/@commitlint/config-pnpm-scopes/CHANGELOG.md index 071ad3ab41..66f5ce6aaa 100644 --- a/@commitlint/config-pnpm-scopes/CHANGELOG.md +++ b/@commitlint/config-pnpm-scopes/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-pnpm-scopes + + + + + # [19.1.0](https://github.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0) (2024-03-12) diff --git a/@commitlint/config-pnpm-scopes/package.json b/@commitlint/config-pnpm-scopes/package.json index e5a3d7e8b6..32a81a8ed0 100644 --- a/@commitlint/config-pnpm-scopes/package.json +++ b/@commitlint/config-pnpm-scopes/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-pnpm-scopes", "type": "module", - "version": "19.1.0", + "version": "19.5.0", "description": "Shareable commitlint config enforcing pnpm workspaces names as scopes", "main": "index.js", "files": [ @@ -37,7 +37,7 @@ "read-yaml-file": "^2.1.0" }, "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0" } } diff --git a/@commitlint/config-rush-scopes/CHANGELOG.md b/@commitlint/config-rush-scopes/CHANGELOG.md index 5bfd46a170..ec6998b39f 100644 --- a/@commitlint/config-rush-scopes/CHANGELOG.md +++ b/@commitlint/config-rush-scopes/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-rush-scopes + + + + + # [19.1.0](https://github.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0) (2024-03-12) diff --git a/@commitlint/config-rush-scopes/package.json b/@commitlint/config-rush-scopes/package.json index 1b5364605f..62a9283dc0 100644 --- a/@commitlint/config-rush-scopes/package.json +++ b/@commitlint/config-rush-scopes/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-rush-scopes", "type": "module", - "version": "19.1.0", + "version": "19.5.0", "description": "Shareable commitlint config enforcing rush package and workspace names as scopes", "main": "index.js", "files": [ @@ -38,7 +38,7 @@ "jsonc": "^2.0.0" }, "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0" } } diff --git a/@commitlint/config-validator/CHANGELOG.md b/@commitlint/config-validator/CHANGELOG.md index 1f38610acf..aaf0d34413 100644 --- a/@commitlint/config-validator/CHANGELOG.md +++ b/@commitlint/config-validator/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/config-validator + + + + + ## [19.0.3](https://github.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3) (2024-02-28) **Note:** Version bump only for package @commitlint/config-validator diff --git a/@commitlint/config-validator/package.json b/@commitlint/config-validator/package.json index 5bdd59fa65..bc0432d798 100644 --- a/@commitlint/config-validator/package.json +++ b/@commitlint/config-validator/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/config-validator", "type": "module", - "version": "19.0.3", + "version": "19.5.0", "description": "config validator for commitlint.config.js", "main": "lib/validate.js", "types": "lib/validate.d.ts", @@ -36,10 +36,10 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "ajv": "^8.11.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" diff --git a/@commitlint/core/CHANGELOG.md b/@commitlint/core/CHANGELOG.md index 09c17e783f..f5b8142539 100644 --- a/@commitlint/core/CHANGELOG.md +++ b/@commitlint/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/core + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/core diff --git a/@commitlint/core/package.json b/@commitlint/core/package.json index ca261dcb84..e082044c06 100644 --- a/@commitlint/core/package.json +++ b/@commitlint/core/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/core", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/core.js", "types": "lib/core.d.ts", @@ -36,13 +36,13 @@ }, "license": "MIT", "dependencies": { - "@commitlint/format": "^19.3.0", - "@commitlint/lint": "^19.4.1", - "@commitlint/load": "^19.4.0", - "@commitlint/read": "^19.4.0" + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0" }, "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/cz-commitlint/CHANGELOG.md b/@commitlint/cz-commitlint/CHANGELOG.md index 7976790164..cf62912c97 100644 --- a/@commitlint/cz-commitlint/CHANGELOG.md +++ b/@commitlint/cz-commitlint/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/cz-commitlint + + + + + # [19.4.0](https://github.com/conventional-changelog/commitlint/compare/v19.3.1...v19.4.0) (2024-08-07) **Note:** Version bump only for package @commitlint/cz-commitlint diff --git a/@commitlint/cz-commitlint/package.json b/@commitlint/cz-commitlint/package.json index b9451521c2..a971e19677 100644 --- a/@commitlint/cz-commitlint/package.json +++ b/@commitlint/cz-commitlint/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/cz-commitlint", "type": "module", - "version": "19.4.0", + "version": "19.5.0", "description": "Commitizen adapter using the commitlint.config.js", "main": "./lib/index.js", "exports": { @@ -43,9 +43,9 @@ } }, "dependencies": { - "@commitlint/ensure": "^19.0.3", - "@commitlint/load": "^19.4.0", - "@commitlint/types": "^19.0.3", + "@commitlint/ensure": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0", "lodash.isplainobject": "^4.0.6", "word-wrap": "^1.2.5" diff --git a/@commitlint/cz-commitlint/src/Question.ts b/@commitlint/cz-commitlint/src/Question.ts index 58546c260e..a641a4436a 100644 --- a/@commitlint/cz-commitlint/src/Question.ts +++ b/@commitlint/cz-commitlint/src/Question.ts @@ -187,7 +187,9 @@ export default class Question { } protected decorateMessage(_answers: Answers): string { - this.beforeQuestionStart && this.beforeQuestionStart(_answers); + if (this.beforeQuestionStart) { + this.beforeQuestionStart(_answers); + } if (this.question.type === 'input') { const countLimitMessage = (() => { const messages = []; diff --git a/@commitlint/ensure/CHANGELOG.md b/@commitlint/ensure/CHANGELOG.md index 2d15ce8bc7..2d6bc9be75 100644 --- a/@commitlint/ensure/CHANGELOG.md +++ b/@commitlint/ensure/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/ensure + + + + + ## [19.0.3](https://github.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3) (2024-02-28) **Note:** Version bump only for package @commitlint/ensure diff --git a/@commitlint/ensure/package.json b/@commitlint/ensure/package.json index c9a129c483..b91140531f 100644 --- a/@commitlint/ensure/package.json +++ b/@commitlint/ensure/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/ensure", "type": "module", - "version": "19.0.3", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,7 +36,7 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/utils": "^19.0.0", + "@commitlint/utils": "^19.5.0", "@types/lodash.camelcase": "^4.3.8", "@types/lodash.kebabcase": "^4.1.8", "@types/lodash.snakecase": "^4.1.8", @@ -45,7 +45,7 @@ "glob": "^10.3.10" }, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", diff --git a/@commitlint/execute-rule/CHANGELOG.md b/@commitlint/execute-rule/CHANGELOG.md index 4843c02143..b1eb18846e 100644 --- a/@commitlint/execute-rule/CHANGELOG.md +++ b/@commitlint/execute-rule/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/execute-rule + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@commitlint/execute-rule/package.json b/@commitlint/execute-rule/package.json index bd82517ae8..ee3c604a58 100644 --- a/@commitlint/execute-rule/package.json +++ b/@commitlint/execute-rule/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/execute-rule", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,7 +36,7 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" } diff --git a/@commitlint/format/CHANGELOG.md b/@commitlint/format/CHANGELOG.md index d8ce304b6c..53374f880b 100644 --- a/@commitlint/format/CHANGELOG.md +++ b/@commitlint/format/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/format + + + + + # [19.3.0](https://github.com/conventional-changelog/commitlint/compare/v19.2.2...v19.3.0) (2024-04-23) diff --git a/@commitlint/format/package.json b/@commitlint/format/package.json index 9e18ee4ca7..3527d2e02f 100644 --- a/@commitlint/format/package.json +++ b/@commitlint/format/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/format", "type": "module", - "version": "19.3.0", + "version": "19.5.0", "description": "Format commitlint reports", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,10 +36,10 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" diff --git a/@commitlint/is-ignored/CHANGELOG.md b/@commitlint/is-ignored/CHANGELOG.md index af962a1669..e45a87cc1b 100644 --- a/@commitlint/is-ignored/CHANGELOG.md +++ b/@commitlint/is-ignored/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/is-ignored + + + + + ## [19.2.2](https://github.com/conventional-changelog/commitlint/compare/v19.2.1...v19.2.2) (2024-04-14) diff --git a/@commitlint/is-ignored/package.json b/@commitlint/is-ignored/package.json index df1cd3f512..62f1d227cd 100644 --- a/@commitlint/is-ignored/package.json +++ b/@commitlint/is-ignored/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/is-ignored", "type": "module", - "version": "19.2.2", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,13 +36,13 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/parse": "^19.0.3", - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0", "@types/semver": "^7.5.7" }, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "semver": "^7.6.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" diff --git a/@commitlint/lint/CHANGELOG.md b/@commitlint/lint/CHANGELOG.md index 377d6b734b..22422efc9f 100644 --- a/@commitlint/lint/CHANGELOG.md +++ b/@commitlint/lint/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/lint + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/lint diff --git a/@commitlint/lint/package.json b/@commitlint/lint/package.json index 77f53f252e..7e38b1ac7c 100644 --- a/@commitlint/lint/package.json +++ b/@commitlint/lint/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/lint", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint a string against commitlint rules", "main": "lib/lint.js", "types": "lib/lint.d.ts", @@ -36,14 +36,14 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0" }, "dependencies": { - "@commitlint/is-ignored": "^19.2.2", - "@commitlint/parse": "^19.0.3", - "@commitlint/rules": "^19.4.1", - "@commitlint/types": "^19.0.3" + "@commitlint/is-ignored": "^19.5.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/load/CHANGELOG.md b/@commitlint/load/CHANGELOG.md index 7f205cf9a7..96935d64e3 100644 --- a/@commitlint/load/CHANGELOG.md +++ b/@commitlint/load/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/load + + + + + # [19.4.0](https://github.com/conventional-changelog/commitlint/compare/v19.3.1...v19.4.0) (2024-08-07) **Note:** Version bump only for package @commitlint/load diff --git a/@commitlint/load/package.json b/@commitlint/load/package.json index 8fef35f2ea..353efefe42 100644 --- a/@commitlint/load/package.json +++ b/@commitlint/load/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/load", "type": "module", - "version": "19.4.0", + "version": "19.5.0", "description": "Load shared commitlint configuration", "main": "lib/load.js", "types": "lib/load.d.ts", @@ -36,7 +36,7 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/test": "^19.0.0", + "@commitlint/test": "^19.5.0", "@types/lodash.isplainobject": "^4.0.8", "@types/lodash.merge": "^4.6.8", "@types/lodash.uniq": "^4.5.8", @@ -45,10 +45,10 @@ "typescript": "^5.2.2" }, "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/execute-rule": "^19.0.0", - "@commitlint/resolve-extends": "^19.1.0", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0", "cosmiconfig": "^9.0.0", "cosmiconfig-typescript-loader": "^5.0.0", diff --git a/@commitlint/load/src/load.test.ts b/@commitlint/load/src/load.test.ts index 129c1944ed..f56850f510 100644 --- a/@commitlint/load/src/load.test.ts +++ b/@commitlint/load/src/load.test.ts @@ -493,9 +493,10 @@ test('does not mutate config module reference', async () => { }; const configPath = path.join(cwd, file); - const before = JSON.stringify(require(configPath)); + + const before = readFileSync(configPath, {encoding: 'utf-8'}); await load({rules}, {cwd, file}); - const after = JSON.stringify(require(configPath)); + const after = readFileSync(configPath, {encoding: 'utf-8'}); expect(after).toBe(before); }); diff --git a/@commitlint/message/CHANGELOG.md b/@commitlint/message/CHANGELOG.md index f4028208de..7242610d44 100644 --- a/@commitlint/message/CHANGELOG.md +++ b/@commitlint/message/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/message + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@commitlint/message/package.json b/@commitlint/message/package.json index 6560632e72..2c195d2279 100644 --- a/@commitlint/message/package.json +++ b/@commitlint/message/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/message", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,8 +36,8 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/parse/CHANGELOG.md b/@commitlint/parse/CHANGELOG.md index db89087bfa..dc653b986c 100644 --- a/@commitlint/parse/CHANGELOG.md +++ b/@commitlint/parse/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/parse + + + + + ## [19.0.3](https://github.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3) (2024-02-28) diff --git a/@commitlint/parse/package.json b/@commitlint/parse/package.json index 8116245883..fbfaca06d9 100644 --- a/@commitlint/parse/package.json +++ b/@commitlint/parse/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/parse", "type": "module", - "version": "19.0.3", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,12 +36,12 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0", + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0", "@types/conventional-commits-parser": "^5.0.0" }, "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" }, diff --git a/@commitlint/prompt-cli/CHANGELOG.md b/@commitlint/prompt-cli/CHANGELOG.md index b4a42e1520..e101b78d9d 100644 --- a/@commitlint/prompt-cli/CHANGELOG.md +++ b/@commitlint/prompt-cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/prompt-cli + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/prompt-cli diff --git a/@commitlint/prompt-cli/cli.js b/@commitlint/prompt-cli/cli.js index 36f45ef90e..155819526e 100755 --- a/@commitlint/prompt-cli/cli.js +++ b/@commitlint/prompt-cli/cli.js @@ -1,7 +1,7 @@ #!/usr/bin/env node import {prompter} from '@commitlint/prompt'; -import {execa} from 'execa'; import inquirer from 'inquirer'; +import {x} from 'tinyexec'; main().catch((err) => { setTimeout(() => { @@ -23,11 +23,11 @@ function main() { } function isStageEmpty() { - return execa('git', ['diff', '--cached']).then((r) => r.stdout === ''); + return x('git', ['diff', '--cached']).then((r) => r.stdout === ''); } function commit(message) { - const c = execa('git', ['commit', '-m', message]); - c.stdout.pipe(process.stdout); - c.stderr.pipe(process.stderr); + const result = x('git', ['commit', '-m', message]); + result.process.stdout.pipe(process.stdout); + result.process.stderr.pipe(process.stderr); } diff --git a/@commitlint/prompt-cli/cli.test.js b/@commitlint/prompt-cli/cli.test.js index 4414ace62c..0dc4085f87 100644 --- a/@commitlint/prompt-cli/cli.test.js +++ b/@commitlint/prompt-cli/cli.test.js @@ -1,7 +1,7 @@ import {test, expect} from 'vitest'; import {createRequire} from 'module'; import {git} from '@commitlint/test'; -import {execa} from 'execa'; +import {x} from 'tinyexec'; const require = createRequire(import.meta.url); @@ -9,12 +9,17 @@ const bin = require.resolve('./cli.js'); const cli = (args, options) => { return (input = '') => { - return execa(bin, args, { - cwd: options.cwd, - env: options.env, - input: input, - reject: false, + const result = x(bin, args, { + nodeOptions: { + cwd: options.cwd, + env: options.env, + }, }); + + result.process.stdin.write(input); + result.process.stdin.end(); + + return result; }; }; diff --git a/@commitlint/prompt-cli/package.json b/@commitlint/prompt-cli/package.json index a22d0a8952..88a24adb66 100644 --- a/@commitlint/prompt-cli/package.json +++ b/@commitlint/prompt-cli/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/prompt-cli", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "commit prompt using commitlint.config.js", "main": "cli.js", "files": [ @@ -34,13 +34,13 @@ "node": ">=v18" }, "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0" }, "dependencies": { - "@commitlint/prompt": "^19.4.1", - "execa": "^8.0.1", - "inquirer": "^9.2.15" + "@commitlint/prompt": "^19.5.0", + "inquirer": "^9.2.15", + "tinyexec": "^0.3.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/prompt/CHANGELOG.md b/@commitlint/prompt/CHANGELOG.md index 41df60ca83..a6ff0d7658 100644 --- a/@commitlint/prompt/CHANGELOG.md +++ b/@commitlint/prompt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/prompt + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/prompt diff --git a/@commitlint/prompt/package.json b/@commitlint/prompt/package.json index 59fb694c65..8d905658f1 100644 --- a/@commitlint/prompt/package.json +++ b/@commitlint/prompt/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/prompt", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "commitizen prompt using commitlint.config.js", "main": "./lib/index.js", "files": [ @@ -38,16 +38,16 @@ "node": ">=v18" }, "devDependencies": { - "@commitlint/config-angular": "^19.4.1", + "@commitlint/config-angular": "^19.5.0", "@commitlint/types": "^14.0.0", - "@commitlint/utils": "^19.0.0", + "@commitlint/utils": "^19.5.0", "@types/inquirer": "^9.0.7", "commitizen": "^4.2.4" }, "dependencies": { - "@commitlint/ensure": "^19.0.3", - "@commitlint/load": "^19.4.0", - "@commitlint/types": "^19.0.3", + "@commitlint/ensure": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0", "inquirer": "^9.2.15" }, diff --git a/@commitlint/read/CHANGELOG.md b/@commitlint/read/CHANGELOG.md index ea2b747379..b4c2a8b069 100644 --- a/@commitlint/read/CHANGELOG.md +++ b/@commitlint/read/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/read + + + + + # [19.4.0](https://github.com/conventional-changelog/commitlint/compare/v19.3.1...v19.4.0) (2024-08-07) diff --git a/@commitlint/read/package.json b/@commitlint/read/package.json index 73f0d6f20b..1010c62517 100644 --- a/@commitlint/read/package.json +++ b/@commitlint/read/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/read", "type": "module", - "version": "19.4.0", + "version": "19.5.0", "description": "Read commit messages from a specified range or last edit", "main": "lib/read.js", "types": "lib/read.d.ts", @@ -36,17 +36,17 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0", + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0", "@types/git-raw-commits": "^2.0.3", "@types/minimist": "^1.2.4" }, "dependencies": { - "@commitlint/top-level": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", "git-raw-commits": "^4.0.0", - "minimist": "^1.2.8" + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/read/src/read.test.ts b/@commitlint/read/src/read.test.ts index dc15042916..9d7fa9a12e 100644 --- a/@commitlint/read/src/read.test.ts +++ b/@commitlint/read/src/read.test.ts @@ -2,7 +2,7 @@ import {test, expect} from 'vitest'; import fs from 'fs/promises'; import path from 'path'; import {git} from '@commitlint/test'; -import {execa} from 'execa'; +import {x} from 'tinyexec'; import read from './read.js'; @@ -20,8 +20,8 @@ test('get edit commit message from git root', async () => { const cwd: string = await git.bootstrap(); await fs.writeFile(path.join(cwd, 'alpha.txt'), 'alpha'); - await execa('git', ['add', '.'], {cwd}); - await execa('git', ['commit', '-m', 'alpha'], {cwd}); + await x('git', ['add', '.'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', 'alpha'], {nodeOptions: {cwd}}); const expected = ['alpha\n\n']; const actual = await read({edit: true, cwd}); expect(actual).toEqual(expected); @@ -30,10 +30,10 @@ test('get edit commit message from git root', async () => { test('get history commit messages', async () => { const cwd: string = await git.bootstrap(); await fs.writeFile(path.join(cwd, 'alpha.txt'), 'alpha'); - await execa('git', ['add', 'alpha.txt'], {cwd}); - await execa('git', ['commit', '-m', 'alpha'], {cwd}); - await execa('git', ['rm', 'alpha.txt'], {cwd}); - await execa('git', ['commit', '-m', 'remove alpha'], {cwd}); + await x('git', ['add', 'alpha.txt'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', 'alpha'], {nodeOptions: {cwd}}); + await x('git', ['rm', 'alpha.txt'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', 'remove alpha'], {nodeOptions: {cwd}}); const expected = ['remove alpha\n\n', 'alpha\n\n']; const actual = await read({cwd}); @@ -45,8 +45,8 @@ test('get edit commit message from git subdirectory', async () => { await fs.mkdir(path.join(cwd, 'beta')); await fs.writeFile(path.join(cwd, 'beta/beta.txt'), 'beta'); - await execa('git', ['add', '.'], {cwd}); - await execa('git', ['commit', '-m', 'beta'], {cwd}); + await x('git', ['add', '.'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', 'beta'], {nodeOptions: {cwd}}); const expected = ['beta\n\n']; const actual = await read({edit: true, cwd}); @@ -59,14 +59,14 @@ test('get edit commit message while skipping first commit', async () => { await fs.writeFile(path.join(cwd, 'beta/beta.txt'), 'beta'); await fs.writeFile(path.join(cwd, 'alpha.txt'), 'alpha'); - await execa('git', ['add', 'alpha.txt'], {cwd}); - await execa('git', ['commit', '-m', 'alpha'], {cwd}); + await x('git', ['add', 'alpha.txt'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', 'alpha'], {nodeOptions: {cwd}}); await fs.writeFile(path.join(cwd, 'beta.txt'), 'beta'); - await execa('git', ['add', 'beta.txt'], {cwd}); - await execa('git', ['commit', '-m', 'beta'], {cwd}); + await x('git', ['add', 'beta.txt'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', 'beta'], {nodeOptions: {cwd}}); await fs.writeFile(path.join(cwd, 'gamma.txt'), 'gamma'); - await execa('git', ['add', 'gamma.txt'], {cwd}); - await execa('git', ['commit', '-m', 'gamma'], {cwd}); + await x('git', ['add', 'gamma.txt'], {nodeOptions: {cwd}}); + await x('git', ['commit', '-m', 'gamma'], {nodeOptions: {cwd}}); const expected = ['beta\n\n']; const actual = await read({from: 'HEAD~2', cwd, gitLogArgs: '--skip 1'}); @@ -76,9 +76,15 @@ test('get edit commit message while skipping first commit', async () => { test('should only read the last commit', async () => { const cwd: string = await git.bootstrap(); - await execa('git', ['commit', '--allow-empty', '-m', 'commit Z'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit Y'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit X'], {cwd}); + await x('git', ['commit', '--allow-empty', '-m', 'commit Z'], { + nodeOptions: {cwd}, + }); + await x('git', ['commit', '--allow-empty', '-m', 'commit Y'], { + nodeOptions: {cwd}, + }); + await x('git', ['commit', '--allow-empty', '-m', 'commit X'], { + nodeOptions: {cwd}, + }); const result = await read({cwd, last: true}); @@ -88,14 +94,18 @@ test('should only read the last commit', async () => { test('should read commits from the last annotated tag', async () => { const cwd: string = await git.bootstrap(); - await execa( - 'git', - ['commit', '--allow-empty', '-m', 'chore: release v1.0.0'], - {cwd} - ); - await execa('git', ['tag', 'v1.0.0', '--annotate', '-m', 'v1.0.0'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit 1'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit 2'], {cwd}); + await x('git', ['commit', '--allow-empty', '-m', 'chore: release v1.0.0'], { + nodeOptions: {cwd}, + }); + await x('git', ['tag', 'v1.0.0', '--annotate', '-m', 'v1.0.0'], { + nodeOptions: {cwd}, + }); + await x('git', ['commit', '--allow-empty', '-m', 'commit 1'], { + nodeOptions: {cwd}, + }); + await x('git', ['commit', '--allow-empty', '-m', 'commit 2'], { + nodeOptions: {cwd}, + }); const result = await read({cwd, fromLastTag: true}); @@ -105,14 +115,18 @@ test('should read commits from the last annotated tag', async () => { test('should read commits from the last lightweight tag', async () => { const cwd: string = await git.bootstrap(); - await execa( + await x( 'git', ['commit', '--allow-empty', '-m', 'chore: release v9.9.9-alpha.1'], - {cwd} + {nodeOptions: {cwd}} ); - await execa('git', ['tag', 'v9.9.9-alpha.1'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit A'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit B'], {cwd}); + await x('git', ['tag', 'v9.9.9-alpha.1'], {nodeOptions: {cwd}}); + await x('git', ['commit', '--allow-empty', '-m', 'commit A'], { + nodeOptions: {cwd}, + }); + await x('git', ['commit', '--allow-empty', '-m', 'commit B'], { + nodeOptions: {cwd}, + }); const result = await read({cwd, fromLastTag: true}); @@ -122,9 +136,15 @@ test('should read commits from the last lightweight tag', async () => { test('should not read any commits when there are no tags', async () => { const cwd: string = await git.bootstrap(); - await execa('git', ['commit', '--allow-empty', '-m', 'commit 7'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit 8'], {cwd}); - await execa('git', ['commit', '--allow-empty', '-m', 'commit 9'], {cwd}); + await x('git', ['commit', '--allow-empty', '-m', 'commit 7'], { + nodeOptions: {cwd}, + }); + await x('git', ['commit', '--allow-empty', '-m', 'commit 8'], { + nodeOptions: {cwd}, + }); + await x('git', ['commit', '--allow-empty', '-m', 'commit 9'], { + nodeOptions: {cwd}, + }); const result = await read({cwd, fromLastTag: true}); diff --git a/@commitlint/read/src/read.ts b/@commitlint/read/src/read.ts index 4d483aa474..0e5c422720 100644 --- a/@commitlint/read/src/read.ts +++ b/@commitlint/read/src/read.ts @@ -4,7 +4,7 @@ import type {GitOptions} from 'git-raw-commits'; import {getHistoryCommits} from './get-history-commits.js'; import {getEditCommit} from './get-edit-commit.js'; -import {execa} from 'execa'; +import {x} from 'tinyexec'; interface GetCommitMessageOptions { cwd?: string; @@ -28,12 +28,12 @@ export default async function getCommitMessages( } if (last) { - const gitCommandResult = await execa( + const gitCommandResult = await x( 'git', ['log', '-1', '--pretty=format:%B'], - {cwd} + {nodeOptions: {cwd}} ); - let output = gitCommandResult.stdout; + let output = gitCommandResult.stdout.trim(); // strip output of extra quotation marks ("") if (output[0] == '"' && output[output.length - 1] == '"') output = output.slice(1, -1); @@ -41,7 +41,7 @@ export default async function getCommitMessages( } if (!from && fromLastTag) { - const {stdout} = await execa( + const output = await x( 'git', [ 'describe', @@ -51,8 +51,9 @@ export default async function getCommitMessages( '--long', '--tags', ], - {cwd} + {nodeOptions: {cwd}} ); + const stdout = output.stdout.trim(); if (stdout.length === 40) { // Hash only means no last tag. Use that as the from ref which diff --git a/@commitlint/resolve-extends/CHANGELOG.md b/@commitlint/resolve-extends/CHANGELOG.md index 6a0dd3d2e6..a21c42b05e 100644 --- a/@commitlint/resolve-extends/CHANGELOG.md +++ b/@commitlint/resolve-extends/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/resolve-extends + + + + + # [19.1.0](https://github.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0) (2024-03-12) diff --git a/@commitlint/resolve-extends/package.json b/@commitlint/resolve-extends/package.json index 1d59b80b91..c6003d6543 100644 --- a/@commitlint/resolve-extends/package.json +++ b/@commitlint/resolve-extends/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/resolve-extends", "type": "module", - "version": "19.1.0", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,12 +36,12 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/utils": "^19.0.0", + "@commitlint/utils": "^19.5.0", "@types/lodash.mergewith": "^4.6.8" }, "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", "global-directory": "^4.0.1", "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", diff --git a/@commitlint/rules/CHANGELOG.md b/@commitlint/rules/CHANGELOG.md index 55c00154a2..adac0f9668 100644 --- a/@commitlint/rules/CHANGELOG.md +++ b/@commitlint/rules/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/rules + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) diff --git a/@commitlint/rules/package.json b/@commitlint/rules/package.json index 3421e4c510..edb0fc8f54 100644 --- a/@commitlint/rules/package.json +++ b/@commitlint/rules/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/rules", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,18 +36,17 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/parse": "^19.0.3", - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0", "conventional-changelog-angular": "^7.0.0", "glob": "^10.3.10" }, "dependencies": { - "@commitlint/ensure": "^19.0.3", - "@commitlint/message": "^19.0.0", - "@commitlint/to-lines": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1" + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/rules/src/trailer-exists.ts b/@commitlint/rules/src/trailer-exists.ts index 4bf2427989..8ca7f7ae56 100644 --- a/@commitlint/rules/src/trailer-exists.ts +++ b/@commitlint/rules/src/trailer-exists.ts @@ -1,4 +1,4 @@ -import {execaSync} from 'execa'; +import {spawnSync} from 'child_process'; import message from '@commitlint/message'; import toLines from '@commitlint/to-lines'; import {SyncRule} from '@commitlint/types'; @@ -8,11 +8,13 @@ export const trailerExists: SyncRule = ( when = 'always', value = '' ) => { - const trailers = execaSync('git', ['interpret-trailers', '--parse'], { + const trailers = spawnSync('git', ['interpret-trailers', '--parse'], { input: parsed.raw || '', }).stdout; - const matches = toLines(trailers).filter((ln) => ln.startsWith(value)).length; + const matches = toLines(trailers.toString()).filter((ln) => + ln.startsWith(value) + ).length; const negated = when === 'never'; const hasTrailer = matches > 0; diff --git a/@commitlint/to-lines/CHANGELOG.md b/@commitlint/to-lines/CHANGELOG.md index bfc05d110c..827485ce57 100644 --- a/@commitlint/to-lines/CHANGELOG.md +++ b/@commitlint/to-lines/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/to-lines + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@commitlint/to-lines/package.json b/@commitlint/to-lines/package.json index 3d2ce08629..bb7f6854fa 100644 --- a/@commitlint/to-lines/package.json +++ b/@commitlint/to-lines/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/to-lines", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,7 +36,7 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" } diff --git a/@commitlint/top-level/CHANGELOG.md b/@commitlint/top-level/CHANGELOG.md index 77f8021f73..c212e04dce 100644 --- a/@commitlint/top-level/CHANGELOG.md +++ b/@commitlint/top-level/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/top-level + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@commitlint/top-level/package.json b/@commitlint/top-level/package.json index 4228255670..3982acd578 100644 --- a/@commitlint/top-level/package.json +++ b/@commitlint/top-level/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/top-level", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "Lint your commit messages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -36,7 +36,7 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "dependencies": { "find-up": "^7.0.0" diff --git a/@commitlint/travis-cli/CHANGELOG.md b/@commitlint/travis-cli/CHANGELOG.md index c4c79eb3aa..bda8f3554a 100644 --- a/@commitlint/travis-cli/CHANGELOG.md +++ b/@commitlint/travis-cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/travis-cli + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package @commitlint/travis-cli diff --git a/@commitlint/travis-cli/package.json b/@commitlint/travis-cli/package.json index 537e392b3c..00759fbf79 100644 --- a/@commitlint/travis-cli/package.json +++ b/@commitlint/travis-cli/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/travis-cli", "type": "module", - "version": "19.4.1", + "version": "19.5.0", "description": "Lint all relevant commits for a change or PR on Travis CI", "main": "lib/cli.js", "types": "lib/cli.d.ts", @@ -39,12 +39,12 @@ }, "license": "MIT", "devDependencies": { - "@commitlint/test": "^19.0.0", - "@commitlint/utils": "^19.0.0" + "@commitlint/test": "^19.5.0", + "@commitlint/utils": "^19.5.0" }, "dependencies": { - "@commitlint/cli": "^19.4.1", - "execa": "^8.0.1" + "@commitlint/cli": "^19.5.0", + "tinyexec": "^0.3.0" }, "gitHead": "70f7f4688b51774e7ac5e40e896cdaa3f132b2bc" } diff --git a/@commitlint/travis-cli/src/cli.test.ts b/@commitlint/travis-cli/src/cli.test.ts index 59795d5513..c6d05e881f 100644 --- a/@commitlint/travis-cli/src/cli.test.ts +++ b/@commitlint/travis-cli/src/cli.test.ts @@ -1,10 +1,12 @@ +import {SpawnOptions} from 'node:child_process'; + import {test, expect} from 'vitest'; import {createRequire} from 'module'; import path from 'path'; import {fileURLToPath} from 'url'; import {git} from '@commitlint/test'; -import {Options, execa} from 'execa'; +import {x} from 'tinyexec'; const require = createRequire(import.meta.url); @@ -27,22 +29,8 @@ const validBaseEnv = { TRAVIS_PULL_REQUEST_SLUG: 'TRAVIS_PULL_REQUEST_SLUG', }; -const cli = async (config: Options = {}, args: string[] = []) => { - try { - return await execa(bin, args, config); - } catch (err: any) { - if ( - typeof err.stdout !== 'undefined' && - typeof err.stderr !== 'undefined' - ) { - throw new Error([err.stdout, err.stderr].join('\n')); - } else { - throw new Error( - `An unknown error occured while running '${bin} ${args.join(' ')}'` - ); - } - } -}; +const cli = async (nodeOptions: SpawnOptions = {}, args: string[] = []) => + x(bin, args, {nodeOptions}); test('should throw when not on travis ci', async () => { const env = { @@ -50,7 +38,8 @@ test('should throw when not on travis ci', async () => { TRAVIS: 'false', }; - await expect(cli({env})).rejects.toThrow( + const output = await cli({env}); + expect(output.stderr).toContain( '@commitlint/travis-cli is intended to be used on Travis CI' ); }); @@ -61,7 +50,8 @@ test('should throw when on travis ci, but env vars are missing', async () => { CI: 'true', }; - await expect(cli({env})).rejects.toThrow( + const output = await cli({env}); + expect(output.stderr).toContain( 'TRAVIS_COMMIT, TRAVIS_COMMIT_RANGE, TRAVIS_EVENT_TYPE, TRAVIS_REPO_SLUG, TRAVIS_PULL_REQUEST_SLUG' ); }); diff --git a/@commitlint/travis-cli/src/cli.ts b/@commitlint/travis-cli/src/cli.ts index 7d13a28c69..12ce0cf9f8 100644 --- a/@commitlint/travis-cli/src/cli.ts +++ b/@commitlint/travis-cli/src/cli.ts @@ -1,6 +1,8 @@ +import {SpawnOptions} from 'node:child_process'; + import {createRequire} from 'module'; -import {Options, execa} from 'execa'; +import {x} from 'tinyexec'; const require = createRequire(import.meta.url); @@ -24,7 +26,7 @@ const RANGE = process.env.TRAVIS_COMMIT_RANGE; const IS_PR = process.env.TRAVIS_EVENT_TYPE === 'pull_request'; main().catch((err) => { - console.log(err); + console.error(err); process.exit(1); }); @@ -53,14 +55,16 @@ async function main() { await lint(['--from', start, '--to', end, ...args]); } else { const input = await log(COMMIT); - await lint(args, {input}); + await lint(args, {}, input); } } -async function git(args: string[], options: Options = {}) { - return execa(GIT, args, { - stdio: 'inherit', - ...options, +async function git(args: string[], nodeOptions: SpawnOptions = {}) { + return x(GIT, args, { + nodeOptions: { + stdio: 'inherit', + ...nodeOptions, + }, }); } @@ -76,11 +80,22 @@ async function isClean() { return !(result.stdout && result.stdout.trim()); } -async function lint(args: string[], options: Options = {}) { - return execa(COMMITLINT, args, { - stdio: ['pipe', 'inherit', 'inherit'], - ...options, +async function lint( + args: string[], + nodeOptions: SpawnOptions = {}, + input: string = '' +) { + const result = x(COMMITLINT, args, { + nodeOptions: { + stdio: ['pipe', 'inherit', 'inherit'], + ...nodeOptions, + }, }); + + result.process?.stdin?.write(input); + result.process?.stdin?.end(); + + return result; } async function log(hash: string) { diff --git a/@commitlint/types/CHANGELOG.md b/@commitlint/types/CHANGELOG.md index cd3ef02376..8b9f52840a 100644 --- a/@commitlint/types/CHANGELOG.md +++ b/@commitlint/types/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/types + + + + + ## [19.0.3](https://github.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3) (2024-02-28) diff --git a/@commitlint/types/package.json b/@commitlint/types/package.json index 8db462e0f5..574b25fac8 100644 --- a/@commitlint/types/package.json +++ b/@commitlint/types/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/types", "type": "module", - "version": "19.0.3", + "version": "19.5.0", "description": "Shared types for commitlint packages", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -33,7 +33,7 @@ "chalk": "^5.3.0" }, "devDependencies": { - "@commitlint/utils": "^19.0.0" + "@commitlint/utils": "^19.5.0" }, "gitHead": "d829bf6260304ca8d6811f329fcdd1b6c50e9749" } diff --git a/@packages/test/CHANGELOG.md b/@packages/test/CHANGELOG.md index 09821ce462..04086938aa 100644 --- a/@packages/test/CHANGELOG.md +++ b/@packages/test/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/test + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@packages/test/package.json b/@packages/test/package.json index 36ac0715c1..31e1af0976 100644 --- a/@packages/test/package.json +++ b/@packages/test/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/test", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "test utilities for @commitlint", "private": true, "main": "lib/index.js", @@ -34,10 +34,10 @@ "dependencies": { "@types/fs-extra": "^11.0.3", "@types/tmp": "^0.2.5", - "execa": "^8.0.1", "fs-extra": "^11.0.0", "pkg-dir": "^8.0.0", "resolve-pkg": "^2.0.0", + "tinyexec": "^0.3.0", "tmp": "^0.2.1" }, "gitHead": "71f0194f33943954a8dac1c458be47e5049717cd" diff --git a/@packages/test/src/git.ts b/@packages/test/src/git.ts index 3ea0c5863f..e58c7f46ed 100644 --- a/@packages/test/src/git.ts +++ b/@packages/test/src/git.ts @@ -1,4 +1,4 @@ -import {execa} from 'execa'; +import {x} from 'tinyexec'; import * as fix from './fix.js'; @@ -17,24 +17,26 @@ export async function clone( ) { const cwd = await fix.bootstrap(undefined, directory); - await execa(gitCommand, ['clone', ...args, source, cwd]); + await x(gitCommand, ['clone', ...args, source, cwd]); await setup(cwd, gitCommand); return cwd; } export async function init(cwd: string) { - await execa('git', ['init', cwd]); + await x('git', ['init', cwd]); await setup(cwd); return cwd; } async function setup(cwd: string, gitCommand = 'git') { try { - await execa(gitCommand, ['config', 'user.name', 'ava'], {cwd}); - await execa(gitCommand, ['config', 'user.email', 'test@example.com'], { - cwd, + await x(gitCommand, ['config', 'user.name', 'ava'], {nodeOptions: {cwd}}); + await x(gitCommand, ['config', 'user.email', 'test@example.com'], { + nodeOptions: {cwd}, + }); + await x(gitCommand, ['config', 'commit.gpgsign', 'false'], { + nodeOptions: {cwd}, }); - await execa(gitCommand, ['config', 'commit.gpgsign', 'false'], {cwd}); } catch (err: any) { if (typeof err === 'object' && typeof err.message === 'object') { console.warn(`git config in ${cwd} failed`, err.message); diff --git a/@packages/utils/CHANGELOG.md b/@packages/utils/CHANGELOG.md index b887ab11f3..7c23969707 100644 --- a/@packages/utils/CHANGELOG.md +++ b/@packages/utils/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + +**Note:** Version bump only for package @commitlint/utils + + + + + # [19.0.0](https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0) (2024-02-27) diff --git a/@packages/utils/dep-check.js b/@packages/utils/dep-check.js index 02269e8607..cc9c3bdfe3 100755 --- a/@packages/utils/dep-check.js +++ b/@packages/utils/dep-check.js @@ -1,6 +1,6 @@ #!/usr/bin/env node import path from 'path'; -import {execa} from 'execa'; +import {x} from 'tinyexec'; const cwd = process.cwd(); @@ -14,7 +14,7 @@ function main() { } function check(args) { - return execa('dependency-check', args, {cwd}); + return x('dependency-check', args, {nodeOptions: {cwd}}); } main().then((args) => { diff --git a/@packages/utils/package.json b/@packages/utils/package.json index 048828a8ea..932805dd84 100644 --- a/@packages/utils/package.json +++ b/@packages/utils/package.json @@ -1,7 +1,7 @@ { "name": "@commitlint/utils", "type": "module", - "version": "19.0.0", + "version": "19.5.0", "description": "Development utilities for @commitlint", "private": true, "files": [ @@ -44,10 +44,10 @@ "@types/yargs": "^17.0.29" }, "dependencies": { - "execa": "^8.0.1", "read-pkg": "^9.0.1", "require-from-string": "^2.0.2", "tar-fs": "^3.0.5", + "tinyexec": "^0.3.0", "tmp": "^0.2.1", "yargs": "^17.0.0" }, diff --git a/@packages/utils/pkg-check.js b/@packages/utils/pkg-check.js index dec4081c6d..8d6b16df32 100755 --- a/@packages/utils/pkg-check.js +++ b/@packages/utils/pkg-check.js @@ -2,10 +2,10 @@ import path from 'path'; import fs from 'fs'; -import {execa} from 'execa'; import readPkg from 'read-pkg'; import requireFromString from 'require-from-string'; import tar from 'tar-fs'; +import {x} from 'tinyexec'; import tmp from 'tmp'; import yargs from 'yargs'; import zlib from 'zlib'; @@ -146,7 +146,9 @@ async function getTarballFiles(source, options) { }); const cwd = tmpDir.name; const tarball = path.join(cwd, 'test-archive.tgz'); - await execa('yarn', ['pack', '--filename', tarball], {cwd: source}); + await x('yarn', ['pack', '--filename', tarball], { + nodeOptions: {cwd: source}, + }); return getArchiveFiles(tarball, options); } diff --git a/CHANGELOG.md b/CHANGELOG.md index 54e83fc4ed..41687436a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.5.0](https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) (2024-09-11) + + +### Features + +* **cli:** use special errorCode for missing rules/config [#4142](https://github.com/conventional-changelog/commitlint/issues/4142) ([#4143](https://github.com/conventional-changelog/commitlint/issues/4143)) ([d7070d8](https://github.com/conventional-changelog/commitlint/commit/d7070d8a4905da7834a018825b37d52c2dd29f62)) + + + + + ## [19.4.1](https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000000..033e7d042a --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,108 @@ +import typescriptEslint from '@typescript-eslint/eslint-plugin'; +import jest from 'eslint-plugin-jest'; +import _import from 'eslint-plugin-import'; +import {fixupPluginRules} from '@eslint/compat'; +import globals from 'globals'; +import tsParser from '@typescript-eslint/parser'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; +import js from '@eslint/js'; +import {FlatCompat} from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + { + ignores: ['**/lib/', '**/coverage/', '**/node_modules/', '**/fixtures/'], + }, + ...compat.extends('eslint:recommended', 'prettier'), + { + plugins: { + '@typescript-eslint': typescriptEslint, + jest, + import: fixupPluginRules(_import), + }, + + languageOptions: { + globals: { + ...globals.node, + }, + + ecmaVersion: 11, + sourceType: 'module', + + parserOptions: { + ecmaFeatures: { + jsx: false, + }, + }, + }, + + rules: { + 'import/first': 'error', + 'import/no-absolute-path': 'error', + 'import/no-amd': 'error', + 'import/no-mutable-exports': 'error', + 'import/no-named-default': 'error', + 'import/no-self-import': 'error', + + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: true, + }, + ], + }, + }, + ...compat + .extends( + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier' + ) + .map((config) => ({ + ...config, + files: ['**/*.cts', '**/*.ts'], + })), + { + files: ['**/*.cts', '**/*.ts'], + + languageOptions: { + parser: tsParser, + }, + + rules: { + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/triple-slash-reference': 'off', + 'no-empty': 'off', + 'no-var': 'off', + }, + }, + ...compat.extends('plugin:jest/recommended').map((config) => ({ + ...config, + files: ['**/*.test.ts', '**/*.test.js'], + })), + { + files: ['**/*.test.ts', '**/*.test.js'], + + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + 'import/first': 'off', + 'import/no-extraneous-dependencies': 'off', + 'jest/no-deprecated-functions': 'off', + }, + }, +]; diff --git a/lerna.json b/lerna.json index b0f312227d..31fb5dd50e 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "lerna": "4", "npmClient": "yarn", "useWorkspaces": true, - "version": "19.4.1" + "version": "19.5.0" } diff --git a/package.json b/package.json index 75c3988744..d4a9f493a6 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "docs-dev": "vitepress dev docs", "docs-build": "vitepress build docs", "docs-preview": "vitepress preview docs", - "lint": "eslint . --ext .js,.ts", - "lint-fix": "eslint . --ext .js,.ts --fix", + "lint": "eslint", + "lint-fix": "eslint --fix", "format": "prettier **/*.{ts,js,json,yml,md} --check", "format-fix": "prettier **/*.{ts,js,json,yml,md} --write", "publish": "lerna publish --conventional-commits", @@ -85,24 +85,28 @@ "email": "hello@herebecode.com" }, "devDependencies": { + "@eslint/compat": "^1.1.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.9.1", "@lerna/project": "^6.0.0", - "@swc/core": "^1.7.18", - "@typescript-eslint/eslint-plugin": "^7.0.2", - "@typescript-eslint/parser": "^7.0.2", + "@swc/core": "^1.7.23", + "@typescript-eslint/eslint-plugin": "^8.4.0", + "@typescript-eslint/parser": "^8.4.0", "@vitest/coverage-istanbul": "^2.0.5", "cross-env": "^7.0.3", - "eslint": "^8.46.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-import": "^2.28.0", - "eslint-plugin-jest": "^28.8.0", - "husky": "^9.0.11", + "eslint": "^9.9.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-jest": "^28.8.2", + "globals": "^15.9.0", + "husky": "^9.1.5", "lerna": "^6.0.0", - "lint-staged": "15.2.9", + "lint-staged": "15.2.10", "prettier": "^2.8.8", "typescript": "^5.2.2", "vitepress": "^1.3.4", "vitepress-plugin-tabs": "^0.5.0", "vitest": "^2.0.5", - "vue": "^3.4.38" + "vue": "^3.5.0" } } diff --git a/yarn.lock b/yarn.lock index 8d8500014a..7ccd9a8af0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,6 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@algolia/autocomplete-core@1.9.3": version "1.9.3" resolved "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" @@ -349,6 +344,13 @@ dependencies: "@babel/types" "^7.25.2" +"@babel/parser@^7.25.3": + version "7.25.6" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" + integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== + dependencies: + "@babel/types" "^7.25.6" + "@babel/template@^7.22.15", "@babel/template@^7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" @@ -392,6 +394,15 @@ "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" +"@babel/types@^7.25.6": + version "7.25.6" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" + integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + "@docsearch/css@3.6.1", "@docsearch/css@^3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.6.1.tgz#f0a728ecb486c81f2d282650fc1820c914913408" @@ -652,35 +663,56 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.10.0": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0": version "4.11.0" resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== -"@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== +"@eslint/compat@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@eslint/compat/-/compat-1.1.1.tgz#5736523f5105c94dfae5f35e31debc38443722cd" + integrity sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint/config-array@^0.18.0": + version "0.18.0" + resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" + integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/eslintrc@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" + integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eslint/js@9.10.0", "@eslint/js@^9.9.1": + version "9.10.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz#eaa3cb0baec497970bb29e43a153d0d5650143c6" + integrity sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g== + +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== + +"@eslint/plugin-kit@^0.1.0": + version "0.1.0" + resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz#809b95a0227ee79c3195adfb562eb94352e77974" + integrity sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ== + dependencies: + levn "^0.4.1" "@gar/promisify@^1.1.3": version "1.1.3" @@ -692,24 +724,15 @@ resolved "https://registry.npmjs.org/@gwhitney/detect-indent/-/detect-indent-7.0.1.tgz" integrity sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA== -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== +"@humanwhocodes/retry@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" + integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== "@hutson/parse-repository-url@^3.0.0": version "3.0.2" @@ -2034,6 +2057,11 @@ resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz#4d3ec02dbf280c20bfeac7e50cd5669b66f9108f" integrity sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg== +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + "@shikijs/core@1.14.1", "@shikijs/core@^1.13.0": version "1.14.1" resolved "https://registry.npmjs.org/@shikijs/core/-/core-1.14.1.tgz#008f1c4a20ff83fd1672d9e31d76b687862f7511" @@ -2067,74 +2095,74 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@swc/core-darwin-arm64@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.18.tgz#4035e98ea38b2fb5f709b2c7d3d709627dba511e" - integrity sha512-MwLc5U+VGPMZm8MjlFBjEB2wyT1EK0NNJ3tn+ps9fmxdFP+PL8EpMiY1O1F2t1ydy2OzBtZz81sycjM9RieFBg== - -"@swc/core-darwin-x64@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.18.tgz#8e907ed0e87d60b53e6aba54e172933f9db62d26" - integrity sha512-IkukOQUw7/14VkHp446OkYGCZEHqZg9pTmTdBawlUyz2JwZMSn2VodCl7aFSdGCsU4Cwni8zKA8CCgkCCAELhw== - -"@swc/core-linux-arm-gnueabihf@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.18.tgz#0534355885e83e8321e2461db2fc01dda7353033" - integrity sha512-ATnb6jJaBeXCqrTUawWdoOy7eP9SCI7UMcfXlYIMxX4otKKspLPAEuGA5RaNxlCcj9ObyO0J3YGbtZ6hhD2pjg== - -"@swc/core-linux-arm64-gnu@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.18.tgz#99877ae47c9803977c42fe632db04cc10d47a7e9" - integrity sha512-poHtH7zL7lEp9K2inY90lGHJABWxURAOgWNeZqrcR5+jwIe7q5KBisysH09Zf/JNF9+6iNns+U0xgWTNJzBuGA== - -"@swc/core-linux-arm64-musl@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.18.tgz#f41c31598d7ef9ffbf06c3994b7d59085abc01ab" - integrity sha512-qnNI1WmcOV7Wz1ZDyK6WrOlzLvJ01rnni8ec950mMHWkLRMP53QvCvhF3S+7gFplWBwWJTOOPPUqJp/PlSxWyQ== - -"@swc/core-linux-x64-gnu@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.18.tgz#95575b46f3f8fab89bbed51f75eab980c136b0b0" - integrity sha512-x9SCqCLzwtlqtD5At3I1a7Gco+EuXnzrJGoucmkpeQohshHuwa+cskqsXO6u1Dz0jXJEuHbBZB9va1wYYfjgFg== - -"@swc/core-linux-x64-musl@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.18.tgz#5a31f97d05b65e0b2993d00b6ffff8b7f7cd3557" - integrity sha512-qtj8iOpMMgKjzxTv+islmEY0JBsbd93nka0gzcTTmGZxKtL5jSUsYQvkxwNPZr5M9NU1fgaR3n1vE6lFmtY0IQ== - -"@swc/core-win32-arm64-msvc@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.18.tgz#6b227e1f67d9c5ed429177ae7962212029da9087" - integrity sha512-ltX/Ol9+Qu4SXmISCeuwVgAjSa8nzHTymknpozzVMgjXUoZMoz6lcynfKL1nCh5XLgqh0XNHUKLti5YFF8LrrA== - -"@swc/core-win32-ia32-msvc@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.18.tgz#510868ae0a255581acd66d0d52e6a732290902f6" - integrity sha512-RgTcFP3wgyxnQbTCJrlgBJmgpeTXo8t807GU9GxApAXfpLZJ3swJ2GgFUmIJVdLWyffSHF5BEkF3FmF6mtH5AQ== - -"@swc/core-win32-x64-msvc@1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.18.tgz#381a04740f7662eb1c3d306184dafd0e2cf9da38" - integrity sha512-XbZ0wAgzR757+DhQcnv60Y/bK9yuWPhDNRQVFFQVRsowvK3+c6EblyfUSytIidpXgyYFzlprq/9A9ZlO/wvDWw== - -"@swc/core@^1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.7.18.tgz#d45b26d8feef244d1ea43b4732b3ae46bf96a22e" - integrity sha512-qL9v5N5S38ijmqiQRvCFUUx2vmxWT/JJ2rswElnyaHkOHuVoAFhBB90Ywj4RKjh3R0zOjhEcemENTyF3q3G6WQ== +"@swc/core-darwin-arm64@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.25.tgz#83898957ed6615608d7908bd476c9d710487a922" + integrity sha512-cbLNV4vsqSbll7kehJ58hZ9lt+nLlUPF+fmSRVsb4Qasnr0IRDtpT+3Rc87bDNXfkc15Ii80xdp7sU2MVgHn7A== + +"@swc/core-darwin-x64@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.25.tgz#f447ad110b0260f1446efd77d5e53bf65b24e065" + integrity sha512-kZswLBI8KWWV8VuGIJZd8GM7eWFY5srmlomiWw7j/OtRyRgr8qfX3EmxBAYYZqTEvWdooSc/y3I61lHn/a1tRg== + +"@swc/core-linux-arm-gnueabihf@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.25.tgz#0eafc09a99e473ea0d93d22402427066b28f4d40" + integrity sha512-DV/8BHwdtymoelC1KvefOoyXraIDK0rJIBqjPvtzW9YbkN1hepF7au1deiieJ6+A0smP+4fxtYhrnJ5EjPvylA== + +"@swc/core-linux-arm64-gnu@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.25.tgz#b1296217bc45bf28a3304eb62d40f92cd26e8b30" + integrity sha512-lIx8BeKzpulL2PbLyMUln5Hk164M/PHXquHt6y86sD7Spza6zbCme+/Zr17PRiElqrP8byKC09UZj0K6hONDqQ== + +"@swc/core-linux-arm64-musl@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.25.tgz#cb44a0ff013bc1e5654b61e928f799707c2f34e2" + integrity sha512-+/I7AzzY4066bvKLTyAZXLL0dPpWhRUh0ja4cZNZ+0Gpn8FmtWDwZKCriIWkDlD1gSuXm8+iOaaLGhEwIquOpQ== + +"@swc/core-linux-x64-gnu@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.25.tgz#dea4095ec60f9c602cb950c444004e2abb36fe22" + integrity sha512-BPtnKyiBVMZyN6ml7oHGX9wuSLHN06nT1x1TM9wcSKSx6y+BEKb8jSmzrKzM7K5LnfOiy4+ARCb4HrMkXIQjUg== + +"@swc/core-linux-x64-musl@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.25.tgz#e977a6249866d2d6fd0892066ce089f393df1516" + integrity sha512-ZlZztuvy2hvfoYg5gYHYuc2mssgzGq1kKanF9kPdICsTmze6t7AvkSfmlTN7/YGuO//yDDJR1GR0EuXwOAJqPw== + +"@swc/core-win32-arm64-msvc@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.25.tgz#9141e6af4a85a99666318d321708932d8553493a" + integrity sha512-k3QsHJ+53BVhRUeC7NJOMxdMGexBIhFmL8Ex39vqWVvDZgnOepMFu9/G1pm04xBHSqcb0lioDj5WirAoy4VusQ== + +"@swc/core-win32-ia32-msvc@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.25.tgz#4894671658e2dfaed74b033a3f747bb9e40e8b83" + integrity sha512-3PW8LDgS7eIdjeGLNYhO1XLXyZJZ+aLjf79am8+HqfzVkmz+uIK39FcFxeF6A/LUsuQBMa3Geg++rS38kviMEA== + +"@swc/core-win32-x64-msvc@1.7.25": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.25.tgz#2b2981148a350a5b126b7e447acad7be84e54d54" + integrity sha512-iYpJNfIzPwahwPgddb9PHYichdFoS/2NR4Gaemv9s6nzTguS4vx/YT1oFGwuGMP0RyOdmAN2rEfPh7sJktqWfA== + +"@swc/core@^1.7.23": + version "1.7.25" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.7.25.tgz#161376f8b3e90528c712d021d621d2769a9b4ca8" + integrity sha512-EWTWdb0GD+Z9CByvW5j5b9d1cFr9P6hy7TkGgAwnhKxGwzGu8BHTG3ou28KY6P57yZXDVKB0exWmSNRIv6LYCg== dependencies: "@swc/counter" "^0.1.3" "@swc/types" "^0.1.12" optionalDependencies: - "@swc/core-darwin-arm64" "1.7.18" - "@swc/core-darwin-x64" "1.7.18" - "@swc/core-linux-arm-gnueabihf" "1.7.18" - "@swc/core-linux-arm64-gnu" "1.7.18" - "@swc/core-linux-arm64-musl" "1.7.18" - "@swc/core-linux-x64-gnu" "1.7.18" - "@swc/core-linux-x64-musl" "1.7.18" - "@swc/core-win32-arm64-msvc" "1.7.18" - "@swc/core-win32-ia32-msvc" "1.7.18" - "@swc/core-win32-x64-msvc" "1.7.18" + "@swc/core-darwin-arm64" "1.7.25" + "@swc/core-darwin-x64" "1.7.25" + "@swc/core-linux-arm-gnueabihf" "1.7.25" + "@swc/core-linux-arm64-gnu" "1.7.25" + "@swc/core-linux-arm64-musl" "1.7.25" + "@swc/core-linux-x64-gnu" "1.7.25" + "@swc/core-linux-x64-musl" "1.7.25" + "@swc/core-win32-arm64-msvc" "1.7.25" + "@swc/core-win32-ia32-msvc" "1.7.25" + "@swc/core-win32-x64-msvc" "1.7.25" "@swc/counter@^0.1.3": version "0.1.3" @@ -2350,9 +2378,9 @@ undici-types "~5.26.4" "@types/node@^18.19.17": - version "18.19.43" - resolved "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz#fe01bb599b60bb3279c26d0fdb751d2f3e299ae0" - integrity sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g== + version "18.19.50" + resolved "https://registry.npmjs.org/@types/node/-/node-18.19.50.tgz#8652b34ee7c0e7e2004b3f08192281808d41bf5a" + integrity sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg== dependencies: undici-types "~5.26.4" @@ -2437,137 +2465,132 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^7.0.2": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" - integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== +"@typescript-eslint/eslint-plugin@^8.4.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz#7c1863693a98371703686e1c0fac64ffc576cdb1" + integrity sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/type-utils" "7.18.0" - "@typescript-eslint/utils" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.5.0" + "@typescript-eslint/type-utils" "8.5.0" + "@typescript-eslint/utils" "8.5.0" + "@typescript-eslint/visitor-keys" "8.5.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.0.2": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" - integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== +"@typescript-eslint/parser@^8.4.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.5.0.tgz#d590e1ef9f31f26d423999ad3f687723247e6bcc" + integrity sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw== dependencies: - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.5.0" + "@typescript-eslint/types" "8.5.0" + "@typescript-eslint/typescript-estree" "8.5.0" + "@typescript-eslint/visitor-keys" "8.5.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" - integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== +"@typescript-eslint/scope-manager@8.4.0": + version "8.4.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz#8a13d3c0044513d7960348db6f4789d2a06fa4b4" + integrity sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A== dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" -"@typescript-eslint/scope-manager@8.0.1": - version "8.0.1" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.1.tgz#544259c29e1ebf65d30b6e99a9f420d98795a54e" - integrity sha512-NpixInP5dm7uukMiRyiHjRKkom5RIFA4dfiHvalanD2cF0CLUuQqxfg8PtEUo9yqJI2bBhF+pcSafqnG3UBnRQ== +"@typescript-eslint/scope-manager@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz#385341de65b976f02b295b8aca54bb4ffd6b5f07" + integrity sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg== dependencies: - "@typescript-eslint/types" "8.0.1" - "@typescript-eslint/visitor-keys" "8.0.1" + "@typescript-eslint/types" "8.5.0" + "@typescript-eslint/visitor-keys" "8.5.0" -"@typescript-eslint/type-utils@7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" - integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== +"@typescript-eslint/type-utils@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz#6215b23aa39dbbd8dde0a4ef9ee0f745410c29b1" + integrity sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA== dependencies: - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/typescript-estree" "8.5.0" + "@typescript-eslint/utils" "8.5.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" - integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== +"@typescript-eslint/types@8.4.0": + version "8.4.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.4.0.tgz#b44d6a90a317a6d97a3e5fabda5196089eec6171" + integrity sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw== -"@typescript-eslint/types@8.0.1": - version "8.0.1" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.1.tgz#333e2f4c158952dbc8181a4ddcc6e49898a28918" - integrity sha512-PpqTVT3yCA/bIgJ12czBuE3iBlM3g4inRSC5J0QOdQFAn07TYrYEQBBKgXH1lQpglup+Zy6c1fxuwTk4MTNKIw== +"@typescript-eslint/types@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.5.0.tgz#4465d99331d1276f8fb2030e4f9c73fe01a05bf9" + integrity sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw== -"@typescript-eslint/typescript-estree@7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" - integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== +"@typescript-eslint/typescript-estree@8.4.0": + version "8.4.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz#00ed79ae049e124db37315cde1531a900a048482" + integrity sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A== dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" debug "^4.3.4" - globby "^11.1.0" + fast-glob "^3.3.2" is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/typescript-estree@8.0.1": - version "8.0.1" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.1.tgz#64575ec7b77aedfe497acdfb2779ec942bb8d866" - integrity sha512-8V9hriRvZQXPWU3bbiUV4Epo7EvgM6RTs+sUmxp5G//dBGy402S7Fx0W0QkB2fb4obCF8SInoUzvTYtc3bkb5w== +"@typescript-eslint/typescript-estree@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz#6e5758cf2f63aa86e9ddfa4e284e2e0b81b87557" + integrity sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q== dependencies: - "@typescript-eslint/types" "8.0.1" - "@typescript-eslint/visitor-keys" "8.0.1" + "@typescript-eslint/types" "8.5.0" + "@typescript-eslint/visitor-keys" "8.5.0" debug "^4.3.4" - globby "^11.1.0" + fast-glob "^3.3.2" is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" - integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== +"@typescript-eslint/utils@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.5.0.tgz#4d4ffed96d0654546a37faa5b84bdce16d951634" + integrity sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/scope-manager" "8.5.0" + "@typescript-eslint/types" "8.5.0" + "@typescript-eslint/typescript-estree" "8.5.0" "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0": - version "8.0.1" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.1.tgz#b48e3320c4f9011f97d25e0588b8c143adc38d2a" - integrity sha512-CBFR0G0sCt0+fzfnKaciu9IBsKvEKYwN9UZ+eeogK1fYHg4Qxk1yf/wLQkLXlq8wbU2dFlgAesxt8Gi76E8RTA== + version "8.4.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.4.0.tgz#35c552a404858c853a1f62ba6df2214f1988afc3" + integrity sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.0.1" - "@typescript-eslint/types" "8.0.1" - "@typescript-eslint/typescript-estree" "8.0.1" + "@typescript-eslint/scope-manager" "8.4.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/typescript-estree" "8.4.0" -"@typescript-eslint/visitor-keys@7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" - integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== +"@typescript-eslint/visitor-keys@8.4.0": + version "8.4.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz#1e8a8b8fd3647db1e42361fdd8de3e1679dec9d2" + integrity sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A== dependencies: - "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/types" "8.4.0" eslint-visitor-keys "^3.4.3" -"@typescript-eslint/visitor-keys@8.0.1": - version "8.0.1" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.1.tgz#e5816803b4dad1de5e97f00df8dc15d0bcb49778" - integrity sha512-W5E+o0UfUcK5EgchLZsyVWqARmsM7v54/qEq6PY3YI5arkgmCzHiuk0zKSJJbm71V0xdRna4BGomkCTXz2/LkQ== +"@typescript-eslint/visitor-keys@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz#13028df3b866d2e3e2e2cc4193cf2c1e0e04c4bf" + integrity sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw== dependencies: - "@typescript-eslint/types" "8.0.1" + "@typescript-eslint/types" "8.5.0" eslint-visitor-keys "^3.4.3" -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - "@vitejs/plugin-vue@^5.1.2": version "5.1.2" resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz#f11091e0130eca6c1ca8cfb85ee71ea53b255d31" @@ -2651,6 +2674,17 @@ estree-walker "^2.0.2" source-map-js "^1.2.0" +"@vue/compiler-core@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.4.tgz#b8b5805e767b94d84af01f5527dbb4896326c478" + integrity sha512-oNwn+BAt3n9dK9uAYvI+XGlutwuTq/wfj4xCBaZCqwwVIGtD7D6ViihEbyYZrDHIHTDE3Q6oL3/hqmAyFEy9DQ== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.4" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + "@vue/compiler-dom@3.4.38": version "3.4.38" resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz#90348fac1130e0bbd408b650635cb626b3b9df06" @@ -2659,6 +2693,14 @@ "@vue/compiler-core" "3.4.38" "@vue/shared" "3.4.38" +"@vue/compiler-dom@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.4.tgz#3f98e6ca76abab73630dad055b3ef6e2e6c2b006" + integrity sha512-yP9RRs4BDLOLfldn6ah+AGCNovGjMbL9uHvhDHf5wan4dAHLnFGOkqtfE7PPe4HTXIqE7l/NILdYw53bo1C8jw== + dependencies: + "@vue/compiler-core" "3.5.4" + "@vue/shared" "3.5.4" + "@vue/compiler-sfc@3.4.38": version "3.4.38" resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz#954c3f6777bbbcca28771ba59b795f12f76ef188" @@ -2674,6 +2716,21 @@ postcss "^8.4.40" source-map-js "^1.2.0" +"@vue/compiler-sfc@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.4.tgz#a530accc9afed38506b14ce7ac6fb237eb09ff2d" + integrity sha512-P+yiPhL+NYH7m0ZgCq7AQR2q7OIE+mpAEgtkqEeH9oHSdIRvUO+4X6MPvblJIWcoe4YC5a2Gdf/RsoyP8FFiPQ== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.4" + "@vue/compiler-dom" "3.5.4" + "@vue/compiler-ssr" "3.5.4" + "@vue/shared" "3.5.4" + estree-walker "^2.0.2" + magic-string "^0.30.11" + postcss "^8.4.44" + source-map-js "^1.2.0" + "@vue/compiler-ssr@3.4.38": version "3.4.38" resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz#9ded18f6d9c8b2440039a58492cfff36fa1a7774" @@ -2682,6 +2739,14 @@ "@vue/compiler-dom" "3.4.38" "@vue/shared" "3.4.38" +"@vue/compiler-ssr@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.4.tgz#b6d011adaca367e7cc364cb09dfb6a5c12ad974a" + integrity sha512-acESdTXsxPnYr2C4Blv0ggx5zIFMgOzZmYU2UgvIff9POdRGbRNBHRyzHAnizcItvpgerSKQbllUc9USp3V7eg== + dependencies: + "@vue/compiler-dom" "3.5.4" + "@vue/shared" "3.5.4" + "@vue/devtools-api@^7.3.8": version "7.3.9" resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.9.tgz#952824f7bd4444718e283c995ee64995299c748a" @@ -2716,6 +2781,13 @@ dependencies: "@vue/shared" "3.4.38" +"@vue/reactivity@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.4.tgz#f1c771612e0612443583bac6ce52b8cef0ac5c40" + integrity sha512-HKKbEuP7tYSGCq4e4nK6ZW6l5hyG66OUetefBp4budUyjvAYsnQDf+bgFzg2RAgnH0CInyqXwD9y47jwJEHrQw== + dependencies: + "@vue/shared" "3.5.4" + "@vue/runtime-core@3.4.38": version "3.4.38" resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz#bead9085e9a1c5a446e27d74ffb450f9261cf097" @@ -2724,6 +2796,14 @@ "@vue/reactivity" "3.4.38" "@vue/shared" "3.4.38" +"@vue/runtime-core@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.4.tgz#411e4f6d445d44354bbc242dfb168379c3bec5c3" + integrity sha512-f3ek2sTA0AFu0n+w+kCtz567Euqqa3eHewvo4klwS7mWfSj/A+UmYTwsnUFo35KeyAFY60JgrCGvEBsu1n/3LA== + dependencies: + "@vue/reactivity" "3.5.4" + "@vue/shared" "3.5.4" + "@vue/runtime-dom@3.4.38": version "3.4.38" resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz#52678ba0b85f94400a0a9c8dd23ddef4dd65657d" @@ -2734,6 +2814,16 @@ "@vue/shared" "3.4.38" csstype "^3.1.3" +"@vue/runtime-dom@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.4.tgz#68242033e648a6d1400f27d923d5788362fbefb8" + integrity sha512-ofyc0w6rbD5KtjhP1i9hGOKdxGpvmuB1jprP7Djlj0X7R5J/oLwuNuE98GJ8WW31Hu2VxQHtk/LYTAlW8xrJdw== + dependencies: + "@vue/reactivity" "3.5.4" + "@vue/runtime-core" "3.5.4" + "@vue/shared" "3.5.4" + csstype "^3.1.3" + "@vue/server-renderer@3.4.38": version "3.4.38" resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz#457401ef2b0f969156702061e56915acecc9fe2c" @@ -2742,11 +2832,24 @@ "@vue/compiler-ssr" "3.4.38" "@vue/shared" "3.4.38" +"@vue/server-renderer@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.4.tgz#8b9a102474922156c881c8ed1442907512d5435b" + integrity sha512-FbjV6DJLgKRetMYFBA1UXCroCiED/Ckr53/ba9wivyd7D/Xw9fpo0T6zXzCnxQwyvkyrL7y6plgYhWhNjGxY5g== + dependencies: + "@vue/compiler-ssr" "3.5.4" + "@vue/shared" "3.5.4" + "@vue/shared@3.4.38", "@vue/shared@^3.4.38": version "3.4.38" resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz#552a6770098bfd556fa3e2c686c9d3b4f4cd94c2" integrity sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw== +"@vue/shared@3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.4.tgz#d4768ddf13aded2774162298a3b5658cc999e1ee" + integrity sha512-L2MCDD8l7yC62Te5UUyPVpmexhL9ipVnYRw9CsWfm/BGRL5FwDX4a25bcJ/OJSD3+Hx+k/a8LDKcG2AFdJV3BA== + "@vueuse/core@11.0.3", "@vueuse/core@^11.0.0": version "11.0.3" resolved "https://registry.npmjs.org/@vueuse/core/-/core-11.0.3.tgz#e5fb5aa6580c6e505cecea43518fcb66cb56a3ef" @@ -2816,10 +2919,10 @@ acorn-jsx@^5.3.2: resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.12.0: + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== add-stream@^1.0.0: version "1.0.0" @@ -2977,6 +3080,14 @@ array-buffer-byte-length@^1.0.0: call-bind "^1.0.2" is-array-buffer "^3.0.1" +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + array-differ@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" @@ -2987,15 +3098,16 @@ array-ify@^1.0.0: resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== +array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" is-string "^1.0.7" array-union@^2.1.0: @@ -3003,16 +3115,17 @@ array-union@^2.1.0: resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== +array.prototype.findlastindex@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" array.prototype.flat@^1.3.2: version "1.3.2" @@ -3047,6 +3160,20 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" @@ -3087,6 +3214,13 @@ available-typed-arrays@^1.0.5: resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + axios@^1.0.0: version "1.7.5" resolved "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz#21eed340eb5daf47d29b6e002424b3e88c8c54b1" @@ -3274,6 +3408,17 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" +call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3771,12 +3916,39 @@ dargs@^8.0.0: resolved "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz#a34859ea509cbce45485e5aa356fef70bfcc7272" integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.3: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -3790,7 +3962,14 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.3.4, debug@^4.3.5, debug@~4.3.6: +debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +debug@^4.3.5, debug@~4.3.6: version "4.3.6" resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== @@ -3846,6 +4025,15 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" @@ -3917,13 +4105,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" @@ -4078,11 +4259,77 @@ es-abstract@^1.22.1: unbox-primitive "^1.0.2" which-typed-array "^1.1.13" -es-errors@^1.3.0: +es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + es-set-tostringtag@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz" @@ -4092,7 +4339,16 @@ es-set-tostringtag@^2.0.1: has-tostringtag "^1.0.0" hasown "^2.0.0" -es-shim-unscopables@^1.0.0: +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== @@ -4186,9 +4442,9 @@ escape-string-regexp@^4.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^9.0.0: +eslint-config-prettier@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-import-resolver-node@^0.3.9: @@ -4200,93 +4456,95 @@ eslint-import-resolver-node@^0.3.9: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== +eslint-module-utils@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.9.0.tgz#95d4ac038a68cd3f63482659dffe0883900eb342" + integrity sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ== dependencies: debug "^3.2.7" -eslint-plugin-import@^2.28.0: - version "2.29.1" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== +eslint-plugin-import@^2.30.0: + version "2.30.0" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449" + integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw== dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" array.prototype.flat "^1.3.2" array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" + eslint-module-utils "^2.9.0" + hasown "^2.0.2" + is-core-module "^2.15.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" semver "^6.3.1" tsconfig-paths "^3.15.0" -eslint-plugin-jest@^28.8.0: - version "28.8.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.0.tgz#54f597b5a3295ad04ec946baa245ad02b9b2bca0" - integrity sha512-Tubj1hooFxCl52G4qQu0edzV/+EZzPUeN8p2NnW5uu4fbDs+Yo7+qDVDc4/oG3FbCqEBmu/OC3LSsyiU22oghw== +eslint-plugin-jest@^28.8.2: + version "28.8.3" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz#c5699bba0ad06090ad613535e4f1572f4c2567c0" + integrity sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ== dependencies: "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.0.2: + version "8.0.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz#5cbb33d4384c9136083a71190d548158fe128f94" + integrity sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.46.0: - version "8.57.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== + +eslint@^9.9.1: + version "9.10.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz#0bd74d7fe4db77565d0e7f57c7df6d2b04756806" + integrity sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" + "@eslint-community/regexpp" "^4.11.0" + "@eslint/config-array" "^0.18.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.10.0" + "@eslint/plugin-kit" "^0.1.0" "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.0.2" + eslint-visitor-keys "^4.0.0" + espree "^10.1.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" @@ -4294,27 +4552,34 @@ eslint@^8.46.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1, espree@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" + integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== dependencies: - acorn "^8.9.0" + acorn "^8.12.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.0.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1, esquery@^1.4.2: +esquery@^1.0.1: version "1.5.0" resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -4421,7 +4686,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9, fast-glob@^3.3.1: +fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -4466,12 +4731,12 @@ figures@3.2.0, figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" filelist@^1.0.1: version "1.0.4" @@ -4547,14 +4812,13 @@ findup-sync@^4.0.0: micromatch "^4.0.2" resolve-dir "^1.0.1" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" flat@^5.0.2: version "5.0.2" @@ -4707,7 +4971,7 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.2.0, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" -get-intrinsic@^1.1.3: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -4751,6 +5015,15 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + git-raw-commits@^2.0.8: version "2.0.11" resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz" @@ -4902,12 +5175,15 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + +globals@^15.9.0: + version "15.9.0" + resolved "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz#e9de01771091ffbc37db5714dab484f9f69ff399" + integrity sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA== globalthis@^1.0.3: version "1.0.3" @@ -4916,7 +5192,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.2, globby@^11.1.0: +globby@^11.0.2: version "11.1.0" resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -4984,7 +5260,14 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.2.2" -has-proto@^1.0.1: +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== @@ -5001,12 +5284,19 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -hasown@^2.0.0: +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -5102,10 +5392,10 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@^9.0.11: - version "9.1.4" - resolved "https://registry.npmjs.org/husky/-/husky-9.1.4.tgz#926fd19c18d345add5eab0a42b2b6d9a80259b34" - integrity sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA== +husky@^9.1.5: + version "9.1.5" + resolved "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz#2b6edede53ee1adbbd3a3da490628a23f5243b83" + integrity sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag== iconv-lite@^0.4.24: version "0.4.24" @@ -5139,9 +5429,9 @@ ignore@^5.0.4: integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== ignore@^5.2.0, ignore@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + version "5.3.2" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -5273,6 +5563,15 @@ internal-slot@^1.0.5: hasown "^2.0.0" side-channel "^1.0.4" +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + ip@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz#e8f3595d33a3ea66490204234b77636965307105" @@ -5287,6 +5586,14 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: get-intrinsic "^1.2.0" is-typed-array "^1.1.10" +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" @@ -5319,13 +5626,27 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: +is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.13.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" +is-core-module@^2.15.1: + version "2.15.1" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + dependencies: + hasown "^2.0.2" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" @@ -5382,6 +5703,11 @@ is-negative-zero@^2.0.2: resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" @@ -5441,6 +5767,13 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + is-ssh@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz" @@ -5493,6 +5826,13 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: dependencies: which-typed-array "^1.1.11" +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" @@ -5789,7 +6129,7 @@ just-diff@^5.0.1: resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz" integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -5876,10 +6216,10 @@ lines-and-columns@~2.0.3: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz" integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== -lint-staged@15.2.9: - version "15.2.9" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.9.tgz#bf70d40b6b192df6ad756fb89822211615e0f4da" - integrity sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ== +lint-staged@15.2.10: + version "15.2.10" + resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz#92ac222f802ba911897dcf23671da5bb80643cd2" + integrity sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg== dependencies: chalk "~5.3.0" commander "~12.1.0" @@ -5887,7 +6227,7 @@ lint-staged@15.2.9: execa "~8.0.1" lilconfig "~3.1.2" listr2 "~8.2.4" - micromatch "~4.0.7" + micromatch "~4.0.8" pidtree "~0.6.0" string-argv "~0.3.2" yaml "~2.5.0" @@ -6083,7 +6423,7 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz" integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== -magic-string@^0.30.10: +magic-string@^0.30.10, magic-string@^0.30.11: version "0.30.11" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== @@ -6195,7 +6535,7 @@ merge@^2.1.0: resolved "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz" integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@~4.0.7: +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@~4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -6242,9 +6582,9 @@ minimatch@3.0.5: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" @@ -6395,9 +6735,9 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.0.0, ms@^2.1.1: +ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multimatch@^5.0.0: @@ -6691,7 +7031,7 @@ object-keys@^1.1.1: resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4: +object.assign@^4.1.4, object.assign@^4.1.5: version "4.1.5" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== @@ -6701,33 +7041,33 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== +object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -6767,16 +7107,16 @@ open@^8.4.0: is-wsl "^2.2.0" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" + word-wrap "^1.2.5" ora@^5.4.1: version "5.4.1" @@ -7078,11 +7418,16 @@ perfect-debounce@^1.0.0: resolved "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -picocolors@^1.0.0, picocolors@^1.0.1: +picocolors@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== +picocolors@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== + picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -7127,6 +7472,11 @@ pkg-dir@^8.0.0: dependencies: find-up-simple "^1.0.0" +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + postcss@^8.4.38, postcss@^8.4.40, postcss@^8.4.41: version "8.4.41" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" @@ -7136,6 +7486,15 @@ postcss@^8.4.38, postcss@^8.4.40, postcss@^8.4.41: picocolors "^1.0.1" source-map-js "^1.2.0" +postcss@^8.4.44: + version "8.4.45" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz#538d13d89a16ef71edbf75d895284ae06b79e603" + integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + preact@^10.0.0: version "10.23.1" resolved "https://registry.npmjs.org/preact/-/preact-10.23.1.tgz#d400107289bc979881c5212cb5f5cd22cd1dc38c" @@ -7396,6 +7755,16 @@ regexp.prototype.flags@^1.5.1: define-properties "^1.2.0" set-function-name "^2.0.0" +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" @@ -7569,6 +7938,16 @@ safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" @@ -7588,6 +7967,15 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" @@ -7637,6 +8025,18 @@ set-function-length@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + set-function-name@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" @@ -7646,6 +8046,16 @@ set-function-name@^2.0.0: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" @@ -7755,9 +8165,9 @@ sort-keys@^4.0.0, sort-keys@^4.2.0: is-plain-obj "^2.0.0" source-map-js@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + version "1.2.1" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map@^0.6.1: version "0.6.1" @@ -7903,6 +8313,16 @@ string.prototype.trim@^1.2.8: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + string.prototype.trimend@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" @@ -7912,6 +8332,15 @@ string.prototype.trimend@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + string.prototype.trimstart@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" @@ -7921,6 +8350,15 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -8130,6 +8568,11 @@ tinybench@^2.8.0: resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== +tinyexec@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz#ed60cfce19c17799d4a241e06b31b0ec2bee69e6" + integrity sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg== + tinypool@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/tinypool/-/tinypool-1.0.0.tgz#a68965218e04f4ad9de037d2a1cd63cda9afb238" @@ -8235,11 +8678,6 @@ type-fest@^0.18.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -8274,6 +8712,15 @@ typed-array-buffer@^1.0.0: get-intrinsic "^1.2.1" is-typed-array "^1.1.10" +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + typed-array-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" @@ -8284,6 +8731,17 @@ typed-array-byte-length@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + typed-array-byte-offset@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" @@ -8295,6 +8753,18 @@ typed-array-byte-offset@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" @@ -8304,6 +8774,18 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" @@ -8322,9 +8804,9 @@ typedarray@^0.0.6: integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== typescript@^5.2.2: - version "5.5.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + version "5.6.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0" + integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw== uglify-js@^3.1.4: version "3.17.4" @@ -8533,6 +9015,17 @@ vue@^3.4.38: "@vue/server-renderer" "3.4.38" "@vue/shared" "3.4.38" +vue@^3.5.0: + version "3.5.4" + resolved "https://registry.npmjs.org/vue/-/vue-3.5.4.tgz#0e5935e8b1e5505d484aee732b72c6e77c7567fd" + integrity sha512-3yAj2gkmiY+i7+22A1PWM+kjOVXjU74UPINcTiN7grIVPyFFI0lpGwHlV/4xydDmobaBn7/xmi+YG8HeSlCTcg== + dependencies: + "@vue/compiler-dom" "3.5.4" + "@vue/compiler-sfc" "3.5.4" + "@vue/runtime-dom" "3.5.4" + "@vue/server-renderer" "3.5.4" + "@vue/shared" "3.5.4" + walk-up-path@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz" @@ -8580,6 +9073,17 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13: gopd "^1.0.1" has-tostringtag "^1.0.0" +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@^1.2.14: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"