@contractspec/lib.source-extractors 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/codegen/index.js +225 -0
- package/dist/browser/extractors/index.js +835 -0
- package/dist/browser/index.js +1215 -0
- package/dist/browser/types.js +0 -0
- package/dist/codegen/index.d.ts +9 -11
- package/dist/codegen/index.d.ts.map +1 -1
- package/dist/codegen/index.js +223 -14
- package/dist/codegen/operation-gen.d.ts +9 -8
- package/dist/codegen/operation-gen.d.ts.map +1 -1
- package/dist/codegen/registry-gen.d.ts +7 -6
- package/dist/codegen/registry-gen.d.ts.map +1 -1
- package/dist/codegen/schema-gen.d.ts +9 -8
- package/dist/codegen/schema-gen.d.ts.map +1 -1
- package/dist/codegen/types.d.ts +29 -32
- package/dist/codegen/types.d.ts.map +1 -1
- package/dist/detect.d.ts +19 -17
- package/dist/detect.d.ts.map +1 -1
- package/dist/extract.d.ts +10 -8
- package/dist/extract.d.ts.map +1 -1
- package/dist/extractors/base.d.ts +76 -75
- package/dist/extractors/base.d.ts.map +1 -1
- package/dist/extractors/elysia/extractor.d.ts +15 -12
- package/dist/extractors/elysia/extractor.d.ts.map +1 -1
- package/dist/extractors/express/extractor.d.ts +16 -12
- package/dist/extractors/express/extractor.d.ts.map +1 -1
- package/dist/extractors/fastify/extractor.d.ts +16 -12
- package/dist/extractors/fastify/extractor.d.ts.map +1 -1
- package/dist/extractors/hono/extractor.d.ts +15 -12
- package/dist/extractors/hono/extractor.d.ts.map +1 -1
- package/dist/extractors/index.d.ts +16 -17
- package/dist/extractors/index.d.ts.map +1 -1
- package/dist/extractors/index.js +834 -40
- package/dist/extractors/nestjs/extractor.d.ts +28 -23
- package/dist/extractors/nestjs/extractor.d.ts.map +1 -1
- package/dist/extractors/next-api/extractor.d.ts +16 -13
- package/dist/extractors/next-api/extractor.d.ts.map +1 -1
- package/dist/extractors/trpc/extractor.d.ts +16 -12
- package/dist/extractors/trpc/extractor.d.ts.map +1 -1
- package/dist/extractors/zod/extractor.d.ts +15 -13
- package/dist/extractors/zod/extractor.d.ts.map +1 -1
- package/dist/index.d.ts +30 -7
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1215 -6
- package/dist/node/codegen/index.js +225 -0
- package/dist/node/extractors/index.js +835 -0
- package/dist/node/index.js +1215 -0
- package/dist/node/types.js +0 -0
- package/dist/registry.d.ts +69 -68
- package/dist/registry.d.ts.map +1 -1
- package/dist/types.d.ts +182 -185
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/package.json +60 -21
- package/dist/_virtual/_rolldown/runtime.js +0 -18
- package/dist/codegen/index.js.map +0 -1
- package/dist/codegen/operation-gen.js +0 -91
- package/dist/codegen/operation-gen.js.map +0 -1
- package/dist/codegen/registry-gen.js +0 -47
- package/dist/codegen/registry-gen.js.map +0 -1
- package/dist/codegen/schema-gen.js +0 -93
- package/dist/codegen/schema-gen.js.map +0 -1
- package/dist/detect.js +0 -177
- package/dist/detect.js.map +0 -1
- package/dist/extract.js +0 -125
- package/dist/extract.js.map +0 -1
- package/dist/extractors/base.js +0 -152
- package/dist/extractors/base.js.map +0 -1
- package/dist/extractors/elysia/extractor.js +0 -58
- package/dist/extractors/elysia/extractor.js.map +0 -1
- package/dist/extractors/express/extractor.js +0 -61
- package/dist/extractors/express/extractor.js.map +0 -1
- package/dist/extractors/fastify/extractor.js +0 -61
- package/dist/extractors/fastify/extractor.js.map +0 -1
- package/dist/extractors/hono/extractor.js +0 -57
- package/dist/extractors/hono/extractor.js.map +0 -1
- package/dist/extractors/index.js.map +0 -1
- package/dist/extractors/nestjs/extractor.js +0 -118
- package/dist/extractors/nestjs/extractor.js.map +0 -1
- package/dist/extractors/next-api/extractor.js +0 -80
- package/dist/extractors/next-api/extractor.js.map +0 -1
- package/dist/extractors/trpc/extractor.js +0 -71
- package/dist/extractors/trpc/extractor.js.map +0 -1
- package/dist/extractors/zod/extractor.js +0 -69
- package/dist/extractors/zod/extractor.js.map +0 -1
- package/dist/registry.js +0 -87
- package/dist/registry.js.map +0 -1
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* NestJS extractor.
|
|
3
|
+
*
|
|
4
|
+
* Extracts contract candidates from NestJS applications by parsing:
|
|
5
|
+
* - @Controller() decorated classes
|
|
6
|
+
* - @Get(), @Post(), etc. decorated methods
|
|
7
|
+
* - Class-validator DTOs
|
|
8
|
+
* - HttpException patterns
|
|
9
|
+
*/
|
|
10
|
+
import { BaseExtractor, type ExtractionContext } from '../base';
|
|
4
11
|
/**
|
|
5
12
|
* NestJS framework extractor.
|
|
6
13
|
*/
|
|
7
|
-
declare class NestJsExtractor extends BaseExtractor {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
export declare class NestJsExtractor extends BaseExtractor {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
frameworks: string[];
|
|
18
|
+
priority: number;
|
|
19
|
+
protected doExtract(ctx: ExtractionContext): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Extract controllers and their routes from a file.
|
|
22
|
+
*/
|
|
23
|
+
private extractControllers;
|
|
24
|
+
/**
|
|
25
|
+
* Extract DTO classes from a file.
|
|
26
|
+
*/
|
|
27
|
+
private extractDtos;
|
|
28
|
+
/**
|
|
29
|
+
* Normalize a path (remove double slashes, ensure leading slash).
|
|
30
|
+
*/
|
|
31
|
+
private normalizePath;
|
|
25
32
|
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { NestJsExtractor };
|
|
28
33
|
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/nestjs/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAsBhE;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAChD,EAAE,SAAY;IACd,IAAI,SAAsB;IAC1B,UAAU,WAAc;IACxB,QAAQ,SAAM;cAEE,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgChE;;OAEG;YACW,kBAAkB;IAwEhC;;OAEG;YACW,WAAW;IAiCzB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Next.js API Routes extractor.
|
|
3
|
+
*
|
|
4
|
+
* Extracts contract candidates from Next.js applications by parsing:
|
|
5
|
+
* - App Router API routes (app/api/.../route.ts)
|
|
6
|
+
* - Pages Router API routes (pages/api/.../*.ts)
|
|
7
|
+
*/
|
|
8
|
+
import { BaseExtractor, type ExtractionContext } from '../base';
|
|
9
|
+
export declare class NextApiExtractor extends BaseExtractor {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
frameworks: string[];
|
|
13
|
+
priority: number;
|
|
14
|
+
protected doExtract(ctx: ExtractionContext): Promise<void>;
|
|
15
|
+
private extractAppRoutes;
|
|
16
|
+
private extractPagesRoutes;
|
|
12
17
|
}
|
|
13
|
-
//#endregion
|
|
14
|
-
export { NextApiExtractor };
|
|
15
18
|
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/next-api/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAUhE,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,EAAE,SAAc;IAChB,IAAI,SAA2B;IAC/B,UAAU,WAAgB;IAC1B,QAAQ,SAAM;cAEE,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YA2BlD,gBAAgB;YAoChB,kBAAkB;CA+BjC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
/**
|
|
2
|
+
* tRPC extractor.
|
|
3
|
+
*
|
|
4
|
+
* Extracts contract candidates from tRPC applications by parsing:
|
|
5
|
+
* - router definitions
|
|
6
|
+
* - procedure definitions (query, mutation)
|
|
7
|
+
* - Zod input/output schemas
|
|
8
|
+
*/
|
|
9
|
+
import { BaseExtractor, type ExtractionContext } from '../base';
|
|
10
|
+
export declare class TrpcExtractor extends BaseExtractor {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
frameworks: string[];
|
|
14
|
+
priority: number;
|
|
15
|
+
protected doExtract(ctx: ExtractionContext): Promise<void>;
|
|
16
|
+
private extractProcedures;
|
|
11
17
|
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { TrpcExtractor };
|
|
14
18
|
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/trpc/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAWhE,qBAAa,aAAc,SAAQ,aAAa;IAC9C,EAAE,SAAU;IACZ,IAAI,SAAoB;IACxB,UAAU,WAAY;IACtB,QAAQ,SAAM;cAEE,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBlD,iBAAiB;CA6ChC"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Zod schema extractor.
|
|
3
|
+
*
|
|
4
|
+
* Extracts standalone Zod schema definitions that aren't tied to a specific framework.
|
|
5
|
+
* Useful for shared validation schemas.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseExtractor, type ExtractionContext } from '../base';
|
|
8
|
+
export declare class ZodSchemaExtractor extends BaseExtractor {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
frameworks: string[];
|
|
12
|
+
priority: number;
|
|
13
|
+
detect(): Promise<boolean>;
|
|
14
|
+
protected doExtract(ctx: ExtractionContext): Promise<void>;
|
|
15
|
+
private extractSchemas;
|
|
12
16
|
}
|
|
13
|
-
//#endregion
|
|
14
|
-
export { ZodSchemaExtractor };
|
|
15
17
|
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/zod/extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAShE,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,EAAE,SAAS;IACX,IAAI,SAA0B;IAC9B,UAAU,WAAW;IACrB,QAAQ,SAAK;IAEP,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;cAKhB,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBlD,cAAc;CAwC7B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @contractspec/lib.source-extractors
|
|
3
|
+
*
|
|
4
|
+
* Extract contract candidates from TypeScript source code across multiple frameworks.
|
|
5
|
+
* Produces an Intermediate Representation (IR) that can be converted to ContractSpec definitions.
|
|
6
|
+
*
|
|
7
|
+
* Supported frameworks:
|
|
8
|
+
* - NestJS
|
|
9
|
+
* - Express
|
|
10
|
+
* - Fastify
|
|
11
|
+
* - Hono
|
|
12
|
+
* - Elysia
|
|
13
|
+
* - tRPC
|
|
14
|
+
* - Next.js API Routes
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { extractFromProject, detectFramework } from '@contractspec/lib.source-extractors';
|
|
19
|
+
*
|
|
20
|
+
* const framework = await detectFramework('./my-project');
|
|
21
|
+
* const ir = await extractFromProject('./my-project', { framework });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export * from './types';
|
|
25
|
+
export * from './registry';
|
|
26
|
+
export * from './detect';
|
|
27
|
+
export * from './extract';
|
|
28
|
+
export * as extractors from './extractors/index';
|
|
29
|
+
export * as codegen from './codegen/index';
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC"}
|