From 17a0c498b65dbda11728b9c9ccceee30c12a6fd7 Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Wed, 16 Oct 2024 10:17:32 +0200 Subject: [PATCH 01/10] feat: add keywords for NPM to display Signed-off-by: Vojtech Masek --- package.json | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index baee58fcb..b4657c17b 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "version": "0.0.0", "license": "MIT", "description": "A CLI to run all kinds of code quality measurements to align your team with company goals", - "homepage": "code-pushup.dev", + "homepage": "https://code-pushup.dev", "bugs": { - "url": "https://github.com/code-pushup/cli/issues" + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug" }, "repository": { "type": "git", @@ -126,6 +126,28 @@ "@nx/nx-darwin-x64": "^16.10.0", "@nx/nx-linux-x64-gnu": "16.7.4" }, + "keywords": [ + "CLI", + "Code PushUp", + "automation", + "developer tools", + "code quality", + "conformance", + "build tools", + "KPI tracking", + "tech debt", + "automated feedback", + "regression guard", + "CI integration", + "code management", + "actionable feedback", + "trend analysis", + "static analysis", + "linting", + "audit", + "performance", + "score monitoring" + ], "config": { "commitizen": { "path": "@commitlint/cz-commitlint" From 51ca77b48ce006de283108b4bd5f91c2eea2b530 Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Wed, 16 Oct 2024 17:45:35 +0200 Subject: [PATCH 02/10] refactor: remove package.json post build step populate all sub-packages with required metadata closes #848 Signed-off-by: Vojtech Masek --- esbuild.config.js | 67 ------------------------ packages/ci/package.json | 25 +++++++++ packages/cli/docs/custom-plugins.md | 2 +- packages/cli/package.json | 37 +++++++++++++ packages/core/package.json | 37 +++++++++++++ packages/create-cli/package.json | 24 +++++++++ packages/models/package.json | 25 +++++++++ packages/nx-plugin/package.json | 27 +++++++--- packages/plugin-coverage/package.json | 33 ++++++++++++ packages/plugin-eslint/package.json | 36 +++++++++++++ packages/plugin-js-packages/package.json | 36 +++++++++++++ packages/plugin-lighthouse/package.json | 34 ++++++++++++ packages/utils/package.json | 23 ++++++++ 13 files changed, 330 insertions(+), 76 deletions(-) diff --git a/esbuild.config.js b/esbuild.config.js index 0f98eaf15..33a5debb7 100644 --- a/esbuild.config.js +++ b/esbuild.config.js @@ -1,4 +1,3 @@ -const { readFile, writeFile, stat } = require('node:fs/promises'); const { exec } = require('node:child_process'); const { promisify } = require('node:util'); @@ -54,71 +53,5 @@ module.exports = { }); }, }, - { - name: 'PackageJSON', - setup(build) { - build.onEnd(async result => { - if (result.errors.length > 0) return; - - const project = await getNxProject(); - const { outputPath } = getESBuildExecutorOptions(project); - - const sourcePackageJsonPath = `${project.data.root}/package.json`; - const outputPackageJsonPath = `${outputPath}/package.json`; - - const isPublishable = await stat(sourcePackageJsonPath) - .then(stats => stats.isFile()) - .catch(() => false); - - if (!isPublishable) { - /** @type {import('nx/src/utils/package-json').PackageJson} */ - const newPackageJson = { - name: `@code-pushup/${project.name}`, - private: true, - type: 'module', - main: 'index.js', - types: 'src/index.d.ts', - }; - await writeFile( - outputPackageJsonPath, - JSON.stringify(newPackageJson, null, 2), - ); - return; - } - - /** @type {import('nx/src/utils/package-json').PackageJson} */ - const packageJson = JSON.parse( - await readFile(sourcePackageJsonPath, 'utf8'), - ); - - /** @type {import('nx/src/utils/package-json').PackageJson} */ - const rootPackageJson = JSON.parse( - await readFile('package.json', 'utf8'), - ); - - packageJson.license = rootPackageJson.license; - if (project.name === 'cli') { - packageJson.homepage = rootPackageJson.homepage; - } else { - packageJson.homepage = `https://github.com/code-pushup/cli/tree/main/packages/${project.name}#readme`; - } - packageJson.bugs = rootPackageJson.bugs; - packageJson.repository = { - ...rootPackageJson.repository, - directory: project.data.root, - }; - packageJson.contributors = rootPackageJson.contributors; - packageJson.publishConfig = { access: 'public' }; - packageJson.type = 'module'; - packageJson.main = './index.js'; - packageJson.types = './src/index.d.ts'; - - await writeFile( - outputPackageJsonPath, - JSON.stringify(packageJson, null, 2), - ); - }); - }, - }, ], }; diff --git a/packages/ci/package.json b/packages/ci/package.json index 3ac24ab84..3b245091e 100644 --- a/packages/ci/package.json +++ b/packages/ci/package.json @@ -2,6 +2,31 @@ "name": "@code-pushup/ci", "version": "0.53.0", "description": "CI automation logic for Code PushUp (provider-agnostic)", + "license": "MIT", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/ci#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20ci\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/ci" + }, + "keywords": [ + "Code PushUp", + "CI integration", + "automation", + "KPI tracking", + "tech debt", + "automated feedback", + "regression guard" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/models": "0.53.0", "@code-pushup/utils": "0.53.0", diff --git a/packages/cli/docs/custom-plugins.md b/packages/cli/docs/custom-plugins.md index 3258f70fc..773d3e496 100644 --- a/packages/cli/docs/custom-plugins.md +++ b/packages/cli/docs/custom-plugins.md @@ -622,7 +622,7 @@ Assign weights based on what influence each audit and group should have on the o ```typescript // code-pushup.config.ts -import { CoreConfig } from '@code-pushup/core'; +import type { CoreConfig } from '@code-pushup/core'; export default { // ... diff --git a/packages/cli/package.json b/packages/cli/package.json index 2dc714cf8..bc0e5b04f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -3,6 +3,43 @@ "version": "0.53.0", "license": "MIT", "description": "A CLI to run all kinds of code quality measurements to align your team with company goals", + "homepage": "https://code-pushup.dev", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20cli\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/cli" + }, + "keywords": [ + "CLI", + "Code PushUp", + "automation", + "developer tools", + "code quality", + "conformance", + "build tools", + "KPI tracking", + "tech debt", + "automated feedback", + "regression guard", + "CI integration", + "code management", + "actionable feedback", + "trend analysis", + "static analysis", + "linting", + "audit", + "performance", + "score monitoring" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "bin": { "code-pushup": "index.js" }, diff --git a/packages/core/package.json b/packages/core/package.json index bb2586124..a308d2246 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,6 +3,43 @@ "version": "0.53.0", "license": "MIT", "description": "Core business logic for the used by the Code PushUp CLI", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/core#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20core\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/core" + }, + "keywords": [ + "CLI", + "Code PushUp", + "automation", + "developer tools", + "code quality", + "conformance", + "build tools", + "KPI tracking", + "tech debt", + "automated feedback", + "regression guard", + "CI integration", + "code management", + "actionable feedback", + "trend analysis", + "static analysis", + "linting", + "audit", + "performance", + "score monitoring" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/models": "0.53.0", "@code-pushup/utils": "0.53.0", diff --git a/packages/create-cli/package.json b/packages/create-cli/package.json index 91fd22110..d0602e63c 100644 --- a/packages/create-cli/package.json +++ b/packages/create-cli/package.json @@ -3,6 +3,30 @@ "version": "0.53.0", "license": "MIT", "bin": "index.js", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/create-cli#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20create-cli\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/create-cli" + }, + "keywords": [ + "CLI", + "Code PushUp", + "automation", + "developer tools", + "code quality", + "conformance", + "build tools" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/nx-plugin": "0.53.0", "@code-pushup/utils": "0.53.0" diff --git a/packages/models/package.json b/packages/models/package.json index 2083e1c5a..df1d0836a 100644 --- a/packages/models/package.json +++ b/packages/models/package.json @@ -3,6 +3,31 @@ "version": "0.53.0", "license": "MIT", "description": "Model definitions and validators for the Code PushUp CLI", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/models#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20models\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/models" + }, + "keywords": [ + "CLI", + "Code PushUp", + "developer tools", + "code quality", + "conformance", + "type definition", + "validators", + "models" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "zod": "^3.22.1", "vscode-material-icons": "^0.1.0" diff --git a/packages/nx-plugin/package.json b/packages/nx-plugin/package.json index c5457d7f9..32835faa5 100644 --- a/packages/nx-plugin/package.json +++ b/packages/nx-plugin/package.json @@ -6,15 +6,31 @@ "publishConfig": { "access": "public" }, - "homepage": "code-pushup.dev", + "homepage": "https://code-pushup.dev", "bugs": { - "url": "https://github.com/code-pushup/cli/issues" + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20nx-plugin\"" }, "repository": { "type": "git", "url": "git+https://github.com/code-pushup/cli.git", "directory": "packages/nx-plugin" }, + "keywords": [ + "CLI", + "Code PushUp", + "Nx", + "plugin", + "automation", + "developer tools", + "code quality", + "conformance", + "build tools" + ], + "type": "commonjs", + "main": "./src/index.js", + "typings": "./src/index.d.ts", + "generators": "./generators.json", + "executors": "./executors.json", "dependencies": { "@nx/devkit": "^17.1.3", "tslib": "2.6.3", @@ -22,10 +38,5 @@ "@code-pushup/models": "0.53.0", "zod": "^3.22.4", "@code-pushup/utils": "0.53.0" - }, - "type": "commonjs", - "main": "./src/index.js", - "typings": "./src/index.d.ts", - "generators": "./generators.json", - "executors": "./executors.json" + } } diff --git a/packages/plugin-coverage/package.json b/packages/plugin-coverage/package.json index 2fda8c30c..f91213262 100644 --- a/packages/plugin-coverage/package.json +++ b/packages/plugin-coverage/package.json @@ -2,6 +2,39 @@ "name": "@code-pushup/coverage-plugin", "version": "0.53.0", "description": "Code PushUp plugin for tracking code coverage β˜‚", + "license": "MIT", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-coverage#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20coverage-plugin\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/plugin-coverage" + }, + "keywords": [ + "CLI", + "Code PushUp", + "plugin", + "automation", + "developer tools", + "conformance", + "code coverage", + "unit tests", + "testing", + "KPI tracking", + "automated feedback", + "regression guard", + "actionable feedback", + "audit", + "score monitoring" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/models": "0.53.0", "@code-pushup/utils": "0.53.0", diff --git a/packages/plugin-eslint/package.json b/packages/plugin-eslint/package.json index e636a625d..486c44b83 100644 --- a/packages/plugin-eslint/package.json +++ b/packages/plugin-eslint/package.json @@ -3,6 +3,42 @@ "version": "0.53.0", "license": "MIT", "description": "Code PushUp plugin for detecting problems in source code using ESLint.πŸ“‹", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-eslint#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20eslint-plugin\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/plugin-eslint" + }, + "keywords": [ + "CLI", + "Code PushUp", + "ESLint", + "JavaScript", + "TypeScript", + "plugin", + "static analysis", + "linting", + "audit", + "performance", + "score monitoring", + "code quality", + "conformance", + "KPI tracking", + "tech debt", + "automated feedback", + "regression guard", + "actionable feedback", + "trend analysis" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/utils": "0.53.0", "@code-pushup/models": "0.53.0", diff --git a/packages/plugin-js-packages/package.json b/packages/plugin-js-packages/package.json index 18557c32d..a63145962 100644 --- a/packages/plugin-js-packages/package.json +++ b/packages/plugin-js-packages/package.json @@ -2,6 +2,42 @@ "name": "@code-pushup/js-packages-plugin", "version": "0.53.0", "description": "Code PushUp plugin for JavaScript packages πŸ›‘οΈ", + "license": "MIT", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-js-packages#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20js-packages-plugin\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/plugin-js-packages" + }, + "keywords": [ + "CLI", + "Code PushUp", + "developer tools", + "dependencies", + "audit", + "outdated", + "security", + "updates", + "npm", + "yarn", + "pnpm", + "conformance", + "build tools", + "tech debt", + "automated feedback", + "regression guard", + "CI integration", + "actionable feedback" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/models": "0.53.0", "@code-pushup/utils": "0.53.0", diff --git a/packages/plugin-lighthouse/package.json b/packages/plugin-lighthouse/package.json index 4c3c185a8..8520642d2 100644 --- a/packages/plugin-lighthouse/package.json +++ b/packages/plugin-lighthouse/package.json @@ -3,6 +3,40 @@ "version": "0.53.0", "license": "MIT", "description": "Code PushUp plugin for measuring web performance and quality with Lighthouse πŸ”₯", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-lighthouse#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20lighthouse-plugin\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/plugin-lighthouse" + }, + "keywords": [ + "CLI", + "Code PushUp", + "plugin", + "lighthouse", + "automation", + "actionable feedback", + "runtime analysis", + "audit", + "accessibility", + "performance", + "score monitoring", + "developer tools", + "conformance", + "KPI tracking", + "tech debt", + "automated feedback", + "regression guard" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/models": "0.53.0", "@code-pushup/utils": "0.53.0", diff --git a/packages/utils/package.json b/packages/utils/package.json index 6b74fcf9d..cc6cef3eb 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -2,6 +2,29 @@ "name": "@code-pushup/utils", "version": "0.53.0", "description": "Low-level utilities (helper functions, etc.) used by Code PushUp CLI", + "license": "MIT", + "homepage": "https://github.com/code-pushup/cli/tree/main/packages/utils#readme", + "bugs": { + "url": "https://github.com/code-pushup/cli/issues?q=is%3Aissue%20state%3Aopen%20type%3ABug%20label%3A\"🧩%20utils\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/code-pushup/cli.git", + "directory": "packages/utils" + }, + "keywords": [ + "CLI", + "Code PushUp", + "developer tools", + "helpers", + "utils" + ], + "publishConfig": { + "access": "public" + }, + "type": "module", + "main": "./index.js", + "types": "./src/index.d.ts", "dependencies": { "@code-pushup/models": "0.53.0", "@isaacs/cliui": "^8.0.2", From f01bcc4e85031d6dc028be525b5e600f540d8fd6 Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Thu, 17 Oct 2024 15:22:26 +0200 Subject: [PATCH 03/10] build: typings output build command fix Signed-off-by: Vojtech Masek --- esbuild.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esbuild.config.js b/esbuild.config.js index 33a5debb7..a41c78d51 100644 --- a/esbuild.config.js +++ b/esbuild.config.js @@ -44,7 +44,7 @@ module.exports = { try { await promisify(exec)( - `tsc --emitDeclarationOnly --project ${tsConfig} --outDir dist`, + `npx tsc --emitDeclarationOnly --project ${tsConfig} --outDir dist`, ); } catch (err) { console.error(err); From 46d385e15426832f6b0a87b326a064b329b211b7 Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Fri, 18 Oct 2024 05:48:42 +0200 Subject: [PATCH 04/10] refactor: use toSorted in appropriate places Signed-off-by: Vojtech Masek --- .../models/src/lib/implementation/utils.ts | 2 +- .../src/lib/runner/lcov/utils.ts | 4 ++-- packages/plugin-eslint/src/lib/meta/groups.ts | 2 +- .../plugin-eslint/src/lib/runner/transform.ts | 4 ++-- .../reports/generate-md-reports-diff-utils.ts | 2 +- ...enerate-md-reports-diff-utils.unit.test.ts | 4 ++-- packages/utils/src/lib/reports/sorting.ts | 8 +++---- .../utils/src/lib/reports/utils.unit.test.ts | 22 +++++++++---------- packages/utils/src/lib/text-formats/table.ts | 4 ++-- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/models/src/lib/implementation/utils.ts b/packages/models/src/lib/implementation/utils.ts index bae130620..02079dd2a 100644 --- a/packages/models/src/lib/implementation/utils.ts +++ b/packages/models/src/lib/implementation/utils.ts @@ -21,7 +21,7 @@ export const filenameRegex = /^(?!.*[ \\/:*?"<>|]).+$/; * @param strings */ export function hasDuplicateStrings(strings: string[]): string[] | false { - const sortedStrings = [...strings].sort(); + const sortedStrings = strings.toSorted(); const duplStrings = sortedStrings.filter( (item, index) => index !== 0 && item === sortedStrings[index - 1], ); diff --git a/packages/plugin-coverage/src/lib/runner/lcov/utils.ts b/packages/plugin-coverage/src/lib/runner/lcov/utils.ts index 31790c639..fce9627cf 100644 --- a/packages/plugin-coverage/src/lib/runner/lcov/utils.ts +++ b/packages/plugin-coverage/src/lib/runner/lcov/utils.ts @@ -11,8 +11,8 @@ export function calculateCoverage(hit: number, found: number): number { } export function mergeConsecutiveNumbers(numberArr: number[]): NumberRange[] { - return [...numberArr] - .sort((a, b) => a - b) + return numberArr + .toSorted((a, b) => a - b) .reduce((acc, currValue) => { const prevValue = acc.at(-1); if ( diff --git a/packages/plugin-eslint/src/lib/meta/groups.ts b/packages/plugin-eslint/src/lib/meta/groups.ts index d8ca8acb0..0b1c6af2a 100644 --- a/packages/plugin-eslint/src/lib/meta/groups.ts +++ b/packages/plugin-eslint/src/lib/meta/groups.ts @@ -85,5 +85,5 @@ export function groupsFromRuleCategories(rules: RuleData[]): Group[] { ), ); - return [...groups].sort((a, b) => a.slug.localeCompare(b.slug)); + return groups.toSorted((a, b) => a.slug.localeCompare(b.slug)); } diff --git a/packages/plugin-eslint/src/lib/runner/transform.ts b/packages/plugin-eslint/src/lib/runner/transform.ts index ecbdfb49c..a199d9be6 100644 --- a/packages/plugin-eslint/src/lib/runner/transform.ts +++ b/packages/plugin-eslint/src/lib/runner/transform.ts @@ -55,8 +55,8 @@ function toAudit(slug: string, issues: LintIssue[]): AuditOutput { auditIssues.map(({ severity }) => severity), ); const severities = objectToEntries(severityCounts); - const summaryText = [...severities] - .sort((a, b) => -compareIssueSeverity(a[0], b[0])) + const summaryText = severities + .toSorted((a, b) => -compareIssueSeverity(a[0], b[0])) .map(([severity, count = 0]) => pluralizeToken(severity, count)) .join(', '); diff --git a/packages/utils/src/lib/reports/generate-md-reports-diff-utils.ts b/packages/utils/src/lib/reports/generate-md-reports-diff-utils.ts index a1eb93c2b..6633d2a03 100644 --- a/packages/utils/src/lib/reports/generate-md-reports-diff-utils.ts +++ b/packages/utils/src/lib/reports/generate-md-reports-diff-utils.ts @@ -98,7 +98,7 @@ type Change = { }; export function sortChanges(changes: T[]): T[] { - return [...changes].sort( + return changes.toSorted( (a, b) => Math.abs(b.scores.diff) - Math.abs(a.scores.diff) || Math.abs(b.values?.diff ?? 0) - Math.abs(a.values?.diff ?? 0), diff --git a/packages/utils/src/lib/reports/generate-md-reports-diff-utils.unit.test.ts b/packages/utils/src/lib/reports/generate-md-reports-diff-utils.unit.test.ts index e8300114f..af6e65086 100644 --- a/packages/utils/src/lib/reports/generate-md-reports-diff-utils.unit.test.ts +++ b/packages/utils/src/lib/reports/generate-md-reports-diff-utils.unit.test.ts @@ -212,7 +212,7 @@ describe('compareDiffsBy', () => { }, ] as ReportsDiff[]; expect( - [...diffs].sort((a, b) => compareDiffsBy('categories', a, b)), + diffs.toSorted((a, b) => compareDiffsBy('categories', a, b)), ).toEqual([diffs[1], diffs[0], diffs[2]]); }); @@ -247,7 +247,7 @@ describe('compareDiffsBy', () => { }, }, ] as ReportsDiff[]; - expect([...diffs].sort((a, b) => compareDiffsBy('audits', a, b))).toEqual([ + expect(diffs.toSorted((a, b) => compareDiffsBy('audits', a, b))).toEqual([ diffs[1], diffs[3], diffs[2], diff --git a/packages/utils/src/lib/reports/sorting.ts b/packages/utils/src/lib/reports/sorting.ts index 8659a22df..35efd30c1 100644 --- a/packages/utils/src/lib/reports/sorting.ts +++ b/packages/utils/src/lib/reports/sorting.ts @@ -75,7 +75,7 @@ export function getSortableGroupByRef( } const sortedAudits = getSortedGroupAudits(group, groupPlugin.slug, plugins); - const sortedAuditRefs = [...group.refs].sort((a, b) => { + const sortedAuditRefs = group.refs.toSorted((a, b) => { const aIndex = sortedAudits.findIndex(ref => ref.slug === a.slug); const bIndex = sortedAudits.findIndex(ref => ref.slug === b.slug); return aIndex - bIndex; @@ -115,7 +115,7 @@ export function sortReport(report: ScoredReport): ScoredReport { compareCategoryAuditsAndGroups, ); - const sortedRefs = [...category.refs].sort((a, b) => { + const sortedRefs = category.refs.toSorted((a, b) => { const aIndex = sortedAuditsAndGroups.findIndex( ref => ref.slug === a.slug && ref.plugin === a.plugin, ); @@ -144,13 +144,13 @@ function sortPlugins( ) { return plugins.map(plugin => ({ ...plugin, - audits: [...plugin.audits].sort(compareAudits).map(audit => + audits: plugin.audits.toSorted(compareAudits).map(audit => audit.details?.issues ? { ...audit, details: { ...audit.details, - issues: [...audit.details.issues].sort(compareIssues), + issues: audit.details.issues.toSorted(compareIssues), }, } : audit, diff --git a/packages/utils/src/lib/reports/utils.unit.test.ts b/packages/utils/src/lib/reports/utils.unit.test.ts index c3a042312..55468ddba 100644 --- a/packages/utils/src/lib/reports/utils.unit.test.ts +++ b/packages/utils/src/lib/reports/utils.unit.test.ts @@ -179,9 +179,9 @@ describe('countWeightedRefs', () => { describe('compareIssueSeverity', () => { it('should order severities in logically ascending order when used as compareFn with .sort()', () => { const severityArr: IssueSeverity[] = ['error', 'info', 'warning']; - expect([...severityArr].sort(compareIssueSeverity)).toEqual< - IssueSeverity[] - >(['info', 'warning', 'error']); + expect(severityArr.toSorted(compareIssueSeverity)).toEqual( + ['info', 'warning', 'error'], + ); }); }); @@ -193,7 +193,7 @@ describe('compareCategoryAuditsAndGroups', () => { { weight: 0, score: 0.7 }, { weight: 10, score: 1 }, ] as SortableAuditReport[]; - expect([...mockAudits].sort(compareCategoryAuditsAndGroups)).toEqual([ + expect(mockAudits.toSorted(compareCategoryAuditsAndGroups)).toEqual([ { weight: 0, score: 0.1 }, { weight: 0, score: 0.7 }, { weight: 10, score: 1 }, @@ -208,7 +208,7 @@ describe('compareCategoryAuditsAndGroups', () => { { score: 0.7, value: 0 }, { score: 0, value: 1 }, ] as SortableAuditReport[]; - expect([...mockAudits].sort(compareCategoryAuditsAndGroups)).toEqual([ + expect(mockAudits.toSorted(compareCategoryAuditsAndGroups)).toEqual([ { score: 0, value: 1 }, { score: 0.7, value: 1 }, { score: 0.7, value: 0 }, @@ -223,7 +223,7 @@ describe('compareCategoryAuditsAndGroups', () => { { value: 0, title: 'a' }, { value: 1, title: 'd' }, ] as SortableAuditReport[]; - expect([...mockAudits].sort(compareCategoryAuditsAndGroups)).toEqual([ + expect(mockAudits.toSorted(compareCategoryAuditsAndGroups)).toEqual([ { value: 1, title: 'c' }, { value: 1, title: 'd' }, { value: 0, title: 'a' }, @@ -262,7 +262,7 @@ describe('sortAudits', () => { { score: 0.7, value: 0 }, { score: 0, value: 1 }, ] as AuditReport[]; - const sortedAudits = [...mockAudits].sort(compareAudits); + const sortedAudits = mockAudits.toSorted(compareAudits); expect(sortedAudits).toEqual([ { score: 0, value: 1 }, { score: 0.7, value: 1 }, @@ -278,7 +278,7 @@ describe('sortAudits', () => { { value: 0, title: 'a' }, { value: 1, title: 'd' }, ] as AuditReport[]; - const sortedAudits = [...mockAudits].sort(compareAudits); + const sortedAudits = mockAudits.toSorted(compareAudits); expect(sortedAudits).toEqual([ { value: 1, title: 'c' }, { value: 1, title: 'd' }, @@ -323,7 +323,7 @@ describe('sortAuditIssues', () => { { severity: 'error', source: { file: 'a' } }, { severity: 'info', source: { file: 'b' } }, ] as Issue[]; - const sortedIssues = [...mockIssues].sort(compareIssues); + const sortedIssues = mockIssues.toSorted(compareIssues); expect(sortedIssues).toEqual([ { severity: 'error', source: { file: 'a' } }, { severity: 'error', source: { file: 'c' } }, @@ -339,7 +339,7 @@ describe('sortAuditIssues', () => { { severity: 'info', source: { file: 'a', position: { startLine: 2 } } }, { severity: 'info', source: { file: 'b', position: { startLine: 1 } } }, ] as Issue[]; - const sortedIssues = [...mockIssues].sort(compareIssues); + const sortedIssues = mockIssues.toSorted(compareIssues); expect(sortedIssues).toEqual([ { severity: 'info', source: { file: 'a', position: { startLine: 2 } } }, { severity: 'info', source: { file: 'b', position: { startLine: 1 } } }, @@ -360,7 +360,7 @@ describe('sortAuditIssues', () => { { severity: 'info', source: { file: 'b' } }, { severity: 'error' }, ] as Issue[]; - const sortedIssues = [...mockIssues].sort(compareIssues); + const sortedIssues = mockIssues.toSorted(compareIssues); expect(sortedIssues).toEqual([ { severity: 'error' }, { diff --git a/packages/utils/src/lib/text-formats/table.ts b/packages/utils/src/lib/text-formats/table.ts index 5e2d7ff72..d62880f10 100644 --- a/packages/utils/src/lib/text-formats/table.ts +++ b/packages/utils/src/lib/text-formats/table.ts @@ -119,8 +119,8 @@ export function getColumnAlignments(tableData: Table): TableAlignment[] { ); } - const biggestRow = [...rows] - .sort((a, b) => Object.keys(a).length - Object.keys(b).length) + const biggestRow = rows + .toSorted((a, b) => Object.keys(a).length - Object.keys(b).length) .at(-1); if (columns.length > 0) { return columns.map((column, idx) => From 88adb2128862f08c0b016ee9c19ea379b4c2b957 Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Fri, 18 Oct 2024 07:12:06 +0200 Subject: [PATCH 05/10] refactor(utils): remove multiple globs libs from perf benchmark example Signed-off-by: Vojtech Masek --- package-lock.json | 67 +------------------- package.json | 4 +- packages/utils/perf/glob/fast-glob.ts | 5 -- packages/utils/perf/glob/glob.ts | 5 -- packages/utils/perf/glob/globby.ts | 5 -- packages/utils/perf/glob/index.ts | 91 --------------------------- 6 files changed, 2 insertions(+), 175 deletions(-) delete mode 100644 packages/utils/perf/glob/fast-glob.ts delete mode 100644 packages/utils/perf/glob/glob.ts delete mode 100644 packages/utils/perf/glob/globby.ts delete mode 100644 packages/utils/perf/glob/index.ts diff --git a/package-lock.json b/package-lock.json index 6ae23621f..0c544d022 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", "@trivago/prettier-plugin-sort-imports": "^4.2.0", - "@types/benchmark": "^2.1.4", + "@types/benchmark": "^2.1.5", "@types/debug": "^4.1.12", "@types/eslint": "^8.44.2", "@types/node": "18.19.21", @@ -87,8 +87,6 @@ "eslint-plugin-sonarjs": "^0.22.0", "eslint-plugin-unicorn": "^48.0.1", "eslint-plugin-vitest": "^0.3.8", - "fast-glob": "^3.3.2", - "globby": "^14.0.1", "husky": "^8.0.0", "inquirer": "^8.2.6", "jsdom": "~24.0.0", @@ -6521,17 +6519,6 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", @@ -15440,47 +15427,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "14.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/path-type": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.0.1", "dev": true, @@ -25038,17 +24984,6 @@ "node": ">=4" } }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/union": { "version": "0.5.0", "dev": true, diff --git a/package.json b/package.json index b4657c17b..1a4402a11 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", "@trivago/prettier-plugin-sort-imports": "^4.2.0", - "@types/benchmark": "^2.1.4", + "@types/benchmark": "^2.1.5", "@types/debug": "^4.1.12", "@types/eslint": "^8.44.2", "@types/node": "18.19.21", @@ -99,8 +99,6 @@ "eslint-plugin-sonarjs": "^0.22.0", "eslint-plugin-unicorn": "^48.0.1", "eslint-plugin-vitest": "^0.3.8", - "fast-glob": "^3.3.2", - "globby": "^14.0.1", "husky": "^8.0.0", "inquirer": "^8.2.6", "jsdom": "~24.0.0", diff --git a/packages/utils/perf/glob/fast-glob.ts b/packages/utils/perf/glob/fast-glob.ts deleted file mode 100644 index 37ab5224e..000000000 --- a/packages/utils/perf/glob/fast-glob.ts +++ /dev/null @@ -1,5 +0,0 @@ -import * as fg from 'fast-glob'; - -export function fastGlob(pattern: string[]): Promise { - return fg.async(pattern); -} diff --git a/packages/utils/perf/glob/glob.ts b/packages/utils/perf/glob/glob.ts deleted file mode 100644 index 8b59973ab..000000000 --- a/packages/utils/perf/glob/glob.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { glob as g } from 'glob'; - -export function glob(pattern: string[]): Promise { - return g(pattern); -} diff --git a/packages/utils/perf/glob/globby.ts b/packages/utils/perf/glob/globby.ts deleted file mode 100644 index e88181fe7..000000000 --- a/packages/utils/perf/glob/globby.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { globby as g } from 'globby'; - -export function globby(pattern: string[]): Promise { - return g(pattern); -} diff --git a/packages/utils/perf/glob/index.ts b/packages/utils/perf/glob/index.ts deleted file mode 100644 index fa8f410b9..000000000 --- a/packages/utils/perf/glob/index.ts +++ /dev/null @@ -1,91 +0,0 @@ -import * as Benchmark from 'benchmark'; -import { join } from 'node:path'; -import { fastGlob } from './fast-glob'; -import { glob } from './glob'; -import { globby } from './globby'; - -const suite = new Benchmark.Suite('report-scoring'); - -const BASE_PATH = join( - process.cwd(), - '..', - '..', - '..', - 'node_modules', - '**/*.js', -); - -// ================== - -const start = performance.now(); - -// Add listener -const listeners = { - cycle: function (event: Benchmark.Event) { - console.info(String(event.target)); - }, - complete: () => { - if (typeof suite.filter === 'function') { - console.info(' '); - console.info( - `Total Duration: ${((performance.now() - start) / 1000).toFixed( - 2, - )} sec`, - ); - console.info(`Fastest is ${String(suite.filter('fastest').map('name'))}`); - } - }, -}; - -// ================== - -// Add tests -const pattern = [BASE_PATH]; -suite.add('glob', wrapWithDefer(glob)); -suite.add('globby', wrapWithDefer(globby)); -suite.add('fastGlob', wrapWithDefer(fastGlob)); - -// ================== - -// Add Listener -Object.entries(listeners).forEach(([name, fn]) => { - suite.on(name, fn); -}); - -// ================== - -console.info('You can adjust the test with the following arguments:'); -console.info(`pattern glob pattern of test --pattern=${BASE_PATH}`); -console.info(' '); -console.info('Start benchmark...'); -console.info(' '); - -suite.run({ - async: true, -}); - -// ============================================================== - -function wrapWithDefer(asyncFn: (pattern: string[]) => Promise) { - const logged: Record = {}; - return { - defer: true, // important for async functions - fn: function (deferred: { resolve: () => void }) { - return asyncFn(pattern) - .catch(() => []) - .then((result: unknown[]) => { - if (result.length === 0) { - throw new Error(`Result length is ${result.length}`); - } else { - if (!logged[asyncFn.name]) { - // eslint-disable-next-line functional/immutable-data - logged[asyncFn.name] = true; - console.info(`${asyncFn.name} found ${result.length} files`); - } - deferred.resolve(); - } - return void 0; - }); - }, - }; -} From 6244f3fa6ccf5d9992c9b4321b8d6462c765a41f Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Fri, 18 Oct 2024 07:12:24 +0200 Subject: [PATCH 06/10] refactor(utils): fix score report benchmark Signed-off-by: Vojtech Masek --- packages/utils/perf/score-report/index.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/utils/perf/score-report/index.ts b/packages/utils/perf/score-report/index.ts index cd6618c98..c98a42d05 100644 --- a/packages/utils/perf/score-report/index.ts +++ b/packages/utils/perf/score-report/index.ts @@ -1,4 +1,4 @@ -import * as Benchmark from 'benchmark'; +import Benchmark from 'benchmark'; import type { Report } from '@code-pushup/models'; import { scoreReport } from '../../src/lib/reports/scoring'; import { scoreReportOptimized0 } from './optimized0'; @@ -34,6 +34,7 @@ const PROCESS_ARGUMENT_NUM_GROUPS_P2 = Number.parseInt( 10, ); +// eslint-disable-next-line import/no-named-as-default-member const suite = new Benchmark.Suite('report-scoring'); const AUDIT_PREFIX = 'a-'; @@ -131,8 +132,18 @@ function minimalReport(opt?: MinimalReportOptions): Report { const numAuditsP2 = opt?.numAuditsP2 ?? NUM_AUDITS_P2; const numGroupRefs2 = opt?.numGroupRefs2 ?? NUM_GROUPS_P2; + const date = new Date(); + return { - date: '2022-01-01', + date: date.toISOString(), + packageName: 'perf-benchmark', + version: '0', + commit: { + date: date, + message: 'perf: benchmark score report', + author: 'me', + hash: 'mock_hash', + }, duration: 0, categories: [ { From d7ba5a3ff88a00c73d4abfe8aaaf2579deab79da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Chalk?= Date: Fri, 18 Oct 2024 10:45:03 +0200 Subject: [PATCH 07/10] fix(ci): handle monorepo mode in non-PR flow --- packages/ci/src/lib/run.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ci/src/lib/run.ts b/packages/ci/src/lib/run.ts index 1af847d87..bba1c4da7 100644 --- a/packages/ci/src/lib/run.ts +++ b/packages/ci/src/lib/run.ts @@ -75,6 +75,7 @@ export async function runInCI( diffArtifact, }; } + return { mode: 'monorepo', projects: projectResults }; } logger.info('Running Code PushUp in standalone project mode'); From 5d31afcef09a2b2bfe2df8853ede7026f86c32a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Chalk?= Date: Fri, 18 Oct 2024 11:18:45 +0200 Subject: [PATCH 08/10] release: 0.53.1 [skip ci] --- CHANGELOG.md | 15 +++++++++++++++ packages/ci/package.json | 6 +++--- packages/cli/package.json | 8 ++++---- packages/core/package.json | 6 +++--- packages/create-cli/package.json | 6 +++--- packages/models/package.json | 2 +- packages/nx-plugin/package.json | 6 +++--- packages/plugin-coverage/package.json | 6 +++--- packages/plugin-eslint/package.json | 6 +++--- packages/plugin-js-packages/package.json | 6 +++--- packages/plugin-lighthouse/package.json | 6 +++--- packages/utils/package.json | 4 ++-- 12 files changed, 46 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3601bb0d6..bac173bc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +## 0.53.1 (2024-10-18) + +### πŸš€ Features + +- add keywords for NPM to display ([17a0c498](https://github.com/code-pushup/cli/commit/17a0c498)) + +### 🩹 Fixes + +- **ci:** handle monorepo mode in non-PR flow ([d7ba5a3f](https://github.com/code-pushup/cli/commit/d7ba5a3f)) + +### ❀️ Thank You + +- MatΔ›j Chalk +- Vojtech Masek @vmasek + ## 0.53.0 (2024-10-17) ### πŸš€ Features diff --git a/packages/ci/package.json b/packages/ci/package.json index 3b245091e..dd64219ae 100644 --- a/packages/ci/package.json +++ b/packages/ci/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/ci", - "version": "0.53.0", + "version": "0.53.1", "description": "CI automation logic for Code PushUp (provider-agnostic)", "license": "MIT", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/ci#readme", @@ -28,8 +28,8 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/models": "0.53.0", - "@code-pushup/utils": "0.53.0", + "@code-pushup/models": "0.53.1", + "@code-pushup/utils": "0.53.1", "glob": "^10.4.5", "simple-git": "^3.20.0", "yaml": "^2.5.1" diff --git a/packages/cli/package.json b/packages/cli/package.json index bc0e5b04f..8a79ae4a1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/cli", - "version": "0.53.0", + "version": "0.53.1", "license": "MIT", "description": "A CLI to run all kinds of code quality measurements to align your team with company goals", "homepage": "https://code-pushup.dev", @@ -44,9 +44,9 @@ "code-pushup": "index.js" }, "dependencies": { - "@code-pushup/models": "0.53.0", - "@code-pushup/core": "0.53.0", - "@code-pushup/utils": "0.53.0", + "@code-pushup/models": "0.53.1", + "@code-pushup/core": "0.53.1", + "@code-pushup/utils": "0.53.1", "yargs": "^17.7.2", "ansis": "^3.3.0", "simple-git": "^3.20.0" diff --git a/packages/core/package.json b/packages/core/package.json index a308d2246..eb3f94e14 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/core", - "version": "0.53.0", + "version": "0.53.1", "license": "MIT", "description": "Core business logic for the used by the Code PushUp CLI", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/core#readme", @@ -41,8 +41,8 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/models": "0.53.0", - "@code-pushup/utils": "0.53.0", + "@code-pushup/models": "0.53.1", + "@code-pushup/utils": "0.53.1", "ansis": "^3.3.0" }, "peerDependencies": { diff --git a/packages/create-cli/package.json b/packages/create-cli/package.json index d0602e63c..51458302f 100644 --- a/packages/create-cli/package.json +++ b/packages/create-cli/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/create-cli", - "version": "0.53.0", + "version": "0.53.1", "license": "MIT", "bin": "index.js", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/create-cli#readme", @@ -28,7 +28,7 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/nx-plugin": "0.53.0", - "@code-pushup/utils": "0.53.0" + "@code-pushup/nx-plugin": "0.53.1", + "@code-pushup/utils": "0.53.1" } } diff --git a/packages/models/package.json b/packages/models/package.json index df1d0836a..f0d334307 100644 --- a/packages/models/package.json +++ b/packages/models/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/models", - "version": "0.53.0", + "version": "0.53.1", "license": "MIT", "description": "Model definitions and validators for the Code PushUp CLI", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/models#readme", diff --git a/packages/nx-plugin/package.json b/packages/nx-plugin/package.json index 32835faa5..cc36f9633 100644 --- a/packages/nx-plugin/package.json +++ b/packages/nx-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/nx-plugin", - "version": "0.53.0", + "version": "0.53.1", "license": "MIT", "description": "Nx plugin to integrate the Code PushUp CLI into your workspace πŸ› οΈ", "publishConfig": { @@ -35,8 +35,8 @@ "@nx/devkit": "^17.1.3", "tslib": "2.6.3", "nx": "^17.1.3", - "@code-pushup/models": "0.53.0", + "@code-pushup/models": "0.53.1", "zod": "^3.22.4", - "@code-pushup/utils": "0.53.0" + "@code-pushup/utils": "0.53.1" } } diff --git a/packages/plugin-coverage/package.json b/packages/plugin-coverage/package.json index f91213262..87760c0bd 100644 --- a/packages/plugin-coverage/package.json +++ b/packages/plugin-coverage/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/coverage-plugin", - "version": "0.53.0", + "version": "0.53.1", "description": "Code PushUp plugin for tracking code coverage β˜‚", "license": "MIT", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-coverage#readme", @@ -36,8 +36,8 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/models": "0.53.0", - "@code-pushup/utils": "0.53.0", + "@code-pushup/models": "0.53.1", + "@code-pushup/utils": "0.53.1", "ansis": "^3.3.0", "parse-lcov": "^1.0.4", "zod": "^3.22.4" diff --git a/packages/plugin-eslint/package.json b/packages/plugin-eslint/package.json index 486c44b83..e5a170b55 100644 --- a/packages/plugin-eslint/package.json +++ b/packages/plugin-eslint/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/eslint-plugin", - "version": "0.53.0", + "version": "0.53.1", "license": "MIT", "description": "Code PushUp plugin for detecting problems in source code using ESLint.πŸ“‹", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-eslint#readme", @@ -40,8 +40,8 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/utils": "0.53.0", - "@code-pushup/models": "0.53.0", + "@code-pushup/utils": "0.53.1", + "@code-pushup/models": "0.53.1", "eslint": "^8.46.0", "zod": "^3.22.4" }, diff --git a/packages/plugin-js-packages/package.json b/packages/plugin-js-packages/package.json index a63145962..74722b01c 100644 --- a/packages/plugin-js-packages/package.json +++ b/packages/plugin-js-packages/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/js-packages-plugin", - "version": "0.53.0", + "version": "0.53.1", "description": "Code PushUp plugin for JavaScript packages πŸ›‘οΈ", "license": "MIT", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-js-packages#readme", @@ -39,8 +39,8 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/models": "0.53.0", - "@code-pushup/utils": "0.53.0", + "@code-pushup/models": "0.53.1", + "@code-pushup/utils": "0.53.1", "build-md": "^0.4.1", "semver": "^7.6.0", "zod": "^3.22.4" diff --git a/packages/plugin-lighthouse/package.json b/packages/plugin-lighthouse/package.json index 8520642d2..1ac3a7b0d 100644 --- a/packages/plugin-lighthouse/package.json +++ b/packages/plugin-lighthouse/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/lighthouse-plugin", - "version": "0.53.0", + "version": "0.53.1", "license": "MIT", "description": "Code PushUp plugin for measuring web performance and quality with Lighthouse πŸ”₯", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-lighthouse#readme", @@ -38,8 +38,8 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/models": "0.53.0", - "@code-pushup/utils": "0.53.0", + "@code-pushup/models": "0.53.1", + "@code-pushup/utils": "0.53.1", "ansis": "^3.3.0", "chrome-launcher": "^1.1.1", "lighthouse": "^12.0.0", diff --git a/packages/utils/package.json b/packages/utils/package.json index cc6cef3eb..c58d7d014 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@code-pushup/utils", - "version": "0.53.0", + "version": "0.53.1", "description": "Low-level utilities (helper functions, etc.) used by Code PushUp CLI", "license": "MIT", "homepage": "https://github.com/code-pushup/cli/tree/main/packages/utils#readme", @@ -26,7 +26,7 @@ "main": "./index.js", "types": "./src/index.d.ts", "dependencies": { - "@code-pushup/models": "0.53.0", + "@code-pushup/models": "0.53.1", "@isaacs/cliui": "^8.0.2", "@poppinss/cliui": "^6.4.0", "ansis": "^3.3.0", From b472450deac307e468e4af85a5c9159a3741d6df Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Fri, 18 Oct 2024 08:17:13 +0200 Subject: [PATCH 09/10] refactor: migrate to latest prettier Signed-off-by: Vojtech Masek --- .prettierrc | 1 + CONTRIBUTING.md | 10 +++++----- docs/e2e.md | 10 +++++----- e2e/cli-e2e/tests/collect.e2e.test.ts | 2 +- examples/react-todos-app/index.html | 2 +- package-lock.json | 14 +++++++------- package.json | 4 ++-- .../core-config.integration.test.ts | 16 ++++++++-------- .../cli/src/lib/implementation/global.utils.ts | 10 +++++----- .../validate-filter-options.utils.ts | 8 ++++---- packages/models/src/lib/implementation/utils.ts | 9 +++++---- packages/nx-plugin/README.md | 2 +- packages/nx-plugin/src/executors/cli/README.md | 14 +++++++------- packages/nx-plugin/src/plugin/README.md | 10 +++++----- .../src/lib/runner/runner.integration.test.ts | 5 ++--- .../mocks/fixtures/todos-app/www/index.html | 2 +- .../src/lib/nx/traverse-graph.unit.test.ts | 2 +- packages/plugin-eslint/src/lib/runner/index.ts | 5 ++--- .../src/lib/runner/lint.unit.test.ts | 2 +- .../package-managers/derive-package-manager.ts | 5 ++--- .../lib/package-managers/npm/audit-result.ts | 2 +- .../src/lib/runner/outdated/transform.ts | 17 ++++++++++------- .../src/lib/runner/runner.integration.test.ts | 5 ++--- .../plugin-lighthouse/src/lib/runner/utils.ts | 4 ++-- .../src/lib/runner/utils.unit.test.ts | 4 ++-- .../lib/reports/generate-md-report.unit.test.ts | 4 +++- testing/test-setup/src/lib/cliui.mock.ts | 10 ++++------ .../utils/dynamic-mocks/eslint-plugin.mock.ts | 2 +- tools/src/debug/README.md | 10 +++++----- tools/src/npm/README.md | 10 +++++----- tools/src/publish/README.md | 10 +++++----- tools/src/verdaccio/README.md | 10 +++++----- tools/src/verdaccio/bin/create-verdaccio-env.ts | 4 +++- 33 files changed, 114 insertions(+), 111 deletions(-) diff --git a/.prettierrc b/.prettierrc index 8297cbd1a..3aa0d430e 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,6 +2,7 @@ "singleQuote": true, "arrowParens": "avoid", "trailingComma": "all", + "plugins": ["@trivago/prettier-plugin-sort-imports"], "importOrder": [ "^@code-pushup/portal-client$", "^@code-pushup/(.*)$", diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4b8cb386f..1d0cd09de 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,11 +16,11 @@ npm install This table provides a quick overview of the environmental setup, with detailed explanations in the corresponding sections. -| Feature | Local Default | CI Default | Description | -| -------------------------------- | ------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | -| `env.INCLUDE_SLOW_TESTS` **❗️** | `false` | `true` | Controls inclusion of long-running tests. Overridden by setting. Details in the [Testing](#Testing) section. | -| `env.CUSTOM_CHROME_PATH` | N/A | Windows **❗️❗️** | Path to Chrome executable. See [plugin-lighthouse/CONTRIBUTING.md](./packages/plugin-lighthouse/CONTRIBUTING.md#chrome-path). | -| Quality Pipeline | Off | On | Runs all plugins against the codebase. | +| Feature | Local Default | CI Default | Description | +| ------------------------------- | ------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `env.INCLUDE_SLOW_TESTS` **❗️** | `false` | `true` | Controls inclusion of long-running tests. Overridden by setting. Details in the [Testing](#Testing) section. | +| `env.CUSTOM_CHROME_PATH` | N/A | Windows **❗️❗️** | Path to Chrome executable. See [plugin-lighthouse/CONTRIBUTING.md](./packages/plugin-lighthouse/CONTRIBUTING.md#chrome-path). | +| Quality Pipeline | Off | On | Runs all plugins against the codebase. | **❗️** Test Inclusion Logic diff --git a/docs/e2e.md b/docs/e2e.md index f6f84ef2a..a239dd047 100644 --- a/docs/e2e.md +++ b/docs/e2e.md @@ -102,7 +102,7 @@ Root/ // nx.json { // ... - "plugins": ["tools/src/npm/npm.plugin.ts", "tools/src/publish/publish.plugin.ts", "tools/src/verdaccio/verdaccio.plugin.ts"] + "plugins": ["tools/src/npm/npm.plugin.ts", "tools/src/publish/publish.plugin.ts", "tools/src/verdaccio/verdaccio.plugin.ts"], } ``` @@ -115,10 +115,10 @@ Root/ "e2e": { "executor": "@nx/vite:test", "options": { - "configFile": "e2e/-e2e/vite.config.e2e.ts" - } - } - } + "configFile": "e2e/-e2e/vite.config.e2e.ts", + }, + }, + }, } ``` diff --git a/e2e/cli-e2e/tests/collect.e2e.test.ts b/e2e/cli-e2e/tests/collect.e2e.test.ts index 4176cef4e..5e301ab29 100644 --- a/e2e/cli-e2e/tests/collect.e2e.test.ts +++ b/e2e/cli-e2e/tests/collect.e2e.test.ts @@ -32,7 +32,7 @@ describe('CLI collect', () => { audits: audits.map( pluginReport.slug === 'lighthouse' ? omitVariableAuditData : p => p, ) as AuditReport[], - } as PluginReport); + }) as PluginReport; const omitVariableReportData = ({ commit, date, diff --git a/examples/react-todos-app/index.html b/examples/react-todos-app/index.html index 52b8e91d0..35db2fc31 100644 --- a/examples/react-todos-app/index.html +++ b/examples/react-todos-app/index.html @@ -1,4 +1,4 @@ - + diff --git a/package-lock.json b/package-lock.json index 0c544d022..33297d984 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "@swc/core": "^1.3.99", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", - "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/benchmark": "^2.1.5", "@types/debug": "^4.1.12", "@types/eslint": "^8.44.2", @@ -94,7 +94,7 @@ "knip": "^5.9.4", "memfs": "^4.5.0", "moment": "^2.29.4", - "prettier": "^2.6.2", + "prettier": "^3.3.3", "react": "^18.2.0", "react-dom": "^18.2.0", "tsconfig-paths": "^4.2.0", @@ -21952,15 +21952,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" diff --git a/package.json b/package.json index 1a4402a11..b069408f9 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@swc/core": "^1.3.99", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.0.0", - "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/benchmark": "^2.1.5", "@types/debug": "^4.1.12", "@types/eslint": "^8.44.2", @@ -106,7 +106,7 @@ "knip": "^5.9.4", "memfs": "^4.5.0", "moment": "^2.29.4", - "prettier": "^2.6.2", + "prettier": "^3.3.3", "react": "^18.2.0", "react-dom": "^18.2.0", "tsconfig-paths": "^4.2.0", diff --git a/packages/cli/src/lib/implementation/core-config.integration.test.ts b/packages/cli/src/lib/implementation/core-config.integration.test.ts index 36cc63801..75972c9e6 100644 --- a/packages/cli/src/lib/implementation/core-config.integration.test.ts +++ b/packages/cli/src/lib/implementation/core-config.integration.test.ts @@ -38,14 +38,14 @@ vi.mock('@code-pushup/core', async () => { return filepath.includes('all-persist-options') ? allPersistOptions : filepath.includes('persist-only-filename') - ? persistOnlyFilename - : filepath.includes('no-persist') - ? noPersist - : filepath.includes('no-category') - ? noCategory - : filepath.includes('no-upload') - ? noUpload - : CORE_CONFIG_MOCK; + ? persistOnlyFilename + : filepath.includes('no-persist') + ? noPersist + : filepath.includes('no-category') + ? noCategory + : filepath.includes('no-upload') + ? noUpload + : CORE_CONFIG_MOCK; }), }; }); diff --git a/packages/cli/src/lib/implementation/global.utils.ts b/packages/cli/src/lib/implementation/global.utils.ts index 865c89043..ddc46334e 100644 --- a/packages/cli/src/lib/implementation/global.utils.ts +++ b/packages/cli/src/lib/implementation/global.utils.ts @@ -13,11 +13,11 @@ export function filterKebabCaseKeys>( (typeof value === 'object' && Array.isArray(obj[key])) ? { ...acc, [key]: value } : typeof value === 'object' && !Array.isArray(value) && value != null - ? { - ...acc, - [key]: filterKebabCaseKeys(value as Record), - } - : { ...acc, [key]: value }, + ? { + ...acc, + [key]: filterKebabCaseKeys(value as Record), + } + : { ...acc, [key]: value }, {}, ) as T; } diff --git a/packages/cli/src/lib/implementation/validate-filter-options.utils.ts b/packages/cli/src/lib/implementation/validate-filter-options.utils.ts index 7274dbf09..1b87cb79c 100644 --- a/packages/cli/src/lib/implementation/validate-filter-options.utils.ts +++ b/packages/cli/src/lib/implementation/validate-filter-options.utils.ts @@ -18,8 +18,8 @@ export function validateFilterOption( const validItems = isCategoryOption(option) ? categories : isPluginOption(option) - ? plugins - : []; + ? plugins + : []; const invalidItems = itemsToFilter.filter( item => !validItems.some(({ slug }) => slug === item), ); @@ -94,8 +94,8 @@ export function getItemType(option: FilterOptionType, count: number): string { const itemType = isCategoryOption(option) ? 'category' : isPluginOption(option) - ? 'plugin' - : 'item'; + ? 'plugin' + : 'item'; return pluralize(itemType, count); } diff --git a/packages/models/src/lib/implementation/utils.ts b/packages/models/src/lib/implementation/utils.ts index 02079dd2a..5ad600434 100644 --- a/packages/models/src/lib/implementation/utils.ts +++ b/packages/models/src/lib/implementation/utils.ts @@ -89,10 +89,11 @@ export function getMissingRefsForCategories( .filter(({ type }) => type === 'group') .map(({ plugin, slug }) => `${plugin}#${slug} (group)`), ); - const groupRefsFromPlugins = plugins.flatMap(({ groups, slug: pluginSlug }) => - Array.isArray(groups) - ? groups.map(({ slug }) => `${pluginSlug}#${slug} (group)`) - : [], + const groupRefsFromPlugins = plugins.flatMap( + ({ groups, slug: pluginSlug }) => + Array.isArray(groups) + ? groups.map(({ slug }) => `${pluginSlug}#${slug} (group)`) + : [], ); const missingGroupRefs = hasMissingStrings( groupRefsFromCategory, diff --git a/packages/nx-plugin/README.md b/packages/nx-plugin/README.md index 89e8c306e..0d3c1aa36 100644 --- a/packages/nx-plugin/README.md +++ b/packages/nx-plugin/README.md @@ -10,7 +10,7 @@ Register this plugin in your `nx.json` to leverage a set of generators and execu // nx.json { //... - "plugins": ["@code-pushup/nx-plugin"] + "plugins": ["@code-pushup/nx-plugin"], } ``` diff --git a/packages/nx-plugin/src/executors/cli/README.md b/packages/nx-plugin/src/executors/cli/README.md index c5e5e8110..e59a21a19 100644 --- a/packages/nx-plugin/src/executors/cli/README.md +++ b/packages/nx-plugin/src/executors/cli/README.md @@ -15,9 +15,9 @@ Configure a target in your project json. "name": "my-project", "targets": { "code-pushup": { - "executor": "@code-pushup/nx-plugin:cli" - } - } + "executor": "@code-pushup/nx-plugin:cli", + }, + }, } ``` @@ -54,11 +54,11 @@ The following things happen: "options": { "projectPrefix": "cli", // upload.project = cli-my-project "verbose": true, - "progress": false + "progress": false, // persist and upload options as defined in CoreConfig - } - } - } + }, + }, + }, } ``` diff --git a/packages/nx-plugin/src/plugin/README.md b/packages/nx-plugin/src/plugin/README.md index 89610da1f..80216bd58 100644 --- a/packages/nx-plugin/src/plugin/README.md +++ b/packages/nx-plugin/src/plugin/README.md @@ -15,7 +15,7 @@ Why should you use this plugin? // nx.json { //... - "plugins": ["@code-pushup/nx-plugin"] + "plugins": ["@code-pushup/nx-plugin"], } ``` @@ -29,10 +29,10 @@ or with options: { "plugin": "@code-pushup/nx-plugin", "options": { - "projectPrefix": "cli" - } - } - ] + "projectPrefix": "cli", + }, + }, + ], } ``` diff --git a/packages/plugin-coverage/src/lib/runner/runner.integration.test.ts b/packages/plugin-coverage/src/lib/runner/runner.integration.test.ts index adc591f90..e697b44a8 100644 --- a/packages/plugin-coverage/src/lib/runner/runner.integration.test.ts +++ b/packages/plugin-coverage/src/lib/runner/runner.integration.test.ts @@ -39,9 +39,8 @@ describe('createRunnerConfig', () => { await createRunnerConfig('executeRunner.ts', pluginConfig); - const config = await readJsonFile( - PLUGIN_CONFIG_PATH, - ); + const config = + await readJsonFile(PLUGIN_CONFIG_PATH); expect(config).toStrictEqual(pluginConfig); }); }); diff --git a/packages/plugin-eslint/mocks/fixtures/todos-app/www/index.html b/packages/plugin-eslint/mocks/fixtures/todos-app/www/index.html index af5b47290..03e43f998 100644 --- a/packages/plugin-eslint/mocks/fixtures/todos-app/www/index.html +++ b/packages/plugin-eslint/mocks/fixtures/todos-app/www/index.html @@ -1,4 +1,4 @@ - +
diff --git a/packages/plugin-eslint/src/lib/nx/traverse-graph.unit.test.ts b/packages/plugin-eslint/src/lib/nx/traverse-graph.unit.test.ts index 7124e12a2..9c77ffc13 100644 --- a/packages/plugin-eslint/src/lib/nx/traverse-graph.unit.test.ts +++ b/packages/plugin-eslint/src/lib/nx/traverse-graph.unit.test.ts @@ -3,7 +3,7 @@ import { findAllDependencies } from './traverse-graph'; describe('findAllDependencies', () => { const mockProjectGraph = (dependencies: ProjectGraph['dependencies']) => - ({ dependencies } as ProjectGraph); + ({ dependencies }) as ProjectGraph; it('should return empty array when a project has no dependencies', () => { expect( diff --git a/packages/plugin-eslint/src/lib/runner/index.ts b/packages/plugin-eslint/src/lib/runner/index.ts index 0a3e76a5c..120cc8eff 100644 --- a/packages/plugin-eslint/src/lib/runner/index.ts +++ b/packages/plugin-eslint/src/lib/runner/index.ts @@ -21,9 +21,8 @@ export const PLUGIN_CONFIG_PATH = join( ); export async function executeRunner(): Promise { - const { slugs, targets } = await readJsonFile( - PLUGIN_CONFIG_PATH, - ); + const { slugs, targets } = + await readJsonFile(PLUGIN_CONFIG_PATH); const linterOutputs = await targets.reduce( async (acc, target) => [...(await acc), await lint(target)], diff --git a/packages/plugin-eslint/src/lib/runner/lint.unit.test.ts b/packages/plugin-eslint/src/lib/runner/lint.unit.test.ts index c78050b91..bafabe1e5 100644 --- a/packages/plugin-eslint/src/lib/runner/lint.unit.test.ts +++ b/packages/plugin-eslint/src/lib/runner/lint.unit.test.ts @@ -17,7 +17,7 @@ class MockESLint { 'max-lines': ['warn', 500], '@typescript-eslint/no-explicit-any': 'error', }, - } as Linter.Config), + }) as Linter.Config, ); } diff --git a/packages/plugin-js-packages/src/lib/package-managers/derive-package-manager.ts b/packages/plugin-js-packages/src/lib/package-managers/derive-package-manager.ts index e514d988d..e28efbaa1 100644 --- a/packages/plugin-js-packages/src/lib/package-managers/derive-package-manager.ts +++ b/packages/plugin-js-packages/src/lib/package-managers/derive-package-manager.ts @@ -32,9 +32,8 @@ export async function derivePackageManagerInPackageJson( export async function derivePackageManager( currentDir = process.cwd(), ): Promise { - const pkgManagerFromPackageJson = await derivePackageManagerInPackageJson( - currentDir, - ); + const pkgManagerFromPackageJson = + await derivePackageManagerInPackageJson(currentDir); if (pkgManagerFromPackageJson) { return pkgManagerFromPackageJson; } diff --git a/packages/plugin-js-packages/src/lib/package-managers/npm/audit-result.ts b/packages/plugin-js-packages/src/lib/package-managers/npm/audit-result.ts index 876712860..23cd94b29 100644 --- a/packages/plugin-js-packages/src/lib/package-managers/npm/audit-result.ts +++ b/packages/plugin-js-packages/src/lib/package-managers/npm/audit-result.ts @@ -17,7 +17,7 @@ export function npmToAuditResult(output: string): AuditResult { name: name.toString(), severity: detail.severity, versionRange: detail.range, - directDependency: detail.isDirect ? true : detail.effects[0] ?? '', + directDependency: detail.isDirect ? true : (detail.effects[0] ?? ''), fixInformation: npmToFixInformation(detail.fixAvailable), ...(advisory != null && { title: advisory.title, diff --git a/packages/plugin-js-packages/src/lib/runner/outdated/transform.ts b/packages/plugin-js-packages/src/lib/runner/outdated/transform.ts index afc1c3b2b..f3e50861b 100644 --- a/packages/plugin-js-packages/src/lib/runner/outdated/transform.ts +++ b/packages/plugin-js-packages/src/lib/runner/outdated/transform.ts @@ -32,13 +32,16 @@ export function outdatedResultToAuditOutput( neq(dep.current, dep.latest), ); - const outdatedStats = outdatedDependencies.reduce((acc, dep) => { - const outdatedLevel = diff(dep.current, dep.latest); - if (outdatedLevel == null) { - return acc; - } - return { ...acc, [outdatedLevel]: acc[outdatedLevel] + 1 }; - }, objectFromEntries(RELEASE_TYPES.map(versionType => [versionType, 0]))); + const outdatedStats = outdatedDependencies.reduce( + (acc, dep) => { + const outdatedLevel = diff(dep.current, dep.latest); + if (outdatedLevel == null) { + return acc; + } + return { ...acc, [outdatedLevel]: acc[outdatedLevel] + 1 }; + }, + objectFromEntries(RELEASE_TYPES.map(versionType => [versionType, 0])), + ); const issues = outdatedDependencies.length === 0 diff --git a/packages/plugin-js-packages/src/lib/runner/runner.integration.test.ts b/packages/plugin-js-packages/src/lib/runner/runner.integration.test.ts index 9a8033e13..65090b62c 100644 --- a/packages/plugin-js-packages/src/lib/runner/runner.integration.test.ts +++ b/packages/plugin-js-packages/src/lib/runner/runner.integration.test.ts @@ -32,9 +32,8 @@ describe('createRunnerConfig', () => { packageJsonPaths: ['package.json'], }; await createRunnerConfig('executeRunner.ts', pluginConfig); - const config = await readJsonFile( - PLUGIN_CONFIG_PATH, - ); + const config = + await readJsonFile(PLUGIN_CONFIG_PATH); expect(config).toStrictEqual(pluginConfig); }); }); diff --git a/packages/plugin-lighthouse/src/lib/runner/utils.ts b/packages/plugin-lighthouse/src/lib/runner/utils.ts index a60833778..5d5b23d24 100644 --- a/packages/plugin-lighthouse/src/lib/runner/utils.ts +++ b/packages/plugin-lighthouse/src/lib/runner/utils.ts @@ -50,8 +50,8 @@ function formatBaseAuditOutput(lhrAudit: Result): AuditOutput { ? 'passed' : 'failed' : score - ? `${formatReportScore(score)}%` - : undefined), + ? `${formatReportScore(score)}%` + : undefined), }; } diff --git a/packages/plugin-lighthouse/src/lib/runner/utils.unit.test.ts b/packages/plugin-lighthouse/src/lib/runner/utils.unit.test.ts index 5a4ceca70..2195f7048 100644 --- a/packages/plugin-lighthouse/src/lib/runner/utils.unit.test.ts +++ b/packages/plugin-lighthouse/src/lib/runner/utils.unit.test.ts @@ -239,7 +239,7 @@ describe('toAuditOutputs', () => { score: 0, numericValue: 0, displayValue: '0 ms', - } as Result), + }) as Result, ), ); expect(getLogMessages(ui().logger)).toHaveLength(0); @@ -256,7 +256,7 @@ describe('toAuditOutputs', () => { score: 0, numericValue: 0, displayValue: '0 ms', - } as Result), + }) as Result, ), { verbose: true }, ); diff --git a/packages/utils/src/lib/reports/generate-md-report.unit.test.ts b/packages/utils/src/lib/reports/generate-md-report.unit.test.ts index 86cc5161c..488c24943 100644 --- a/packages/utils/src/lib/reports/generate-md-report.unit.test.ts +++ b/packages/utils/src/lib/reports/generate-md-report.unit.test.ts @@ -534,7 +534,9 @@ describe('generateMdReport', () => { // report title expect(md).toMatch('# Code PushUp Report'); // categories section heading - expect(md).toMatch(/\|\s*🏷 Category\s*\|\s*⭐ Score\s*\|\s*πŸ›‘ Audits\s*\|/); + expect(md).toMatch( + /\|\s*🏷 Category\s*\|\s*⭐ Score\s*\|\s*πŸ›‘ Audits\s*\|/, + ); // categories section heading expect(md).toMatch('## 🏷 Categories'); // audits heading diff --git a/testing/test-setup/src/lib/cliui.mock.ts b/testing/test-setup/src/lib/cliui.mock.ts index 3d3134dd2..bed220fdb 100644 --- a/testing/test-setup/src/lib/cliui.mock.ts +++ b/testing/test-setup/src/lib/cliui.mock.ts @@ -1,15 +1,13 @@ import { beforeAll, beforeEach, vi } from 'vitest'; beforeAll(async () => { - const utils: typeof import('@code-pushup/utils') = await vi.importActual( - '@code-pushup/utils', - ); + const utils: typeof import('@code-pushup/utils') = + await vi.importActual('@code-pushup/utils'); utils.ui().switchMode('raw'); }); beforeEach(async () => { - const { ui }: typeof import('@code-pushup/utils') = await vi.importActual( - '@code-pushup/utils', - ); + const { ui }: typeof import('@code-pushup/utils') = + await vi.importActual('@code-pushup/utils'); ui().logger.flushLogs(); }); diff --git a/testing/test-utils/src/lib/utils/dynamic-mocks/eslint-plugin.mock.ts b/testing/test-utils/src/lib/utils/dynamic-mocks/eslint-plugin.mock.ts index e6b0abe60..773e9348d 100644 --- a/testing/test-utils/src/lib/utils/dynamic-mocks/eslint-plugin.mock.ts +++ b/testing/test-utils/src/lib/utils/dynamic-mocks/eslint-plugin.mock.ts @@ -47,7 +47,7 @@ export function eslintPluginConfigMock(outputDir = 'tmp'): PluginConfig { description, title, docsUrl, - } satisfies Audit), + }) satisfies Audit, ); return { ...ESLINT_PLUGIN_META, diff --git a/tools/src/debug/README.md b/tools/src/debug/README.md index fb9938706..4a70a9270 100644 --- a/tools/src/debug/README.md +++ b/tools/src/debug/README.md @@ -10,7 +10,7 @@ Register the plugin in your `nx.json` // nx.json { //... - "plugins": ["tools/src/debug/debug.plugin.ts"] + "plugins": ["tools/src/debug/debug.plugin.ts"], } ``` @@ -34,10 +34,10 @@ Example: { "plugin": "tools/src/debug/debug.plugin.ts", "options": { - "tsconfig": "tools/tsconfig.tools.json" - } - } - ] + "tsconfig": "tools/tsconfig.tools.json", + }, + }, + ], } ``` diff --git a/tools/src/npm/README.md b/tools/src/npm/README.md index 26a9ead86..c8cbd6adb 100644 --- a/tools/src/npm/README.md +++ b/tools/src/npm/README.md @@ -20,7 +20,7 @@ Register the plugin in your `nx.json` // nx.json { //... - "plugins": ["tools/npm/npm.plugin.ts"] + "plugins": ["tools/npm/npm.plugin.ts"], } ``` @@ -49,10 +49,10 @@ Example: "options": { "tsconfig": "tools/tsconfig.tools.json", "npmCheckScript": "check-package-range.ts", - "publishableTargets": ["add-to-npm-registry"] - } - } - ] + "publishableTargets": ["add-to-npm-registry"], + }, + }, + ], } ``` diff --git a/tools/src/publish/README.md b/tools/src/publish/README.md index ac30ee2f2..38f9c4ded 100644 --- a/tools/src/publish/README.md +++ b/tools/src/publish/README.md @@ -17,7 +17,7 @@ Register the plugin in your `nx.json` // nx.json { "name": "my-project", - "plugins": ["tools/publish/publish.plugin.ts"] + "plugins": ["tools/publish/publish.plugin.ts"], } ``` @@ -46,10 +46,10 @@ Example: "options": { "tsconfig": "tools/tsconfig.tools.json", "publishScript": "publish-package.ts", - "publishableTargets": ["add-to-npm-registry"] - } - } - ] + "publishableTargets": ["add-to-npm-registry"], + }, + }, + ], } ``` diff --git a/tools/src/verdaccio/README.md b/tools/src/verdaccio/README.md index 0b3fd5405..2c73d9c7b 100644 --- a/tools/src/verdaccio/README.md +++ b/tools/src/verdaccio/README.md @@ -45,7 +45,7 @@ Register the plugin in your `nx.json` // nx.json { "name": "my-project", - "plugins": ["tools/verdaccio/verdaccio.plugin.ts"] + "plugins": ["tools/verdaccio/verdaccio.plugin.ts"], } ``` @@ -72,10 +72,10 @@ Example: "plugin": "tools/verdaccio/verdaccio.plugin.ts", "options": { "tsconfig": "tools/tsconfig.tools.json", - "verbose": true - } - } - ] + "verbose": true, + }, + }, + ], } ``` diff --git a/tools/src/verdaccio/bin/create-verdaccio-env.ts b/tools/src/verdaccio/bin/create-verdaccio-env.ts index 4aa64d123..130f1535f 100644 --- a/tools/src/verdaccio/bin/create-verdaccio-env.ts +++ b/tools/src/verdaccio/bin/create-verdaccio-env.ts @@ -11,7 +11,9 @@ const argv = yargs(hideBin(process.argv)) verbose: { type: 'boolean' }, projectName: { type: 'string', demandOption: true }, port: { type: 'string' }, - } satisfies Partial>).argv; + } satisfies Partial< + Record + >).argv; (async () => { await nxStartVerdaccioAndSetupEnv(argv as StartVerdaccioAndSetupEnvOptions); From 3465e161e3165aa175f4706966aeec06b1c10bb3 Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Fri, 18 Oct 2024 12:02:01 +0200 Subject: [PATCH 10/10] refactor: update commitlint and remove unnecessary changelog angular dependency closes #776 Signed-off-by: Vojtech Masek --- .github/labeler.yml | 2 +- commitlint.config.js => commitlint.config.mjs | 18 +- knip.config.ts | 4 +- package-lock.json | 1262 ++++++----------- package.json | 16 +- 5 files changed, 473 insertions(+), 829 deletions(-) rename commitlint.config.js => commitlint.config.mjs (66%) diff --git a/.github/labeler.yml b/.github/labeler.yml index fd755d926..adfc5a17d 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -76,5 +76,5 @@ - 'esbuild.config.js' - '.github/ISSUE_TEMPLATE/**' - '.husky/**' - - 'commitlint.config.js' + - 'commitlint.config.mjs' - '.verdaccio/config.yml' diff --git a/commitlint.config.js b/commitlint.config.mjs similarity index 66% rename from commitlint.config.js rename to commitlint.config.mjs index 93bd85723..0779dfc34 100644 --- a/commitlint.config.js +++ b/commitlint.config.mjs @@ -1,25 +1,23 @@ -const { RuleConfigSeverity } = require('@commitlint/types'); -const { rules } = require('@commitlint/config-conventional'); -const { - utils: { getProjects }, -} = require('@commitlint/config-nx-scopes'); +import config from '@commitlint/config-conventional'; +import nxScopes from '@commitlint/config-nx-scopes'; +import { RuleConfigSeverity } from '@commitlint/types'; /** @type {import('@commitlint/types').UserConfig} */ -const configuration = { +export default { extends: ['@commitlint/config-conventional'], plugins: ['commitlint-plugin-tense'], rules: { 'scope-enum': async ctx => { - const projects = await getProjects( + const projects = nxScopes.utils.getProjects( ctx, - ({ name, projectType, tags }) => + ({ projectType }) => projectType === 'library' || projectType === 'application', ); const scopes = [...projects, 'tools', 'workflows', 'testing'].sort(); return [RuleConfigSeverity.Error, 'always', scopes]; }, 'type-enum': () => { - const defaultTypes = rules['type-enum'][2]; + const defaultTypes = config.rules['type-enum'][2]; const types = [ ...defaultTypes, 'release', // custom type for release commits @@ -33,5 +31,3 @@ const configuration = { ], }, }; - -module.exports = configuration; diff --git a/knip.config.ts b/knip.config.ts index aa3ca0e08..27a49b3bb 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -1,5 +1,5 @@ import { - KnipConfigPlugin, + type KnipConfigPlugin, combineNxKnipPlugins, withEsbuildApps, withEsbuildPublishableLibs, @@ -48,7 +48,7 @@ const withNxStandards = (): KnipConfigPlugin => () => { project: ['**/*.{ts,js,tsx,jsx}'], ignore: ['tmp/**', 'node_modules/**'], commitlint: { - config: ['commitlint.config.js'], + config: ['commitlint.config.mjs'], }, exclude: ['duplicates'], entry: [ diff --git a/package-lock.json b/package-lock.json index 33297d984..90a62faea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,10 +37,11 @@ "devDependencies": { "@beaussan/nx-knip": "0.0.5-13", "@code-pushup/eslint-config": "^0.2.1", - "@commitlint/cli": "^17.7.1", - "@commitlint/config-conventional": "^17.7.0", - "@commitlint/config-nx-scopes": "^18.4.3", - "@commitlint/cz-commitlint": "^17.7.1", + "@commitlint/cli": "^19.5.0", + "@commitlint/config-conventional": "^19.5.0", + "@commitlint/config-nx-scopes": "^19.5.0", + "@commitlint/cz-commitlint": "^19.5.0", + "@commitlint/types": "^19.5.0", "@nodelib/fs.walk": "^2.0.0", "@nx/esbuild": "17.3.2", "@nx/eslint-plugin": "17.3.2", @@ -71,9 +72,8 @@ "benchmark": "^2.1.4", "chrome-launcher": "^1.1.1", "chromium": "^3.0.3", - "commitizen": "^4.3.0", - "commitlint-plugin-tense": "^1.0.2", - "conventional-changelog-angular": "^7.0.0", + "commitizen": "^4.3.1", + "commitlint-plugin-tense": "^1.0.3", "dotenv": "^16.3.1", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-deprecation": "^2.0.0", @@ -88,7 +88,7 @@ "eslint-plugin-unicorn": "^48.0.1", "eslint-plugin-vitest": "^0.3.8", "husky": "^8.0.0", - "inquirer": "^8.2.6", + "inquirer": "^9.3.7", "jsdom": "~24.0.0", "jsonc": "^2.0.0", "knip": "^5.9.4", @@ -2147,51 +2147,52 @@ } }, "node_modules/@commitlint/cli": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz", - "integrity": "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.5.0.tgz", + "integrity": "sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ==", "dev": true, "dependencies": { - "@commitlint/format": "^17.8.1", - "@commitlint/lint": "^17.8.1", - "@commitlint/load": "^17.8.1", - "@commitlint/read": "^17.8.1", - "@commitlint/types": "^17.8.1", - "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", + "@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" }, "bin": { "commitlint": "cli.js" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/config-conventional": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz", - "integrity": "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.5.0.tgz", + "integrity": "sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg==", "dev": true, "dependencies": { - "conventional-changelog-conventionalcommits": "^6.1.0" + "@commitlint/types": "^19.5.0", + "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/config-nx-scopes": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-nx-scopes/-/config-nx-scopes-18.6.1.tgz", - "integrity": "sha512-bNO1ts4k0P0QvigO4mibUbif9E4IYbtVA35Bdq2d6tFekJJs5BPaSQs8w+A0HWJfHIHAbrMhgupMDMyKDIEMyw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-nx-scopes/-/config-nx-scopes-19.5.0.tgz", + "integrity": "sha512-YjJVN9n5PJGnom1JqpC9tnQzWsWPeCbKN63AU6jTk25yxNpMtMVKNNEFU+yEPneo4kJk2yIicKjtPuRqYqL3Wg==", "dev": true, + "dependencies": { + "@commitlint/types": "^19.5.0" + }, "engines": { "node": ">=v18" }, "peerDependencies": { - "nx": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + "nx": ">=14.0.0" }, "peerDependenciesMeta": { "nx": { @@ -2200,116 +2201,46 @@ } }, "node_modules/@commitlint/config-validator": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz", - "integrity": "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", "dev": true, "dependencies": { - "@commitlint/types": "^17.8.1", + "@commitlint/types": "^19.5.0", "ajv": "^8.11.0" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/cz-commitlint": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/cz-commitlint/-/cz-commitlint-17.8.1.tgz", - "integrity": "sha512-7/13k+NxxqwYnrrb52g70qrXs5NQS7r/qV9GAwcoE/8LLWoziV38nsgELajFu6sNgai9X8d8IX5UyiB1M1zGjg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/cz-commitlint/-/cz-commitlint-19.5.0.tgz", + "integrity": "sha512-PNfIC54J3lDVIBJTo7A1RMp1kdOYkGcUz27VG0NP/DzFKLspXcQm13RnKc16BjFNCJGLC7iaXjucrfrKHOqorQ==", "dev": true, "dependencies": { - "@commitlint/ensure": "^17.8.1", - "@commitlint/load": "^17.8.1", - "@commitlint/types": "^17.8.1", - "chalk": "^4.1.0", + "@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" }, "engines": { - "node": ">=v14" + "node": ">=v18" }, "peerDependencies": { "commitizen": "^4.0.3", - "inquirer": "^8.0.0" - } - }, - "node_modules/@commitlint/cz-commitlint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@commitlint/cz-commitlint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@commitlint/cz-commitlint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@commitlint/cz-commitlint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@commitlint/cz-commitlint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/cz-commitlint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "inquirer": "^9.0.0" } }, "node_modules/@commitlint/ensure": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz", - "integrity": "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", "dev": true, "dependencies": { - "@commitlint/types": "^17.8.1", + "@commitlint/types": "^19.5.0", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -2317,521 +2248,292 @@ "lodash.upperfirst": "^4.3.1" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/execute-rule": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz", - "integrity": "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", "dev": true, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/format": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz", - "integrity": "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==", - "dev": true, - "dependencies": { - "@commitlint/types": "^17.8.1", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/format/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@commitlint/format/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@commitlint/format/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@commitlint/format/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@commitlint/format/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/format/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0" }, "engines": { - "node": ">=8" + "node": ">=v18" } }, "node_modules/@commitlint/is-ignored": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz", - "integrity": "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz", + "integrity": "sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w==", "dev": true, "dependencies": { - "@commitlint/types": "^17.8.1", - "semver": "7.5.4" + "@commitlint/types": "^19.5.0", + "semver": "^7.6.0" }, "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node": ">=v18" } }, - "node_modules/@commitlint/is-ignored/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@commitlint/lint": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz", - "integrity": "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.5.0.tgz", + "integrity": "sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^17.8.1", - "@commitlint/parse": "^17.8.1", - "@commitlint/rules": "^17.8.1", - "@commitlint/types": "^17.8.1" + "@commitlint/is-ignored": "^19.5.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz", - "integrity": "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==", - "dev": true, - "dependencies": { - "@commitlint/config-validator": "^17.8.1", - "@commitlint/execute-rule": "^17.8.1", - "@commitlint/resolve-extends": "^17.8.1", - "@commitlint/types": "^17.8.1", - "@types/node": "20.5.1", - "chalk": "^4.1.0", - "cosmiconfig": "^8.0.0", - "cosmiconfig-typescript-loader": "^4.0.0", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.5.0.tgz", + "integrity": "sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==", + "dev": true, + "dependencies": { + "@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", "lodash.isplainobject": "^4.0.6", "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", - "resolve-from": "^5.0.0", - "ts-node": "^10.8.1", - "typescript": "^4.6.4 || ^5.2.2" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/load/node_modules/@types/node": { - "version": "20.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", - "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", - "dev": true - }, - "node_modules/@commitlint/load/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" + "lodash.uniq": "^4.5.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=v18" } }, - "node_modules/@commitlint/load/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@commitlint/load/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@commitlint/load/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "url": "https://github.com/sponsors/d-fischer" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@commitlint/load/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@commitlint/load/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/load/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "peerDependencies": { + "typescript": ">=4.9.5" }, - "engines": { - "node": ">=8" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@commitlint/message": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz", - "integrity": "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", "dev": true, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/parse": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz", - "integrity": "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==", - "dev": true, - "dependencies": { - "@commitlint/types": "^17.8.1", - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-parser": "^4.0.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/parse/node_modules/conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@commitlint/parse/node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", "dev": true, "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@commitlint/parse/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/parse/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/@commitlint/parse/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" + "@commitlint/types": "^19.5.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/parse/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, "engines": { - "node": ">=10" + "node": ">=v18" } }, "node_modules/@commitlint/read": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz", - "integrity": "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", "dev": true, "dependencies": { - "@commitlint/top-level": "^17.8.1", - "@commitlint/types": "^17.8.1", - "fs-extra": "^11.0.0", - "git-raw-commits": "^2.0.11", - "minimist": "^1.2.6" + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/resolve-extends": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz", - "integrity": "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^17.8.1", - "@commitlint/types": "^17.8.1", - "import-fresh": "^3.0.0", + "@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", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/rules": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz", - "integrity": "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.5.0.tgz", + "integrity": "sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw==", "dev": true, "dependencies": { - "@commitlint/ensure": "^17.8.1", - "@commitlint/message": "^17.8.1", - "@commitlint/to-lines": "^17.8.1", - "@commitlint/types": "^17.8.1", - "execa": "^5.0.0" + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/to-lines": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz", - "integrity": "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", "dev": true, "engines": { - "node": ">=v14" + "node": ">=v18" } }, "node_modules/@commitlint/top-level": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz", - "integrity": "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", "dev": true, "dependencies": { - "find-up": "^5.0.0" + "find-up": "^7.0.0" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, - "node_modules/@commitlint/types": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", - "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "dev": true, "dependencies": { - "chalk": "^4.1.0" + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=v14" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@commitlint/top-level/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@commitlint/top-level/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@commitlint/top-level/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/@commitlint/top-level/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, - "node_modules/@commitlint/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@commitlint/top-level/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@commitlint/types": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" }, "engines": { - "node": ">=8" + "node": ">=v18" } }, "node_modules/@cspotcode/source-map-support": { @@ -3542,6 +3244,15 @@ "version": "2.0.3", "license": "BSD-3-Clause" }, + "node_modules/@inquirer/figures": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz", + "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "license": "ISC", @@ -7604,6 +7315,15 @@ "@types/responselike": "^1.0.0" } }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -7695,12 +7415,6 @@ "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==", "dev": true }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true - }, "node_modules/@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", @@ -9624,14 +9338,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arrify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -10662,38 +10368,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys/node_modules/quick-lru": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001607", "dev": true, @@ -11291,9 +10965,9 @@ } }, "node_modules/commitizen": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", - "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.1.tgz", + "integrity": "sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==", "dev": true, "dependencies": { "cachedir": "2.3.0", @@ -11555,9 +11229,10 @@ } }, "node_modules/commitlint-plugin-tense": { - "version": "1.0.2", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/commitlint-plugin-tense/-/commitlint-plugin-tense-1.0.3.tgz", + "integrity": "sha512-qP+XJf6ueDf+PAlbzr5QPdYLuqUS5XGlUmDfoSHzXtY/95zTrMZQuMp+SPLKjuio9cQBirJu3WLCqBl7kngS3g==", "dev": true, - "license": "MIT", "dependencies": { "@commitlint/message": "^16.2.1", "fast-tag-pos": "^2.0.0" @@ -11783,14 +11458,15 @@ } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "6.1.0", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", "dev": true, - "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-commit-types": { @@ -11798,6 +11474,24 @@ "dev": true, "license": "ISC" }, + "node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "dev": true, @@ -11892,16 +11586,19 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "4.4.0", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", "dev": true, - "license": "MIT", + "dependencies": { + "jiti": "^1.19.1" + }, "engines": { - "node": ">=v14.21.3" + "node": ">=v16" }, "peerDependencies": { "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", + "cosmiconfig": ">=8.2", "typescript": ">=4" } }, @@ -12106,11 +11803,15 @@ "license": "BSD-2-Clause" }, "node_modules/dargs": { - "version": "7.0.0", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dashdash": { @@ -12215,40 +11916,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", @@ -12844,6 +12511,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/envinfo": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", @@ -15228,77 +14904,20 @@ } }, "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", "dev": true, "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-raw-commits/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/git-raw-commits/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" + "git-raw-commits": "cli.mjs" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-raw-commits/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/glob": { @@ -15351,15 +14970,28 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/global-dirs": { - "version": "0.1.1", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, - "license": "MIT", "dependencies": { - "ini": "^1.3.4" + "ini": "4.1.1" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-directory/node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/global-modules": { @@ -15593,14 +15225,6 @@ "node": ">=0.10.0" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/harmony-reflect": { "version": "1.6.2", "dev": true, @@ -16070,6 +15694,16 @@ "node": ">=4" } }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -16112,34 +15746,33 @@ "license": "ISC" }, "node_modules/inquirer": { - "version": "8.2.6", + "version": "9.3.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.7.tgz", + "integrity": "sha512-LJKFHCSeIRq9hanN14IlOtPSTe3lNES7TYDTE2xxdAy1LS5rYphajK1qtwvj3YmQXvvk0U2Vbmcni8P9EIQW9w==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", + "@inquirer/figures": "^1.0.3", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "mute-stream": "1.0.0", "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18" } }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -16152,8 +15785,9 @@ }, "node_modules/inquirer/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -16165,10 +15799,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/inquirer/node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, "node_modules/inquirer/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -16178,26 +15822,39 @@ }, "node_modules/inquirer/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/inquirer/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/inquirer/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/inquirer/node_modules/ora": { "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -16216,10 +15873,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/inquirer/node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/inquirer/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16231,8 +15898,9 @@ }, "node_modules/inquirer/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16242,8 +15910,9 @@ }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16253,8 +15922,9 @@ }, "node_modules/inquirer/node_modules/wrap-ansi": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -16881,24 +16551,15 @@ } }, "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, "dependencies": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-text-path/node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "engines": { - "node": ">=0.10" + "node": ">=8" } }, "node_modules/is-typed-array": { @@ -19243,14 +18904,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/kleur": { "version": "4.1.5", "license": "MIT", @@ -19581,8 +19234,9 @@ }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true }, "node_modules/lodash.curry": { "version": "4.1.1", @@ -19608,12 +19262,6 @@ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", "dev": true }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true - }, "node_modules/lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", @@ -19639,8 +19287,9 @@ }, "node_modules/lodash.kebabcase": { "version": "4.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true }, "node_modules/lodash.map": { "version": "4.6.0", @@ -19665,13 +19314,15 @@ }, "node_modules/lodash.snakecase": { "version": "4.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true }, "node_modules/lodash.startcase": { "version": "4.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true }, "node_modules/lodash.uniq": { "version": "4.5.0", @@ -19680,8 +19331,9 @@ }, "node_modules/lodash.upperfirst": { "version": "4.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", @@ -20049,17 +19701,6 @@ "node": ">=6" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/marky": { "version": "1.2.5", "license": "Apache-2.0" @@ -20120,6 +19761,18 @@ "url": "https://github.com/sponsors/streamich" } }, + "node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", @@ -20244,20 +19897,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -20566,21 +20205,6 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -22836,17 +22460,6 @@ "node": ">=8" } }, - "node_modules/resolve-global": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", "dev": true, @@ -24364,6 +23977,18 @@ "node": "*" } }, + "node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -24399,6 +24024,12 @@ "dev": true, "license": "MIT" }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true + }, "node_modules/tinypool": { "version": "0.8.3", "dev": true, @@ -24557,15 +24188,6 @@ "node": ">=18" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/trim-repeated": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", @@ -24606,6 +24228,8 @@ "version": "10.9.2", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -24984,6 +24608,18 @@ "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/union": { "version": "0.5.0", "dev": true, @@ -26579,6 +26215,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yup": { "version": "0.32.11", "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", diff --git a/package.json b/package.json index b069408f9..b040dc783 100644 --- a/package.json +++ b/package.json @@ -49,10 +49,11 @@ "devDependencies": { "@beaussan/nx-knip": "0.0.5-13", "@code-pushup/eslint-config": "^0.2.1", - "@commitlint/cli": "^17.7.1", - "@commitlint/config-conventional": "^17.7.0", - "@commitlint/config-nx-scopes": "^18.4.3", - "@commitlint/cz-commitlint": "^17.7.1", + "@commitlint/cli": "^19.5.0", + "@commitlint/config-conventional": "^19.5.0", + "@commitlint/config-nx-scopes": "^19.5.0", + "@commitlint/cz-commitlint": "^19.5.0", + "@commitlint/types": "^19.5.0", "@nodelib/fs.walk": "^2.0.0", "@nx/esbuild": "17.3.2", "@nx/eslint-plugin": "17.3.2", @@ -83,9 +84,8 @@ "benchmark": "^2.1.4", "chrome-launcher": "^1.1.1", "chromium": "^3.0.3", - "commitizen": "^4.3.0", - "commitlint-plugin-tense": "^1.0.2", - "conventional-changelog-angular": "^7.0.0", + "commitizen": "^4.3.1", + "commitlint-plugin-tense": "^1.0.3", "dotenv": "^16.3.1", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-deprecation": "^2.0.0", @@ -100,7 +100,7 @@ "eslint-plugin-unicorn": "^48.0.1", "eslint-plugin-vitest": "^0.3.8", "husky": "^8.0.0", - "inquirer": "^8.2.6", + "inquirer": "^9.3.7", "jsdom": "~24.0.0", "jsonc": "^2.0.0", "knip": "^5.9.4",