diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d050737..e22e0ca 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,6 +130,13 @@ together with `package-lock.json`. Stable updates of any size share that PR, inc The Chrome peer dependency remains `*`; unrelated direct dependencies and standalone lockfile maintenance are disabled. Transitive lockfile changes required by the selected updates are still included. +Keep `conventional-commits-parser` 6.x as an explicit development dependency. The release tooling's +`@conventional-changelog/git-client` declares it as an optional peer, while commitlint also needs parser 5.x. +Without the explicit dependency, npm 11 can remove the release parser during Renovate's lockfile-only update, +producing a lockfile that npm 10 rejects during `npm ci`. Declaring parser 6.x keeps it resolvable for release +tooling and lets npm install commitlint's parser 5.x separately. After changing this dependency, verify a +lockfile-only update in a clean directory followed by `npm ci`, as well as the release tooling tests. + The bot uses `fix(deps)` commits, so an approved dependency-only update produces a **patch** release of Storage, including Chrome-types-only updates and updates to a new upstream major version. Keep the `fix(deps): ...` title when squashing; do not change it to `chore`, `feat`, or add a breaking marker. Other commits included in a release continue diff --git a/package-lock.json b/package-lock.json index c6d85a1..41cb68e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.8.1", "license": "MIT", "dependencies": { - "@addon-core/browser": "^0.9.0", + "@addon-core/browser": "^0.11.0", "dequal": "^2.0.3" }, "devDependencies": { @@ -22,11 +22,12 @@ "@swc/core": "^1.7.0", "@swc/jest": "^0.2.36", "@testing-library/react": "^16.3.0", - "@types/chrome": "^0.1.12", + "@types/chrome": "^0.3.5", "@types/jest": "^29.5.14", "@types/node": "^22.18.4", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", + "conventional-commits-parser": "^6.4.0", "esbuild-fix-imports-plugin": "^1.0.22", "eslint": "9.39.5", "eslint-plugin-import-x": "4.16.1", @@ -66,22 +67,12 @@ } }, "node_modules/@addon-core/browser": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@addon-core/browser/-/browser-0.9.0.tgz", - "integrity": "sha512-EiZnYVOZoYi49+RqOQKBPYnYSNtUtjyVDn3rrKZD3/PF0hU2vGShioP7VbeqP1pL4eX1ZrpWkbBkaNHwwf9s+A==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@addon-core/browser/-/browser-0.11.0.tgz", + "integrity": "sha512-UF6A0XFWk+aie3dLszYJpS+3Z47LHwFD3H/oUTbqv9jxV3QSNQW3IaX3mQOprseGr9xFIjvZFWJrU4iAjYJ8Rw==", "license": "MIT", "dependencies": { - "@types/chrome": "^0.3.0" - } - }, - "node_modules/@addon-core/browser/node_modules/@types/chrome": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.3.0.tgz", - "integrity": "sha512-HPAMKyJwUnNJdVsxgypwvIStlwRhhaLnxgEwKIB99oOcffJrC4UMeD5xseVoBwDinSkr690DCBaAtSYdK6M1qw==", - "license": "MIT", - "dependencies": { - "@types/filesystem": "*", - "@types/har-format": "*" + "@types/chrome": "^0.3.5" } }, "node_modules/@asamuzakjp/css-color": { @@ -800,6 +791,38 @@ "node": ">=v18" } }, + "node_modules/@commitlint/parse/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, + "license": "MIT", + "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/@commitlint/parse/node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@commitlint/read": { "version": "19.8.1", "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.8.1.tgz", @@ -4019,25 +4042,6 @@ "node": ">=18" } }, - "node_modules/@release-it/conventional-changelog/node_modules/conventional-commits-parser": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.4.0.tgz", - "integrity": "sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@simple-libs/stream-utils": "^1.2.0", - "meow": "^13.0.0" - }, - "bin": { - "conventional-commits-parser": "dist/cli/index.js" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.60.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", @@ -5033,10 +5037,9 @@ } }, "node_modules/@types/chrome": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.1.40.tgz", - "integrity": "sha512-UnfyRAe8ORu9HSuTH0EqyOEUin3JrWW9Nl/gDXezNfTUrfIoxw+WRZgKOxGz0t5BnjbfXBnS2eCYfW2PxH1wcA==", - "dev": true, + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.3.5.tgz", + "integrity": "sha512-7HYsK7xalNxzLwGrP9lkCQPAA6V56VtPpOmv2CQnBnMzX5/Hpr+Iv5fqaIOIY/H/Q6ZBksLmurWh7zXPcZ4B7Q==", "license": "MIT", "dependencies": { "@types/filesystem": "*", @@ -7326,23 +7329,6 @@ } } }, - "node_modules/conventional-changelog/node_modules/conventional-commits-parser": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.4.0.tgz", - "integrity": "sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@simple-libs/stream-utils": "^1.2.0", - "meow": "^13.0.0" - }, - "bin": { - "conventional-commits-parser": "dist/cli/index.js" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/conventional-commits-filter": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", @@ -7354,35 +7340,20 @@ } }, "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==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.4.0.tgz", + "integrity": "sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==", "dev": true, "license": "MIT", "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" + "@simple-libs/stream-utils": "^1.2.0", + "meow": "^13.0.0" }, "bin": { - "conventional-commits-parser": "cli.mjs" + "conventional-commits-parser": "dist/cli/index.js" }, "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-commits-parser/node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, "node_modules/conventional-recommended-bump": { @@ -7432,23 +7403,6 @@ } } }, - "node_modules/conventional-recommended-bump/node_modules/conventional-commits-parser": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.4.0.tgz", - "integrity": "sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@simple-libs/stream-utils": "^1.2.0", - "meow": "^13.0.0" - }, - "bin": { - "conventional-commits-parser": "dist/cli/index.js" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", diff --git a/package.json b/package.json index b792ae3..ddd16b8 100644 --- a/package.json +++ b/package.json @@ -81,11 +81,12 @@ "@swc/core": "^1.7.0", "@swc/jest": "^0.2.36", "@testing-library/react": "^16.3.0", - "@types/chrome": "^0.1.12", + "@types/chrome": "^0.3.5", "@types/jest": "^29.5.14", "@types/node": "^22.18.4", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", + "conventional-commits-parser": "^6.4.0", "esbuild-fix-imports-plugin": "^1.0.22", "eslint": "9.39.5", "eslint-plugin-import-x": "4.16.1", @@ -105,7 +106,7 @@ "typescript-eslint": "8.48.1" }, "dependencies": { - "@addon-core/browser": "^0.9.0", + "@addon-core/browser": "^0.11.0", "dequal": "^2.0.3" }, "peerDependencies": {