this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

sort-package-json → eslint-plugin-package-json

+177 -5
+7 -1
eslint.config.js
··· 1 + import {defineConfig} from 'eslint/config'; 2 + import packageJson from 'eslint-plugin-package-json'; 1 3 import xo from 'xo'; 2 4 3 - export default xo.xoToEslintConfig([{prettier: 'compat'}]); 5 + export default defineConfig([ 6 + packageJson.configs.recommended, 7 + packageJson.configs.stylistic, 8 + ...xo.xoToEslintConfig([{prettier: 'compat'}]), 9 + ]);
+163 -1
package-lock.json
··· 21 21 }, 22 22 "devDependencies": { 23 23 "eslint": "^10.0.3", 24 + "eslint-plugin-package-json": "^0.91.0", 24 25 "knip": "^5.86.0", 25 26 "prettier": "^3.5.3", 26 - "sort-package-json": "^3.2.1", 27 + "prettier-plugin-packagejson": "^3.0.2", 27 28 "xo": "^2.0.2" 28 29 }, 29 30 "engines": { 30 31 "node": ">=20 <=24" 31 32 } 33 + }, 34 + "node_modules/@altano/repository-tools": { 35 + "version": "2.0.1", 36 + "resolved": "https://registry.npmjs.org/@altano/repository-tools/-/repository-tools-2.0.1.tgz", 37 + "integrity": "sha512-YE/52CkFtb+YtHPgbWPai7oo5N9AKnMuP5LM+i2AG7G1H2jdYBCO1iDnkDE3dZ3C1MIgckaF+d5PNRulgt0bdw==", 38 + "dev": true, 39 + "license": "ISC" 32 40 }, 33 41 "node_modules/@babel/code-frame": { 34 42 "version": "7.29.0", ··· 3084 3092 "typescript": ">=5.9.0" 3085 3093 } 3086 3094 }, 3095 + "node_modules/eslint-fix-utils": { 3096 + "version": "0.4.2", 3097 + "resolved": "https://registry.npmjs.org/eslint-fix-utils/-/eslint-fix-utils-0.4.2.tgz", 3098 + "integrity": "sha512-n7ZTcwwkP5scedlhvWMcqxED+O1NzXcj5Rxn/0kJQMP88k02vRcBfQ1qsk/JHb6Aw8bajFoetFCCBiNIcNCsvA==", 3099 + "dev": true, 3100 + "license": "MIT", 3101 + "engines": { 3102 + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" 3103 + }, 3104 + "peerDependencies": { 3105 + "@types/estree": ">=1", 3106 + "eslint": ">=8" 3107 + }, 3108 + "peerDependenciesMeta": { 3109 + "@types/estree": { 3110 + "optional": true 3111 + } 3112 + } 3113 + }, 3087 3114 "node_modules/eslint-formatter-pretty": { 3088 3115 "version": "7.0.0", 3089 3116 "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-7.0.0.tgz", ··· 3262 3289 }, 3263 3290 "funding": { 3264 3291 "url": "https://github.com/sponsors/sindresorhus" 3292 + } 3293 + }, 3294 + "node_modules/eslint-plugin-package-json": { 3295 + "version": "0.91.0", 3296 + "resolved": "https://registry.npmjs.org/eslint-plugin-package-json/-/eslint-plugin-package-json-0.91.0.tgz", 3297 + "integrity": "sha512-47wSUgIo3+7WySy1TY0uopUB5JrR6hBu41cBfFYd3uZZzVsUePFS+l1EuHNG0YdLw1n6boQ8OlEUgYOtsrNYTQ==", 3298 + "dev": true, 3299 + "license": "MIT", 3300 + "dependencies": { 3301 + "@altano/repository-tools": "^2.0.1", 3302 + "change-case": "^5.4.4", 3303 + "detect-indent": "^7.0.2", 3304 + "detect-newline": "^4.0.1", 3305 + "eslint-fix-utils": "~0.4.1", 3306 + "package-json-validator": "^1.3.1", 3307 + "semver": "^7.7.3", 3308 + "sort-object-keys": "^2.0.0", 3309 + "sort-package-json": "^3.4.0", 3310 + "validate-npm-package-name": "^7.0.0" 3311 + }, 3312 + "engines": { 3313 + "node": "^20.19.0 || >=22.12.0" 3314 + }, 3315 + "peerDependencies": { 3316 + "eslint": ">=8.0.0", 3317 + "jsonc-eslint-parser": ">=2.0.0" 3265 3318 } 3266 3319 }, 3267 3320 "node_modules/eslint-plugin-prettier": { ··· 4921 4974 "node": ">=6" 4922 4975 } 4923 4976 }, 4977 + "node_modules/jsonc-eslint-parser": { 4978 + "version": "3.1.0", 4979 + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-3.1.0.tgz", 4980 + "integrity": "sha512-75EA7EWZExL/j+MDKQrRbdzcRI2HOkRlmUw8fZJc1ioqFEOvBsq7Rt+A6yCxOt9w/TYNpkt52gC6nm/g5tFIng==", 4981 + "dev": true, 4982 + "license": "MIT", 4983 + "peer": true, 4984 + "dependencies": { 4985 + "acorn": "^8.5.0", 4986 + "eslint-visitor-keys": "^5.0.0", 4987 + "semver": "^7.3.5" 4988 + }, 4989 + "engines": { 4990 + "node": "^20.19.0 || ^22.13.0 || >=24" 4991 + }, 4992 + "funding": { 4993 + "url": "https://github.com/sponsors/ota-meshi" 4994 + } 4995 + }, 4924 4996 "node_modules/jsx-ast-utils": { 4925 4997 "version": "3.3.5", 4926 4998 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", ··· 5634 5706 "url": "https://github.com/sponsors/sindresorhus" 5635 5707 } 5636 5708 }, 5709 + "node_modules/package-json-validator": { 5710 + "version": "1.3.1", 5711 + "resolved": "https://registry.npmjs.org/package-json-validator/-/package-json-validator-1.3.1.tgz", 5712 + "integrity": "sha512-RfUMqyBoLa1qcPsKNAksnVDRuzDvLi//RqfMbf52RNMKsm+cWR/3Cfe6hvrTS/ATtEwvtm/57dPggXsau6++uA==", 5713 + "dev": true, 5714 + "license": "MIT", 5715 + "dependencies": { 5716 + "semver": "^7.7.2", 5717 + "validate-npm-package-license": "^3.0.4", 5718 + "validate-npm-package-name": "^7.0.0" 5719 + }, 5720 + "engines": { 5721 + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" 5722 + } 5723 + }, 5637 5724 "node_modules/parent-module": { 5638 5725 "version": "1.0.1", 5639 5726 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", ··· 5820 5907 }, 5821 5908 "engines": { 5822 5909 "node": ">=6.0.0" 5910 + } 5911 + }, 5912 + "node_modules/prettier-plugin-packagejson": { 5913 + "version": "3.0.2", 5914 + "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-3.0.2.tgz", 5915 + "integrity": "sha512-kmoj3hEynXwoHDo8ZhmWAIjRBoQWCDUVackiWfSDWdgD0rS3LGB61T9zoVbume/cotYdCoadUh4sqViAmXvpBQ==", 5916 + "dev": true, 5917 + "license": "MIT", 5918 + "dependencies": { 5919 + "sort-package-json": "^3.6.0" 5920 + }, 5921 + "peerDependencies": { 5922 + "prettier": "^3" 5923 + }, 5924 + "peerDependenciesMeta": { 5925 + "prettier": { 5926 + "optional": true 5927 + } 5823 5928 } 5824 5929 }, 5825 5930 "node_modules/pretty-ms": { ··· 6360 6465 "node": ">=0.10.0" 6361 6466 } 6362 6467 }, 6468 + "node_modules/spdx-correct": { 6469 + "version": "3.2.0", 6470 + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", 6471 + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", 6472 + "dev": true, 6473 + "license": "Apache-2.0", 6474 + "dependencies": { 6475 + "spdx-expression-parse": "^3.0.0", 6476 + "spdx-license-ids": "^3.0.0" 6477 + } 6478 + }, 6479 + "node_modules/spdx-exceptions": { 6480 + "version": "2.5.0", 6481 + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", 6482 + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", 6483 + "dev": true, 6484 + "license": "CC-BY-3.0" 6485 + }, 6486 + "node_modules/spdx-expression-parse": { 6487 + "version": "3.0.1", 6488 + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 6489 + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 6490 + "dev": true, 6491 + "license": "MIT", 6492 + "dependencies": { 6493 + "spdx-exceptions": "^2.1.0", 6494 + "spdx-license-ids": "^3.0.0" 6495 + } 6496 + }, 6497 + "node_modules/spdx-license-ids": { 6498 + "version": "3.0.23", 6499 + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", 6500 + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", 6501 + "dev": true, 6502 + "license": "CC0-1.0" 6503 + }, 6363 6504 "node_modules/stable-hash-x": { 6364 6505 "version": "0.2.0", 6365 6506 "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", ··· 6998 7139 "license": "BSD-2-Clause", 6999 7140 "dependencies": { 7000 7141 "punycode": "^2.1.0" 7142 + } 7143 + }, 7144 + "node_modules/validate-npm-package-license": { 7145 + "version": "3.0.4", 7146 + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 7147 + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 7148 + "dev": true, 7149 + "license": "Apache-2.0", 7150 + "dependencies": { 7151 + "spdx-correct": "^3.0.0", 7152 + "spdx-expression-parse": "^3.0.0" 7153 + } 7154 + }, 7155 + "node_modules/validate-npm-package-name": { 7156 + "version": "7.0.2", 7157 + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", 7158 + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", 7159 + "dev": true, 7160 + "license": "ISC", 7161 + "engines": { 7162 + "node": "^20.17.0 || >=22.9.0" 7001 7163 } 7002 7164 }, 7003 7165 "node_modules/walk-up-path": {
+4 -3
package.json
··· 15 15 ], 16 16 "scripts": { 17 17 "eslint": "eslint --cache", 18 - "format:check": "npm run prettier -- --check && sort-package-json --check", 19 - "format:fix": "npm run prettier -- --write && sort-package-json", 18 + "format:check": "npm run prettier -- --check", 19 + "format:fix": "npm run prettier -- --write", 20 20 "lint:check": "npm run eslint", 21 21 "lint:fix": "npm run eslint -- --fix", 22 22 "prettier": "prettier --cache .", ··· 34 34 }, 35 35 "devDependencies": { 36 36 "eslint": "^10.0.3", 37 + "eslint-plugin-package-json": "^0.91.0", 37 38 "knip": "^5.86.0", 38 39 "prettier": "^3.5.3", 39 - "sort-package-json": "^3.2.1", 40 + "prettier-plugin-packagejson": "^3.0.2", 40 41 "xo": "^2.0.2" 41 42 }, 42 43 "engines": {
+3
prettier.config.js
··· 6 6 bracketSpacing: false, 7 7 singleQuote: true, 8 8 useTabs: true, 9 + 10 + // https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/tree/v0.91.0#usage-alongside-prettier 11 + plugins: ['prettier-plugin-packagejson'], 9 12 }; 10 13 11 14 export default config;