{"id":"@lssm-tech/lib.source-extractors","slug":"lib.source-extractors","name":"@lssm-tech/lib.source-extractors","version":"4.0.4","path":"packages/tools/source-extractors","manifestPath":"packages/tools/source-extractors/package.json","manifestBlobSha":"0a757ab1677624bd74b72964a56cfe9c7d10a50d","layer":"tools","physicalArea":null,"primaryArea":"tooling-and-agent-delivery","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"stable"},"description":"Extract contract candidates from TypeScript source code across multiple frameworks (NestJS, Express, Fastify, Hono, Elysia, tRPC, Next.js)","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"library","status":"active","adoptionMode":"adoptable","stability":"stable","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./codegen","./extractors","./types"],"documentation":[{"title":"Lib Source Extractors documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.source-extractors","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.source.extractors","title":"Lib Source Extractors","description":"Extract contract candidates from TypeScript source code across multiple frameworks (NestJS, Express, Fastify, Hono, Elysia, tRPC, Next.js)","status":"active","useCases":["Adopt extract contract candidates from typescript source code across multiple frameworks (nestjs, express, fastify, hono, elysia, trpc, next.js)"],"aliases":["contractspec","source-extraction","nestjs","express","fastify","hono","elysia","trpc","typescript","lib","source","extractors"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.source-extractors","symbols":[]},{"from":"@lssm-tech/lib.source-extractors/codegen","symbols":[]},{"from":"@lssm-tech/lib.source-extractors/extractors","symbols":[]},{"from":"@lssm-tech/lib.source-extractors/types","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.source-extractors package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.source.extractors","from":"@lssm-tech/lib.source-extractors","symbols":[]},{"capabilityId":"package.lssm.tech.lib.source.extractors","from":"@lssm-tech/lib.source-extractors/codegen","symbols":[]},{"capabilityId":"package.lssm.tech.lib.source.extractors","from":"@lssm-tech/lib.source-extractors/extractors","symbols":[]},{"capabilityId":"package.lssm.tech.lib.source.extractors","from":"@lssm-tech/lib.source-extractors/types","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint":"bun 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","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.contracts-spec-core":"workspace:^","@lssm-tech/lib.schema":"workspace:^","typescript":"catalog:","zod":"catalog:"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","@lssm-tech/tool.bun":"workspace:*"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./codegen":"./src/codegen/index.ts","./extractors":"./src/extractors/index.ts","./types":"./src/types.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","browser":"./dist/browser/codegen/index.js","bun":"./dist/codegen/index.js","node":"./dist/node/codegen/index.js","default":"./dist/codegen/index.js"},"./extractors":{"types":"./dist/extractors/index.d.ts","browser":"./dist/browser/extractors/index.js","bun":"./dist/extractors/index.js","node":"./dist/node/extractors/index.js","default":"./dist/extractors/index.js"},"./types":{"types":"./dist/types.d.ts","browser":"./dist/browser/types.js","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/lib.source-extractors","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/tools/source-extractors/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./codegen","importPath":"@lssm-tech/lib.source-extractors/codegen","target":"./src/codegen/index.ts","targets":[{"conditions":[],"target":"./src/codegen/index.ts","sourcePath":"packages/tools/source-extractors/src/codegen/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors/src/codegen/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./extractors","importPath":"@lssm-tech/lib.source-extractors/extractors","target":"./src/extractors/index.ts","targets":[{"conditions":[],"target":"./src/extractors/index.ts","sourcePath":"packages/tools/source-extractors/src/extractors/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors/src/extractors/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/lib.source-extractors/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/tools/source-extractors/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors/src/types.ts","sourceStatus":"verified source file"}]}],"entryCount":4,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Source Extractors documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.source-extractors","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.source-extractors.txt"},"readme":{"status":"available","body":"# @lssm-tech/lib.source-extractors\n\nThis contributor/compiler package is owned at `packages/tools/source-extractors`.\nIts published package name and documented import paths remain unchanged.\n\nWebsite: https://contractspec.io\n\n**Extract contract candidates from TypeScript source code across multiple frameworks (NestJS, Express, Fastify, Hono, Elysia, tRPC, Next.js).**\n\n## What It Provides\n\n- **Layer**: lib.\n- **Consumers**: CLI, bundles.\n- Related ContractSpec packages include `@lssm-tech/lib.contracts-spec`, `@lssm-tech/lib.schema`, `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.\n- Related ContractSpec packages include `@lssm-tech/lib.contracts-spec`, `@lssm-tech/lib.schema`, `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.\n\n## Installation\n\n`npm install @lssm-tech/lib.source-extractors`\n\nor\n\n`bun add @lssm-tech/lib.source-extractors`\n\n## Usage\n\nImport the root entrypoint from `@lssm-tech/lib.source-extractors`, or choose a documented subpath when you only need one part of the package surface.\n\n## Architecture\n\n- `src/__fixtures__` is part of the package's public or composition surface.\n- `src/__snapshots__` is part of the package's public or composition surface.\n- `src/codegen` is part of the package's public or composition surface.\n- `src/codegen.test.ts` is part of the package's public or composition surface.\n- `src/detect.test.ts` is part of the package's public or composition surface.\n- `src/detect.ts` is part of the package's public or composition surface.\n- `src/edge-cases.test.ts` is part of the package's public or composition surface.\n- `src/index.ts` is the root public barrel and package entrypoint.\n- `src/types.ts` is shared public type definitions.\n\n## Public Entry Points\n\n- Export `.` resolves through `./src/index.ts`.\n- Export `./codegen` resolves through `./src/codegen/index.ts`.\n- Export `./extractors` resolves through `./src/extractors/index.ts`.\n- Export `./types` resolves through `./src/types.ts`.\n\n## Local Commands\n\n- `bun run dev` — contractspec-bun-build dev\n- `bun run build` — contractspec-bun-build build\n- `bun run test` — bun test\n- `bun run lint` — bun lint:fix\n- `bun run lint:check` — biome check .\n- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .\n- `bun run typecheck` — tsgo --noEmit\n- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose\n- `bun run publish:pkg:canary` — bun publish:pkg --tag canary\n- `bun run clean` — rimraf dist .turbo\n- `bun run build:bundle` — contractspec-bun-build transpile\n- `bun run build:types` — contractspec-bun-build types\n- `bun run prebuild` — contractspec-bun-build prebuild\n\n## Recent Updates\n\n- Replace eslint+prettier by biomejs to optimize speed.\n\n## Notes\n\n- Extractor interface must support multiple frameworks — keep it generic.\n- Codegen output must stay deterministic (same input → same output, always).\n\n### Internal source ownership\n\nDetection rules, input strategies and project discovery have private source owners.\nIR metadata, candidate shapes and extraction results remain available through the\nexisting type barrel. No package identity, public entrypoint or output changes.\nOriginal focused test paths aggregate the same suites after cohesive splitting.\n","sourcePath":"packages/tools/source-extractors/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/tools/source-extractors/README.md","blobSha":"04f0a82c58f97e7aae6c1a6a41dea23b05eff6ae","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"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":"lib.source-extractors","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.source-extractors/","contextUrl":"/docs/packages/lib.source-extractors.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}