{"id":"@lssm-tech/tool.i18n-dead-key-pruner","slug":"tool.i18n-dead-key-pruner","name":"@lssm-tech/tool.i18n-dead-key-pruner","version":"2.0.4","path":"packages/tools/i18n-dead-key-pruner","manifestPath":"packages/tools/i18n-dead-key-pruner/package.json","manifestBlobSha":"497ca458a8dbcfadf00f73d1345b2450f421d3f2","layer":"tools","physicalArea":null,"primaryArea":"tooling-and-agent-delivery","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"tool","catalogStatus":"active","adoptionMode":"operator-only","stability":"experimental"},"description":"Build-time tool that prunes unreferenced translation catalog keys using RouteShardManifest reachability and t('key') source scanning","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"tool","status":"active","adoptionMode":"operator-only","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./catalog-reader","./manifest-reader","./pruner","./reachability-map","./reporter","./source-scanner","./types"],"documentation":[{"title":"Tool I18n Dead Key Pruner documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Ftool.i18n-dead-key-pruner","kind":"readme"}],"examples":[],"replacements":[],"nonAdoptableRationale":"This tool is published for execution by operators, not as a reusable library dependency."},"canonicalImports":[],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","clean":"rimraf dist .turbo","lint":"bun run lint:fix","lint:fix":"node ../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../scripts/biome.cjs check --write .","lint:check":"node ../../../scripts/biome.cjs check .","test":"bun test","typecheck":"tsgo --noEmit","prebuild":"contractspec-bun-build prebuild"},"scriptStatus":"complete pinned manifest","dependencies":{"commander":"catalog:server"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:","@lssm-tech/tool.bun":"workspace:*"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./catalog-reader":"./src/catalog-reader.ts","./manifest-reader":"./src/manifest-reader.ts","./pruner":"./src/pruner.ts","./reachability-map":"./src/reachability-map.ts","./reporter":"./src/reporter.ts","./source-scanner":"./src/source-scanner.ts","./types":"./src/types.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./catalog-reader":{"types":"./dist/catalog-reader.d.ts","bun":"./dist/catalog-reader.js","node":"./dist/node/catalog-reader.js","default":"./dist/catalog-reader.js"},"./manifest-reader":{"types":"./dist/manifest-reader.d.ts","bun":"./dist/manifest-reader.js","node":"./dist/node/manifest-reader.js","default":"./dist/manifest-reader.js"},"./pruner":{"types":"./dist/pruner.d.ts","bun":"./dist/pruner.js","node":"./dist/node/pruner.js","default":"./dist/pruner.js"},"./reachability-map":{"types":"./dist/reachability-map.d.ts","bun":"./dist/reachability-map.js","node":"./dist/node/reachability-map.js","default":"./dist/reachability-map.js"},"./reporter":{"types":"./dist/reporter.d.ts","bun":"./dist/reporter.js","node":"./dist/node/reporter.js","default":"./dist/reporter.js"},"./source-scanner":{"types":"./dist/source-scanner.d.ts","bun":"./dist/source-scanner.js","node":"./dist/node/source-scanner.js","default":"./dist/source-scanner.js"},"./types":{"types":"./dist/types.d.ts","bun":"./dist/types.js","node":"./dist/node/types.js","default":"./dist/types.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/tool.i18n-dead-key-pruner","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./catalog-reader","importPath":"@lssm-tech/tool.i18n-dead-key-pruner/catalog-reader","target":"./src/catalog-reader.ts","targets":[{"conditions":[],"target":"./src/catalog-reader.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/catalog-reader.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/catalog-reader.ts","sourceStatus":"verified source file"}]},{"subpath":"./manifest-reader","importPath":"@lssm-tech/tool.i18n-dead-key-pruner/manifest-reader","target":"./src/manifest-reader.ts","targets":[{"conditions":[],"target":"./src/manifest-reader.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/manifest-reader.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/manifest-reader.ts","sourceStatus":"verified source file"}]},{"subpath":"./pruner","importPath":"@lssm-tech/tool.i18n-dead-key-pruner/pruner","target":"./src/pruner.ts","targets":[{"conditions":[],"target":"./src/pruner.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/pruner.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/pruner.ts","sourceStatus":"verified source file"}]},{"subpath":"./reachability-map","importPath":"@lssm-tech/tool.i18n-dead-key-pruner/reachability-map","target":"./src/reachability-map.ts","targets":[{"conditions":[],"target":"./src/reachability-map.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/reachability-map.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/reachability-map.ts","sourceStatus":"verified source file"}]},{"subpath":"./reporter","importPath":"@lssm-tech/tool.i18n-dead-key-pruner/reporter","target":"./src/reporter.ts","targets":[{"conditions":[],"target":"./src/reporter.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/reporter.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/reporter.ts","sourceStatus":"verified source file"}]},{"subpath":"./source-scanner","importPath":"@lssm-tech/tool.i18n-dead-key-pruner/source-scanner","target":"./src/source-scanner.ts","targets":[{"conditions":[],"target":"./src/source-scanner.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/source-scanner.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/source-scanner.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/tool.i18n-dead-key-pruner/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/tools/i18n-dead-key-pruner/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/src/types.ts","sourceStatus":"verified source file"}]}],"entryCount":8,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Tool I18n Dead Key Pruner documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Ftool.i18n-dead-key-pruner","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/i18n-dead-key-pruner/package.json","readme":null,"guide":null},"readme":{"status":"missing at source snapshot","body":null,"sourcePath":null,"sourceUrl":null,"blobSha":null,"sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":null,"integrity":null,"executionStatus":"not applicable"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"tooling-and-agent-delivery","areaTitle":"CLI, authoring and agent tooling","displayName":"tool.i18n-dead-key-pruner","runtimes":["node"],"platforms":["server"],"kind":"tool","scope":"Package manifest","canonicalRoute":"/docs/packages/tool.i18n-dead-key-pruner/","contextUrl":"/docs/packages/tool.i18n-dead-key-pruner.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}