eslint-plugin-package-json 0.56.0 β†’ 0.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,11 +1,23 @@
1
1
  # Changelog
2
2
 
3
- # [0.56.0](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/compare/v0.55.0...v0.56.0) (2025-08-25)
3
+ ## [0.56.2](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/compare/v0.56.1...v0.56.2) (2025-09-04)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * improve sort-collections docs and error messages ([#1250](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/1250)) ([1864376](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commit/1864376039db3db690423051b0dd8a2104395aa4)), closes [#1243](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/1243) [#1243](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/1243)
4
9
 
10
+ ## [0.56.1](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/compare/v0.56.0...v0.56.1) (2025-08-31)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **deps:** update dependency package-json-validator to ~0.30.0 ([#1241](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/1241)) ([c3d247c](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commit/c3d247cc416d4bb0eee629fde3440224fe39eb59))
15
+
16
+ # [0.56.0](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/compare/v0.55.0...v0.56.0) (2025-08-25)
5
17
 
6
18
  ### Features
7
19
 
8
- * **valid-directories:** add new rule for validating `directories` ([#1224](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/1224)) ([b1cc676](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commit/b1cc6762f7e46162e4a6bf067dd29af2983462c8)), closes [#825](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/825)
20
+ - **valid-directories:** add new rule for validating `directories` ([#1224](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/1224)) ([b1cc676](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commit/b1cc6762f7e46162e4a6bf067dd29af2983462c8)), closes [#825](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/825)
9
21
 
10
22
  # [0.55.0](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/compare/v0.54.0...v0.55.0) (2025-08-22)
11
23
 
package/README.md CHANGED
@@ -153,50 +153,50 @@ The default settings don't conflict, and Prettier plugins can quickly fix up ord
153
153
  πŸ’‘ Manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions).\
154
154
  ❌ Deprecated.
155
155
 
156
- | NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | ❌ |
157
- | :------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ | :--- | :- | :- | :- |
158
- | [no-empty-fields](docs/rules/no-empty-fields.md) | Reports on unnecessary empty arrays and objects. | βœ”οΈ βœ… | | πŸ’‘ | |
159
- | [no-redundant-files](docs/rules/no-redundant-files.md) | Prevents adding unnecessary / redundant files. | βœ”οΈ βœ… | | πŸ’‘ | |
160
- | [order-properties](docs/rules/order-properties.md) | Package properties must be declared in standard order | βœ”οΈ βœ… | πŸ”§ | | |
161
- | [repository-shorthand](docs/rules/repository-shorthand.md) | Enforce either object or shorthand declaration for repository. | βœ”οΈ βœ… | πŸ”§ | | |
162
- | [require-author](docs/rules/require-author.md) | Requires the `author` property to be present. | | | | |
163
- | [require-bugs](docs/rules/require-bugs.md) | Requires the `bugs` property to be present. | | | | |
164
- | [require-bundleDependencies](docs/rules/require-bundleDependencies.md) | Requires the `bundleDependencies` property to be present. | | | | |
165
- | [require-dependencies](docs/rules/require-dependencies.md) | Requires the `dependencies` property to be present. | | | | |
166
- | [require-description](docs/rules/require-description.md) | Requires the `description` property to be present. | βœ”οΈ βœ… | | | |
167
- | [require-devDependencies](docs/rules/require-devDependencies.md) | Requires the `devDependencies` property to be present. | | | | |
168
- | [require-engines](docs/rules/require-engines.md) | Requires the `engines` property to be present. | | | | |
169
- | [require-files](docs/rules/require-files.md) | Requires the `files` property to be present. | | | | |
170
- | [require-keywords](docs/rules/require-keywords.md) | Requires the `keywords` property to be present. | | | | |
171
- | [require-name](docs/rules/require-name.md) | Requires the `name` property to be present. | βœ”οΈ βœ… | | | |
172
- | [require-optionalDependencies](docs/rules/require-optionalDependencies.md) | Requires the `optionalDependencies` property to be present. | | | | |
173
- | [require-peerDependencies](docs/rules/require-peerDependencies.md) | Requires the `peerDependencies` property to be present. | | | | |
174
- | [require-type](docs/rules/require-type.md) | Requires the `type` property to be present. | βœ”οΈ βœ… | | | |
175
- | [require-types](docs/rules/require-types.md) | Requires the `types` property to be present. | | | | |
176
- | [require-version](docs/rules/require-version.md) | Requires the `version` property to be present. | βœ”οΈ βœ… | | | |
177
- | [restrict-dependency-ranges](docs/rules/restrict-dependency-ranges.md) | Restricts the range of dependencies to allow or disallow specific types of ranges. | | | πŸ’‘ | |
178
- | [sort-collections](docs/rules/sort-collections.md) | Dependencies, scripts, and configuration values must be declared in alphabetical order. | βœ”οΈ βœ… | πŸ”§ | | |
179
- | [unique-dependencies](docs/rules/unique-dependencies.md) | Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`) | βœ”οΈ βœ… | | πŸ’‘ | |
180
- | [valid-author](docs/rules/valid-author.md) | Enforce that the `author` property is valid. | βœ”οΈ βœ… | | | |
181
- | [valid-bin](docs/rules/valid-bin.md) | Enforce that the `bin` property is valid. | βœ”οΈ βœ… | | πŸ’‘ | |
182
- | [valid-bundleDependencies](docs/rules/valid-bundleDependencies.md) | Enforce that the `bundleDependencies` (also: `bundledDependencies`) property is valid. | βœ”οΈ βœ… | | | |
183
- | [valid-config](docs/rules/valid-config.md) | Enforce that the `config` property is valid. | βœ”οΈ βœ… | | | |
184
- | [valid-cpu](docs/rules/valid-cpu.md) | Enforce that the `cpu` property is valid. | βœ”οΈ βœ… | | | |
185
- | [valid-dependencies](docs/rules/valid-dependencies.md) | Enforce that the `dependencies` property is valid. | βœ”οΈ βœ… | | | |
186
- | [valid-description](docs/rules/valid-description.md) | Enforce that the `description` property is valid. | βœ”οΈ βœ… | | | |
187
- | [valid-devDependencies](docs/rules/valid-devDependencies.md) | Enforce that the `devDependencies` property is valid. | βœ”οΈ βœ… | | | |
188
- | [valid-directories](docs/rules/valid-directories.md) | Enforce that the `directories` property is valid. | βœ”οΈ βœ… | | | |
189
- | [valid-exports](docs/rules/valid-exports.md) | Enforce that the `exports` property is valid. | βœ”οΈ βœ… | | | |
190
- | [valid-license](docs/rules/valid-license.md) | Enforce that the `license` property is valid. | βœ”οΈ βœ… | | | |
191
- | [valid-local-dependency](docs/rules/valid-local-dependency.md) | Checks existence of local dependencies in the package.json | | | | ❌ |
192
- | [valid-name](docs/rules/valid-name.md) | Enforce that package names are valid npm package names | βœ”οΈ βœ… | | | |
193
- | [valid-optionalDependencies](docs/rules/valid-optionalDependencies.md) | Enforce that the `optionalDependencies` property is valid. | βœ”οΈ βœ… | | | |
194
- | [valid-package-definition](docs/rules/valid-package-definition.md) | Enforce that package.json has all properties required by the npm spec | βœ”οΈ βœ… | | | |
195
- | [valid-peerDependencies](docs/rules/valid-peerDependencies.md) | Enforce that the `peerDependencies` property is valid. | βœ”οΈ βœ… | | | |
196
- | [valid-repository-directory](docs/rules/valid-repository-directory.md) | Enforce that if repository directory is specified, it matches the path to the package.json file | βœ”οΈ βœ… | | πŸ’‘ | |
197
- | [valid-scripts](docs/rules/valid-scripts.md) | Enforce that the `scripts` property is valid. | βœ”οΈ βœ… | | | |
198
- | [valid-type](docs/rules/valid-type.md) | Enforce that the `type` property is valid. | βœ”οΈ βœ… | | | |
199
- | [valid-version](docs/rules/valid-version.md) | Enforce that package versions are valid semver specifiers | βœ”οΈ βœ… | | | |
156
+ | NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | ❌ |
157
+ | :------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | :--- | :- | :- | :- |
158
+ | [no-empty-fields](docs/rules/no-empty-fields.md) | Reports on unnecessary empty arrays and objects. | βœ”οΈ βœ… | | πŸ’‘ | |
159
+ | [no-redundant-files](docs/rules/no-redundant-files.md) | Prevents adding unnecessary / redundant files. | βœ”οΈ βœ… | | πŸ’‘ | |
160
+ | [order-properties](docs/rules/order-properties.md) | Package properties must be declared in standard order | βœ”οΈ βœ… | πŸ”§ | | |
161
+ | [repository-shorthand](docs/rules/repository-shorthand.md) | Enforce either object or shorthand declaration for repository. | βœ”οΈ βœ… | πŸ”§ | | |
162
+ | [require-author](docs/rules/require-author.md) | Requires the `author` property to be present. | | | | |
163
+ | [require-bugs](docs/rules/require-bugs.md) | Requires the `bugs` property to be present. | | | | |
164
+ | [require-bundleDependencies](docs/rules/require-bundleDependencies.md) | Requires the `bundleDependencies` property to be present. | | | | |
165
+ | [require-dependencies](docs/rules/require-dependencies.md) | Requires the `dependencies` property to be present. | | | | |
166
+ | [require-description](docs/rules/require-description.md) | Requires the `description` property to be present. | βœ”οΈ βœ… | | | |
167
+ | [require-devDependencies](docs/rules/require-devDependencies.md) | Requires the `devDependencies` property to be present. | | | | |
168
+ | [require-engines](docs/rules/require-engines.md) | Requires the `engines` property to be present. | | | | |
169
+ | [require-files](docs/rules/require-files.md) | Requires the `files` property to be present. | | | | |
170
+ | [require-keywords](docs/rules/require-keywords.md) | Requires the `keywords` property to be present. | | | | |
171
+ | [require-name](docs/rules/require-name.md) | Requires the `name` property to be present. | βœ”οΈ βœ… | | | |
172
+ | [require-optionalDependencies](docs/rules/require-optionalDependencies.md) | Requires the `optionalDependencies` property to be present. | | | | |
173
+ | [require-peerDependencies](docs/rules/require-peerDependencies.md) | Requires the `peerDependencies` property to be present. | | | | |
174
+ | [require-type](docs/rules/require-type.md) | Requires the `type` property to be present. | βœ”οΈ βœ… | | | |
175
+ | [require-types](docs/rules/require-types.md) | Requires the `types` property to be present. | | | | |
176
+ | [require-version](docs/rules/require-version.md) | Requires the `version` property to be present. | βœ”οΈ βœ… | | | |
177
+ | [restrict-dependency-ranges](docs/rules/restrict-dependency-ranges.md) | Restricts the range of dependencies to allow or disallow specific types of ranges. | | | πŸ’‘ | |
178
+ | [sort-collections](docs/rules/sort-collections.md) | Selected collections must be in a consistent order (lexicographical for most; lifecycle-aware for scripts). | βœ”οΈ βœ… | πŸ”§ | | |
179
+ | [unique-dependencies](docs/rules/unique-dependencies.md) | Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`) | βœ”οΈ βœ… | | πŸ’‘ | |
180
+ | [valid-author](docs/rules/valid-author.md) | Enforce that the `author` property is valid. | βœ”οΈ βœ… | | | |
181
+ | [valid-bin](docs/rules/valid-bin.md) | Enforce that the `bin` property is valid. | βœ”οΈ βœ… | | πŸ’‘ | |
182
+ | [valid-bundleDependencies](docs/rules/valid-bundleDependencies.md) | Enforce that the `bundleDependencies` (also: `bundledDependencies`) property is valid. | βœ”οΈ βœ… | | | |
183
+ | [valid-config](docs/rules/valid-config.md) | Enforce that the `config` property is valid. | βœ”οΈ βœ… | | | |
184
+ | [valid-cpu](docs/rules/valid-cpu.md) | Enforce that the `cpu` property is valid. | βœ”οΈ βœ… | | | |
185
+ | [valid-dependencies](docs/rules/valid-dependencies.md) | Enforce that the `dependencies` property is valid. | βœ”οΈ βœ… | | | |
186
+ | [valid-description](docs/rules/valid-description.md) | Enforce that the `description` property is valid. | βœ”οΈ βœ… | | | |
187
+ | [valid-devDependencies](docs/rules/valid-devDependencies.md) | Enforce that the `devDependencies` property is valid. | βœ”οΈ βœ… | | | |
188
+ | [valid-directories](docs/rules/valid-directories.md) | Enforce that the `directories` property is valid. | βœ”οΈ βœ… | | | |
189
+ | [valid-exports](docs/rules/valid-exports.md) | Enforce that the `exports` property is valid. | βœ”οΈ βœ… | | | |
190
+ | [valid-license](docs/rules/valid-license.md) | Enforce that the `license` property is valid. | βœ”οΈ βœ… | | | |
191
+ | [valid-local-dependency](docs/rules/valid-local-dependency.md) | Checks existence of local dependencies in the package.json | | | | ❌ |
192
+ | [valid-name](docs/rules/valid-name.md) | Enforce that package names are valid npm package names | βœ”οΈ βœ… | | | |
193
+ | [valid-optionalDependencies](docs/rules/valid-optionalDependencies.md) | Enforce that the `optionalDependencies` property is valid. | βœ”οΈ βœ… | | | |
194
+ | [valid-package-definition](docs/rules/valid-package-definition.md) | Enforce that package.json has all properties required by the npm spec | βœ”οΈ βœ… | | | |
195
+ | [valid-peerDependencies](docs/rules/valid-peerDependencies.md) | Enforce that the `peerDependencies` property is valid. | βœ”οΈ βœ… | | | |
196
+ | [valid-repository-directory](docs/rules/valid-repository-directory.md) | Enforce that if repository directory is specified, it matches the path to the package.json file | βœ”οΈ βœ… | | πŸ’‘ | |
197
+ | [valid-scripts](docs/rules/valid-scripts.md) | Enforce that the `scripts` property is valid. | βœ”οΈ βœ… | | | |
198
+ | [valid-type](docs/rules/valid-type.md) | Enforce that the `type` property is valid. | βœ”οΈ βœ… | | | |
199
+ | [valid-version](docs/rules/valid-version.md) | Enforce that package versions are valid semver specifiers | βœ”οΈ βœ… | | | |
200
200
 
201
201
  <!-- end auto-generated rules list -->
202
202
  <!-- prettier-ignore-end -->
package/lib/index.js CHANGED
@@ -3,6 +3,7 @@ import { plugin } from "./plugin.js";
3
3
  //#region src/index.ts
4
4
  const rules = plugin.rules;
5
5
  const configs = plugin.configs;
6
+ var src_default = plugin;
6
7
 
7
8
  //#endregion
8
- export { configs, plugin as default, rules };
9
+ export { configs, src_default as default, rules };
@@ -47,7 +47,7 @@ const rule = createRule({
47
47
  }, {}), null, 2).split("\n").join("\n "));
