eslint-plugin-package-json 0.86.0 → 0.87.1

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,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.87.1](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/compare/v0.87.0...v0.87.1) (2025-12-31)
4
+
5
+
6
+ ### Features
7
+
8
+ * add require-homepage rule ([#1480](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues/1480)) ([0d895ff](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commit/0d895ff8b5c800df07bdf2ed2bc99e1ad16649ad))
9
+
10
+ ## [0.87.0](///compare/v0.86.0...v0.87.0) (2025-12-30)
11
+
12
+ ### Features
13
+
14
+ - move `order-properties` from `recommended` to `stylistic` config ([#1475](undefined/undefined/undefined/issues/1475)) b9a9978, closes #1471
15
+
3
16
  ## [0.86.0](///compare/v0.85.0...v0.86.0) (2025-12-30)
4
17
 
5
18
  ### Features
6
19
 
7
- * remove deprecated valid-local-dependency rule ([#1450](undefined/undefined/undefined/issues/1450)) 3e36e30, closes #1168
8
- * **valid-module:** add rule to validate `module` ([#1462](undefined/undefined/undefined/issues/1462)) ee376e0, closes #1034
20
+ - remove deprecated valid-local-dependency rule ([#1450](undefined/undefined/undefined/issues/1450)) 3e36e30, closes #1168
21
+ - **valid-module:** add rule to validate `module` ([#1462](undefined/undefined/undefined/issues/1462)) ee376e0, closes #1034
9
22
 
10
23
  ## [0.85.0](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/compare/v0.84.0...v0.85.0) (2025-11-18)
11
24
 
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  <p align="center">
9
9
  <!-- prettier-ignore-start -->
10
10
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
11
- <a href="#contributors" target="_blank"><img alt="👪 All Contributors: 35" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-35-21bb42.svg" /></a>
11
+ <a href="#contributors" target="_blank"><img alt="👪 All Contributors: 36" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-36-21bb42.svg" /></a>
12
12
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
13
13
  <!-- prettier-ignore-end -->
14
14
  <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/main/.github/CODE_OF_CONDUCT.md" target="_blank"><img alt="🤝 Code of Conduct: Kept" src="https://img.shields.io/badge/%F0%9F%A4%9D_code_of_conduct-kept-21bb42" /></a>
@@ -209,7 +209,7 @@ The default settings don't conflict, and Prettier plugins can quickly fix up ord
209
209
  | [no-empty-fields](docs/rules/no-empty-fields.md) | Reports on unnecessary empty arrays and objects. | ✔️ ✅ 📦 | | 💡 | |
210
210
  | [no-redundant-files](docs/rules/no-redundant-files.md) | Prevents adding unnecessary / redundant files. | ✔️ ✅ 📦 | | 💡 | |
211
211
  | [no-redundant-publishConfig](docs/rules/no-redundant-publishConfig.md) | Warns when publishConfig.access is used in unscoped packages. | ✔️ ✅ 📦 | | 💡 | |
212
- | [order-properties](docs/rules/order-properties.md) | Package properties must be declared in standard order | ✔️ ✅ 📦 | 🔧 | | |
212
+ | [order-properties](docs/rules/order-properties.md) | Package properties should be declared in standard order | 🎨 | 🔧 | | |
213
213
  | [repository-shorthand](docs/rules/repository-shorthand.md) | Enforce either object or shorthand declaration for repository. | ✔️ ✅ 📦 | 🔧 | | |
214
214
  | [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. | 📦 | | 💡 | |
215
215
  | [require-author](docs/rules/require-author.md) | Requires the `author` property to be present. | | | | |
@@ -221,6 +221,7 @@ The default settings don't conflict, and Prettier plugins can quickly fix up ord
221
221
  | [require-engines](docs/rules/require-engines.md) | Requires the `engines` property to be present. | | | | |
222
222
  | [require-exports](docs/rules/require-exports.md) | Requires the `exports` property to be present. | 📦 | | | |
223
223
  | [require-files](docs/rules/require-files.md) | Requires the `files` property to be present. | 📦 | | | |
224
+ | [require-homepage](docs/rules/require-homepage.md) | Requires the `homepage` property to be present. | | | | |
224
225
  | [require-keywords](docs/rules/require-keywords.md) | Requires the `keywords` property to be present. | | | | |
225
226
  | [require-license](docs/rules/require-license.md) | Requires the `license` property to be present. | ✔️ ✅ 📦 | | | |
226
227
  | [require-name](docs/rules/require-name.md) | Requires the `name` property to be present. | ✔️ ✅ 📦 | | | |
@@ -332,25 +333,28 @@ Thanks! 🗂
332
333
  <td align="center" valign="top" width="14.28%"><a href="http://www.joshuakgoldberg.com/"><img src="https://avatars.githubusercontent.com/u/3335181?v=4?s=100" width="100px;" alt="Josh Goldberg ✨"/><br /><sub><b>Josh Goldberg ✨</b></sub></a><br /><a href="#tool-JoshuaKGoldberg" title="Tools">🔧</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3AJoshuaKGoldberg" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=JoshuaKGoldberg" title="Code">💻</a> <a href="#infra-JoshuaKGoldberg" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=JoshuaKGoldberg" title="Documentation">📖</a> <a href="#maintenance-JoshuaKGoldberg" title="Maintenance">🚧</a> <a href="#ideas-JoshuaKGoldberg" title="Ideas, Planning, & Feedback">🤔</a> <a href="#content-JoshuaKGoldberg" title="Content">🖋</a> <a href="#projectManagement-JoshuaKGoldberg" title="Project Management">📆</a></td>
333
334
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/kendallgassner"><img src="https://avatars.githubusercontent.com/u/15275462?v=4?s=100" width="100px;" alt="Kendall Gassner"/><br /><sub><b>Kendall Gassner</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=kendallgassner" title="Code">💻</a> <a href="#maintenance-kendallgassner" title="Maintenance">🚧</a></td>
334
335
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/KristjanESPERANTO"><img src="https://avatars.githubusercontent.com/u/35647502?v=4?s=100" width="100px;" alt="Kristjan ESPERANTO"/><br /><sub><b>Kristjan ESPERANTO</b></sub></a><br /><a href="#ideas-kristjanesperanto" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Akristjanesperanto" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=kristjanesperanto" title="Code">💻</a></td>
336
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/marcalexiei"><img src="https://avatars.githubusercontent.com/u/24919330?v=4?s=100" width="100px;" alt="Marco Pasqualetti"/><br /><sub><b>Marco Pasqualetti</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=marcalexiei" title="Code">💻</a></td>
335
337
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/lo1tuma"><img src="https://avatars.githubusercontent.com/u/169170?v=4?s=100" width="100px;" alt="Mathias Schreck"/><br /><sub><b>Mathias Schreck</b></sub></a><br /><a href="#ideas-lo1tuma" title="Ideas, Planning, & Feedback">🤔</a></td>
336
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/Cellule"><img src="https://avatars.githubusercontent.com/u/4157103?v=4?s=100" width="100px;" alt="Michael "Mike" Ferris"/><br /><sub><b>Michael "Mike" Ferris</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=cellule" title="Code">💻</a></td>
337
338
  </tr>
338
339
  <tr>
340
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Cellule"><img src="https://avatars.githubusercontent.com/u/4157103?v=4?s=100" width="100px;" alt="Michael "Mike" Ferris"/><br /><sub><b>Michael "Mike" Ferris</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=cellule" title="Code">💻</a></td>
339
341
  <td align="center" valign="top" width="14.28%"><a href="https://morrisoncole.co.uk"><img src="https://avatars.githubusercontent.com/u/963368?v=4?s=100" width="100px;" alt="Morrison Cole"/><br /><sub><b>Morrison Cole</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3AMorrisonCole" title="Bug reports">🐛</a></td>
340
342
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/nschonni"><img src="https://avatars.githubusercontent.com/u/1297909?v=4?s=100" width="100px;" alt="Nick Schonning"/><br /><sub><b>Nick Schonning</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=nschonni" title="Code">💻</a></td>
341
343
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/OlivierZal"><img src="https://avatars.githubusercontent.com/u/88216225?v=4?s=100" width="100px;" alt="Olivier Zalmanski"/><br /><sub><b>Olivier Zalmanski</b></sub></a><br /><a href="#maintenance-olivierzal" title="Maintenance">🚧</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=olivierzal" title="Documentation">📖</a></td>
342
344
  <td align="center" valign="top" width="14.28%"><a href="http://patrikcsak.com"><img src="https://avatars.githubusercontent.com/u/4766244?v=4?s=100" width="100px;" alt="Patrik Csak"/><br /><sub><b>Patrik Csak</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Apatrik-csak" title="Bug reports">🐛</a></td>
343
345
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/rakleed"><img src="https://avatars.githubusercontent.com/u/19418601?v=4?s=100" width="100px;" alt="Pavel"/><br /><sub><b>Pavel</b></sub></a><br /><a href="#ideas-rakleed" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tool-rakleed" title="Tools">🔧</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=rakleed" title="Documentation">📖</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=rakleed" title="Code">💻</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Arakleed" title="Bug reports">🐛</a></td>
344
346
  <td align="center" valign="top" width="14.28%"><a href="https://sasial.dev"><img src="https://avatars.githubusercontent.com/u/44125644?v=4?s=100" width="100px;" alt="Sasial"/><br /><sub><b>Sasial</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=sasial-dev" title="Code">💻</a></td>
345
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/sirugh"><img src="https://avatars.githubusercontent.com/u/1278869?v=4?s=100" width="100px;" alt="Stephen"/><br /><sub><b>Stephen</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=sirugh" title="Code">💻</a></td>
346
347
  </tr>
347
348
  <tr>
349
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/sirugh"><img src="https://avatars.githubusercontent.com/u/1278869?v=4?s=100" width="100px;" alt="Stephen"/><br /><sub><b>Stephen</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=sirugh" title="Code">💻</a></td>
348
350
  <td align="center" valign="top" width="14.28%"><a href="https://hyoban.cc"><img src="https://avatars.githubusercontent.com/u/38493346?v=4?s=100" width="100px;" alt="Stephen Zhou"/><br /><sub><b>Stephen Zhou</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Ahyoban" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=hyoban" title="Code">💻</a> <a href="#ideas-hyoban" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=hyoban" title="Documentation">📖</a></td>
349
351
  <td align="center" valign="top" width="14.28%"><a href="https://ota-meshi.github.io/"><img src="https://avatars.githubusercontent.com/u/16508807?v=4?s=100" width="100px;" alt="Yosuke Ota"/><br /><sub><b>Yosuke Ota</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Aota-meshi" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=ota-meshi" title="Code">💻</a></td>
350
352
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/b3rnhard"><img src="https://avatars.githubusercontent.com/u/10774404?v=4?s=100" width="100px;" alt="b3rnhard"/><br /><sub><b>b3rnhard</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Ab3rnhard" title="Bug reports">🐛</a></td>
351
353
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/chouchouji"><img src="https://avatars.githubusercontent.com/u/70570907?v=4?s=100" width="100px;" alt="chouchouji"/><br /><sub><b>chouchouji</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=chouchouji" title="Code">💻</a></td>
352
354
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/michaelfaith"><img src="https://avatars.githubusercontent.com/u/8071845?v=4?s=100" width="100px;" alt="michael faith"/><br /><sub><b>michael faith</b></sub></a><br /><a href="#infra-michaelfaith" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=michaelfaith" title="Code">💻</a> <a href="#maintenance-michaelfaith" title="Maintenance">🚧</a> <a href="#ideas-michaelfaith" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Amichaelfaith" title="Bug reports">🐛</a> <a href="#tool-michaelfaith" title="Tools">🔧</a> <a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=michaelfaith" title="Documentation">📖</a></td>
353
355
  <td align="center" valign="top" width="14.28%"><a href="https://roottool.vercel.app"><img src="https://avatars.githubusercontent.com/u/11808736?v=4?s=100" width="100px;" alt="roottool"/><br /><sub><b>roottool</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/commits?author=roottool" title="Code">💻</a></td>
356
+ </tr>
357
+ <tr>
354
358
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/sunnytsang1998"><img src="https://avatars.githubusercontent.com/u/207208443?v=4?s=100" width="100px;" alt="sunnytsang1998"/><br /><sub><b>sunnytsang1998</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues?q=author%3Asunnytsang1998" title="Bug reports">🐛</a></td>
355
359
  </tr>
356
360
  </tbody>
@@ -70,12 +70,11 @@ const rule = createRule({
70
70
  meta: {
71
71
  defaultOptions: [{ order: "sort-package-json" }],
72
72
  docs: {
73
- category: "Best Practices",
74
- description: "Package properties must be declared in standard order",
75
- recommended: true
73
+ category: "Stylistic",
74
+ description: "Package properties should be declared in standard order"
76
75
  },
77
76
  fixable: "code",
78
- messages: { incorrectOrder: "Package top-level property \"{{property}}\" is not ordered in the npm standard way. Run the ESLint auto-fixer to correct." },
77
+ messages: { incorrectOrder: "Top-level property \"{{property}}\" is not ordered in the standard way." },
79
78
  schema: [{
80
79
  additionalProperties: false,
81
80
  properties: { order: {
@@ -11,6 +11,7 @@ const properties = [
11
11
  ["engines"],
12
12
  ["exports", { category: "Publishable" }],
13
13
  ["files", { category: "Publishable" }],
14
+ ["homepage"],
14
15
  ["keywords"],
15
16
  ["license", {
16
17
  ignorePrivateDefault: true,
@@ -5,7 +5,7 @@ interface CreateRequirePropertyRuleOptions {
5
5
  /**
6
6
  * The category for this rule.
7
7
  */
8
- category?: string;
8
+ category?: "Publishable" | (string & {});
9
9
  /**
10
10
  * The default value of `ignorePrivate` rule option.
11
11
  */
package/package.json CHANGED
@@ -1,118 +1,114 @@
1
1
  {
2
- "name": "eslint-plugin-package-json",
3
- "version": "0.86.0",
4
- "description": "Rules for consistent, readable, and valid package.json files. 🗂️",
5
- "homepage": "https://github.com/JoshuaKGoldberg/eslint-plugin-package-json#readme",
6
- "bugs": {
7
- "url": "https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/JoshuaKGoldberg/eslint-plugin-package-json.git"
12
- },
13
- "license": "MIT",
14
- "contributors": [
15
- {
16
- "name": "James Zetlen",
17
- "email": "zetlen@gmail.com"
18
- },
19
- {
20
- "name": "JoshuaKGoldberg",
21
- "email": "npm@joshuakgoldberg.com",
22
- "url": "https://joshuakgoldberg.com"
23
- },
24
- {
25
- "name": "michael faith",
26
- "email": "michaelfaith@users.noreply.github.com",
27
- "url": "https://michael.faith"
28
- }
29
- ],
30
- "sideEffects": false,
31
- "type": "module",
32
- "exports": {
33
- ".": {
34
- "types": "./lib/index.d.mts",
35
- "default": "./lib/index.mjs"
36
- }
37
- },
38
- "main": "lib/index.mjs",
39
- "files": [
40
- "CHANGELOG.md",
41
- "lib/"
42
- ],
43
- "scripts": {
44
- "build": "tsdown",
45
- "build:docs": "pnpm build --no-dts && eslint-doc-generator",
46
- "format": "prettier .",
47
- "lint": "eslint . --max-warnings 0",
48
- "lint:docs": "eslint-doc-generator --check",
49
- "lint:knip": "knip",
50
- "prepare": "husky",
51
- "test": "vitest",
52
- "typecheck": "tsc"
53
- },
54
- "lint-staged": {
55
- "*": "prettier --ignore-unknown --write"
56
- },
57
- "dependencies": {
58
- "@altano/repository-tools": "^2.0.1",
59
- "change-case": "^5.4.4",
60
- "detect-indent": "^7.0.2",
61
- "detect-newline": "^4.0.1",
62
- "eslint-fix-utils": "~0.4.0",
63
- "package-json-validator": "~0.59.0",
64
- "semver": "^7.7.3",
65
- "sort-object-keys": "^2.0.0",
66
- "sort-package-json": "^3.4.0",
67
- "validate-npm-package-name": "^7.0.0"
68
- },
69
- "devDependencies": {
70
- "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
71
- "@eslint/js": "9.39.1",
72
- "@eslint/markdown": "7.5.1",
73
- "@release-it/conventional-changelog": "10.0.2",
74
- "@types/estree": "1.0.8",
75
- "@types/node": "24.10.1",
76
- "@types/semver": "7.7.1",
77
- "@types/validate-npm-package-name": "4.0.2",
78
- "@vitest/coverage-v8": "4.0.13",
79
- "@vitest/eslint-plugin": "1.6.1",
80
- "console-fail-test": "0.6.0",
81
- "eslint": "9.39.1",
82
- "eslint-doc-generator": "2.4.0",
83
- "eslint-plugin-eslint-plugin": "7.2.0",
84
- "eslint-plugin-jsdoc": "61.5.0",
85
- "eslint-plugin-jsonc": "2.21.0",
86
- "eslint-plugin-markdown-links": "0.7.1",
87
- "eslint-plugin-n": "17.23.1",
88
- "eslint-plugin-node-dependencies": "1.3.0",
89
- "eslint-plugin-perfectionist": "5.1.0",
90
- "eslint-plugin-regexp": "2.10.0",
91
- "eslint-plugin-unicorn": "62.0.0",
92
- "eslint-plugin-yml": "1.19.0",
93
- "husky": "9.1.7",
94
- "jiti": "2.6.1",
95
- "json-schema-to-ts": "3.1.1",
96
- "jsonc-eslint-parser": "2.4.1",
97
- "knip": "5.78.0",
98
- "lint-staged": "16.2.7",
99
- "prettier": "3.7.0",
100
- "prettier-plugin-curly": "0.4.0",
101
- "prettier-plugin-packagejson": "2.5.19",
102
- "prettier-plugin-sentences-per-line": "0.2.0",
103
- "prettier-plugin-sh": "0.18.0",
104
- "release-it": "19.2.0",
105
- "tsdown": "0.18.0",
106
- "typescript": "5.9.3",
107
- "typescript-eslint": "8.50.0",
108
- "vitest": "4.0.13"
109
- },
110
- "peerDependencies": {
111
- "eslint": ">=8.0.0",
112
- "jsonc-eslint-parser": "^2.0.0"
113
- },
114
- "packageManager": "pnpm@10.26.0",
115
- "engines": {
116
- "node": "^20.19.0 || >=22.12.0"
117
- }
118
- }
2
+ "name": "eslint-plugin-package-json",
3
+ "version": "0.87.1",
4
+ "description": "Rules for consistent, readable, and valid package.json files. 🗂️",
5
+ "homepage": "https://github.com/JoshuaKGoldberg/eslint-plugin-package-json#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/JoshuaKGoldberg/eslint-plugin-package-json.git"
12
+ },
13
+ "license": "MIT",
14
+ "contributors": [
15
+ {
16
+ "name": "James Zetlen",
17
+ "email": "zetlen@gmail.com"
18
+ },
19
+ {
20
+ "name": "JoshuaKGoldberg",
21
+ "email": "npm@joshuakgoldberg.com",
22
+ "url": "https://joshuakgoldberg.com"
23
+ },
24
+ {
25
+ "name": "michael faith",
26
+ "email": "michaelfaith@users.noreply.github.com",
27
+ "url": "https://michael.faith"
28
+ }
29
+ ],
30
+ "sideEffects": false,
31
+ "type": "module",
32
+ "exports": {
33
+ ".": {
34
+ "types": "./lib/index.d.mts",
35
+ "default": "./lib/index.mjs"
36
+ }
37
+ },
38
+ "main": "lib/index.mjs",
39
+ "files": [
40
+ "CHANGELOG.md",
41
+ "lib/"
42
+ ],
43
+ "lint-staged": {
44
+ "*": "prettier --ignore-unknown --write"
45
+ },
46
+ "dependencies": {
47
+ "@altano/repository-tools": "^2.0.1",
48
+ "change-case": "^5.4.4",
49
+ "detect-indent": "^7.0.2",
50
+ "detect-newline": "^4.0.1",
51
+ "eslint-fix-utils": "~0.4.0",
52
+ "package-json-validator": "~0.59.0",
53
+ "semver": "^7.7.3",
54
+ "sort-object-keys": "^2.0.0",
55
+ "sort-package-json": "^3.4.0",
56
+ "validate-npm-package-name": "^7.0.0"
57
+ },
58
+ "devDependencies": {
59
+ "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
60
+ "@eslint/js": "9.39.1",
61
+ "@eslint/markdown": "7.5.1",
62
+ "@types/estree": "1.0.8",
63
+ "@types/node": "24.10.1",
64
+ "@types/semver": "7.7.1",
65
+ "@types/validate-npm-package-name": "4.0.2",
66
+ "@vitest/coverage-v8": "4.0.13",
67
+ "@vitest/eslint-plugin": "1.6.1",
68
+ "console-fail-test": "0.6.0",
69
+ "eslint": "9.39.1",
70
+ "eslint-doc-generator": "2.4.0",
71
+ "eslint-plugin-eslint-plugin": "7.2.0",
72
+ "eslint-plugin-jsdoc": "61.5.0",
73
+ "eslint-plugin-jsonc": "2.21.0",
74
+ "eslint-plugin-markdown-links": "0.7.1",
75
+ "eslint-plugin-n": "17.23.1",
76
+ "eslint-plugin-node-dependencies": "1.3.0",
77
+ "eslint-plugin-perfectionist": "5.1.0",
78
+ "eslint-plugin-regexp": "2.10.0",
79
+ "eslint-plugin-unicorn": "62.0.0",
80
+ "eslint-plugin-yml": "1.19.0",
81
+ "husky": "9.1.7",
82
+ "jiti": "2.6.1",
83
+ "json-schema-to-ts": "3.1.1",
84
+ "jsonc-eslint-parser": "2.4.1",
85
+ "knip": "5.78.0",
86
+ "lint-staged": "16.2.7",
87
+ "prettier": "3.7.0",
88
+ "prettier-plugin-curly": "0.4.0",
89
+ "prettier-plugin-packagejson": "2.5.19",
90
+ "prettier-plugin-sentences-per-line": "0.2.0",
91
+ "prettier-plugin-sh": "0.18.0",
92
+ "tsdown": "0.18.0",
93
+ "typescript": "5.9.3",
94
+ "typescript-eslint": "8.50.0",
95
+ "vitest": "4.0.13"
96
+ },
97
+ "peerDependencies": {
98
+ "eslint": ">=8.0.0",
99
+ "jsonc-eslint-parser": "^2.0.0"
100
+ },
101
+ "engines": {
102
+ "node": "^20.19.0 || >=22.12.0"
103
+ },
104
+ "scripts": {
105
+ "build": "tsdown",
106
+ "build:docs": "pnpm build --no-dts && eslint-doc-generator",
107
+ "format": "prettier .",
108
+ "lint": "eslint . --max-warnings 0",
109
+ "lint:docs": "eslint-doc-generator --check",
110
+ "lint:knip": "knip",
111
+ "test": "vitest",
112
+ "typecheck": "tsc"
113
+ }
114
+ }