{"_id":"@apisyouwonthate/spectral-jsonapi","_rev":"6-c750744e24d12d537f99139915f691e7","name":"@apisyouwonthate/spectral-jsonapi","dist-tags":{"latest":"2.2.0"},"versions":{"2.0.0":{"name":"@apisyouwonthate/spectral-jsonapi","version":"2.0.0","keywords":["api","linting","spectral","stoplight","ruleset","jsonapi"],"author":{"url":"https://apisyouwonthate.com","name":"Phil Sturgeon"},"license":"MIT","_id":"@apisyouwonthate/spectral-jsonapi@2.0.0","maintainers":[{"name":"philsturgeon","email":"me@philsturgeon.uk"}],"contributors":[{"url":"https://www.linkedin.com/in/jeffmarquez","name":"Jeff Marquez"},{"url":"https://linkedin.com/in/ali-fazal-424904140","name":"Ali Fazal"},{"name":"Ananya Poddar"},{"name":"Anthony MacAllister"}],"homepage":"https://github.com/apisyouwonthate/spectral-jsonapi#readme","bugs":{"url":"https://github.com/apisyouwonthate/spectral-jsonapi/issues"},"dist":{"shasum":"56771ab6c056cfe4064f6f6b0a6425dadbdf8696","tarball":"https://registry.npmjs.org/@apisyouwonthate/spectral-jsonapi/-/spectral-jsonapi-2.0.0.tgz","fileCount":72,"integrity":"sha512-hVHIwTBLmMv87SERpjxP8HVfFY7fWWGNitFw9/kUYzjEt98FUBIJZWuEvpGDddzlhwaRVQ8i4w9SQJPHy30xCQ==","signatures":[{"sig":"MEUCIBH0bnGhI1NS3jfdF34IOUlUrF1iKqMxB7rYt6P8xFWpAiEAmvSZs1bewdKdEisV/DkPueBxOFu/f0/MztFtzAjfG/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":991305},"main":"dist/ruleset.js","tsup":{"dts":true,"clean":true,"entry":["src/ruleset.ts"],"footer":{"js":"module.exports = module.exports.default;"},"format":["cjs","esm"],"sourcemap":true,"noExternal":["@stoplight/types"]},"type":"commonjs","types":"./dist/ruleset.d.ts","module":"dist/ruleset.mjs","exports":{".":{"types":"./dist/ruleset.d.ts","import":"./dist/ruleset.mjs","require":"./dist/ruleset.js"}},"gitHead":"ae992306c1c5b0f526e1c6635991b25c7be0f163","scripts":{"test":"jest","build":"tsup && npm run build:yaml","build:yaml":"node scripts/build-spectral-yaml.cjs","type-check":"tsc --noEmit --noErrorTruncation --pretty false --incremental false","lint:examples":"spectral lint examples/valid/* -r ./dist/ruleset.js"},"_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"repository":{"url":"git+https://github.com/apisyouwonthate/spectral-jsonapi.git","type":"git"},"_npmVersion":"11.8.0","description":"A Spectral ruleset for JSON:API, built as TypeScript.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@stoplight/spectral-formats":"^1.8.2","@stoplight/spectral-functions":"^1.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.14","tsup":"^8.5","ts-jest":"^29.4.0","typescript":"^5.9","@types/jest":"^29.5.14","@stoplight/types":"^14.1.1","@sindresorhus/tsconfig":"^5.0.0","@stoplight/spectral-cli":"^6.11.0","@stoplight/spectral-core":"^1.21.0","@stoplight/spectral-ref-resolver":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/spectral-jsonapi_2.0.0_1775048599019_0.5750630898767741","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@apisyouwonthate/spectral-jsonapi","version":"1.0.0","keywords":["api","linting","spectral","stoplight","ruleset","jsonapi"],"author":{"url":"https://apisyouwonthate.com","name":"Phil Sturgeon"},"license":"MIT","_id":"@apisyouwonthate/spectral-jsonapi@1.0.0","maintainers":[{"name":"philsturgeon","email":"me@philsturgeon.uk"}],"contributors":[{"url":"https://www.linkedin.com/in/jeffmarquez","name":"Jeff Marquez"},{"url":"https://linkedin.com/in/ali-fazal-424904140","name":"Ali Fazal"},{"name":"Ananya Poddar"},{"name":"Anthony MacAllister"}],"homepage":"https://github.com/apisyouwonthate/spectral-jsonapi#readme","bugs":{"url":"https://github.com/apisyouwonthate/spectral-jsonapi/issues"},"dist":{"shasum":"33b53f622ba50b80d8ce90f07020f5d75f2a6def","tarball":"https://registry.npmjs.org/@apisyouwonthate/spectral-jsonapi/-/spectral-jsonapi-1.0.0.tgz","fileCount":74,"integrity":"sha512-WTOR+b9hhKHVyNmtUEI/rN4Ot0xZQiobgjBsTm3nwhWHmGR2NMQ9dEltFSwnFJEmbElfH/XHDQVoar5Z4EGqrw==","signatures":[{"sig":"MEYCIQDAssbC2pjF8Vb7V02iHeCsSe5mHucyabFv4gAKMItQ3AIhAJel+efHZyKFVdn76wkrMYr07R1UFQ8kVAoKeIFtOoz7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apisyouwonthate%2fspectral-jsonapi@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":997254},"main":"dist/ruleset.js","tsup":{"dts":true,"clean":true,"entry":["src/ruleset.ts"],"footer":{"js":"module.exports = module.exports.default;"},"format":["cjs","esm"],"sourcemap":true,"noExternal":["@stoplight/types"]},"type":"commonjs","types":"./dist/ruleset.d.ts","module":"dist/ruleset.mjs","exports":{".":{"types":"./dist/ruleset.d.ts","import":"./dist/ruleset.mjs","require":"./dist/ruleset.js"}},"gitHead":"5b46dccb602d9521e8725f1bd8782c3a951a97c6","scripts":{"test":"jest","build":"tsup && npm run build:yaml","release":"semantic-release","build:yaml":"node scripts/build-spectral-yaml.cjs","type-check":"tsc --noEmit --noErrorTruncation --pretty false --incremental false","lint:examples":"spectral lint examples/valid/* -r ./dist/ruleset.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2ad9c74-278d-47db-9074-aa7befa30634"}},"repository":{"url":"git+https://github.com/apisyouwonthate/spectral-jsonapi.git","type":"git"},"_npmVersion":"11.12.1","description":"A Spectral ruleset for JSON:API, built as TypeScript.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@stoplight/spectral-formats":"^1.8.2","@stoplight/spectral-functions":"^1.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.14","tsup":"^8.5","yaml":"^2.8.3","ts-jest":"^29.4.0","typescript":"^5.9","@types/jest":"^29.5.14","@stoplight/types":"^14.1.1","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@sindresorhus/tsconfig":"^5.0.0","@stoplight/spectral-cli":"^6.11.0","@semantic-release/github":"^12.0.6","@stoplight/spectral-core":"^1.21.0","@semantic-release/changelog":"^6.0.3","@stoplight/spectral-ref-resolver":"^1.0.5","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0","conventional-changelog-conventionalcommits":"^9.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectral-jsonapi_1.0.0_1775585686457_0.08350090514587172","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@apisyouwonthate/spectral-jsonapi","version":"1.1.0","keywords":["api","linting","spectral","stoplight","ruleset","jsonapi"],"author":{"url":"https://apisyouwonthate.com","name":"Phil Sturgeon"},"license":"MIT","_id":"@apisyouwonthate/spectral-jsonapi@1.1.0","maintainers":[{"name":"philsturgeon","email":"me@philsturgeon.uk"}],"contributors":[{"url":"https://www.linkedin.com/in/jeffmarquez","name":"Jeff Marquez"},{"url":"https://linkedin.com/in/ali-fazal-424904140","name":"Ali Fazal"},{"name":"Ananya Poddar"},{"name":"Anthony MacAllister"}],"homepage":"https://github.com/apisyouwonthate/spectral-jsonapi#readme","bugs":{"url":"https://github.com/apisyouwonthate/spectral-jsonapi/issues"},"dist":{"shasum":"5e2329f524548a453b276bfd0c6ecaf73277aab6","tarball":"https://registry.npmjs.org/@apisyouwonthate/spectral-jsonapi/-/spectral-jsonapi-1.1.0.tgz","fileCount":74,"integrity":"sha512-T1OoGgrhpDr4850ruV7Iq0l1q09YrhzQgHxPI52aM11389eFqEsL4bgTo9hc2SBD5cuv++TpuSTo+Xm4FGWnuQ==","signatures":[{"sig":"MEUCIAdAM8o3mAGw7//7xdMr2GFYT8oUlwtNu/p+NvusUdNeAiEAgoCVnU/3belHViv4t0XaisgRSik1cnKxLgwV1+fzeNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apisyouwonthate%2fspectral-jsonapi@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":997578},"main":"dist/ruleset.js","tsup":{"dts":true,"clean":true,"entry":["src/ruleset.ts"],"footer":{"js":"module.exports = module.exports.default;"},"format":["cjs","esm"],"sourcemap":true,"noExternal":["@stoplight/types"]},"type":"commonjs","types":"./dist/ruleset.d.ts","module":"dist/ruleset.mjs","exports":{".":{"types":"./dist/ruleset.d.ts","import":"./dist/ruleset.mjs","require":"./dist/ruleset.js"}},"gitHead":"28a50d7765b1a43353ea8148952e66dd27fadaf0","scripts":{"test":"jest","build":"tsup && npm run build:yaml","release":"semantic-release","build:yaml":"node scripts/build-spectral-yaml.cjs","type-check":"tsc --noEmit --noErrorTruncation --pretty false --incremental false","lint:examples":"spectral lint examples/valid/* -r ./dist/ruleset.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2ad9c74-278d-47db-9074-aa7befa30634"}},"repository":{"url":"git+https://github.com/apisyouwonthate/spectral-jsonapi.git","type":"git"},"_npmVersion":"11.12.1","description":"A Spectral ruleset for JSON:API, built as TypeScript.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@stoplight/spectral-formats":"^1.8.2","@stoplight/spectral-functions":"^1.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.14","tsup":"^8.5","yaml":"^2.8.3","ts-jest":"^29.4.0","typescript":"^5.9","@types/jest":"^29.5.14","@stoplight/types":"^14.1.1","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@sindresorhus/tsconfig":"^5.0.0","@stoplight/spectral-cli":"^6.11.0","@semantic-release/github":"^12.0.6","@stoplight/spectral-core":"^1.21.0","@semantic-release/changelog":"^6.0.3","@stoplight/spectral-ref-resolver":"^1.0.5","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0","conventional-changelog-conventionalcommits":"^9.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectral-jsonapi_1.1.0_1775585947127_0.9827048669273166","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@apisyouwonthate/spectral-jsonapi","version":"2.1.0","keywords":["api","linting","spectral","stoplight","ruleset","jsonapi"],"author":{"url":"https://apisyouwonthate.com","name":"Phil Sturgeon"},"license":"MIT","_id":"@apisyouwonthate/spectral-jsonapi@2.1.0","maintainers":[{"name":"philsturgeon","email":"me@philsturgeon.uk"}],"contributors":[{"url":"https://www.linkedin.com/in/jeffmarquez","name":"Jeff Marquez"},{"url":"https://linkedin.com/in/ali-fazal-424904140","name":"Ali Fazal"},{"name":"Ananya Poddar"},{"name":"Anthony MacAllister"}],"homepage":"https://github.com/apisyouwonthate/spectral-jsonapi#readme","bugs":{"url":"https://github.com/apisyouwonthate/spectral-jsonapi/issues"},"dist":{"shasum":"25790a58275765f4d9fb3285574ebf71e6d69ad1","tarball":"https://registry.npmjs.org/@apisyouwonthate/spectral-jsonapi/-/spectral-jsonapi-2.1.0.tgz","fileCount":74,"integrity":"sha512-CZ+nPWQWgGhG+oSz/jDjk+MKpMEZPG4o3aSMiBI1Lo1+gnApGxyzekFvHtmtzItrZDfBI0HaQQ5EnLcNXzT6Zw==","signatures":[{"sig":"MEYCIQDVY3C0oG8mxwiCXwqefA5Y8E5dRfFVcs4+Pxsy7Ot8NwIhAI+B7Tajq8MHFBECRVnSpK1vcViDCuJ/DNgxZEeYPAGJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apisyouwonthate%2fspectral-jsonapi@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":997101},"main":"dist/ruleset.js","tsup":{"dts":true,"clean":true,"entry":["src/ruleset.ts"],"footer":{"js":"module.exports = module.exports.default;"},"format":["cjs","esm"],"sourcemap":true,"noExternal":["@stoplight/types"]},"type":"commonjs","types":"./dist/ruleset.d.ts","module":"dist/ruleset.mjs","exports":{".":{"types":"./dist/ruleset.d.ts","import":"./dist/ruleset.mjs","require":"./dist/ruleset.js"}},"gitHead":"9423d27fc000b11561356f1cb5eabdccd2d1a6e2","scripts":{"test":"jest","build":"tsup && npm run build:yaml","release":"semantic-release","build:yaml":"node scripts/build-spectral-yaml.cjs","type-check":"tsc --noEmit --noErrorTruncation --pretty false --incremental false","lint:examples":"spectral lint examples/valid/* -r ./dist/ruleset.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2ad9c74-278d-47db-9074-aa7befa30634"}},"repository":{"url":"git+https://github.com/apisyouwonthate/spectral-jsonapi.git","type":"git"},"_npmVersion":"11.12.1","description":"A Spectral ruleset for JSON:API, built as TypeScript.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@stoplight/spectral-formats":"^1.8.2","@stoplight/spectral-functions":"^1.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.14","tsup":"^8.5","yaml":"^2.8.3","ts-jest":"^29.4.0","typescript":"^5.9","@types/jest":"^29.5.14","@stoplight/types":"^14.1.1","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@sindresorhus/tsconfig":"^5.0.0","@stoplight/spectral-cli":"^6.11.0","@semantic-release/github":"^12.0.6","@stoplight/spectral-core":"^1.21.0","@semantic-release/changelog":"^6.0.3","@stoplight/spectral-ref-resolver":"^1.0.5","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0","conventional-changelog-conventionalcommits":"^9.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectral-jsonapi_2.1.0_1775586856871_0.9584926998144001","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@apisyouwonthate/spectral-jsonapi","version":"2.1.1","keywords":["api","linting","spectral","stoplight","ruleset","jsonapi"],"author":{"url":"https://apisyouwonthate.com","name":"Phil Sturgeon"},"license":"MIT","_id":"@apisyouwonthate/spectral-jsonapi@2.1.1","maintainers":[{"name":"philsturgeon","email":"me@philsturgeon.uk"}],"contributors":[{"url":"https://www.linkedin.com/in/jeffmarquez","name":"Jeff Marquez"},{"url":"https://linkedin.com/in/ali-fazal-424904140","name":"Ali Fazal"},{"name":"Ananya Poddar"},{"name":"Anthony MacAllister"}],"homepage":"https://github.com/apisyouwonthate/spectral-jsonapi#readme","bugs":{"url":"https://github.com/apisyouwonthate/spectral-jsonapi/issues"},"dist":{"shasum":"ff6b446fc413643c10bb00b2443b8bcaed2db8ff","tarball":"https://registry.npmjs.org/@apisyouwonthate/spectral-jsonapi/-/spectral-jsonapi-2.1.1.tgz","fileCount":74,"integrity":"sha512-nora1kmxlt8y4GoNVfmkgtAh0zJ4qMT/EiawQClseZfVrXUy9LyvQKX52Q1pXzzXaMoFnSgDN+8690xkw25IIA==","signatures":[{"sig":"MEYCIQCSL3WQFTNlb6GBIAsXd7O1GyofLdavMTntBMsKUYqqOgIhANii9J8ShgzpAPqybYX2xKqHa4Rlfv7/u7QLTbZVNHEz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apisyouwonthate%2fspectral-jsonapi@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1000553},"main":"dist/ruleset.js","tsup":{"dts":true,"clean":true,"entry":["src/ruleset.ts"],"footer":{"js":"module.exports = module.exports.default;"},"format":["cjs","esm"],"sourcemap":true,"noExternal":["@stoplight/types"]},"type":"commonjs","types":"./dist/ruleset.d.ts","module":"dist/ruleset.mjs","exports":{".":{"types":"./dist/ruleset.d.ts","import":"./dist/ruleset.mjs","require":"./dist/ruleset.js"}},"gitHead":"298423f754f0af5d3d5d25f029e5a663ea8aa7ef","scripts":{"test":"jest","build":"tsup && npm run build:yaml","release":"semantic-release","build:yaml":"node scripts/build-spectral-yaml.cjs","type-check":"tsc --noEmit --noErrorTruncation --pretty false --incremental false","lint:examples":"spectral lint examples/valid/* -r ./dist/ruleset.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2ad9c74-278d-47db-9074-aa7befa30634"}},"repository":{"url":"git+https://github.com/apisyouwonthate/spectral-jsonapi.git","type":"git"},"_npmVersion":"11.12.1","description":"A Spectral ruleset for JSON:API, built as TypeScript.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@stoplight/spectral-formats":"^1.8.2","@stoplight/spectral-functions":"^1.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.14","tsup":"^8.5","yaml":"^2.8.3","ts-jest":"^29.4.0","typescript":"^5.9","@types/jest":"^29.5.14","@stoplight/types":"^14.1.1","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@sindresorhus/tsconfig":"^5.0.0","@stoplight/spectral-cli":"^6.11.0","@semantic-release/github":"^12.0.6","@stoplight/spectral-core":"^1.21.0","@semantic-release/changelog":"^6.0.3","@stoplight/spectral-ref-resolver":"^1.0.5","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0","conventional-changelog-conventionalcommits":"^9.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectral-jsonapi_2.1.1_1776788848000_0.8507853303180546","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@apisyouwonthate/spectral-jsonapi","version":"2.2.0","description":"A Spectral ruleset for JSON:API, built as TypeScript.","main":"dist/ruleset.js","module":"dist/ruleset.mjs","type":"commonjs","exports":{".":{"types":"./dist/ruleset.d.ts","import":"./dist/ruleset.mjs","require":"./dist/ruleset.js"}},"scripts":{"build:yaml":"node scripts/build-spectral-yaml.cjs","build":"tsup && npm run build:yaml","lint:examples":"spectral lint examples/valid/* -r ./dist/ruleset.js","test":"jest","type-check":"tsc --noEmit --noErrorTruncation --pretty false --incremental false","release":"semantic-release"},"repository":{"type":"git","url":"git+https://github.com/apisyouwonthate/spectral-jsonapi.git"},"keywords":["api","linting","spectral","stoplight","ruleset","jsonapi"],"author":{"name":"Phil Sturgeon","url":"https://apisyouwonthate.com"},"contributors":[{"name":"Jeff Marquez","url":"https://www.linkedin.com/in/jeffmarquez"},{"name":"Ali Fazal","url":"https://linkedin.com/in/ali-fazal-424904140"},{"name":"Ananya Poddar"},{"name":"Anthony MacAllister"}],"license":"MIT","bugs":{"url":"https://github.com/apisyouwonthate/spectral-jsonapi/issues"},"homepage":"https://github.com/apisyouwonthate/spectral-jsonapi#readme","dependencies":{"@stoplight/spectral-formats":"^1.8.2","@stoplight/spectral-functions":"^1.10.1"},"devDependencies":{"@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/git":"^10.0.1","@semantic-release/github":"^12.0.6","@semantic-release/npm":"^13.1.5","@semantic-release/release-notes-generator":"^14.1.0","@sindresorhus/tsconfig":"^5.0.0","@stoplight/spectral-cli":"^6.11.0","@stoplight/spectral-core":"^1.21.0","@stoplight/spectral-ref-resolver":"^1.0.5","@stoplight/types":"^14.1.1","@types/jest":"^29.5.14","conventional-changelog-conventionalcommits":"^9.3.1","jest":"^29.5.14","semantic-release":"^25.0.3","ts-jest":"^29.4.0","tsup":"^8.5","typescript":"^5.9","yaml":"^2.8.3"},"tsup":{"entry":["src/ruleset.ts"],"clean":true,"dts":true,"format":["cjs","esm"],"sourcemap":true,"noExternal":["@stoplight/types"],"footer":{"js":"module.exports = module.exports.default;"}},"gitHead":"a71cb4cc58fc1ccb346c64b0736484443c8160be","types":"./dist/ruleset.d.ts","_id":"@apisyouwonthate/spectral-jsonapi@2.2.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-1yf01yhdOqh+BzDlSwTODeMpufjXTUDR1kIsEkc8HaJ1Px+dBc3fWqqrYJ8r1cuenGZ0G7lyxzEl9SR5oac3Hw==","shasum":"106452def06c37b17e4ed5f86ccd70d1f0d458a5","tarball":"https://registry.npmjs.org/@apisyouwonthate/spectral-jsonapi/-/spectral-jsonapi-2.2.0.tgz","fileCount":74,"unpackedSize":1002859,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apisyouwonthate%2fspectral-jsonapi@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH6+Ur57/ho36bPH5t5PpmTLCgI9Wap8WRuTxaDTtC5wAiBaYvB4QjYXFYuH3CWAJjxJIuIu1KuajZmS0F35nhIOog=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2ad9c74-278d-47db-9074-aa7befa30634"}},"directories":{},"maintainers":[{"name":"philsturgeon","email":"me@philsturgeon.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spectral-jsonapi_2.2.0_1776852999762_0.8393022292619308"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-01T13:03:18.886Z","modified":"2026-04-22T10:16:40.196Z","2.0.0":"2026-04-01T13:03:19.154Z","1.0.0":"2026-04-07T18:14:46.616Z","1.1.0":"2026-04-07T18:19:07.282Z","2.1.0":"2026-04-07T18:34:17.021Z","2.1.1":"2026-04-21T16:27:28.212Z","2.2.0":"2026-04-22T10:16:39.901Z"},"bugs":{"url":"https://github.com/apisyouwonthate/spectral-jsonapi/issues"},"author":{"name":"Phil Sturgeon","url":"https://apisyouwonthate.com"},"license":"MIT","homepage":"https://github.com/apisyouwonthate/spectral-jsonapi#readme","keywords":["api","linting","spectral","stoplight","ruleset","jsonapi"],"repository":{"type":"git","url":"git+https://github.com/apisyouwonthate/spectral-jsonapi.git"},"description":"A Spectral ruleset for JSON:API, built as TypeScript.","contributors":[{"name":"Jeff Marquez","url":"https://www.linkedin.com/in/jeffmarquez"},{"name":"Ali Fazal","url":"https://linkedin.com/in/ali-fazal-424904140"},{"name":"Ananya Poddar"},{"name":"Anthony MacAllister"}],"maintainers":[{"name":"philsturgeon","email":"me@philsturgeon.uk"}],"readme":"# Spectral JSON:API Ruleset\n\n![Node.js CI](https://github.com/apisyouwonthate/spectral-jsonapi/workflows/Node.js%20CI/badge.svg)\n\nAutomatically check if OpenAPI descriptions are compliant with JSON:API v1.1 using this Spectral ruleset so API teams can catch problems early in editors, CI, and pull requests.\n\n## ⚡️ Quick Start\n\n```bash\nnpm install --save-dev spectral-jsonapi @stoplight/spectral-cli\n```\n\nCreate a local ruleset file:\n\n```yaml\n# .spectral.yaml\nextends:\n  - spectral:oas\n  - \"@apisyouwonthate/spectral-jsonapi\"\n```\n\nLint your OpenAPI description:\n\n```bash\nspectral lint api/openapi.yaml\n```\n\n## 🔨 Usage\n\n### Use as npm package\n\nUse this when the project already installs dependencies with npm.\n\n```yaml\n# .spectral.yaml\nextends:\n  - spectral:oas\n  - \"@apisyouwonthate/spectral-jsonapi\"\n```\n\n### Use legacy YAML directly from GitHub\n\nUse this when you want to consume the generated YAML ruleset without installing the package:\n\n```yaml\nextends:\n  - \"https://raw.githubusercontent.com/apisyouwonthate/spectral-jsonapi/refs/heads/main/.spectral.yml\"\n```\n\nOnce you have the ruleset set up, you can run Spectral in the same directory as your `.spectral.yml` ruleset, and it will include the JSON:API rules in its check\n\n```bash\nspectral lint api/openapi.yaml\n```\n\nThis does not include `spectral:oas` rules, so to get these add it to the `extend` list:\n\n```yaml\nextends:\n  - \"https://raw.githubusercontent.com/apisyouwonthate/spectral-jsonapi/refs/heads/main/.spectral.yml\"\n  - spectral:oas\n```\n\n## Rule Opt-Outs\n\n### resource-object-id-required\n\nUse this opt-out only when a response schema is intentionally not a standard JSON:API resource object (for example, ephemeral computed resources without stable IDs).\n\nSet `x-jsonapi-virtual-resource: true` on the resource schema to skip the `resource-object-id-required` warning.\n\n```yaml\ncomponents:\n  schemas:\n    AvailableSlotResource:\n      type: object\n      x-jsonapi-virtual-resource: true\n      required:\n        - type\n        - attributes\n      properties:\n        type:\n          type: string\n          enum:\n            - availableSlot\n        attributes:\n          $ref: \"#/components/schemas/AvailableSlotAttributes\"\n```\n\n## 👥 Contributing\n\nFor testing approach and contributor workflow, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## 🎉 Thanks\n\n- [Jeff Marquez](https://www.linkedin.com/in/jeffmarquez)\n- [Ali Fazal](https://linkedin.com/in/ali-fazal-424904140)\n- Ananya Poddar\n- Anthony MacAllister\n\n## 📜 License\n\nMIT. See [LICENSE](LICENSE).\n\n## 🌳 Sponsor\n\nIf you'd like to say thanks for this style guide, consider supporting [Protect Earth](https://protect.earth/donate?ref=spectral-jsonapi), a charity co-founded by APIs You Won't Hate's co-founder Phil Sturgeon, focused on nature-based climate solutions. Phil spends most of his time planting trees and re-wetting bogs now, especially at the [Warleigh Nature Reserve](https://www.crowdfunder.co.uk/p/warleigh-nature-reserve), so this is a great way to support his work and the planet at the same time.\n","readmeFilename":"README.md"}