48
48
  },
49
49
  loc: collection.loc,
50
- messageId: "notAlphabetized",
50
+ messageId: keyPartsReversed.at(-1) === "scripts" ? "unsortedScripts" : "unsortedKeys",
51
51
  node
52
52
  });
53
53
  } };
@@ -56,11 +56,14 @@ const rule = createRule({
56
56
  defaultOptions: [Array.from(defaultCollections)],
57
57
  docs: {
58
58
  category: "Best Practices",
59
- description: "Dependencies, scripts, and configuration values must be declared in alphabetical order.",
59
+ description: "Selected collections must be in a consistent order (lexicographical for most; lifecycle-aware for scripts).",
60
60
  recommended: true
61
61
  },
62
62
  fixable: "code",
63
- messages: { notAlphabetized: "Package {{ key }} are not alphabetized" },
63
+ messages: {
64
+ unsortedKeys: "Entries in '{{ key }}' are not in lexicographical order",
65
+ unsortedScripts: "Entries in 'scripts' are not in lexicographical order and grouped by lifecycles"
66
+ },
64
67
  schema: [{
65
68
  description: "Array of package properties to require sorting.",
66
69
  items: { type: "string" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-package-json",
3
- "version": "0.56.0",
3
+ "version": "0.56.2",
4
4
  "description": "Rules for consistent, readable, and valid package.json files. πŸ—‚οΈ",
5
5
  "homepage": "https://github.com/JoshuaKGoldberg/eslint-plugin-package-json#readme",
6
6
  "bugs": {
@@ -49,7 +49,7 @@
49
49
  "detect-indent": "^7.0.1",
50
50
  "detect-newline": "^4.0.1",
51
51
  "eslint-fix-utils": "~0.4.0",
52
- "package-json-validator": "~0.29.1",
52
+ "package-json-validator": "~0.30.0",
53
53
  "semver": "^7.5.4",
54
54
  "sort-object-keys": "^1.1.3",
55
55
  "sort-package-json": "^3.3.0",
@@ -57,18 +57,18 @@
57
57
  },
58
58
  "devDependencies": {
59
59
  "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
60
- "@eslint/js": "9.33.0",
60
+ "@eslint/js": "9.34.0",
61
61
  "@release-it/conventional-changelog": "10.0.0",
62
62
  "@types/eslint-plugin-markdown": "2.0.2",
63
63
  "@types/estree": "1.0.7",
64
- "@types/node": "22.17.0",
64
+ "@types/node": "22.18.0",
65
65
  "@types/semver": "7.7.0",
66
66
  "@types/sort-object-keys": "1.1.3",
67
67
  "@types/validate-npm-package-name": "4.0.2",
68
68
  "@vitest/coverage-v8": "3.2.0",
69
69
  "@vitest/eslint-plugin": "1.3.3",
70
70
  "console-fail-test": "0.5.0",
71
- "eslint": "9.33.0",
71
+ "eslint": "9.34.0",
72
72
  "eslint-doc-generator": "2.2.0",
73
73
  "eslint-plugin-eslint-plugin": "7.0.0",
74
74
  "eslint-plugin-jsdoc": "54.1.0",
@@ -81,7 +81,7 @@
81
81
  "husky": "9.1.7",
82
82
  "jiti": "2.5.0",
83
83
  "jsonc-eslint-parser": "2.4.0",
84
- "knip": "5.62.0",
84
+ "knip": "5.63.0",
85
85
  "lint-staged": "16.1.0",
86
86
  "markdownlint": "0.38.0",
87
87
  "markdownlint-cli": "0.45.0",
@@ -93,14 +93,14 @@
93
93
  "sentences-per-line": "0.3.0",
94
94
  "tsdown": "0.14.0",
95
95
  "typescript": "5.9.2",
96
- "typescript-eslint": "8.39.0",
96
+ "typescript-eslint": "8.41.0",
97
97
  "vitest": "3.2.0"
98
98
  },
99
99
  "peerDependencies": {
100
100
  "eslint": ">=8.0.0",
101
101
  "jsonc-eslint-parser": "^2.0.0"
102
102
  },
103
- "packageManager": "pnpm@10.14.0",
103
+ "packageManager": "pnpm@10.15.0",
104
104
  "engines": {
105
105
  "node": "^=20.19.0 || >=22.12.0"
106
106
  },