eslint-plugin-package-json 1.0.0-beta.3 β†’ 1.0.0-beta.4

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,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.0.0-beta.4](https://github.com/michaelfaith/eslint-plugin-package-json/compare/v1.0.0-beta.3...v1.0.0-beta.4) (2026-04-06)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * **order-properties:** remove legacy order option
9
+ * remove `valid-package-definition` rule ([#1707](https://github.com/michaelfaith/eslint-plugin-package-json/issues/1707))
10
+
11
+ ### πŸš€ Features
12
+
13
+ * **order-properties:** remove legacy order option ([935f6dc](https://github.com/michaelfaith/eslint-plugin-package-json/commit/935f6dccccdfe7d61deb43e083647a0a1dc8e953))
14
+ * remove `valid-package-definition` rule ([#1707](https://github.com/michaelfaith/eslint-plugin-package-json/issues/1707)) ([a4a5b86](https://github.com/michaelfaith/eslint-plugin-package-json/commit/a4a5b86e94b1fd41da8b113f49c96a8149e30fa6))
15
+
3
16
  ## [1.0.0-beta.3](https://github.com/michaelfaith/eslint-plugin-package-json/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2026-04-05)
4
17
 
5
18
 
package/README.md CHANGED
@@ -32,96 +32,94 @@ See [Getting Started](https://github.com/michaelfaith/eslint-plugin-package-json
32
32
  πŸ“¦ Set in the `recommended-publishable` configuration.\
33
33
  🎨 Set in the `stylistic` configuration.\
34
34
  πŸ”§ Automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/user-guide/command-line-interface#--fix).\
35
- πŸ’‘ Manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions).\
36
- ❌ Deprecated.
37
-
38
- | NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | ❌ |
39
- | :------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | :- | :- | :- |
40
- | [bin-name-casing](docs/rules/bin-name-casing.md) | Enforce that names for bin properties are in kebab case. | 🎨 | | πŸ’‘ | |
41
- | [exports-subpaths-style](docs/rules/exports-subpaths-style.md) | Enforce consistent format for the exports field (implicit or explicit subpaths). | 🎨 | πŸ”§ | | |
42
- | [no-empty-fields](docs/rules/no-empty-fields.md) | Reports on unnecessary empty arrays and objects. | βœ… πŸ“¦ | | πŸ’‘ | |
43
- | [no-redundant-files](docs/rules/no-redundant-files.md) | Prevents adding unnecessary / redundant files. | βœ… πŸ“¦ | | πŸ’‘ | |
44
- | [no-redundant-publishConfig](docs/rules/no-redundant-publishConfig.md) | Warns when publishConfig.access is used in unscoped packages. | βœ… πŸ“¦ | | πŸ’‘ | |
45
- | [order-properties](docs/rules/order-properties.md) | Package properties should be declared in standard order | 🎨 | πŸ”§ | | |
46
- | [repository-shorthand](docs/rules/repository-shorthand.md) | Enforce either object or shorthand declaration for repository. | βœ… πŸ“¦ | πŸ”§ | | |
47
- | [require-attribution](docs/rules/require-attribution.md) | Ensures that proper attribution is included, requiring that either `author` or `contributors` is defined, and that if `contributors` is present, it should include at least one contributor. | βœ… πŸ“¦ | | πŸ’‘ | |
48
- | [require-author](docs/rules/require-author.md) | Requires the `author` property to be present. | | | | |
49
- | [require-bin](docs/rules/require-bin.md) | Requires the `bin` property to be present. | | | | |
50
- | [require-bugs](docs/rules/require-bugs.md) | Requires the `bugs` property to be present. | | | | |
51
- | [require-bundleDependencies](docs/rules/require-bundleDependencies.md) | Requires the `bundleDependencies` property to be present. | | | | |
52
- | [require-contributors](docs/rules/require-contributors.md) | Requires the `contributors` property to be present. | | | | |
53
- | [require-cpu](docs/rules/require-cpu.md) | Requires the `cpu` property to be present. | | | | |
54
- | [require-dependencies](docs/rules/require-dependencies.md) | Requires the `dependencies` property to be present. | | | | |
55
- | [require-description](docs/rules/require-description.md) | Requires the `description` property to be present. | βœ… πŸ“¦ | | | |
56
- | [require-devDependencies](docs/rules/require-devDependencies.md) | Requires the `devDependencies` property to be present. | | | | |
57
- | [require-devEngines](docs/rules/require-devEngines.md) | Requires the `devEngines` property to be present. | | | | |
58
- | [require-directories](docs/rules/require-directories.md) | Requires the `directories` property to be present. | | | | |
59
- | [require-engines](docs/rules/require-engines.md) | Requires the `engines` property to be present. | | | | |
60
- | [require-exports](docs/rules/require-exports.md) | Requires the `exports` property to be present. | βœ… πŸ“¦ | | | |
61
- | [require-files](docs/rules/require-files.md) | Requires the `files` property to be present. | βœ… πŸ“¦ | | | |
62
- | [require-funding](docs/rules/require-funding.md) | Requires the `funding` property to be present. | | | | |
63
- | [require-homepage](docs/rules/require-homepage.md) | Requires the `homepage` property to be present. | | | | |
64
- | [require-keywords](docs/rules/require-keywords.md) | Requires the `keywords` property to be present. | | | | |
65
- | [require-license](docs/rules/require-license.md) | Requires the `license` property to be present. | βœ… πŸ“¦ | | | |
66
- | [require-main](docs/rules/require-main.md) | Requires the `main` property to be present. | | | | |
67
- | [require-man](docs/rules/require-man.md) | Requires the `man` property to be present. | | | | |
68
- | [require-module](docs/rules/require-module.md) | Requires the `module` property to be present. | | | | |
69
- | [require-name](docs/rules/require-name.md) | Requires the `name` property to be present. | βœ… πŸ“¦ | | | |
70
- | [require-optionalDependencies](docs/rules/require-optionalDependencies.md) | Requires the `optionalDependencies` property to be present. | | | | |
71
- | [require-os](docs/rules/require-os.md) | Requires the `os` property to be present. | | | | |
72
- | [require-packageManager](docs/rules/require-packageManager.md) | Requires the `packageManager` property to be present. | | | | |
73
- | [require-peerDependencies](docs/rules/require-peerDependencies.md) | Requires the `peerDependencies` property to be present. | | | | |
74
- | [require-private](docs/rules/require-private.md) | Requires the `private` property to be present. | | πŸ”§ | | |
75
- | [require-publishConfig](docs/rules/require-publishConfig.md) | Requires the `publishConfig` property to be present. | | | | |
76
- | [require-repository](docs/rules/require-repository.md) | Requires the `repository` property to be present. | βœ… πŸ“¦ | | | |
77
- | [require-scripts](docs/rules/require-scripts.md) | Requires the `scripts` property to be present. | | | | |
78
- | [require-sideEffects](docs/rules/require-sideEffects.md) | Requires the `sideEffects` property to be present. | βœ… πŸ“¦ | | | |
79
- | [require-type](docs/rules/require-type.md) | Requires the `type` property to be present. | βœ… πŸ“¦ | πŸ”§ | | |
80
- | [require-types](docs/rules/require-types.md) | Requires the `types` property to be present. | | | | |
81
- | [require-version](docs/rules/require-version.md) | Requires the `version` property to be present. | βœ… πŸ“¦ | | | |
82
- | [restrict-dependency-ranges](docs/rules/restrict-dependency-ranges.md) | Restricts the range of dependencies to allow or disallow specific types of ranges. | | | πŸ’‘ | |
83
- | [restrict-private-properties](docs/rules/restrict-private-properties.md) | Disallows unnecessary properties in private packages. | | πŸ”§ | πŸ’‘ | |
84
- | [scripts-name-casing](docs/rules/scripts-name-casing.md) | Enforce that names for `scripts` are in kebab case (optionally separated by colons). | 🎨 | | πŸ’‘ | |
85
- | [sort-collections](docs/rules/sort-collections.md) | Selected collections must be in a consistent order (lexicographical for most; lifecycle-aware for scripts). | βœ… πŸ“¦ | πŸ”§ | | |
86
- | [specify-peers-locally](docs/rules/specify-peers-locally.md) | Requires that all peer dependencies are also declared as dev dependencies | βœ… πŸ“¦ | | πŸ’‘ | |
87
- | [unique-dependencies](docs/rules/unique-dependencies.md) | Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`) | βœ… πŸ“¦ | | πŸ’‘ | |
88
- | [valid-author](docs/rules/valid-author.md) | Enforce that the `author` property is valid. | βœ… πŸ“¦ | | | |
89
- | [valid-bin](docs/rules/valid-bin.md) | Enforce that the `bin` property is valid. | βœ… πŸ“¦ | | | |
90
- | [valid-bugs](docs/rules/valid-bugs.md) | Enforce that the `bugs` property is valid. | βœ… πŸ“¦ | | | |
91
- | [valid-bundleDependencies](docs/rules/valid-bundleDependencies.md) | Enforce that the `bundleDependencies` (also: `bundledDependencies`) property is valid. | βœ… πŸ“¦ | | | |
92
- | [valid-config](docs/rules/valid-config.md) | Enforce that the `config` property is valid. | βœ… πŸ“¦ | | | |
93
- | [valid-contributors](docs/rules/valid-contributors.md) | Enforce that the `contributors` property is valid. | βœ… πŸ“¦ | | | |
94
- | [valid-cpu](docs/rules/valid-cpu.md) | Enforce that the `cpu` property is valid. | βœ… πŸ“¦ | | | |
95
- | [valid-dependencies](docs/rules/valid-dependencies.md) | Enforce that the `dependencies` property is valid. | βœ… πŸ“¦ | | | |
96
- | [valid-description](docs/rules/valid-description.md) | Enforce that the `description` property is valid. | βœ… πŸ“¦ | | | |
97
- | [valid-devDependencies](docs/rules/valid-devDependencies.md) | Enforce that the `devDependencies` property is valid. | βœ… πŸ“¦ | | | |
98
- | [valid-devEngines](docs/rules/valid-devEngines.md) | Enforce that the `devEngines` property is valid. | βœ… πŸ“¦ | | | |
99
- | [valid-directories](docs/rules/valid-directories.md) | Enforce that the `directories` property is valid. | βœ… πŸ“¦ | | | |
100
- | [valid-engines](docs/rules/valid-engines.md) | Enforce that the `engines` property is valid. | βœ… πŸ“¦ | | | |
101
- | [valid-exports](docs/rules/valid-exports.md) | Enforce that the `exports` property is valid. | βœ… πŸ“¦ | | | |
102
- | [valid-files](docs/rules/valid-files.md) | Enforce that the `files` property is valid. | βœ… πŸ“¦ | | | |
103
- | [valid-funding](docs/rules/valid-funding.md) | Enforce that the `funding` property is valid. | βœ… πŸ“¦ | | | |
104
- | [valid-homepage](docs/rules/valid-homepage.md) | Enforce that the `homepage` property is valid. | βœ… πŸ“¦ | | | |
105
- | [valid-keywords](docs/rules/valid-keywords.md) | Enforce that the `keywords` property is valid. | βœ… πŸ“¦ | | | |
106
- | [valid-license](docs/rules/valid-license.md) | Enforce that the `license` property is valid. | βœ… πŸ“¦ | | | |
107
- | [valid-main](docs/rules/valid-main.md) | Enforce that the `main` property is valid. | βœ… πŸ“¦ | | | |
108
- | [valid-man](docs/rules/valid-man.md) | Enforce that the `man` property is valid. | βœ… πŸ“¦ | | | |
109
- | [valid-module](docs/rules/valid-module.md) | Enforce that the `module` property is valid. | βœ… πŸ“¦ | | | |
110
- | [valid-name](docs/rules/valid-name.md) | Enforce that package names are valid npm package names | βœ… πŸ“¦ | | | |
111
- | [valid-optionalDependencies](docs/rules/valid-optionalDependencies.md) | Enforce that the `optionalDependencies` property is valid. | βœ… πŸ“¦ | | | |
112
- | [valid-os](docs/rules/valid-os.md) | Enforce that the `os` property is valid. | βœ… πŸ“¦ | | | |
113
- | [valid-package-definition](docs/rules/valid-package-definition.md) | Enforce that package.json has all properties required by the npm spec | | | | ❌ |
114
- | [valid-packageManager](docs/rules/valid-packageManager.md) | Enforce that the `packageManager` property is valid. | βœ… πŸ“¦ | | | |
115
- | [valid-peerDependencies](docs/rules/valid-peerDependencies.md) | Enforce that the `peerDependencies` property is valid. | βœ… πŸ“¦ | | | |
116
- | [valid-private](docs/rules/valid-private.md) | Enforce that the `private` property is valid. | βœ… πŸ“¦ | | | |
117
- | [valid-publishConfig](docs/rules/valid-publishConfig.md) | Enforce that the `publishConfig` property is valid. | βœ… πŸ“¦ | | | |
118
- | [valid-repository](docs/rules/valid-repository.md) | Enforce that the `repository` property is valid. | βœ… πŸ“¦ | | | |
119
- | [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 | βœ… πŸ“¦ | | πŸ’‘ | |
120
- | [valid-scripts](docs/rules/valid-scripts.md) | Enforce that the `scripts` property is valid. | βœ… πŸ“¦ | | | |
121
- | [valid-sideEffects](docs/rules/valid-sideEffects.md) | Enforce that the `sideEffects` property is valid. | βœ… πŸ“¦ | | | |
122
- | [valid-type](docs/rules/valid-type.md) | Enforce that the `type` property is valid. | βœ… πŸ“¦ | | | |
123
- | [valid-version](docs/rules/valid-version.md) | Enforce that package versions are valid semver specifiers | βœ… πŸ“¦ | | | |
124
- | [valid-workspaces](docs/rules/valid-workspaces.md) | Enforce that the `workspaces` property is valid. | βœ… πŸ“¦ | | | |
35
+ πŸ’‘ Manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions).
36
+
37
+ | NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ |
38
+ | :------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | :- | :- |
39
+ | [bin-name-casing](docs/rules/bin-name-casing.md) | Enforce that names for bin properties are in kebab case. | 🎨 | | πŸ’‘ |
40
+ | [exports-subpaths-style](docs/rules/exports-subpaths-style.md) | Enforce consistent format for the exports field (implicit or explicit subpaths). | 🎨 | πŸ”§ | |
41
+ | [no-empty-fields](docs/rules/no-empty-fields.md) | Reports on unnecessary empty arrays and objects. | βœ… πŸ“¦ | | πŸ’‘ |
42
+ | [no-redundant-files](docs/rules/no-redundant-files.md) | Prevents adding unnecessary / redundant files. | βœ… πŸ“¦ | | πŸ’‘ |
43
+ | [no-redundant-publishConfig](docs/rules/no-redundant-publishConfig.md) | Warns when publishConfig.access is used in unscoped packages. | βœ… πŸ“¦ | | πŸ’‘ |
44
+ | [order-properties](docs/rules/order-properties.md) | Package properties should be declared in standard order | 🎨 | πŸ”§ | |
45
+ | [repository-shorthand](docs/rules/repository-shorthand.md) | Enforce either object or shorthand declaration for repository. | βœ… πŸ“¦ | πŸ”§ | |
46
+ | [require-attribution](docs/rules/require-attribution.md) | Ensures that proper attribution is included, requiring that either `author` or `contributors` is defined, and that if `contributors` is present, it should include at least one contributor. | βœ… πŸ“¦ | | πŸ’‘ |
47
+ | [require-author](docs/rules/require-author.md) | Requires the `author` property to be present. | | | |
48
+ | [require-bin](docs/rules/require-bin.md) | Requires the `bin` property to be present. | | | |
49
+ | [require-bugs](docs/rules/require-bugs.md) | Requires the `bugs` property to be present. | | | |
50
+ | [require-bundleDependencies](docs/rules/require-bundleDependencies.md) | Requires the `bundleDependencies` property to be present. | | | |
51
+ | [require-contributors](docs/rules/require-contributors.md) | Requires the `contributors` property to be present. | | | |
52
+ | [require-cpu](docs/rules/require-cpu.md) | Requires the `cpu` property to be present. | | | |
53
+ | [require-dependencies](docs/rules/require-dependencies.md) | Requires the `dependencies` property to be present. | | | |
54
+ | [require-description](docs/rules/require-description.md) | Requires the `description` property to be present. | βœ… πŸ“¦ | | |
55
+ | [require-devDependencies](docs/rules/require-devDependencies.md) | Requires the `devDependencies` property to be present. | | | |
56
+ | [require-devEngines](docs/rules/require-devEngines.md) | Requires the `devEngines` property to be present. | | | |
57
+ | [require-directories](docs/rules/require-directories.md) | Requires the `directories` property to be present. | | | |
58
+ | [require-engines](docs/rules/require-engines.md) | Requires the `engines` property to be present. | | | |
59
+ | [require-exports](docs/rules/require-exports.md) | Requires the `exports` property to be present. | βœ… πŸ“¦ | | |
60
+ | [require-files](docs/rules/require-files.md) | Requires the `files` property to be present. | βœ… πŸ“¦ | | |
61
+ | [require-funding](docs/rules/require-funding.md) | Requires the `funding` property to be present. | | | |
62
+ | [require-homepage](docs/rules/require-homepage.md) | Requires the `homepage` property to be present. | | | |
63
+ | [require-keywords](docs/rules/require-keywords.md) | Requires the `keywords` property to be present. | | | |
64
+ | [require-license](docs/rules/require-license.md) | Requires the `license` property to be present. | βœ… πŸ“¦ | | |
65
+ | [require-main](docs/rules/require-main.md) | Requires the `main` property to be present. | | | |
66
+ | [require-man](docs/rules/require-man.md) | Requires the `man` property to be present. | | | |
67
+ | [require-module](docs/rules/require-module.md) | Requires the `module` property to be present. | | | |
68
+ | [require-name](docs/rules/require-name.md) | Requires the `name` property to be present. | βœ… πŸ“¦ | | |
69
+ | [require-optionalDependencies](docs/rules/require-optionalDependencies.md) | Requires the `optionalDependencies` property to be present. | | | |
70
+ | [require-os](docs/rules/require-os.md) | Requires the `os` property to be present. | | | |
71
+ | [require-packageManager](docs/rules/require-packageManager.md) | Requires the `packageManager` property to be present. | | | |
72
+ | [require-peerDependencies](docs/rules/require-peerDependencies.md) | Requires the `peerDependencies` property to be present. | | | |
73
+ | [require-private](docs/rules/require-private.md) | Requires the `private` property to be present. | | πŸ”§ | |
74
+ | [require-publishConfig](docs/rules/require-publishConfig.md) | Requires the `publishConfig` property to be present. | | | |
75
+ | [require-repository](docs/rules/require-repository.md) | Requires the `repository` property to be present. | βœ… πŸ“¦ | | |
76
+ | [require-scripts](docs/rules/require-scripts.md) | Requires the `scripts` property to be present. | | | |
77
+ | [require-sideEffects](docs/rules/require-sideEffects.md) | Requires the `sideEffects` property to be present. | βœ… πŸ“¦ | | |
78
+ | [require-type](docs/rules/require-type.md) | Requires the `type` property to be present. | βœ… πŸ“¦ | πŸ”§ | |
79
+ | [require-types](docs/rules/require-types.md) | Requires the `types` property to be present. | | | |
80
+ | [require-version](docs/rules/require-version.md) | Requires the `version` property to be present. | βœ… πŸ“¦ | | |
81
+ | [restrict-dependency-ranges](docs/rules/restrict-dependency-ranges.md) | Restricts the range of dependencies to allow or disallow specific types of ranges. | | | πŸ’‘ |
82
+ | [restrict-private-properties](docs/rules/restrict-private-properties.md) | Disallows unnecessary properties in private packages. | | πŸ”§ | πŸ’‘ |
83
+ | [scripts-name-casing](docs/rules/scripts-name-casing.md) | Enforce that names for `scripts` are in kebab case (optionally separated by colons). | 🎨 | | πŸ’‘ |
84
+ | [sort-collections](docs/rules/sort-collections.md) | Selected collections must be in a consistent order (lexicographical for most; lifecycle-aware for scripts). | βœ… πŸ“¦ | πŸ”§ | |
85
+ | [specify-peers-locally](docs/rules/specify-peers-locally.md) | Requires that all peer dependencies are also declared as dev dependencies | βœ… πŸ“¦ | | πŸ’‘ |
86
+ | [unique-dependencies](docs/rules/unique-dependencies.md) | Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`) | βœ… πŸ“¦ | | πŸ’‘ |
87
+ | [valid-author](docs/rules/valid-author.md) | Enforce that the `author` property is valid. | βœ… πŸ“¦ | | |
88
+ | [valid-bin](docs/rules/valid-bin.md) | Enforce that the `bin` property is valid. | βœ… πŸ“¦ | | |
89
+ | [valid-bugs](docs/rules/valid-bugs.md) | Enforce that the `bugs` property is valid. | βœ… πŸ“¦ | | |
90
+ | [valid-bundleDependencies](docs/rules/valid-bundleDependencies.md) | Enforce that the `bundleDependencies` (also: `bundledDependencies`) property is valid. | βœ… πŸ“¦ | | |
91
+ | [valid-config](docs/rules/valid-config.md) | Enforce that the `config` property is valid. | βœ… πŸ“¦ | | |
92
+ | [valid-contributors](docs/rules/valid-contributors.md) | Enforce that the `contributors` property is valid. | βœ… πŸ“¦ | | |
93
+ | [valid-cpu](docs/rules/valid-cpu.md) | Enforce that the `cpu` property is valid. | βœ… πŸ“¦ | | |
94
+ | [valid-dependencies](docs/rules/valid-dependencies.md) | Enforce that the `dependencies` property is valid. | βœ… πŸ“¦ | | |
95
+ | [valid-description](docs/rules/valid-description.md) | Enforce that the `description` property is valid. | βœ… πŸ“¦ | | |
96
+ | [valid-devDependencies](docs/rules/valid-devDependencies.md) | Enforce that the `devDependencies` property is valid. | βœ… πŸ“¦ | | |
97
+ | [valid-devEngines](docs/rules/valid-devEngines.md) | Enforce that the `devEngines` property is valid. | βœ… πŸ“¦ | | |
98
+ | [valid-directories](docs/rules/valid-directories.md) | Enforce that the `directories` property is valid. | βœ… πŸ“¦ | | |
99
+ | [valid-engines](docs/rules/valid-engines.md) | Enforce that the `engines` property is valid. | βœ… πŸ“¦ | | |
100
+ | [valid-exports](docs/rules/valid-exports.md) | Enforce that the `exports` property is valid. | βœ… πŸ“¦ | | |
101
+ | [valid-files](docs/rules/valid-files.md) | Enforce that the `files` property is valid. | βœ… πŸ“¦ | | |
102
+ | [valid-funding](docs/rules/valid-funding.md) | Enforce that the `funding` property is valid. | βœ… πŸ“¦ | | |
103
+ | [valid-homepage](docs/rules/valid-homepage.md) | Enforce that the `homepage` property is valid. | βœ… πŸ“¦ | | |
104
+ | [valid-keywords](docs/rules/valid-keywords.md) | Enforce that the `keywords` property is valid. | βœ… πŸ“¦ | | |
105
+ | [valid-license](docs/rules/valid-license.md) | Enforce that the `license` property is valid. | βœ… πŸ“¦ | | |
106
+ | [valid-main](docs/rules/valid-main.md) | Enforce that the `main` property is valid. | βœ… πŸ“¦ | | |
107
+ | [valid-man](docs/rules/valid-man.md) | Enforce that the `man` property is valid. | βœ… πŸ“¦ | | |
108
+ | [valid-module](docs/rules/valid-module.md) | Enforce that the `module` property is valid. | βœ… πŸ“¦ | | |
109
+ | [valid-name](docs/rules/valid-name.md) | Enforce that package names are valid npm package names | βœ… πŸ“¦ | | |
110
+ | [valid-optionalDependencies](docs/rules/valid-optionalDependencies.md) | Enforce that the `optionalDependencies` property is valid. | βœ… πŸ“¦ | | |
111
+ | [valid-os](docs/rules/valid-os.md) | Enforce that the `os` property is valid. | βœ… πŸ“¦ | | |
112
+ | [valid-packageManager](docs/rules/valid-packageManager.md) | Enforce that the `packageManager` property is valid. | βœ… πŸ“¦ | | |
113
+ | [valid-peerDependencies](docs/rules/valid-peerDependencies.md) | Enforce that the `peerDependencies` property is valid. | βœ… πŸ“¦ | | |
114
+ | [valid-private](docs/rules/valid-private.md) | Enforce that the `private` property is valid. | βœ… πŸ“¦ | | |
115
+ | [valid-publishConfig](docs/rules/valid-publishConfig.md) | Enforce that the `publishConfig` property is valid. | βœ… πŸ“¦ | | |
116
+ | [valid-repository](docs/rules/valid-repository.md) | Enforce that the `repository` property is valid. | βœ… πŸ“¦ | | |
117
+ | [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 | βœ… πŸ“¦ | | πŸ’‘ |
118
+ | [valid-scripts](docs/rules/valid-scripts.md) | Enforce that the `scripts` property is valid. | βœ… πŸ“¦ | | |
119
+ | [valid-sideEffects](docs/rules/valid-sideEffects.md) | Enforce that the `sideEffects` property is valid. | βœ… πŸ“¦ | | |
120
+ | [valid-type](docs/rules/valid-type.md) | Enforce that the `type` property is valid. | βœ… πŸ“¦ | | |
121
+ | [valid-version](docs/rules/valid-version.md) | Enforce that package versions are valid semver specifiers | βœ… πŸ“¦ | | |
122
+ | [valid-workspaces](docs/rules/valid-workspaces.md) | Enforce that the `workspaces` property is valid. | βœ… πŸ“¦ | | |
125
123
 
126
124
  <!-- end auto-generated rules list -->
127
125
  <!-- prettier-ignore-end -->
package/lib/plugin.mjs CHANGED
@@ -14,10 +14,9 @@ import { rule as rule$11 } from "./rules/sort-collections.mjs";
14
14
  import { rule as rule$12 } from "./rules/specify-peers-locally.mjs";
15
15
  import { rule as rule$13 } from "./rules/unique-dependencies.mjs";
16
16
  import { rule as rule$14 } from "./rules/valid-name.mjs";
17
- import { rule as rule$15 } from "./rules/valid-package-definition.mjs";
18
17
  import { rules as rules$2 } from "./rules/valid-properties.mjs";
19
- import { rule as rule$16 } from "./rules/valid-repository-directory.mjs";
20
- import { rule as rule$17 } from "./rules/valid-version.mjs";
18
+ import { rule as rule$15 } from "./rules/valid-repository-directory.mjs";
19
+ import { rule as rule$16 } from "./rules/valid-version.mjs";
21
20
  import { createRequire } from "node:module";
22
21
  import * as parserJsonc from "jsonc-eslint-parser";
23
22
  //#region src/plugin.ts
@@ -40,9 +39,8 @@ const rules = {
40
39
  "unique-dependencies": rule$13,
41
40
  ...rules$2,
42
41
  "valid-name": rule$14,
43
- "valid-package-definition": rule$15,
44
- "valid-repository-directory": rule$16,
45
- "valid-version": rule$17
42
+ "valid-repository-directory": rule$15,
43
+ "valid-version": rule$16
46
44
  };
47
45
  const recommendedRules = { ...Object.fromEntries(Object.entries(rules).filter(([, rule]) => rule.meta.docs?.recommended).map(([name]) => ["package-json/" + name, "error"])) };
48
46
  const recommendedPublishableRules = {
@@ -2,13 +2,13 @@ import { PackageJsonRuleModule } from "../createRule.mjs";
2
2
 
3
3
  //#region src/rules/order-properties.d.ts
4
4
  declare const rule: PackageJsonRuleModule<[({
5
- order?: "sort-package-json" | "legacy" | string[] | undefined;
5
+ order?: "sort-package-json" | string[] | undefined;
6
6
  } | undefined)?], [{
7
7
  readonly additionalProperties: false;
8
8
  readonly properties: {
9
9
  readonly order: {
10
10
  readonly anyOf: readonly [{
11
- readonly enum: readonly ["legacy", "sort-package-json"];
11
+ readonly enum: readonly ["sort-package-json"];
12
12
  readonly type: readonly ["string"];
13
13
  }, {
14
14
  readonly items: {
@@ -4,44 +4,12 @@ import { detectNewlineGraceful } from "detect-newline";
4
4
  import sortObjectKeys from "sort-object-keys";
5
5
  import { sortOrder } from "sort-package-json";
6
6
  //#region src/rules/order-properties.ts
7
- const standardOrderLegacy = [
8
- "name",
9
- "version",
10
- "private",
11
- "publishConfig",
12
- "description",
13
- "main",
14
- "exports",
15
- "browser",
16
- "files",
17
- "bin",
18
- "directories",
19
- "man",
20
- "scripts",
21
- "repository",
22
- "keywords",
23
- "author",
24
- "license",
25
- "bugs",
26
- "homepage",
27
- "config",
28
- "dependencies",
29
- "devDependencies",
30
- "peerDependencies",
31
- "optionalDependencies",
32
- "bundledDependencies",
33
- "engines",
34
- "os",
35
- "cpu"
36
- ];
37
7
  const rule = createRule({
38
8
  create(context) {
39
9
  return { "Program:exit"() {
40
10
  const { ast, text } = context.sourceCode;
41
- const options = { ...context.options[0] };
42
- options.order ??= "sort-package-json";
43
- const { order } = options;
44
- const requiredOrder = order === "legacy" ? standardOrderLegacy : order === "sort-package-json" ? sortOrder : order;
11
+ const { order = "sort-package-json" } = context.options[0] ?? {};
12
+ const requiredOrder = order === "sort-package-json" ? sortOrder : order;
45
13
  const json = JSON.parse(text);
46
14
  const orderedNonStandardKeys = Object.keys(json).filter((key) => !requiredOrder.includes(key)).sort();
47
15
  const orderedSource = sortObjectKeys(json, [...requiredOrder, ...orderedNonStandardKeys]);
@@ -78,7 +46,7 @@ const rule = createRule({
78
46
  additionalProperties: false,
79
47
  properties: { order: {
80
48
  anyOf: [{
81
- enum: ["legacy", "sort-package-json"],
49
+ enum: ["sort-package-json"],
82
50
  type: ["string"]
83
51
  }, {
84
52
  items: { type: ["string"] },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-package-json",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.0-beta.4",
4
4
  "description": "Rules for consistent, readable, and valid package.json files. πŸ—‚οΈ",
5
5
  "homepage": "https://github.com/michaelfaith/eslint-plugin-package-json#readme",
6
6
  "bugs": {
@@ -1,20 +0,0 @@
1
- import { PackageJsonRuleModule } from "../createRule.mjs";
2
-
3
- //#region src/rules/valid-package-definition.d.ts
4
- declare const rule: PackageJsonRuleModule<[({
5
- ignoreProperties?: string[] | undefined;
6
- } | undefined)?], [{
7
- readonly additionalProperties: false;
8
- readonly properties: {
9
- readonly ignoreProperties: {
10
- readonly description: "Array of top-level package properties to ignore.";
11
- readonly items: {
12
- readonly type: "string";
13
- };
14
- readonly type: "array";
15
- };
16
- };
17
- readonly type: "object";
18
- }]>;
19
- //#endregion
20
- export { rule };
@@ -1,44 +0,0 @@
1
- import { createRule } from "../createRule.mjs";
2
- import { validate } from "package-json-validator";
3
- //#region src/rules/valid-package-definition.ts
4
- const ignoredErrors = [
5
- /^Url not valid/i,
6
- /^Invalid version range for .+?: file:/i,
7
- /^author field should have name/i
8
- ];
9
- const isUsableError = (errorText) => ignoredErrors.every((pattern) => !pattern.test(errorText));
10
- const rule = createRule({
11
- create(context) {
12
- const ignoreProperties = context.options[0]?.ignoreProperties ?? [];
13
- return { "Program:exit"() {
14
- const usableErrors = validate(context.sourceCode.text).errors?.filter((error) => {
15
- return isUsableError(error.message) && !ignoreProperties.includes(error.field);
16
- }) ?? [];
17
- for (const error of usableErrors) if (error.message) context.report({
18
- message: error.message,
19
- node: context.sourceCode.ast
20
- });
21
- } };
22
- },
23
- meta: {
24
- defaultOptions: [{ ignoreProperties: [] }],
25
- deprecated: true,
26
- docs: {
27
- category: "Best Practices",
28
- description: "Enforce that package.json has all properties required by the npm spec"
29
- },
30
- schema: [{
31
- additionalProperties: false,
32
- properties: { ignoreProperties: {
33
- description: "Array of top-level package properties to ignore.",
34
- items: { type: "string" },
35
- type: "array"
36
- } },
37
- type: "object"
38
- }],
39
- type: "problem"
40
- },
41
- name: "valid-package-definition"
42
- });
43
- //#endregion
44
- export { rule };