{"_id":"@alpaca-software/40kdc-data","_rev":"84-2f20b01ef1417f54430a8f98d421e16d","name":"@alpaca-software/40kdc-data","dist-tags":{"latest":"1.4.5"},"versions":{"0.1.0":{"name":"@alpaca-software/40kdc-data","version":"0.1.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.1.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-validate":"dist/cli.js"},"dist":{"shasum":"c4c67df9d07dc5043621317c7b2f8c4a9032d4ae","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.1.0.tgz","fileCount":155,"integrity":"sha512-9ohnAQeMBfvtW40sLyxeG81Rv9W5fWW2AqVGjkJTHDu2oWUsLpBFtOYzw0X6NqxyRW0jBNJ2I92V3tiDLH+VTw==","signatures":[{"sig":"MEQCIEarJ8B6Sz5ngqSSyJji6maJji7VeqEA4bqH0JN2tGgzAiBAvGJ1E4NWBZOU0vM7n1kxLG1KNKmHDY3C7FH5AKHGPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5479186},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"ff930e1260b0bcc1c6960d689de0cb6a2104d104","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","validate:core":"tsx src/cli.ts validate-core","bundle:schemas":"tsx src/bundle-schemas.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.12.1","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.1.0_1779922333109_0.19140828902342366","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alpaca-software/40kdc-data","version":"0.1.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.1.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-validate":"dist/cli.js"},"dist":{"shasum":"06e58ef521f2a7e617810f16020876a3cce02694","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.1.1.tgz","fileCount":173,"integrity":"sha512-nyMxaA8rNFy7ZY/pjNj8fBF71b30FAiVw6cxj/5HtAff1sEtU5jy6tTrVaYP3g3B5P4cN4UTPOQu2ZeziaipyQ==","signatures":[{"sig":"MEYCIQC9xl+OrFEZyvggyO1b96DE7oX3OtYUYD9cbfAPdp70LgIhAOv175XMVKTUYhGhvXFCmyAZEOpEnL0oDybGA5mk05ME","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5519020},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"b4935a59c16e3989857c942427762eaaed67856c","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","validate:core":"tsx src/cli.ts validate-core","bundle:schemas":"tsx src/bundle-schemas.ts","gen:conformance":"tsx src/gen-conformance.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.1.1_1779933055889_0.7409720293908282","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@alpaca-software/40kdc-data","version":"0.1.2","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.1.2","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-validate":"dist/cli.js"},"dist":{"shasum":"9368b5ae7ddd6cc019a7586478fd384671b8afbf","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.1.2.tgz","fileCount":410,"integrity":"sha512-I6xqTalVC7WiV+KHsI6TTrzpNK3jArcKa7SH62npu8cD3y+0DOU3+H8BSUMTVW7qM1mQZoYEVm44EmE3S7qrzQ==","signatures":[{"sig":"MEYCIQD1qPgAr+s7u3VDZlV1HWaLTEedrUaXZ+4agDXytrkyQwIhAPFLplkgpwM3fPo3ecahOEuwNKOaQm8uXgoCxaWgSBXj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13428610},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"7a148c8bbd8f2a04fc02e324f454c58153f6ca7f","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","validate:core":"tsx src/cli.ts validate-core","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.1.2_1780002978488_0.9279182273096822","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@alpaca-software/40kdc-data","version":"0.1.3","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.1.3","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"c1fd9d8c793ef9f4ed8a512c32cd4ea447c6d80a","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.1.3.tgz","fileCount":446,"integrity":"sha512-s9cZwCr2e2P39t5cbgWZP/iXjpToqg5c0pPA1k61dMycm+QlkUPkh2YIdvkVCyEKrBtMxPDISj6kUxMs1k6TSw==","signatures":[{"sig":"MEUCIB+BS30IXQc++AnuB+nI4pM0uZt7TjOF+G5of3htXHKmAiEA4RdRX5MmIMsEtjjGyliqmv+6czSBf8PNF6urWoX1UGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13990108},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"300119ceb7bd4382769b10b767e8905d043cda46","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.1.3_1780254214400_0.6994530978050719","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alpaca-software/40kdc-data","version":"0.2.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.2.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"e38c21e52442e9da3883945f8910e762e0465040","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.2.0.tgz","fileCount":450,"integrity":"sha512-kD4YtuGJ+P0gubL/y2w0cfFR0JYRE4qNc2VgKFIjOCquSubZRXlkVAyTVtOA4bhoc4cl3rzKU6v2BK1SjxUAoQ==","signatures":[{"sig":"MEYCIQC8foqSymGJ4Gk5tNgnKzgP4dMyc7UMEZ0BvMNhFZREZAIhAOLZCqUgDi3YA3M68qV/QpZG3BJxqCa0+Hjyp5yV7Ivf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14027518},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"86a8f577cca9ebf53c180777e0fbeac8a8c3a680","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.2.0_1780274739806_0.13625911681010328","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alpaca-software/40kdc-data","version":"0.3.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.3.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"b31bc13eb226cb3cff043f90d826324077025dc1","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.3.0.tgz","fileCount":466,"integrity":"sha512-Y0lJ3hBGByM79k20Qp/8+lLWJYzrULImS/w3/f1aR9bA/rkk3flsKc3O6XGmVuqlNZoqHfVFYD+3TOn2Mz22WQ==","signatures":[{"sig":"MEYCIQCLLTvhpFx4YrPTrnEaDpY5NjEwVQlgb64YwNZU+oeO3wIhAMPWhTrBfUmh7ipPmgc+xfa8LJGaL5cgOHwbTnI6liFa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14297190},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"91ed0bc160ca213f8d201d0654c1d287e9cd856b","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.3.0_1780346363536_0.6154466633294333","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@alpaca-software/40kdc-data","version":"0.3.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.3.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"88e0e8ba6aeacf817d5a7ce65959413580635ec1","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.3.1.tgz","fileCount":483,"integrity":"sha512-bBmrshnILkeWjjCfJM1ULbog7gdTtaJ4izgmYNYO3fTYEy4V1GijYvC1N+wF74OtsKJpFiDJ6/ujldrAM/omxw==","signatures":[{"sig":"MEQCICIVGzIA74KZ2+Rul86zuJOiO1HYMSgWh8NMWhbKotfqAiB3IQENcL8Yt26n78fZ9DwopuVkbl/dV8xK09+CblW5/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14537115},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"fabfc2b6cea3f9a758eac9a047e216ea71a29405","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.3.1_1780429160517_0.4464611232396074","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@alpaca-software/40kdc-data","version":"0.3.2","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.3.2","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/tree/main/tools#readme","bugs":{"url":"https://github.com/Tabletop-Developer-Consortium/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"ca9e7b793bf27b13edd51376b36a3ceff69069e9","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.3.2.tgz","fileCount":487,"integrity":"sha512-OyPze3dAamGPGlh0tLrLbQPwYIoqOhy41/m78k0bXkXQvyrQdmGRpspgC/5OJiQhcyLK9fATSg88HLP11bupww==","signatures":[{"sig":"MEUCIDHrJ18hq9bMhMoCgedIxa+NGt4KY177QSrO2JCBfeEiAiEAlb5AWwKBvifaFh/7+ReGAay7kJYelReTWZuYBnuJ0PQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14602489},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"a93ea3b140d6ab03d9f3b96aef4ffb8f375d182f","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/Tabletop-Developer-Consortium/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.3.2_1780430271807_0.6446401671478903","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@alpaca-software/40kdc-data","version":"0.4.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"MIT","_id":"@alpaca-software/40kdc-data@0.4.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"43783e0af6d95ccfa7ff1043f0cc5b7cf4723581","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.0.tgz","fileCount":516,"integrity":"sha512-qg64PtEWZYwMA/2R9OtkgIfXkJxf1BHu5HixJov87Q+qTfXRws1CVRxzY2/EvtppPU2APXYRLZ7VS9SFyZQ3bg==","signatures":[{"sig":"MEUCIQD/qfFiXq0wYwWzg4YPJdjIqdbtFX1VQkNxcjZojHjcNgIgUP8+7BMPWHnYz3TABZn62D0VGQut2pvI1sl3wI7NmWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16210769},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"e13fc158c21cd2f706a8d93d82ac5ef7c9def43a","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.0_1780491701301_0.6114377067964301","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@alpaca-software/40kdc-data","version":"0.4.5","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.5","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"185e44a69bad208942b4bd615785809aa3c26e97","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.5.tgz","fileCount":516,"integrity":"sha512-9q0H/wELA1fDlo7my0U5wkQxTMl6ifeJUJhBtL85qUhutFJWknh9Ks4iGGwy4s6+Qw7IV7MS/Lxr20qKUZ9ctw==","signatures":[{"sig":"MEUCIQDzEdf0rULJUf5nw45jxgMaLUu/98XR3NiqED3A5SCU0wIgCCyqC2X1ffoenA/+wVMKS/NKLxHuJtSW0JbRoz5GdFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16359263},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"24562b0d337e5bdad006199cfa0746956e8b6b6c","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.5_1780541999709_0.9736241609326859","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@alpaca-software/40kdc-data","version":"0.4.6","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.6","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"fabcc764bd6d51ca2c5a6ffde1410b39262add14","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.6.tgz","fileCount":520,"integrity":"sha512-suC5fUcBt9B33dlSuk+K1BueoVbPhpmit/cprSckG+deyEiIgV/SxBGG+SrhA8j0LLD++Zr6jI//GNa3Tnb3pA==","signatures":[{"sig":"MEYCIQDtrDu9cCO47Cdlt7rGMWl6eCOfJlDT7PhUMsvwxH3tbQIhAOuBjLuLqjcGmj9g9rRf6wTkLsCWHPYW01PTHo8kkQzm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16382480},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"f65029b9e1ec0463955cc9c8f3bcf09980750ca8","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.6_1780578501756_0.9506094999045822","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@alpaca-software/40kdc-data","version":"0.4.7","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.7","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"9c31da716ce9a7fb2148adf0a6c08055865979f2","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.7.tgz","fileCount":524,"integrity":"sha512-jYTrRwA+jsNImi7griP2T8tF/CwfGzMEcvLv9YaOtUcZfwlZA6jTvD1MTBx/bZtfmp2vkmlVc1wARXurd0Qtlw==","signatures":[{"sig":"MEUCIHy2FqUiJLGQll7SJYiova++7vyO/PogCN/D6xmWcafiAiEA2UIQoksD5vaGP0P1+VoSgqcjiteEpnPV+UBI/zEDV9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16459223},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"20b6929c5dad65d0834aa06202f49e933831d977","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.7_1780585101741_0.19859905570547176","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@alpaca-software/40kdc-data","version":"0.4.8","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.8","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"61ea1554fab96d6414b81cb55bbbf742116b1eed","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.8.tgz","fileCount":524,"integrity":"sha512-6AK64K/Pe0iD+kWRKE1fauHAt9aWhEXbnw93iBsAv8kE/6E/lNZEa4H90O3yOFD0nYOYx5h/yAz1WrS2klm1tg==","signatures":[{"sig":"MEYCIQD1WuLHARerjAzs1UKx7kLviiiSgldykwp46HJ+6RsQRgIhAMvGg1M9jigMiOXX0Ltke+ENHt7JxYOxFw9drLibw4sI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16499291},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"f6d6e196bab490a3585eb4bab1a7f4c58ab7a542","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.8_1780589119689_0.19776649420885706","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"@alpaca-software/40kdc-data","version":"0.4.11","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.11","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"361bc12579da7a25702f3d0f194569fe91087c51","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.11.tgz","fileCount":524,"integrity":"sha512-esnqxDvvnTeroc7GmCRHJZhSofn2BZA5uId9yhr/wD0bswQS3mTXEUGl8N31jb7QGC/qQpiYmXYtLD3l9K33qQ==","signatures":[{"sig":"MEYCIQCNS2CeIbgvfVkxqMuH/kKq0SdZJbJ2MJUroSzLdHaXxQIhAKbBvqdNKNQq56EhfBwr1opF18Spj072PNAal6tgoKae","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16567620},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"6df8bae879dab333755ab67943d909df1b9624f8","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.11_1780596160452_0.2538965809034168","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"@alpaca-software/40kdc-data","version":"0.4.12","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.12","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"1dd1c2faa737fd0130f58e04fea6dbcfa82f635d","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.12.tgz","fileCount":524,"integrity":"sha512-Oe5ehDCPDUUfkTZLGWctQel1SYZgy7Uj5WXZnmTIwq/8VNroNNAb7EQgf2bRjThVNHtJFnKtB+6wJZWVcysb8g==","signatures":[{"sig":"MEUCIQDsLZg3NrmBKU39WdSpj+E3lHWRD0Aq8IEshghNaY5DegIgOfGGuO7M77ayzDtH7W6rBpmErYDtE9h6POtDOVAGO7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16590744},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"29d4b8812339d9d731fd587bae9f9685b933aa58","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.12_1780597312297_0.1989455161664877","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"@alpaca-software/40kdc-data","version":"0.4.13","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.13","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"ca3c100d942e55b2b839ebb375f8ea8e6342c765","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.13.tgz","fileCount":524,"integrity":"sha512-r08rLrJ+g0GyUpgLgU2BFcIxL/eVGLd2czhmn9CK77djbohpffwQOL/A58z4ok5rNsXI3EBhpm+BlDqA3NKkNw==","signatures":[{"sig":"MEUCIQDXfAdyulvbXwETXfIcEpGlj/TwluyNJuzNXTHpPTkegAIgeo79QQMueIv+QuhrdhPh+bf6bqQhlqK0oShCyQpy66E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16611944},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"2810503ac5b2813a9b2def3140ec56eacb28e991","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.13_1780603233644_0.7773547519435515","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"@alpaca-software/40kdc-data","version":"0.4.14","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.14","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"07c2343ad7ced669b4d05490f1cb5a7acdf7a5a1","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.14.tgz","fileCount":524,"integrity":"sha512-W/2pCd3XK6X873PiLkbgzfj1WXk+qBE6xnEh6IHcra1zis7scSjHBQH+Z+wPr5VpYqtJGyPNLqQVG1RCavi6Dw==","signatures":[{"sig":"MEYCIQDMNgP7SPp7zvN9pVRy9gkdcn3iulGzlUSnaP59Jm0vQgIhANM/5VXdMYHrE9GDRMzz1lfGSvBnwI3Yas1/czdgaMma","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16656956},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"6d938e22628454cd7a96f87143afc3d543ab6e01","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.14_1780613507123_0.6098355135337619","host":"s3://npm-registry-packages-npm-production"}},"0.4.15":{"name":"@alpaca-software/40kdc-data","version":"0.4.15","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.15","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"51791ba7af586ea9fc94818cbcc35c044c3d08de","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.15.tgz","fileCount":524,"integrity":"sha512-CN+pYZTCy1ZVrKtidZ8PJAsUuA6ImJPO5sJqIZYtcliTDqDzKmGbEmNS5zYIzulZR+ICf/f6/v77saefhj6quw==","signatures":[{"sig":"MEQCIFQh9FQRYwxOSYnR+4qXzczaIuip7kSCyLXbXCsr+ekTAiAqke/J2ugG4IA5+L1ZXXO1X52UfnZtmwLgVUr9DXAmrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16727198},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"3eae10efd427b6f7ca4034339ecb0e028375547e","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.15_1780625820302_0.43577352937257396","host":"s3://npm-registry-packages-npm-production"}},"0.4.16":{"name":"@alpaca-software/40kdc-data","version":"0.4.16","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.16","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"3193af9ac15b175440b91a21672490e556a9a00f","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.16.tgz","fileCount":524,"integrity":"sha512-OvMSfne3KjDmkyY894LTmgj0NKSK87sOpfEnlsemVaGurUI9+7sl3uo1m59DAVLpx7m56qn0oCBz5ZV06Ex3HQ==","signatures":[{"sig":"MEUCIQCfNINr+fKWJVmGOdl91ebFUclx2gI85FZg3VlonDmNHwIgDZYvxY1WScTzTwA3lJsMM4ejJxGJZm9wlEuzniz1RFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16758376},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"b778b63c8c06c225aa9edc93ef33c20ca922c165","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.16_1780668077989_0.32838935254194945","host":"s3://npm-registry-packages-npm-production"}},"0.4.18":{"name":"@alpaca-software/40kdc-data","version":"0.4.18","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.4.18","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"521fb631d8a03b3c69c47581ea3336bc2c410b46","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.4.18.tgz","fileCount":528,"integrity":"sha512-w1+3QmfLSF0ZJ11TziJ2Enan1VSSisU7PeXXvtRYy8LIv4gu+rkcLdFvHX/MnLHC+uEquv5ozyFwFylkgkUgYA==","signatures":[{"sig":"MEUCIQDpcY313XQeEq3wjVjBZQ1e8lT0LkRSug09yD6XBad8AwIgXrvy5E+dK59dOpFmT47RlEHczl/vE/u8N7hEPwWBeQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.4.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16813983},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"9833bb89edacbe2f5f2c0cfbb7fd082398d9fb30","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.4.18_1780675915190_0.05199667417946596","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@alpaca-software/40kdc-data","version":"0.5.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"728e4425524959c9a68684799594b00e63083d32","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.0.tgz","fileCount":528,"integrity":"sha512-wKhZRyQVzzjll5SlQcFZ6b+AIxi0qHb3U4lbSA/iRytQjEvJx44hMIIzcRIINLlbM0l4Tq/GKMYR2j2GGEWpSw==","signatures":[{"sig":"MEYCIQD7E5/nYcOF7JIXSIhoWQXhyWD7hIbthpi0ibgLaqlE7gIhAKekGMHKATIv+DpREjfpN/+7hNymSoU5RJFoX32odlq/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16813982},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./schemas/*":"./schemas/*"},"gitHead":"fd628bf328eddae3e92107ac91b48f4a0468d262","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.0_1780683210389_0.021876259870573733","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@alpaca-software/40kdc-data","version":"0.5.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"bcfc9d267f65aa590fc997b97d1cd110ba1c9705","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.1.tgz","fileCount":532,"integrity":"sha512-eCsUkZyjZpzipCJdH+bYeMnGN/UDL4Z5Gzk3hcMpvrO4KjoyIdIuAOHB0W106JcYw01veIPhkH4sDsIBTmYHeA==","signatures":[{"sig":"MEYCIQCD8OvQejnH34orPhZ9VB/oxXLyHgxJdeAJboeiDQnfbAIhALpoTbcnrAXFvyHHHA8dUzTPpXJ0FJRpk7Ee8TIBZ0Jg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16844741},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"9cf62dd507020141073d58beeb738c259206247e","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.1_1780704178122_0.8353024097077197","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@alpaca-software/40kdc-data","version":"0.5.2","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.2","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"acc47906cd7dd3686ca4ffd180a0b09e1cbf7e1b","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.2.tgz","fileCount":532,"integrity":"sha512-iwXFVJSf1Bcl/K38LsjXWLLrVg3a38WFdvAkuRIKS8X6YqSZaS0ictt7Hzoln32qgZcsN4nkl5DpAUBa3x1oNg==","signatures":[{"sig":"MEYCIQCNozlJb/FspsXYgT1rrPH9oANbpQ/TU2Vph2wswpoj+gIhAKYOloSU72j2dtDKLy6ZBDUsxwzD64vjvdHHpHayammk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16854081},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"d575d8e73c4e1a6e17800726b077f819dc23cae7","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.2_1780706852086_0.6933253459360291","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@alpaca-software/40kdc-data","version":"0.5.3","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.3","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"f55bca8a6209b93ceeb0900f6ddd4155da027d85","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.3.tgz","fileCount":532,"integrity":"sha512-dXvvvnWmP9COZF0MCCVFkuL4iMkxsFlFEXaM5P58MdR/JOsE9tFcB8eAL70umZ7yejaKNPHDJidZroj4tsl4nQ==","signatures":[{"sig":"MEYCIQDOtNb5xT0RyXUdDHmyh1v0rtzkUDkFfe03c7TjbQ/NSwIhAPHEosLT1mE8IjfgIl0lQkq2CQOyFpTUbG/eCFL6lf6O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16856489},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"c7a1f7e1b6743007502c3f9ad7ed55b1c7dead8c","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.3_1780710911221_0.34801423374923","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@alpaca-software/40kdc-data","version":"0.5.4","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.4","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"a4fb4407f0c5ab229e99b7b79e4b8ff507723a36","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.4.tgz","fileCount":532,"integrity":"sha512-MZjQox+u0Yd3jJZrGviOCztoJzdJ3d5oLVBGnGtBc8Bpet3lf6BqGHXnAke/iUOseKTfV3ibE7+aiISGUopLbw==","signatures":[{"sig":"MEUCIQCoHzb2VMlRtUp92FuPANnP5+DNelfioEZ+nSlLSilq9wIgZjm8k+64AebE+dzGu0bVkpmhDkiY54Im7zRyS7gP+U0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16857141},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"f84a89a12145445d674baa5ba8ebc002c8da040b","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.4_1780785170903_0.007422556501761379","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@alpaca-software/40kdc-data","version":"0.5.5","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.5","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"79e706c7fc667b2ae7a8633177980a3972427660","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.5.tgz","fileCount":532,"integrity":"sha512-0VBf28gYoiwvzjvj6gwC09qLnND1g83gItm8kR+RXCNUYiBxs1kOK03S8S7yZjSg1bLzwdKI//UN5R9ttkjGjw==","signatures":[{"sig":"MEQCIDf5lh4i5jr3fFoVjMGBFQIaN9LWfwSW11RnTtVp04HRAiAOQ5QX+8vbT9UOEZiSWJ+FR3ASXi74TxI8HCoN+6Fn/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16861038},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"4579fb4afabc92e056997fec4ad115eb3f54b555","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.5_1780786386966_0.9113352865926336","host":"s3://npm-registry-packages-npm-production"}},"0.5.11":{"name":"@alpaca-software/40kdc-data","version":"0.5.11","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.11","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"25ea331cfd8939d61fdcc89e48d652e687f1ecbb","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.11.tgz","fileCount":545,"integrity":"sha512-+y0xwUJNhRyQcj6K9K7D0UUXs9mjEwn191uV8SYtTmdBXH+MzrbUW8BfG6KXSvapovmfRtj7zw5+ozOXX+sDtg==","signatures":[{"sig":"MEUCIQCe6SazdyMm4JnjfVaZmjYggVhioJw/Aeh3BzPuXGY7jwIgWyuSJBr2iaScpwsuFs+nwh+w5rGilNCCj46G+Bgtk9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17018989},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"d42ef0a41be1f44d40608fc2b43a13e0d9f47f99","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.11_1780939640311_0.6941659937258484","host":"s3://npm-registry-packages-npm-production"}},"0.5.12":{"name":"@alpaca-software/40kdc-data","version":"0.5.12","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.12","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"7e6d8b95a700890d8e19704ee4ffd09548880e23","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.12.tgz","fileCount":554,"integrity":"sha512-MUPTxNx4OFBbfI3QUHvriyWOv7cLZ1wL0Aew4Fy6wlK/EIROKuRBy4kSDqSB4N5RWBZfUycaPlaiV9gU3oa4yg==","signatures":[{"sig":"MEUCIQCQx7Wc56nXAlG8ieJhaTEd22emmG6A0yU5tRTqxyvQRwIgMMMWHUjAU9hGyXFj4XrF456zVupSzFFB50JMh+edehQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17283673},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"09a6f35f31e7c0a4d948467436c727e77e6bc21a","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.12_1781016149498_0.05607038626893246","host":"s3://npm-registry-packages-npm-production"}},"0.5.14":{"name":"@alpaca-software/40kdc-data","version":"0.5.14","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.14","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"30d53ec113c347c982a3589cbf8ab6a094926986","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.14.tgz","fileCount":574,"integrity":"sha512-wUnWGB9CnMuF/Q1L66Pca4hYqcDN6K45mkmY3YbNPP026rwOQmuEk72qiVTX9ONCtFQo/khlDWtLPQRY6sp1/w==","signatures":[{"sig":"MEYCIQD+yMKPmRcwjqJq3yWMAlMYFk8Ig5UtYb7eo3/mndWlPgIhAM0izP8cJ+hnLd7z6ODBBwx+R7G6ZiTBzaDMEDcgpsxz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17672103},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"948ceef32dedfbe1f82e3ce9b28b66136e1cc07a","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.14_1781033038353_0.7988318566979407","host":"s3://npm-registry-packages-npm-production"}},"0.5.15":{"name":"@alpaca-software/40kdc-data","version":"0.5.15","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.15","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"54cb147a874f5f38d0bdc147bd74853864e8bca9","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.15.tgz","fileCount":603,"integrity":"sha512-mrt+PUeWCef2erFaXwonkEkTkqiDAJp9YrLDAmKgheC1oYwVVHnGoz1O4l5xPAfy6r4PKZLC9TOkgupZcy9vQQ==","signatures":[{"sig":"MEUCIDzeZmYyTFkP6V/bsF2mVW2pK6M1cxh9H1N5yXDdT31tAiEAmKacqk6YFRBBBkkskqiHRlyyyD39eJONTqeYQp+AV50=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20446114},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"62a6fb7b38d27cd528800f73a458e8e07bdeea67","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.15_1781278966616_0.47561620509281677","host":"s3://npm-registry-packages-npm-production"}},"0.5.16":{"name":"@alpaca-software/40kdc-data","version":"0.5.16","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.16","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"e819d8c644b35948efb3012688b5837a33288e4e","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.16.tgz","fileCount":603,"integrity":"sha512-Sd2S3ghDrI3kpWWwGx3MWXkOd2I8kIIeFJYS4hXWAi2aLgcT1d9YiwplNGvN+yWw/Y6D9ATgUfweyyCsjj9Txw==","signatures":[{"sig":"MEQCIF4XNJSQ8X5VmzPVcS7ujB4HKwa+cJCO/yXBwrP9oHYFAiBFF7cKE+nq3TvfFmnpD0awOhKNAd1dTryhkgnPEuyEwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20704995},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"9653ccb69ab8d7975b3a254fe7597ad220bc9a3b","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.16_1781321177546_0.4878768238867299","host":"s3://npm-registry-packages-npm-production"}},"0.5.17":{"name":"@alpaca-software/40kdc-data","version":"0.5.17","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.17","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"7e4030325345c93cbc471a886094082177735bf4","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.17.tgz","fileCount":603,"integrity":"sha512-J3AwaVfT7Xi7Uq6B/kuu/HUHa8MdBSmBDjO1thFklou9zsa0AeL0XoycTQrKZ0JI/7jDm08iDyhOjCUQR2bTEw==","signatures":[{"sig":"MEQCIAdDZID0nc14HEIG5XsY47x9jmct1hr4qRSf+Kq5CqPIAiAbIo4W3Q0HLUWWddfE+X5gguHPkDlbtd1viJvll6oHWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20888729},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"957834531ee1d6d0ad3d4bc1949b3db2afd59c9f","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:repair":"tsx src/author-batch.ts repair","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.17_1781363953272_0.9018991916724755","host":"s3://npm-registry-packages-npm-production"}},"0.5.18":{"name":"@alpaca-software/40kdc-data","version":"0.5.18","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@0.5.18","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"ef491e04e8a3d7abebde49cc6c0fadb954fbeac0","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-0.5.18.tgz","fileCount":632,"integrity":"sha512-UXn2HmeDp48zddFVWJdd1d8NtqJ4gWH4Vzgd8hlrdH5M1oCAfXCxKmuwuu36vfn0eXkh/zmcqBkIU5ua39QIJw==","signatures":[{"sig":"MEUCIQD1fY9m8TdaJK+DPklR1mP85yLjwxJ5UV44+o/RB+AfPQIgNQOJsniS3/JhExY2OsOFP9DSLBfuyI0ZNoFB9FuwwnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@0.5.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21467511},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"283f42f0a2396ff3db7bfdae0b47ac3e7d3e2cc4","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_0.5.18_1781589746586_0.3204557561870678","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alpaca-software/40kdc-data","version":"1.0.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"f1750e8293c4b7d86d66d54c0ec3fdc422016800","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.0.tgz","fileCount":528,"integrity":"sha512-dNv0ZOGHBBtDslrNfhDAg9T7Gz8EkfAzK6aKo4swXayeQ1qRjrd5Rf2bIOWq5gOFvCszTAK4TJMs8QVstk0kBg==","signatures":[{"sig":"MEUCID2z2rbOhsO3SH7asARSexfxcLIuTj7h7rcsPMyfSlsTAiEA/d8UDBDoW37LZKcMxXm64cBiSgmq1I7oswogqF3/JdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21620109},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"42fa90bd7b5a41edab45b1666023b0420b1f5430","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.0_1781726499883_0.4081811068693071","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alpaca-software/40kdc-data","version":"1.0.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"ab5a87b6089753b554d96e3bebef25baf7ba2a90","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.1.tgz","fileCount":532,"integrity":"sha512-33QSi3JWnCBgwZ8a9r9szQv1Qifan04aCFHOU2wddVMUesAYZYySGYWx9pYmA0kgr4JQzv7sFZaNrLqeRBmCiA==","signatures":[{"sig":"MEUCIHPW4VgPxMAo89o9pLgRe9V7FM3DoZKPgwnuHngUtNYNAiEAm/bwvTwpNTFvCxav62HLZSPfC+7rWpjJZO2ps6xMHYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21655230},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"ef20b442444f2392b9f9021f0ac80d21c23c04bb","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.1_1781740040862_0.11924636320797566","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alpaca-software/40kdc-data","version":"1.0.3","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.3","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"8f35c77207214e8ab1ecf1b68d7e0d113a19dd5e","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.3.tgz","fileCount":536,"integrity":"sha512-BWGzCQRFXyFU3XfhAxIhVeNgFEuL//tPdeMqkjBYiIW1K/h1GAzt2VXmeNjU9vDlhnSSQYlYEuNC0riPvkFBzg==","signatures":[{"sig":"MEUCIHWMAP+els7MPdguFL0WEaL3hZhqyeE3t6rf8a3wgpztAiEA9QULtoCK5lMwuM4lXg+00gFNHYI6SQrxD0sZfF4tp1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22463142},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"48830472a09e422fdb596d0c911a139af0008b94","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.3_1781808025930_0.6033202931826358","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alpaca-software/40kdc-data","version":"1.0.4","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.4","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"b0687df012f62747be1a95a9f4a565c86ac9ef78","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.4.tgz","fileCount":536,"integrity":"sha512-LK7GaslLE6PSMAmL9AT6yKlTXapiEqyxxYzqSIdJdHjQDkrScm6+evwGtvI0GvrXOhmm7Veus4N3wdyRHpunag==","signatures":[{"sig":"MEUCIHNU2jYGuCczTZpQF/POoxYNl8JsEA0MDyS6dAZuRWe1AiEAibxHvtm3BA+FBgQfA+BQoiNt9PKlXFYXzOc4VI+7L94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22477297},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"72d31fc5147785aa49b350bcc8e5190638d988cd","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.4_1781879607079_0.46344300988716625","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@alpaca-software/40kdc-data","version":"1.0.5","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.5","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"6366464202ca28820cfb28714745559e8a84ce8c","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.5.tgz","fileCount":552,"integrity":"sha512-1lJ5ChMCyJ++k6jcQLvdvvCfp0oNdur+jN/yPXS2/t4TSSTDIwEAFKrHm55Z8qq2bb1zOAaVwEn75aQoVWyQRA==","signatures":[{"sig":"MEUCIARNx78MKNehB4zR+0rMHwO1uaAryornY4O8qZTym7lLAiEA4A61gTO8J2Sy/lIxm+Rv1E8Ye5JzdmXqhdJBql9OKnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23139522},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"ea6281c7bfba441b4cdea91928499184ff8f92d2","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.5_1781888218101_0.5025409374564733","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@alpaca-software/40kdc-data","version":"1.0.6","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.6","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"cf05dbca50e041c470208a1b6e4724c449223380","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.6.tgz","fileCount":560,"integrity":"sha512-EhhceuYn8IAFteAr7TAGT18sdb52ANopH8Uoyd2AXk5r4aTqGagInVWFkEheTrXBEyYFKOB8yzscJxu4sxK1aw==","signatures":[{"sig":"MEUCIQDCRFcrvQE+WmZhG1bXYfjLzfn6DIZ6bCKP3hnwYQiOQwIgRqhsAmCxbh1dUQYq/UGOHfQB5Ckh5JjBItDE+04jocQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23207083},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"cf424476b15d2c8ec2ec9102a498beef1ea6e6f8","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.6_1781903725265_0.4325155470668769","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@alpaca-software/40kdc-data","version":"1.0.7","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.7","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"fecd27ced6a87094f4b7ff2881e3906a6dda3763","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.7.tgz","fileCount":587,"integrity":"sha512-CjN0nryfESZ7016WokHWuAsu+oAWgCjCgxTjnTBnoMS2hQ97GvA1CHsDGp2AI/6P9f+krXZNjZlkcFyfLo6Q3w==","signatures":[{"sig":"MEUCIAZL1eacvQQiWcuFdNhpbM4jgZvJrgIXUlf2amkeeyw+AiEAieJlAtK30qJaKKstzPMjzGwdY4KaOvi7X2S298yEnno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24100285},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"f9660897f3261467839d23ef876007d5d96ce666","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.7_1782236835099_0.9138744606796638","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@alpaca-software/40kdc-data","version":"1.0.8","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.8","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"b709b06d7890242716269401a85d9a48641247ec","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.8.tgz","fileCount":591,"integrity":"sha512-sCBu0dv6xwcmiK9QhiGXVRn1iQj/fkFSwZGVc03JCCSedSzNEpdDGiKrXv0iIGXMzytiF2Y7XYbP/AqxVuNU3Q==","signatures":[{"sig":"MEYCIQDN+PAyY4P7Aw4QIkmMw6QZdTs89Fw1ilU9tneALa9RRgIhALA7JQWsJSu+g1E6oUabrCrrpLDzDoARKu4CG9+7KQW4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24146006},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"6e59883ab8c233148e9edc888222a3bf9fed420c","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.8_1782263600697_0.3313136217220627","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@alpaca-software/40kdc-data","version":"1.0.9","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.9","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"da94780fd4d2958a5e11bc51f9e59dab2ca99b64","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.9.tgz","fileCount":591,"integrity":"sha512-7+ekQySlLlf8iLMKkggZjlsfPdGPsWJfYT31QN3tY0NVR8/dFI4fVf45lDIsKqXKYBn+PKCZyEmmnZKBN7NH4g==","signatures":[{"sig":"MEUCIQCv8StLeHFBJZNwaNW5L3Ksno1kN3Y1Eu/Sn3wHKalhcwIgN89AOW8U/O+WFTlODJAcx0ztImThnLIXVxlqXnUQrIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24231845},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"761777fe55aaf7cbb17f256999309ba221e631a9","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.9_1782327537030_0.3093792509887683","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@alpaca-software/40kdc-data","version":"1.0.10","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.10","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"176088d6c9f33c1460c355b10921fd5240c9c29e","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.10.tgz","fileCount":591,"integrity":"sha512-AxxVQyzwrkMqCY8cVNSU1R7hPr18AMNWI1M8s7nDGJuMOsTXGruZPuBjODEzfRqkZnYUbF/b7folNxoXZwPHtQ==","signatures":[{"sig":"MEQCIDdMzVFKwswdynvDFZ47XOcyzYoU8Q67cyv6GptIPWpHAiB4N2UjbgL2oQyY/YWRi/dPuJVzKbdKiSPwr2msh+kXsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24245473},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"f293d998df4bd015f95e7443839a59a1dfcc0ca1","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.10_1782351235540_0.0019158126842477863","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@alpaca-software/40kdc-data","version":"1.0.11","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.11","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"0b8d9b5d3aebdcc3c29fbb928a09df78b963efc6","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.11.tgz","fileCount":595,"integrity":"sha512-ITZYxODpJsDJ82koxGGnou9Nx4TEWkhu2/chZAJOPuqj5/rq7vlNaWe9uziCBtIuenm27VJsr7/AzHGpNgznYg==","signatures":[{"sig":"MEQCIClHxLqO+Zt0Vwm8KKejOopD5NP9ZdDUuCZibYrDyAgkAiAfe0/Ox1YxY+bNlKRFYtJr6RY83fOceeZ+++1Cr0sCNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24257619},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"2f1be3c44451e12f127ef713b3396ff060eda618","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.11_1782405300228_0.6624994544693832","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@alpaca-software/40kdc-data","version":"1.0.13","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.13","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"f1eaaa906a1d556b6d4b550978cd454b33af6161","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.13.tgz","fileCount":595,"integrity":"sha512-Pa+4cNQYNj3oIpya+uqrCHEItX3BzG8/bRgIa4o5/MgPLioWCte0QC+7UZ9bxizCp6Wd7H7/Ha8IGQjudD+zNg==","signatures":[{"sig":"MEUCIB5ZDcKawIxs3kL5NdFTjUhvBcevXpyqQ9g3kKoF8pGaAiEA80y/dj0E7gd34j9JjWJ1ewtLKzkjB7q4ie88S4VPth0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24319082},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"455927fe29f03cb4730b7c1e2b0b3b646da1ac71","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.13_1782441580825_0.7171170239713118","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@alpaca-software/40kdc-data","version":"1.0.14","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.14","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"f3185e562bbebec4beca97aaac0688e87b70f6ac","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.14.tgz","fileCount":595,"integrity":"sha512-4jmgxdugQ7JIvvo9/ZN9dl/dcggeqWtSDlXwmXJ8ioA/nnv93U9sb1+NJ9rX9soG5Nfn6FtArrJWLCrgo8nCKg==","signatures":[{"sig":"MEYCIQC9D5QRcHUqAIRos2FicQmODnN0QDDkaKUaBiruM6mXpwIhAPxI49ayCYGboljXhNYx+iKnZWQ1m7b6wKpcdK+fLcKM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24336174},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"782e2d4f4073acf80dfa8408f569ebb8e6f2a5e9","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.14_1782758389730_0.5456845423042012","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@alpaca-software/40kdc-data","version":"1.0.15","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.15","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"5d6d163374a01f8520630aece62ef7f10cdcc6ad","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.15.tgz","fileCount":599,"integrity":"sha512-XQtFIcMeeVCHRTSpeNIRwwQE1uMf7nCK4dGZ+a79Nu7ruC+jy3UjwDy/4Xh3W/bqFmGOZ9YVBGCJr0gql/Tikg==","signatures":[{"sig":"MEYCIQDHPWcoLGE3ZJQDgRnH1OgVYTmLjHlPR/SjKMxO8OMEowIhAPvIIvlzdslBUKodYsNo9M2ZL475Jq0PhHKg6hvcUv0F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24443781},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"23944015b5a811ff8432e68fb93d8f1dfab1a77d","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.15_1782764520653_0.8962820758132193","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@alpaca-software/40kdc-data","version":"1.0.16","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.16","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"9e5d4a25139e8db36159aa63520fb4f4d1a95e15","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.16.tgz","fileCount":599,"integrity":"sha512-5PApo1hBkc0kbA7GHyXrE1WO51c/ifqmFltcSwRN545OBk+SnVKcmVnR1Jzk54vasvfjWEusbamPKscFYs/mew==","signatures":[{"sig":"MEUCIHFrmt/BqQWiy+Ww6NQqbXfz+JWrhiMYPpIAOqkVIcfzAiEA0jg3mnjG5okZFP1+wCR/Njzl0j02oTw5yNsbbVa3ypo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24450451},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"c77c126e3524014508682afed590ae5a3f5c2101","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.16_1782847126782_0.8945357422455271","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@alpaca-software/40kdc-data","version":"1.0.17","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.17","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"4765e348a11ea02f5febc4a978f1e8d61d78a5af","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.17.tgz","fileCount":607,"integrity":"sha512-QrGnlEG9jZWqcOriut1dF7YlHVz+KYnG8LtnpqN4OBCAsDKEBxcNLH2AYuFRvIz4WImhfKVXc/7KIF8s7s7XXw==","signatures":[{"sig":"MEYCIQCPdL4WSOVAaDoNCo3oUBd/oJMQbpLPnFL2s1fHWAeLngIhAMOLTlMORgIkuqa0G0z885XGOgzPJximdYl93XAYdnyV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24918875},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"7e20d87f7b5e5a9677c273eec4077001279a9543","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.17_1782847183581_0.21189851231800438","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@alpaca-software/40kdc-data","version":"1.0.18","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.18","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"d1036f14f2c14dfb06d8ce85a46b17afe8b86c10","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.18.tgz","fileCount":611,"integrity":"sha512-9swO8IjUf2eCSEfA1upDBdBXsZ8/pOwsgksJ7CVRswkBXS4xA29xvt1iJPP/p9k+/gOy16Y50j7/MQkdwhwH+A==","signatures":[{"sig":"MEUCIDk1ToiOH2Ff46j4Xj1Ykp500QvRd3hJ/Qvs70wIWY8RAiEAtDeEUTbSPHsXp6OE9Kto36NgfIiQxB5iTgAzb0qbgts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25213250},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"c7862158171582924d78cc1d93f4eab1532096be","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.18_1783006993250_0.8851221724199689","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@alpaca-software/40kdc-data","version":"1.0.19","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.19","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"cc3dff5cb408dacb1d4fe5ec957bb0455e782b9c","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.19.tgz","fileCount":611,"integrity":"sha512-OEoUMkShpU6akW3lu6ieCPXqw+Y9/DsOnAObKbNj1rsrKXAF5oez7fnv9ncAfL7aZetQY80+xE2+0Gt/2ly8zg==","signatures":[{"sig":"MEUCIQCsjxRXlWdfnZTu9HSdRNvSzkmAdV2SSPeB9TfF58XQDgIgc10+A0mbA3A4LWgD0QkkTq/8hBJUtIp6CDEUaqxlOHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25217443},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"b339376f33e5174a6036e8692995b08828cd4478","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.19_1783008197014_0.5472593827717458","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@alpaca-software/40kdc-data","version":"1.0.20","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.20","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"6af22f7a6d9ecda3e157c34f1ff7762d2ab83337","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.20.tgz","fileCount":611,"integrity":"sha512-wtHR+eXoheKB5pv4luhqmZ1t6d/GvLWqsYjLKSId9GrUs5dhTxK+d0uqVCidVWSglVmr+d4KsQDo46Wx3zoNYQ==","signatures":[{"sig":"MEUCIAzgtm3g5+sGuIW76BK5wRPR46Kg0pc3FJtD5VP9dbLoAiEA5HNPIDswtDNHEN0GDce5j+dbNyA7aT2VZvV6tQA+wVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25228328},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"8f6ed67cdc13e00a20f8a6090ff44c876faa6ad3","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.20_1783188102493_0.7632402916569487","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@alpaca-software/40kdc-data","version":"1.0.21","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.21","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"e9b29f91c9c14a0490a4dfc6ee079ecf0a12b8f3","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.21.tgz","fileCount":624,"integrity":"sha512-+iM0ArggmomFTVIFdO96IxghFblna85zAKiUTrLzuWa6a2XeMYhVVl5YbWZsGgHuJQTvM44Lv0+kPpxMfts/JA==","signatures":[{"sig":"MEUCIH3kEs4yc5ww9yuaFsDaBih1k7OtMY2BXKKFAwxz0t9HAiEA1cE14Wb6/nTEnFOuC4McmfirPofIfX7dwZMGVer4vdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25465736},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"550b9fda0c4de8ebb05b5b9a44205585f3193576","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.21_1783432571698_0.1303805695361533","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@alpaca-software/40kdc-data","version":"1.0.22","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.22","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"5251e007ba8fc53ec6dd7e9d11e59ebb35eca3d0","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.22.tgz","fileCount":624,"integrity":"sha512-F8LYzdtlsZ+KqiObNZ/Em/cvYoHX4FvMiOXCxHF01aNVTb0ZD2cXFmAn20oQPxzWPfhwgzCxTgiX4HZQMZjgtw==","signatures":[{"sig":"MEUCIHvvv8PANtqiw2W0lStjKmoCcMewNMxsu0sg1xE0vP+qAiEA3i3tUTFluR3Lv1MZFNQeEWIDWyi30pHJJ2zrV4aH/tU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25709251},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"b293974194f64797f3c94a88b17e66a982e8a782","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.22_1783443642129_0.5976440329825101","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@alpaca-software/40kdc-data","version":"1.0.23","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.23","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"6eb155d9349b74f40cf0d18e718c2c17141e794a","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.23.tgz","fileCount":628,"integrity":"sha512-RLDbbi1WNoDogrWRghs+jaSpX5pT5FZiCxOmd4Kyr/c0O8NgBIyygYv9iGWap+XKkhpnzwCC4burk6ROf8Epmw==","signatures":[{"sig":"MEUCIQDYE8ztZH+6u69rQmn68HUAiNIygESWg0XL29UD6wUUzQIgD9eSbVOVQJx9LyS8zv1aap6iwhLEcvB7gzSdRTbvAfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25935204},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"b831e7c590a54eafa2ced686e3e8cb248dd8ae29","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.23_1783522489503_0.05001026716641488","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@alpaca-software/40kdc-data","version":"1.0.24","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.24","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"fb25f942829213d7836107c50ab309057825f2e2","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.24.tgz","fileCount":628,"integrity":"sha512-pGolMk1qQX3ozI5h6cCetgj6LbheIITkdZXZM3nW+hpSqGIfjbgI/E77jCzwj2LtEjdAnJqGNWV7hdMdJz2bJw==","signatures":[{"sig":"MEUCIQCRD4jMToAMyZ51mB77epydMu87KPlrYZhFY41rSzMrpAIgFmSKioKBFYZm+OXqIjGDFZDK6K9aEEiUlH7HO2+NbdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26349760},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"79ca1c0bf7e260382f4df147d60e13fb1cb87d38","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.24_1783619128948_0.2720530266794223","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@alpaca-software/40kdc-data","version":"1.0.25","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.25","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"065753303bf112721d93c25396d7d2e74103c0f1","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.25.tgz","fileCount":628,"integrity":"sha512-KzK+TQ/MccyyvUADaeiahF2V0wuunE/+/i6H3ukzK51hk4Kd5Fv1DaDVXuqquB1zOvYUedd2GpYeD5YpU649Gw==","signatures":[{"sig":"MEYCIQD/2fb17bmMj/RwJA/JMptytdBh1sUtaslFkvVD0sjmIAIhAKsC3ro7hA8GlXrbwHutmUrjKxN+6RfVq2Wqjyaj0yy5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26353118},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"f456138a66496156c3526058e1f6733d7369fd84","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.25_1783691188854_0.6913213475944109","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@alpaca-software/40kdc-data","version":"1.0.26","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.26","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"e4e9c8dfe2e9755b49c6004af905a90d15263109","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.26.tgz","fileCount":632,"integrity":"sha512-ZQE85kEhZVvRj8wD6HueBnlJr+kTaxBDmKTSOaK7hGvXm14CBHVtJSoxhvb5zGNg4X7Qiaq32qlsz1FGWZ33jQ==","signatures":[{"sig":"MEYCIQD3K9L6X2xC/gyKDGlxlFUfiMYpQrs9s36q2ll4iJ7fcQIhAOalq8hnfMhrztbmcD0TFx+28ckscrjwhsFD/yB13vGe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26417450},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"757b2b7972e6b84a24db1127aa44732f37c190fd","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.26_1783702267329_0.6619602756993741","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@alpaca-software/40kdc-data","version":"1.0.27","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.27","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"d991f0446c084882eb1f07cc9071deef4d566541","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.27.tgz","fileCount":640,"integrity":"sha512-zsNFS82tWliCo/PppE4tQsPGfu9ZlCufPf4pB1HjfGaj7KVS3teWTLL0yYtsZ+fEAWiuBzFUQn0jSsXiwEgNjA==","signatures":[{"sig":"MEYCIQCY3YBCuGG8Uk1eph8QRy5OVw1RWEOTWNwGSFH4ugKKuwIhALSlM1JAOeKmn23A2BbKDCK1pk7v87kKu6on4qvtyFMY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26492181},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"f62ec6aaf47d95b618dda3f296c5f18cba3dc72f","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","mfm:schema":"tsx src/mfm/gen-dump-schema.ts","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.27_1784035765469_0.18478814544674194","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@alpaca-software/40kdc-data","version":"1.0.28","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.0.28","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"1433d88547729f302360b08c1a5ab6f483cf83da","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.0.28.tgz","fileCount":640,"integrity":"sha512-208IkKcX/4E/VGiqurl/67jxa9mF9SPLKenstFrITfYEXSDtDHNndLOtrdp42NUn3L9IE7Y5XUVtzqvdAFmrHg==","signatures":[{"sig":"MEYCIQCwqBKYbQVSUzCk9ZSC0OfWgKLpoZFU9sl4aBnJ69LZXAIhAIZlzT/oAxzopwmr9KKHehQh9pLBiFbsEdN4afAJO1G8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.0.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26508005},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"dfbd5bfa9a884e74df5aebe65d17daa05cabf72d","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:golden":"tsx src/ingest-mfm.ts golden","mfm:schema":"tsx src/mfm/gen-dump-schema.ts","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.0.28_1784038078804_0.022752161739555854","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alpaca-software/40kdc-data","version":"1.1.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.1.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"99cf34dbc1efe70587f22bb42673cb530f2ad1d3","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.1.1.tgz","fileCount":684,"integrity":"sha512-nGyaVwOPsOSaQzFSKoZMQGVRRxowjuGoAZyk86MlcVsADQybeT66IcKv6h0IUkDZrsm9Oc0EUsx0dNBFcFdxCA==","signatures":[{"sig":"MEUCIQDzpb9FTyQSBPtdZum3Xt6RF+9UJeBqEIAlW7fGDlBsgwIgJFo9ysXwxTfQQyB/7YMg0/sSo4UZf2SvNj/0oSG0M7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27798374},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"d2a4853e45717f8a13d18c8264485b60c3058024","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.1.1_1784162986814_0.81959433814413","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@alpaca-software/40kdc-data","version":"1.1.2","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.1.2","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"006e095dc2d8c43718b27057ddb0370d633d5a5d","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.1.2.tgz","fileCount":684,"integrity":"sha512-FbuRIKEnGoHKHwNOGjHg2iJWKN5PkzhPA0M2EQiS8RsLViRP6H2HdiTG4gtbqsCBPbO40kGenQdnopH7AjfdLg==","signatures":[{"sig":"MEUCIQDWry4MrnSOXiKQAKtZCJZZ7i5tSmp1Aj06663tIUKkUwIgZdnOcO3qCxHRUIwtxsAGJJYHGqUqeAxWbJk0uzGC+AU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27938695},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"34ccc072f1e89f99e70ad888f056e1bb2fea8a92","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.1.2_1784227511442_0.6093205828290791","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@alpaca-software/40kdc-data","version":"1.1.3","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.1.3","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"59b3062a6c7a630a2a352ac0336eef0faf20f81c","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.1.3.tgz","fileCount":684,"integrity":"sha512-grc7KYc9OrIkUcSaY8CObxKc2h6bDQSrZoZzrMPJdKqS9RiC0ExBZZreEq53r9DwGhFlrsqAbq0Dj2hL37FeHQ==","signatures":[{"sig":"MEQCIFECjh3wpNBChfwuVSRp4PCweZ71XRWloh6TlnVa81S+AiAIopHX1yo2tx88xd2EE0vnx1/WSgf9dRZvgj6MNqFmcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27950438},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"12a5cdf40f350b49de0bd859856664cc85cdf661","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.1.3_1784729542634_0.14881887385208725","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@alpaca-software/40kdc-data","version":"1.1.4","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.1.4","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"a6dcea9f85e2eed9e9ef32760e66c69e36a861c8","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.1.4.tgz","fileCount":684,"integrity":"sha512-1fnYwysKqXzhFoat5DZSc2FmQjBx/+533b3YvLXJubbeEbX1lA9gJ8osP5mzE3tiOmqxXjhopfaFQFxg8hNdLw==","signatures":[{"sig":"MEUCIQD2y+TTiLbZMlcqsl969dc0ZSF4YGc2icChE8OVzUlQWwIgYxNz7SSzdKENyP5MNobg4vJ9QsZk8w7bNtJHbrSDfsI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27972948},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"ab5db9a9d120292262a8db6d4c675155d7304d50","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.1.4_1784729557721_0.6568748553970623","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alpaca-software/40kdc-data","version":"1.2.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.2.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"9b80aa8d076cea5ab6d9373a61507275b527dad5","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.2.0.tgz","fileCount":684,"integrity":"sha512-DHJng1RNN+3WyDU+M3ASInxLTh5Z1cgeHOtUCIXU/T8NrNqLamYZTj34hB+foflNaj8d3O2B8d4SbHVfIYHb1w==","signatures":[{"sig":"MEUCIBSHoLkWpEIjyHuLYFIQpbtjswhQW5l/FH43SJ2ig09FAiEA8ncIN1lzOMYl+QqDQFVhkhzfUAKoP1nN6U5EmDvM5V8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28003095},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"718512f81a977205a0aaf001efa3afe0ce123848","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.2.0_1784733558378_0.8347039033312922","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@alpaca-software/40kdc-data","version":"1.2.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.2.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"79682765c6ee2f30698c5ef1505648020d2e4684","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.2.1.tgz","fileCount":684,"integrity":"sha512-nOoTx1RdE80HKaVgMKIsndXjT91AOi/H6phdnWWHOhdfOz6TpzI2T1RfCzQvaasOE17DCUUv76ATAeVr+LLpGg==","signatures":[{"sig":"MEQCIBcVG+0U6zULJN8ydgRaRsMkN1pkRq502Fg1OC/oPuqWAiAwwVHl3lx0d0O/+ahTJQGFeV4P9mYOUDsNB1xaAx8nUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28048239},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"29442c35aa53d30480fdc2fbbfc2948beada1f36","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.0","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.2.1_1785351451344_0.31011686319570364","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@alpaca-software/40kdc-data","version":"1.2.2","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.2.2","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"5b2f09e1d6a51bce89c8d648579ee17bd0a273c3","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.2.2.tgz","fileCount":688,"integrity":"sha512-WcnIAzHknVBn1m/+Zlxs1+v5t4VIyFBf6xOn/kmdzBamGmn0JwbrgAS5pPZKlgEr9tWPXQNAiBbEDn/FbTKC8w==","signatures":[{"sig":"MEUCIQCL4UcH1d9TqSwJpVFyLCK2QEUHVG7zQJRXE8RTVlU9iwIgetene0p0ZBv6iCocM/D5n1zySCMS/ZW4B0IlkMXgDAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27631972},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"8a262ad8c051fbd94e715210813351348b671667","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","terrain:import-battlemaster":"tsx src/project-battlemaster.ts --write","terrain:project-battlemaster":"tsx src/project-battlemaster.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.0","bson":"^6.10.4","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.2.2_1786643734874_0.9730276709212742","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@alpaca-software/40kdc-data","version":"1.2.3","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.2.3","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"53d1031b0238c45a8c22017b05ef94cbcf3c4c28","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.2.3.tgz","fileCount":688,"integrity":"sha512-f+4S+APBYiqiQoAdW6/TvwMnKLOzoyJS4eryWAxEmOYM40/PEsjCWWTeaF2RKKurrNeL69IdfY65u+DvF6IdRQ==","signatures":[{"sig":"MEYCIQCev2ocTpSG4ChtOv1z7h5LRl/sLbcqDjgjYBmWTMT20wIhALzX2RzjjHK/sH4j+ayuVXmmuWvD9skYiv6FeH/rnGhu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27742778},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"348ff6656293089fec45f0a0a1d2f3500b31470b","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","terrain:import-battlemaster":"tsx src/project-battlemaster.ts --write","terrain:project-battlemaster":"tsx src/project-battlemaster.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.0","bson":"^6.10.4","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.2.3_1786649231755_0.40114952133208903","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@alpaca-software/40kdc-data","version":"1.2.5","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.2.5","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"8f49586638404aaaae126a6b4253bb077d3e1d47","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.2.5.tgz","fileCount":704,"integrity":"sha512-g49kFQSJgtJYNIvfmRw766amLIXzt2HIYJzp3tcaHuYcrp1kdKNHFF0RbwtYDds7YyqfWrwtuuya4q3j+KDxAg==","signatures":[{"sig":"MEYCIQDxt/EPPJBsGWJJ2IXjMa8fbd54KTjY+wp7kL4pZGBvAgIhALReil/IR6bY8snZc5NFaZGcjNMgc/1uUf2ri+lCkwmL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28293067},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"44f3c9e9aec07d2727951aeab98208d9f293ec97","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","audit:wtc":"tsx src/audit-wtc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","terrain:import-battlemaster":"tsx src/project-battlemaster.ts --write","terrain:project-battlemaster":"tsx src/project-battlemaster.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.0","bson":"^6.10.4","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.2.5_1787064915001_0.009552121465766783","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@alpaca-software/40kdc-data","version":"1.2.6","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.2.6","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"e6cdc0734e44de82e2dc7b9c67af21e11ef349ac","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.2.6.tgz","fileCount":708,"integrity":"sha512-5ii8zt/Diyus1tefgvUkuZwjg03NDJQUXDBkrthP1EOq1J5T4axhYy+hEUs8gyqYfRcWltNAO/Z9ApQdXyEvtA==","signatures":[{"sig":"MEQCID/QbaMNd35tbwEzmQP/I7vPWuytqATq8/4Mk24bMhDrAiBenp0M2XBlNUBxPeAahPgUioYO3/9kCDsQPLzwv2Q+nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28983720},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"10ffb5fdf7673f5ce727fdb2ad754b0ace61f380","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.2.6_1787337295009_0.15832036248850212","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@alpaca-software/40kdc-data","version":"1.2.7","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.2.7","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"1374d5c37f080abbb19bbfc4ff4741d6e9a9c6bb","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.2.7.tgz","fileCount":716,"integrity":"sha512-0ljumtkhe2ppNv8JMRTLuJf4X7wxhSjltzFnYEgr7C8H+4CbgG2OWwCR8fDv9KGXq2hgVTRfI4KT38csCvXTNw==","signatures":[{"sig":"MEQCIBZD0/+1WdcrCeX+QV5cUq26dZ1WoHsIwSudYC5GAt+oAiBDgC6T8CZZ6+Dd7j5mgf9+0UklrPESQhRcC0cpiVSaLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29512842},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"28aba75dfc872964c4f90134fdb07876ce85516f","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"wnmitch","email":"will@alpacasoft.dev"},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"10.9.8","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.2.7_1787689977142_0.5255415824282581","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alpaca-software/40kdc-data","version":"1.3.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.3.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"372b58218bf12e5688d9e71a74c613fcb090cc06","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.3.0.tgz","fileCount":716,"integrity":"sha512-fmAEe6N3TJbhn3JcAGGeV8DZcHJaxjYYC08HJ2vZakswIRhQftQpEqyGFoaqQouDRzduUrC7V5fug4G425Npaw==","signatures":[{"sig":"MEUCIGFNhSmpL8Y7LEwDfRk/e66PDxfinRT8IhABl5ZJPUVOAiEA/zb+3XUJDIuxFKXc3cE77NynHfD8+vqKQQKrIbqik7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30300243},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"b83e9e2e1794a476eb97f79b21be6ca44dc734f5","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.3.0_1787838716620_0.2089095976119002","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@alpaca-software/40kdc-data","version":"1.3.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.3.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"a071d9bb002443f1371efc75bb4a2d1b027c0bc4","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.3.1.tgz","fileCount":716,"integrity":"sha512-0nGtyJFMiGUswNM9YL/WH9/dMgVA+zFY1Xap0RXA+YHsYSsxQJ1DAIxEcaa11pB479TImfYTO50jVO4n+cN2qw==","signatures":[{"sig":"MEQCIE+CkGcN06dHNtpvV8sZrpNkRvgiIzpULBfMyCbAAdhdAiAIa3gt2mAC0W1tZnXbXRoDUqJmplieguTIqkZSDgXILA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31659000},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"756a2da5777eefb5e8c1eb78834faad7a042418c","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.3.1_1787856372465_0.21262213332038593","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@alpaca-software/40kdc-data","version":"1.3.2","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.3.2","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"ca2cee56f30f8dc59e4ff9beb3e39bb83d941d7c","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.3.2.tgz","fileCount":720,"integrity":"sha512-uSG6VctCJJloEfbhx3JYdsKud86M9oYLdVcsri/++AJXAJn4Drm1EeLoBtlcjMiQoe//gBPsYiMBn2WY0xWarw==","signatures":[{"sig":"MEYCIQDCXOgodM2qTCvek9NjAtSnZ4MQ2VnGXKvyr8F/ggs+sgIhANMJ4d9U9VJSbcgGtQAAgiPgEwFB/IMXDusLSvI8G6YO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31990119},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"bf3c28377678b573532ce568f4db273fef97e702","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.3.2_1787923889129_0.7096069367051043","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@alpaca-software/40kdc-data","version":"1.3.3","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.3.3","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"0e756f7740f705ddff7de42576851a4de13b4994","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.3.3.tgz","fileCount":720,"integrity":"sha512-Ap0LbeCxK5iyvOJVRfEXKxMh11ZQFuPDRr+fV69iIOZMWlmPIlD4Hdo6lSOXErh/BDOIGg3aKCWY1X2slcDQEA==","signatures":[{"sig":"MEUCIQD0+fv1ClSZRBnX15zujYUepvaVNKUXqtwK6XvCqWGGgQIgR9HINVHtxzoHZ/44pK4MFADWQ1BKpbyoCsis/5kYxv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32014554},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"c9c88e6391023daf41c88513e9ecb21950c56b1c","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.3.3_1787943922286_0.45538123605343306","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@alpaca-software/40kdc-data","version":"1.3.4","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.3.4","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"47202fc47a7eb3278f18b3b01418124621f44484","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.3.4.tgz","fileCount":744,"integrity":"sha512-6D1BRs4t4CeBWzydFSXSQIMRplZxUFWETmFw9gTbodCTWGfuyuBtE8aWWZ4Efbld0U8apsCAEFCuPAIgYORz3g==","signatures":[{"sig":"MEUCIQDuybGgGkxev9IRZI8ATkG4FqXlCag8SqqcDjiFSN4uQAIgBTLmhgOjkxwa8t5Erg2S4mQ8dIuyz2FG1ZoETrt1agY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35268781},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"f37efafa65452f1516add505954f42b4e30eea4f","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.3.4_1788202468643_0.41421240336372533","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@alpaca-software/40kdc-data","version":"1.3.5","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.3.5","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"9db9771545ba0fb18f6c3aefb4138be52b995b2a","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.3.5.tgz","fileCount":744,"integrity":"sha512-Qcrh+p8/KDG1fTzNlCzqgJB46uYlmIwsKCXCiizUjE63jWI0FtbKneQhOCTWJp32Kh2ujfrHblZpIIHncr/JpQ==","signatures":[{"sig":"MEQCIC5xcMd9jUCdiUQFMBHpS3RjmmNkP3RpQHFSZHzd/86FAiBamObQ5Of29T3I/Ce6Be3Al98OmkuGDwjlLe+cXMROCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35363367},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"608e732dd4e180ab767cd3a0ed16aa5853920c75","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.3.5_1788361817105_0.08429853324834613","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@alpaca-software/40kdc-data","version":"1.4.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.4.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"c0a3f2ce0d863b27ff969681229880ebd8ad1c0e","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.4.0.tgz","fileCount":744,"integrity":"sha512-Smjq96MvMKaRmK3mQGsBwaXopDQHEGHLNjcydW7YAcy3d81MLVBPHoO5sCVv1Vhsg/y1qFuME26MjPkTjTSa9A==","signatures":[{"sig":"MEYCIQCPBhb4QE+nsWLQoQH49kQahUqYQLZyhiICPCn4ElLwEwIhANK9tFpZuxLKSaSldc91nwvNoUR4Lt9k8abPzOTiVUOR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35366210},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"a3669f2d19892a17145f46e781cd8895dabacfc0","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.4.0_1788362191398_0.10488487704236582","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@alpaca-software/40kdc-data","version":"1.4.1","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.4.1","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"900f5e4e08d0c19bfa50afabe194b5677df70835","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.4.1.tgz","fileCount":744,"integrity":"sha512-ZC7v08wSP8eGqQq/3eo9MNe8FaHh7HTvihIuSNw1K0cV8TqC3B0BV0kZa6lpcxW73N2nLUKlEfVR1cnUTI97cA==","signatures":[{"sig":"MEYCIQDDyulje7EGMWOOd3j+vIRi7U9eF5U4BRSil1nY8ple6QIhANEeAg27/oWlRbPauRR19uzqM4VdMytdGINkrDZue2cL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35377408},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"17c149f55a3da4757f59cd795f4c3f3a0f6d6d68","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.17.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.4.1_1788389014542_0.3535182793806235","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@alpaca-software/40kdc-data","version":"1.4.2","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.4.2","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"e6afe7042fe36d25b06fca2e8c10d6b3328b72bc","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.4.2.tgz","fileCount":768,"integrity":"sha512-jvqeFGf2L04zQYN+FaII3tjAhUBnXzZDC6Mx6ivtsQFckEfbuGX+g1t4BMINGItz2BnHdp3H7PYcNCmjlNpjng==","signatures":[{"sig":"MEYCIQDHaImCj8AbiO6I1w6qPawGVWcoeuCpoZENvK2RRtw11wIhAM/g5125PM3obETn+UTiJaZoxE0wCBR61CPqJy/uHMq/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36745869},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"8ff79a59d5610965f0d73ec567a4f0de94540d1b","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:dangling-refs":"tsx src/audit-dangling-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","audit:source-digest":"tsx src/audit-source-digest.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","backfill:source-digest":"tsx src/backfill-source-digests.ts","bsdata:loadout-variants":"tsx src/convert-bsdata-loadout-variants.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.19.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.4.2_1788714229357_0.751821827477783","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@alpaca-software/40kdc-data","version":"1.4.3","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.4.3","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"1891ea05ca144fd47d0f0f0e0cd2d657df0befe8","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.4.3.tgz","fileCount":768,"integrity":"sha512-wvS//Z0X9BlqpHeQwv9/h7BR5KqWDaLKumN19xcHsXA9ZVqVXuH75VcZDjyAgevKGEyBNknIqMDPY3EbIrW1nA==","signatures":[{"sig":"MEQCIBzwSPkTT5KiJ98KXvBfG5hZaXyixn7GkW62OBf92YivAiA0pPnKgxTPR1cDbJD6E3voq0l5dwS5C9joMem+V0H/FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37384114},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"02ae224884d1b6a9122b48fb221e20b0200b96d9","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:dangling-refs":"tsx src/audit-dangling-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","audit:source-digest":"tsx src/audit-source-digest.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","backfill:source-digest":"tsx src/backfill-source-digests.ts","bsdata:loadout-variants":"tsx src/convert-bsdata-loadout-variants.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.19.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.4.3_1789059747947_0.15540840440153714","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alpaca-software/40kdc-data","version":"2.0.0","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@2.0.0","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"d7768a5d53ec23e97a0fed1bd0a09f2e03f3b54c","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-2.0.0.tgz","fileCount":768,"integrity":"sha512-XfCjp4qtIu2HLMnwNLbZhTQYNIrIHasZtM6q9M94FQ0X5WlSwSR2O+mx1pTb9lYk3ZztKopPGcs0CpSl8W+r5w==","signatures":[{"sig":"MEUCIEaw+BJj3GyULsOIdODTSGMOeRCswcNSlQWRrXtiqCcZAiEAkVJFwfD+mWP9QLq/0uhY/TIxGP0QWuWd1y4eP9rWJd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDR7UamkCcV2fXEiK13s5cHdGay5adDPqA6GIlZiYFOogIgX/xfGmFvUD54iK5DZgjjNBxVel27gIGaXk2YpvBphS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37384630},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"ca9c6f37d8fcd135cbb730835b8b2a377e372e50","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:dangling-refs":"tsx src/audit-dangling-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","audit:source-digest":"tsx src/audit-source-digest.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","backfill:source-digest":"tsx src/backfill-source-digests.ts","bsdata:loadout-variants":"tsx src/convert-bsdata-loadout-variants.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.19.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_2.0.0_1789432581987_0.448414971896699","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@alpaca-software/40kdc-data","version":"1.4.4","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"license":"SEE LICENSE IN LICENSE-TOOLS","_id":"@alpaca-software/40kdc-data@1.4.4","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"homepage":"https://40kdc.alpacasoft.dev","bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"dist":{"shasum":"78d0ff4ec381385a9200d12b4d098ccf2d9bb4c8","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.4.4.tgz","fileCount":768,"integrity":"sha512-0RmmKiIYMrWs1V8OTbL0vp8XZLU/qMrfqG5pr5Lo46EppDyq4MUAG48ToJc2kJpnY1qZ5c2XwSnxWsMTIqD5Qg==","signatures":[{"sig":"MEUCIC4YfbHio2aIP83Kz3XxHG0+BrAsU9hsUCAUepes33wAAiEAnXDssxhPpwGZqbBqEx0anY1K7p6+lbf5b8lWu/p9xFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCCz9RK6Zn9s3HigTy0jW7TSEU9vUGWK1sE6ILzYmRjiwIgdEc3aRjWVFd4bc2JhHKcrSlZX7lTtajNtDqhW+mjyiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37384630},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"6a2aa2d284cd677bb963a9e3d228d9964212991e","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:dangling-refs":"tsx src/audit-dangling-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","audit:source-digest":"tsx src/audit-source-digest.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","backfill:source-digest":"tsx src/backfill-source-digests.ts","bsdata:loadout-variants":"tsx src/convert-bsdata-loadout-variants.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.19.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"tmp":"tmp/40kdc-data_1.4.4_1789435076258_0.2194147308462493","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"_id":"@alpaca-software/40kdc-data@1.4.5","bin":{"40kdc-runner":"dist/runner.js","40kdc-validate":"dist/cli.js"},"bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"dist":{"shasum":"da57c5d9f0c53979cb15e32c0f809e2f32585be2","tarball":"https://registry.npmjs.org/@alpaca-software/40kdc-data/-/40kdc-data-1.4.5.tgz","fileCount":768,"integrity":"sha512-IsJRpmyvjMhCUn0OBwXn6/gXXNQzx0K+Ssd9azTb0QwrmSh/ouR9LmNRazpA0CCsI7pQM3yJn/XnijiqRkkkZg==","signatures":[{"sig":"MEUCIQCRXG6q8FwVUMgkogETOWWsoqEEculQUX3Q/0Cc9DCQcwIgN0zngh8ovWlSWFY5anamKmF5pr3u+kI23JJCkbAhiP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFJqjVr/voV1eSr8W4B+DV3dpWSrursCGINKc410yOzpAiEAuJBEG67GH1kdkG0seRG1grKYwv73dVwh9C8GDUY9N6o="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alpaca-software%2f40kdc-data@1.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37596229},"main":"./dist/index.js","name":"@alpaca-software/40kdc-data","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./validate":{"types":"./dist/schema-loader.d.ts","default":"./dist/schema-loader.js"},"./schemas/*":"./schemas/*"},"gitHead":"294087abbd879e6d6f2f9fd2dbbcd18f8ad3984c","license":"SEE LICENSE IN LICENSE-TOOLS","scripts":{"test":"vitest run","build":"npm run codegen:data && tsc","prepack":"npm run build && npm run copy:schemas","pretest":"npm run codegen:data","docs:api":"typedoc","mfm:sync":"tsx src/mfm/sync.ts","validate":"tsx src/cli.ts validate-all","audit:atc":"tsx src/audit-atc.ts","postbuild":"npm run audit:coverage && npm run audit:external-refs","preflight":"cd .. && just preflight","translate":"tsx src/cli.ts translate","mfm:bsdata":"tsx src/mfm/bsdata-backstop.ts","mfm:golden":"tsx src/ingest-mfm.ts golden","author:seed":"tsx src/author-seed.ts","author:apply":"tsx src/author-batch.ts apply","author:input":"tsx src/author-input.ts","codegen:data":"tsx src/codegen-data.ts","copy:schemas":"rm -rf schemas && cp -R ../schemas schemas","mfm:contract":"tsx src/mfm/gen-dump-schema.ts","mfm:download":"tsx src/mfm/download.ts","author:ingest":"tsx src/author-ingest.ts","author:repair":"tsx src/author-batch.ts repair","author:report":"tsx src/audit-phrasing.ts --review","author:review":"tsx src/author-batch.ts review","codegen:types":"json2ts -i ../crates/wh40kdc/schemas/bundled.schema.json -o src/generated.ts --unreachableDefinitions --bannerComment \"/* Generated from crates/wh40kdc/schemas/bundled.schema.json by 'npm run codegen:types'. DO NOT EDIT BY HAND. */\"","docs:api:html":"typedoc --options typedoc.html.json","validate:core":"tsx src/cli.ts validate-core","audit:coverage":"tsx src/cli.ts audit-coverage --write","audit:phrasing":"tsx src/cli.ts audit-phrasing --write","author:propose":"tsx src/author-batch.ts propose","bundle:schemas":"tsx src/bundle-schemas.ts","import:catalog":"tsx src/import-catalog.ts","link:abilities":"tsx src/link-abilities.ts","registry:build":"tsx src/build-share-registry.ts","gen:conformance":"tsx src/gen-conformance.ts","author:reconcile":"tsx src/author-reconcile.ts","author:seed-core":"tsx src/author-seed-core.ts","derive:keystones":"tsx src/derive-keystones.ts","audit:mfm-contract":"tsx src/audit-mfm-contract.ts","demo:rube-goldberg":"tsx src/rube-goldberg.ts","sync:external-refs":"tsx src/sync-external-refs.ts","audit:dangling-refs":"tsx src/audit-dangling-refs.ts","audit:external-refs":"tsx src/audit-external-refs.ts","audit:missing-units":"tsx src/audit-missing-units.ts","audit:source-digest":"tsx src/audit-source-digest.ts","validate:enrichment":"tsx src/cli.ts validate-enrichment","audit:store-coverage":"tsx src/audit-store-coverage.ts","extract:faction-pack":"tsx src/extract-faction-pack.ts","scrub:defensive-flag":"tsx src/scrub-defensive-flag.ts","author:backfill-store":"tsx src/author-backfill-store.ts","audit:loadout-coverage":"tsx src/audit-loadout-coverage.ts","backfill:source-digest":"tsx src/backfill-source-digests.ts","bsdata:loadout-variants":"tsx src/convert-bsdata-loadout-variants.ts"},"version":"1.4.5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a488884-5821-4e24-8d41-d10f4953b69d"}},"homepage":"https://40kdc.alpacasoft.dev","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"_npmVersion":"11.19.0","description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","directories":{},"maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.0","bson":"^7.3.2","glob":"^11.0.0","chalk":"^5.3.0","fflate":"^0.8.2","commander":"^12.0.0","ajv-formats":"^3.0.0","fast-xml-parser":"^4.5.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","typedoc":"^0.28.0","typescript":"^5.6.0","@types/node":"^22.0.0","typedoc-plugin-markdown":"^4.3.0","json-schema-to-typescript":"^15.0.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/40kdc-data_1.4.5_1789655936073_0.726600302913162"}}},"time":{"created":"2026-05-27T22:52:12.858Z","modified":"2026-09-17T14:38:56.652Z","0.1.0":"2026-05-27T22:52:13.282Z","0.1.1":"2026-05-28T01:50:56.111Z","0.1.2":"2026-05-28T21:16:18.708Z","0.1.3":"2026-05-31T19:03:34.571Z","0.2.0":"2026-06-01T00:45:40.012Z","0.3.0":"2026-06-01T20:39:23.736Z","0.3.1":"2026-06-02T19:39:20.698Z","0.3.2":"2026-06-02T19:57:51.982Z","0.4.0":"2026-06-03T13:01:41.522Z","0.4.5":"2026-06-04T02:59:59.881Z","0.4.6":"2026-06-04T13:08:22.029Z","0.4.7":"2026-06-04T14:58:21.938Z","0.4.8":"2026-06-04T16:05:19.917Z","0.4.11":"2026-06-04T18:02:40.707Z","0.4.12":"2026-06-04T18:21:52.537Z","0.4.13":"2026-06-04T20:00:33.844Z","0.4.14":"2026-06-04T22:51:47.371Z","0.4.15":"2026-06-05T02:17:00.519Z","0.4.16":"2026-06-05T14:01:18.233Z","0.4.18":"2026-06-05T16:11:55.399Z","0.5.0":"2026-06-05T18:13:30.554Z","0.5.1":"2026-06-06T00:02:58.589Z","0.5.2":"2026-06-06T00:47:32.283Z","0.5.3":"2026-06-06T01:55:11.436Z","0.5.4":"2026-06-06T22:32:51.108Z","0.5.5":"2026-06-06T22:53:07.159Z","0.5.11":"2026-06-08T17:27:20.528Z","0.5.12":"2026-06-09T14:42:29.668Z","0.5.14":"2026-06-09T19:23:58.564Z","0.5.15":"2026-06-12T15:42:46.873Z","0.5.16":"2026-06-13T03:26:17.797Z","0.5.17":"2026-06-13T15:19:13.466Z","0.5.18":"2026-06-16T06:02:26.816Z","1.0.0":"2026-06-17T20:01:40.123Z","1.0.1":"2026-06-17T23:47:21.088Z","1.0.3":"2026-06-18T18:40:26.196Z","1.0.4":"2026-06-19T14:33:27.274Z","1.0.5":"2026-06-19T16:56:58.321Z","1.0.6":"2026-06-19T21:15:25.500Z","1.0.7":"2026-06-23T17:47:15.297Z","1.0.8":"2026-06-24T01:13:20.963Z","1.0.9":"2026-06-24T18:58:57.268Z","1.0.10":"2026-06-25T01:33:55.794Z","1.0.11":"2026-06-25T16:35:00.499Z","1.0.13":"2026-06-26T02:39:41.098Z","1.0.14":"2026-06-29T18:39:50.106Z","1.0.15":"2026-06-29T20:22:00.884Z","1.0.16":"2026-06-30T19:18:47.001Z","1.0.17":"2026-06-30T19:19:43.809Z","1.0.18":"2026-07-02T15:43:13.495Z","1.0.19":"2026-07-02T16:03:17.220Z","1.0.20":"2026-07-04T18:01:42.758Z","1.0.21":"2026-07-07T13:56:11.914Z","1.0.22":"2026-07-07T17:00:42.419Z","1.0.23":"2026-07-08T14:54:49.782Z","1.0.24":"2026-07-09T17:45:29.181Z","1.0.25":"2026-07-10T13:46:29.203Z","1.0.26":"2026-07-10T16:51:07.530Z","1.0.27":"2026-07-14T13:29:25.729Z","1.0.28":"2026-07-14T14:07:59.009Z","1.1.1":"2026-07-16T00:49:47.049Z","1.1.2":"2026-07-16T18:45:11.691Z","1.1.3":"2026-07-22T14:12:22.886Z","1.1.4":"2026-07-22T14:12:37.965Z","1.2.0":"2026-07-22T15:19:18.565Z","1.2.1":"2026-07-29T18:57:31.617Z","1.2.2":"2026-08-13T17:55:35.126Z","1.2.3":"2026-08-13T19:27:12.049Z","1.2.5":"2026-08-18T14:55:15.259Z","1.2.6":"2026-08-21T18:34:55.282Z","1.2.7":"2026-08-25T20:32:57.445Z","1.3.0":"2026-08-27T13:51:56.897Z","1.3.1":"2026-08-27T18:46:12.774Z","1.3.2":"2026-08-28T13:31:29.383Z","1.3.3":"2026-08-28T19:05:22.543Z","1.3.4":"2026-08-31T18:54:28.916Z","1.3.5":"2026-09-02T15:10:17.481Z","1.4.0":"2026-09-02T15:16:31.704Z","1.4.1":"2026-09-02T22:43:34.801Z","1.4.2":"2026-09-06T17:03:49.645Z","1.4.3":"2026-09-10T17:02:28.220Z","2.0.0":"2026-09-15T00:36:22.154Z","1.4.4":"2026-09-15T01:17:56.484Z","1.4.5":"2026-09-17T14:38:56.257Z"},"bugs":{"url":"https://github.com/wn-mitch/40kdc-data/issues"},"license":"SEE LICENSE IN LICENSE-TOOLS","homepage":"https://40kdc.alpacasoft.dev","keywords":["warhammer","warhammer-40k","40k","wargaming","dataset","tabletop","json-schema"],"repository":{"url":"git+https://github.com/wn-mitch/40kdc-data.git","type":"git","directory":"tools"},"description":"The 40kdc Warhammer 40K dataset behind a linked, typed API — find units, follow them to their weapons, abilities, phases, and factions. Also validates data against the canonical JSON Schemas.","maintainers":[{"name":"wnmitch","email":"will@alpacasoft.dev"}],"readme":"# @alpaca-software/40kdc-data\n\nPublished by [Alpaca Software](https://alpacasoft.dev).\n\nThe [40kdc](https://40kdc.alpacasoft.dev) Warhammer 40,000\ndataset behind a **linked, typed API**. Find a unit, then walk straight to its\nweapons, abilities, the game phases those abilities act in, and its faction —\nall strongly typed, all resolved for you.\n\nThe full dataset is embedded in the package, so there is no network call, no\ndatabase, and no filesystem access at runtime. It works the same in Node,\nbundlers, and the browser.\n\n```ts\nimport { units } from \"@alpaca-software/40kdc-data\";\n\nunits.find(\"Kharn\")!.abilities\n  .filter(a => a.phases.includes(\"fight\"))\n  .map(a => a.id); // [\"legendary-killer\", \"berzerker-frenzy\"]\n```\n\n## Install\n\n```bash\nnpm install @alpaca-software/40kdc-data\n```\n\n## The shape\n\nTop-level collections (`units`, `weapons`, `factions`, `abilities`,\n`detachments`, `stratagems`, …) are accessors over a single embedded\n[`Dataset`](docs/api/data/classes/Dataset.md). Each collection is iterable and\noffers:\n\n| Method | Returns |\n| --- | --- |\n| `.all` | every record (deduplicated) |\n| `.get(id)` | one record by exact id |\n| `.find(nameOrId)` | first match by id or name |\n| `.findAll(nameOrId)` | every match (surfaces names shared across factions) |\n| `.byFaction(id)` | records belonging to a faction |\n\nRecords resolve their links lazily:\n\n- `unit.faction`, `unit.weapons`, `unit.abilities`\n- `ability.phases` (joined from `phase-mappings`), `ability.units`\n- `weapon.units`\n- `faction.units`, `faction.abilities`, `faction.weapons`\n\nThe full underlying record is always available via `.raw`.\n\n### Name matching is built for a global player base\n\nWarhammer 40,000 is played worldwide, and many names carry diacritics or\npunctuation — \"Khârn the Betrayer\", \"T'au\", \"Be'lakor\". `find`/`findAll` are\ndiacritic- and punctuation-insensitive, so `find(\"Kharn\")` resolves \"Khârn the\nBetrayer\" and `find(\"Belakor\")` resolves \"Be'lakor\". The exact rule is exported\nas `normalizeName` so you can reproduce it in your own search UI.\n\n## API reference\n\nAuto-generated from the source: [`docs/api/`](docs/api/README.md).\n\n## See it in action\n\nOpen-source example apps built on this package:\n\n- [List Builder](https://list-builder.alpacasoft.dev) — build an army list and export to ListForge / NewRecruit.\n- [Salvo](https://salvo.alpacasoft.dev) — damage calculator over the cruncher and abilities-resolver.\n- [Mission Matrix](https://mission-matrix.alpacasoft.dev) — the 11th-edition Force Disposition matchup grid.\n- [Layout Editor](https://layout-editor.alpacasoft.dev) — author terrain layouts on a board; exports terrain-layout JSON.\n- [Hull Tracer](https://hull-tracer.alpacasoft.dev) — trace a model's collision hull from a top-down photo; exports geometry-only hull-shape JSON.\n\n## Also: schema validation\n\nThis package also ships the canonical JSON Schemas and an AJV-based validator\n(`createValidator`, `listSchemaIds`, and the `40kdc-validate` CLI) for checking\ndata against them. See the repository root for schema details.\n\n## Licensing & attribution\n\n- Code (`tools/`): **MIT + attribution requirement** — see [LICENSE-TOOLS](../LICENSE-TOOLS).\n- Embedded enrichment data (`data/enrichment/`): **CC BY 4.0** —\n  attribution: *Alpaca Software and the 40kdc community contributors*\n  (<https://github.com/wn-mitch/40kdc-data>).\n- JSON Schemas: **CC0**.\n\n**Public deployment requirement:** Any publicly accessible application or\nservice that ships this package as part of its end-user product must display a\nvisible credit containing the text **\"Powered by 40kdc-data\"** and a link to\n<https://40kdc.alpacasoft.dev> in a user-accessible location (footer, about\npage, or credits section). Private use and library redistribution are exempt.\n\nStat lines and points are numerical facts. Ability and rules text are never\nstored — abilities are community-authored structured mechanics (the Ability\nDSL), not reproductions of copyrighted text.\n","readmeFilename":"README.md"}