@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.
Files changed (86) hide show
  1. package/dist/browser/codegen/index.js +225 -0
  2. package/dist/browser/extractors/index.js +835 -0
  3. package/dist/browser/index.js +1215 -0
  4. package/dist/browser/types.js +0 -0
  5. package/dist/codegen/index.d.ts +9 -11
  6. package/dist/codegen/index.d.ts.map +1 -1
  7. package/dist/codegen/index.js +223 -14
  8. package/dist/codegen/operation-gen.d.ts +9 -8
  9. package/dist/codegen/operation-gen.d.ts.map +1 -1
  10. package/dist/codegen/registry-gen.d.ts +7 -6
  11. package/dist/codegen/registry-gen.d.ts.map +1 -1
  12. package/dist/codegen/schema-gen.d.ts +9 -8
  13. package/dist/codegen/schema-gen.d.ts.map +1 -1
  14. package/dist/codegen/types.d.ts +29 -32
  15. package/dist/codegen/types.d.ts.map +1 -1
  16. package/dist/detect.d.ts +19 -17
  17. package/dist/detect.d.ts.map +1 -1
  18. package/dist/extract.d.ts +10 -8
  19. package/dist/extract.d.ts.map +1 -1
  20. package/dist/extractors/base.d.ts +76 -75
  21. package/dist/extractors/base.d.ts.map +1 -1
  22. package/dist/extractors/elysia/extractor.d.ts +15 -12
  23. package/dist/extractors/elysia/extractor.d.ts.map +1 -1
  24. package/dist/extractors/express/extractor.d.ts +16 -12
  25. package/dist/extractors/express/extractor.d.ts.map +1 -1
  26. package/dist/extractors/fastify/extractor.d.ts +16 -12
  27. package/dist/extractors/fastify/extractor.d.ts.map +1 -1
  28. package/dist/extractors/hono/extractor.d.ts +15 -12
  29. package/dist/extractors/hono/extractor.d.ts.map +1 -1
  30. package/dist/extractors/index.d.ts +16 -17
  31. package/dist/extractors/index.d.ts.map +1 -1
  32. package/dist/extractors/index.js +834 -40
  33. package/dist/extractors/nestjs/extractor.d.ts +28 -23
  34. package/dist/extractors/nestjs/extractor.d.ts.map +1 -1
  35. package/dist/extractors/next-api/extractor.d.ts +16 -13
  36. package/dist/extractors/next-api/extractor.d.ts.map +1 -1
  37. package/dist/extractors/trpc/extractor.d.ts +16 -12
  38. package/dist/extractors/trpc/extractor.d.ts.map +1 -1
  39. package/dist/extractors/zod/extractor.d.ts +15 -13
  40. package/dist/extractors/zod/extractor.d.ts.map +1 -1
  41. package/dist/index.d.ts +30 -7
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +1215 -6
  44. package/dist/node/codegen/index.js +225 -0
  45. package/dist/node/extractors/index.js +835 -0
  46. package/dist/node/index.js +1215 -0
  47. package/dist/node/types.js +0 -0
  48. package/dist/registry.d.ts +69 -68
  49. package/dist/registry.d.ts.map +1 -1
  50. package/dist/types.d.ts +182 -185
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js +1 -0
  53. package/package.json +60 -21
  54. package/dist/_virtual/_rolldown/runtime.js +0 -18
  55. package/dist/codegen/index.js.map +0 -1
  56. package/dist/codegen/operation-gen.js +0 -91
  57. package/dist/codegen/operation-gen.js.map +0 -1
  58. package/dist/codegen/registry-gen.js +0 -47
  59. package/dist/codegen/registry-gen.js.map +0 -1
  60. package/dist/codegen/schema-gen.js +0 -93
  61. package/dist/codegen/schema-gen.js.map +0 -1
  62. package/dist/detect.js +0 -177
  63. package/dist/detect.js.map +0 -1
  64. package/dist/extract.js +0 -125
  65. package/dist/extract.js.map +0 -1
  66. package/dist/extractors/base.js +0 -152
  67. package/dist/extractors/base.js.map +0 -1
  68. package/dist/extractors/elysia/extractor.js +0 -58
  69. package/dist/extractors/elysia/extractor.js.map +0 -1
  70. package/dist/extractors/express/extractor.js +0 -61
  71. package/dist/extractors/express/extractor.js.map +0 -1
  72. package/dist/extractors/fastify/extractor.js +0 -61
  73. package/dist/extractors/fastify/extractor.js.map +0 -1
  74. package/dist/extractors/hono/extractor.js +0 -57
  75. package/dist/extractors/hono/extractor.js.map +0 -1
  76. package/dist/extractors/index.js.map +0 -1
  77. package/dist/extractors/nestjs/extractor.js +0 -118
  78. package/dist/extractors/nestjs/extractor.js.map +0 -1
  79. package/dist/extractors/next-api/extractor.js +0 -80
  80. package/dist/extractors/next-api/extractor.js.map +0 -1
  81. package/dist/extractors/trpc/extractor.js +0 -71
  82. package/dist/extractors/trpc/extractor.js.map +0 -1
  83. package/dist/extractors/zod/extractor.js +0 -69
  84. package/dist/extractors/zod/extractor.js.map +0 -1
  85. package/dist/registry.js +0 -87
  86. package/dist/registry.js.map +0 -1
@@ -1,89 +1,90 @@
1
- import { ConfidenceLevel, ConfidenceMeta, EndpointCandidate, ExtractOptions, ExtractResult, HttpMethod, ImportIR, OpKind, ProjectInfo, SchemaCandidate, SourceLocation } from "../types.js";
2
- import { SourceExtractor } from "../registry.js";
3
-
4
- //#region src/extractors/base.d.ts
1
+ /**
2
+ * Base extractor class.
3
+ *
4
+ * Provides common functionality for all framework extractors.
5
+ */
6
+ import type { SourceExtractor } from '../registry';
7
+ import type { ConfidenceLevel, ConfidenceMeta, EndpointCandidate, ExtractOptions, ExtractResult, HttpMethod, ImportIR, OpKind, ProjectInfo, SchemaCandidate, SourceLocation } from '../types';
5
8
  /**
6
9
  * File system adapter interface for extractors.
7
10
  */
8
- interface ExtractorFsAdapter {
9
- readFile(path: string): Promise<string>;
10
- glob(pattern: string, options?: {
11
- cwd?: string;
12
- }): Promise<string[]>;
13
- exists(path: string): Promise<boolean>;
11
+ export interface ExtractorFsAdapter {
12
+ readFile(path: string): Promise<string>;
13
+ glob(pattern: string, options?: {
14
+ cwd?: string;
15
+ }): Promise<string[]>;
16
+ exists(path: string): Promise<boolean>;
14
17
  }
15
18
  /**
16
19
  * Context passed to extraction methods.
17
20
  */
18
- interface ExtractionContext {
19
- project: ProjectInfo;
20
- options: ExtractOptions;
21
- fs: ExtractorFsAdapter;
22
- ir: ImportIR;
21
+ export interface ExtractionContext {
22
+ project: ProjectInfo;
23
+ options: ExtractOptions;
24
+ fs: ExtractorFsAdapter;
25
+ ir: ImportIR;
23
26
  }
24
27
  /**
25
28
  * Abstract base class for source extractors.
26
29
  * Provides common utilities and structure for framework-specific extractors.
27
30
  */
28
- declare abstract class BaseExtractor implements SourceExtractor {
29
- abstract id: string;
30
- abstract name: string;
31
- abstract frameworks: string[];
32
- priority: number;
33
- /**
34
- * File system adapter - must be set before extraction.
35
- */
36
- protected fs?: ExtractorFsAdapter;
37
- /**
38
- * Set the file system adapter.
39
- */
40
- setFs(fs: ExtractorFsAdapter): void;
41
- /**
42
- * Detect if this extractor can handle the given project.
43
- * Default implementation checks if any supported framework is detected.
44
- */
45
- detect(project: ProjectInfo): Promise<boolean>;
46
- /**
47
- * Main extraction method.
48
- */
49
- extract(project: ProjectInfo, options: ExtractOptions): Promise<ExtractResult>;
50
- /**
51
- * Implement this method in subclasses to perform actual extraction.
52
- */
53
- protected abstract doExtract(ctx: ExtractionContext): Promise<void>;
54
- /**
55
- * Calculate statistics for the IR.
56
- */
57
- protected calculateStats(ir: ImportIR): void;
58
- /**
59
- * Generate a unique ID for an endpoint.
60
- */
61
- protected generateEndpointId(method: HttpMethod, path: string, handlerName?: string): string;
62
- /**
63
- * Generate a unique ID for a schema.
64
- */
65
- protected generateSchemaId(name: string, file: string): string;
66
- /**
67
- * Determine operation kind from HTTP method.
68
- */
69
- protected methodToOpKind(method: HttpMethod): OpKind;
70
- /**
71
- * Create a source location object.
72
- */
73
- protected createLocation(file: string, startLine: number, endLine: number): SourceLocation;
74
- /**
75
- * Create confidence metadata.
76
- */
77
- protected createConfidence(level: ConfidenceLevel, ...reasons: ConfidenceMeta['reasons']): ConfidenceMeta;
78
- /**
79
- * Add an endpoint to the IR.
80
- */
81
- protected addEndpoint(ctx: ExtractionContext, endpoint: EndpointCandidate): void;
82
- /**
83
- * Add a schema to the IR.
84
- */
85
- protected addSchema(ctx: ExtractionContext, schema: SchemaCandidate): void;
31
+ export declare abstract class BaseExtractor implements SourceExtractor {
32
+ abstract id: string;
33
+ abstract name: string;
34
+ abstract frameworks: string[];
35
+ priority: number;
36
+ /**
37
+ * File system adapter - must be set before extraction.
38
+ */
39
+ protected fs?: ExtractorFsAdapter;
40
+ /**
41
+ * Set the file system adapter.
42
+ */
43
+ setFs(fs: ExtractorFsAdapter): void;
44
+ /**
45
+ * Detect if this extractor can handle the given project.
46
+ * Default implementation checks if any supported framework is detected.
47
+ */
48
+ detect(project: ProjectInfo): Promise<boolean>;
49
+ /**
50
+ * Main extraction method.
51
+ */
52
+ extract(project: ProjectInfo, options: ExtractOptions): Promise<ExtractResult>;
53
+ /**
54
+ * Implement this method in subclasses to perform actual extraction.
55
+ */
56
+ protected abstract doExtract(ctx: ExtractionContext): Promise<void>;
57
+ /**
58
+ * Calculate statistics for the IR.
59
+ */
60
+ protected calculateStats(ir: ImportIR): void;
61
+ /**
62
+ * Generate a unique ID for an endpoint.
63
+ */
64
+ protected generateEndpointId(method: HttpMethod, path: string, handlerName?: string): string;
65
+ /**
66
+ * Generate a unique ID for a schema.
67
+ */
68
+ protected generateSchemaId(name: string, file: string): string;
69
+ /**
70
+ * Determine operation kind from HTTP method.
71
+ */
72
+ protected methodToOpKind(method: HttpMethod): OpKind;
73
+ /**
74
+ * Create a source location object.
75
+ */
76
+ protected createLocation(file: string, startLine: number, endLine: number): SourceLocation;
77
+ /**
78
+ * Create confidence metadata.
79
+ */
80
+ protected createConfidence(level: ConfidenceLevel, ...reasons: ConfidenceMeta['reasons']): ConfidenceMeta;
81
+ /**
82
+ * Add an endpoint to the IR.
83
+ */
84
+ protected addEndpoint(ctx: ExtractionContext, endpoint: EndpointCandidate): void;
85
+ /**
86
+ * Add a schema to the IR.
87
+ */
88
+ protected addSchema(ctx: ExtractionContext, schema: SchemaCandidate): void;
86
89
  }
87
- //#endregion
88
- export { BaseExtractor, ExtractionContext, ExtractorFsAdapter };
89
90
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":[],"sources":["../../src/extractors/base.ts"],"mappings":";;;;;;;UAyBiB,kBAAA;EACf,QAAA,CAAS,IAAA,WAAe,OAAA;EACxB,IAAA,CAAK,OAAA,UAAiB,OAAA;IAAY,GAAA;EAAA,IAAiB,OAAA;EACnD,MAAA,CAAO,IAAA,WAAe,OAAA;AAAA;;;;UAMP,iBAAA;EACf,OAAA,EAAS,WAAA;EACT,OAAA,EAAS,cAAA;EACT,EAAA,EAAI,kBAAA;EACJ,EAAA,EAAI,QAAA;AAAA;;;;;uBAOgB,aAAA,YAAyB,eAAA;EAAA,SACpC,EAAA;EAAA,SACA,IAAA;EAAA,SACA,UAAA;EACT,QAAA;EAdS;;;EAAA,UAmBC,EAAA,GAAK,kBAAA;EAjBX;;;EAsBJ,KAAA,CAAM,EAAA,EAAI,kBAAA;EArBE;AAOd;;;EAsBQ,MAAA,CAAO,OAAA,EAAS,WAAA,GAAc,OAAA;EAR1B;;;EAeJ,OAAA,CACJ,OAAA,EAAS,WAAA,EACT,OAAA,EAAS,cAAA,GACR,OAAA,CAAQ,aAAA;EADA;;;EAAA,mBA4CQ,SAAA,CAAU,GAAA,EAAK,iBAAA,GAAoB,OAAA;EAAA;;;EAAA,UAK5C,cAAA,CAAe,EAAA,EAAI,QAAA;EAkEiB;;;EAAA,UA7BpC,kBAAA,CACR,MAAA,EAAQ,UAAA,EACR,IAAA,UACA,WAAA;EAsDC;;;EAAA,UAvCO,gBAAA,CAAiB,IAAA,UAAc,IAAA;EAwDW;;;EAAA,UA7C1C,cAAA,CAAe,MAAA,EAAQ,UAAA,GAAa,MAAA;EAlJD;;;EAAA,UAgKnC,cAAA,CACR,IAAA,UACA,SAAA,UACA,OAAA,WACC,cAAA;EAhKH;;;EAAA,UAuKU,gBAAA,CACR,KAAA,EAAO,eAAA,KACJ,OAAA,EAAS,cAAA,cACX,cAAA;EAhKO;;;EAAA,UAuKA,WAAA,CACR,GAAA,EAAK,iBAAA,EACL,QAAA,EAAU,iBAAA;EAjKC;;;EAAA,UAyKH,SAAA,CAAU,GAAA,EAAK,iBAAA,EAAmB,MAAA,EAAQ,eAAA;AAAA"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/extractors/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EACR,MAAM,EACN,WAAW,EACX,eAAe,EACf,cAAc,EACf,MAAM,UAAU,CAAC;AAGlB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,EAAE,kBAAkB,CAAC;IACvB,EAAE,EAAE,QAAQ,CAAC;CACd;AAED;;;GAGG;AACH,8BAAsB,aAAc,YAAW,eAAe;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,SAAM;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAElC;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,kBAAkB,GAAG,IAAI;IAInC;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC;IAwCzB;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnE;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAkC5C;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM;IAWT;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ9D;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAWpD;;OAEG;IACH,SAAS,CAAC,cAAc,CACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,cAAc;IAIjB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,KAAK,EAAE,eAAe,EACtB,GAAG,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,GACpC,cAAc;IAIjB;;OAEG;IACH,SAAS,CAAC,WAAW,CACnB,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAIP;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;CAG3E"}
@@ -1,14 +1,17 @@
1
- import { BaseExtractor, ExtractionContext } from "../base.js";
2
-
3
- //#region src/extractors/elysia/extractor.d.ts
4
- declare class ElysiaExtractor extends BaseExtractor {
5
- id: string;
6
- name: string;
7
- frameworks: string[];
8
- priority: number;
9
- protected doExtract(ctx: ExtractionContext): Promise<void>;
10
- private extractRoutes;
1
+ /**
2
+ * Elysia extractor.
3
+ *
4
+ * Extracts contract candidates from Elysia applications by parsing:
5
+ * - app.get(), app.post(), etc. route handlers
6
+ * - t.* schema definitions
7
+ */
8
+ import { BaseExtractor, type ExtractionContext } from '../base';
9
+ export declare class ElysiaExtractor extends BaseExtractor {
10
+ id: string;
11
+ name: string;
12
+ frameworks: string[];
13
+ priority: number;
14
+ protected doExtract(ctx: ExtractionContext): Promise<void>;
15
+ private extractRoutes;
11
16
  }
12
- //#endregion
13
- export { ElysiaExtractor };
14
17
  //# sourceMappingURL=extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","names":[],"sources":["../../../src/extractors/elysia/extractor.ts"],"mappings":";;;cAgBa,eAAA,SAAwB,aAAA;EACnC,EAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EAAA,UAEgB,SAAA,CAAU,GAAA,EAAK,iBAAA,GAAoB,OAAA;EAAA,QAsBrC,aAAA;AAAA"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/elysia/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAQhE,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;YAsBlD,aAAa;CAgC5B"}
@@ -1,14 +1,18 @@
1
- import { BaseExtractor, ExtractionContext } from "../base.js";
2
-
3
- //#region src/extractors/express/extractor.d.ts
4
- declare class ExpressExtractor extends BaseExtractor {
5
- id: string;
6
- name: string;
7
- frameworks: string[];
8
- priority: number;
9
- protected doExtract(ctx: ExtractionContext): Promise<void>;
10
- private extractRoutes;
1
+ /**
2
+ * Express extractor.
3
+ *
4
+ * Extracts contract candidates from Express applications by parsing:
5
+ * - app.get(), app.post(), etc. route handlers
6
+ * - Router instances
7
+ * - Zod validation middleware
8
+ */
9
+ import { BaseExtractor, type ExtractionContext } from '../base';
10
+ export declare class ExpressExtractor extends BaseExtractor {
11
+ id: string;
12
+ name: string;
13
+ frameworks: string[];
14
+ priority: number;
15
+ protected doExtract(ctx: ExtractionContext): Promise<void>;
16
+ private extractRoutes;
11
17
  }
12
- //#endregion
13
- export { ExpressExtractor };
14
18
  //# sourceMappingURL=extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","names":[],"sources":["../../../src/extractors/express/extractor.ts"],"mappings":";;;cAmBa,gBAAA,SAAyB,aAAA;EACpC,EAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EAAA,UAEgB,SAAA,CAAU,GAAA,EAAK,iBAAA,GAAoB,OAAA;EAAA,QAoBrC,aAAA;AAAA"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/express/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAUhE,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,EAAE,SAAa;IACf,IAAI,SAAuB;IAC3B,UAAU,WAAe;IACzB,QAAQ,SAAM;cAEE,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAoBlD,aAAa;CAqC5B"}
@@ -1,14 +1,18 @@
1
- import { BaseExtractor, ExtractionContext } from "../base.js";
2
-
3
- //#region src/extractors/fastify/extractor.d.ts
4
- declare class FastifyExtractor extends BaseExtractor {
5
- id: string;
6
- name: string;
7
- frameworks: string[];
8
- priority: number;
9
- protected doExtract(ctx: ExtractionContext): Promise<void>;
10
- private extractRoutes;
1
+ /**
2
+ * Fastify extractor.
3
+ *
4
+ * Extracts contract candidates from Fastify applications by parsing:
5
+ * - fastify.get(), fastify.post(), etc. route handlers
6
+ * - JSON Schema definitions
7
+ * - Route options with schema
8
+ */
9
+ import { BaseExtractor, type ExtractionContext } from '../base';
10
+ export declare class FastifyExtractor extends BaseExtractor {
11
+ id: string;
12
+ name: string;
13
+ frameworks: string[];
14
+ priority: number;
15
+ protected doExtract(ctx: ExtractionContext): Promise<void>;
16
+ private extractRoutes;
11
17
  }
12
- //#endregion
13
- export { FastifyExtractor };
14
18
  //# sourceMappingURL=extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","names":[],"sources":["../../../src/extractors/fastify/extractor.ts"],"mappings":";;;cAoBa,gBAAA,SAAyB,aAAA;EACpC,EAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EAAA,UAEgB,SAAA,CAAU,GAAA,EAAK,iBAAA,GAAoB,OAAA;EAAA,QAoBrC,aAAA;AAAA"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/fastify/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAWhE,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,EAAE,SAAa;IACf,IAAI,SAAuB;IAC3B,UAAU,WAAe;IACzB,QAAQ,SAAM;cAEE,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAoBlD,aAAa;CAiC5B"}
@@ -1,14 +1,17 @@
1
- import { BaseExtractor, ExtractionContext } from "../base.js";
2
-
3
- //#region src/extractors/hono/extractor.d.ts
4
- declare class HonoExtractor extends BaseExtractor {
5
- id: string;
6
- name: string;
7
- frameworks: string[];
8
- priority: number;
9
- protected doExtract(ctx: ExtractionContext): Promise<void>;
10
- private extractRoutes;
1
+ /**
2
+ * Hono extractor.
3
+ *
4
+ * Extracts contract candidates from Hono applications by parsing:
5
+ * - app.get(), app.post(), etc. route handlers
6
+ * - Zod validator middleware
7
+ */
8
+ import { BaseExtractor, type ExtractionContext } from '../base';
9
+ export declare class HonoExtractor extends BaseExtractor {
10
+ id: string;
11
+ name: string;
12
+ frameworks: string[];
13
+ priority: number;
14
+ protected doExtract(ctx: ExtractionContext): Promise<void>;
15
+ private extractRoutes;
11
16
  }
12
- //#endregion
13
- export { HonoExtractor };
14
17
  //# sourceMappingURL=extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","names":[],"sources":["../../../src/extractors/hono/extractor.ts"],"mappings":";;;cAiBa,aAAA,SAAsB,aAAA;EACjC,EAAA;EACA,IAAA;EACA,UAAA;EACA,QAAA;EAAA,UAEgB,SAAA,CAAU,GAAA,EAAK,iBAAA,GAAoB,OAAA;EAAA,QAoBrC,aAAA;AAAA"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extractors/hono/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAShE,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;YAoBlD,aAAa;CAgC5B"}
@@ -1,21 +1,20 @@
1
- import { BaseExtractor, ExtractionContext, ExtractorFsAdapter } from "./base.js";
2
- import { NestJsExtractor } from "./nestjs/extractor.js";
3
- import { ExpressExtractor } from "./express/extractor.js";
4
- import { FastifyExtractor } from "./fastify/extractor.js";
5
- import { HonoExtractor } from "./hono/extractor.js";
6
- import { ElysiaExtractor } from "./elysia/extractor.js";
7
- import { TrpcExtractor } from "./trpc/extractor.js";
8
- import { NextApiExtractor } from "./next-api/extractor.js";
9
- import { ZodSchemaExtractor } from "./zod/extractor.js";
10
-
11
- //#region src/extractors/index.d.ts
12
- declare namespace index_d_exports {
13
- export { BaseExtractor, ElysiaExtractor, ExpressExtractor, ExtractionContext, ExtractorFsAdapter, FastifyExtractor, HonoExtractor, NestJsExtractor, NextApiExtractor, TrpcExtractor, ZodSchemaExtractor, registerAllExtractors };
14
- }
1
+ /**
2
+ * Source extractors module.
3
+ *
4
+ * Exports all available framework extractors.
5
+ */
6
+ export { BaseExtractor } from './base';
7
+ export type { ExtractorFsAdapter, ExtractionContext } from './base';
8
+ export { NestJsExtractor } from './nestjs/extractor';
9
+ export { ExpressExtractor } from './express/extractor';
10
+ export { FastifyExtractor } from './fastify/extractor';
11
+ export { HonoExtractor } from './hono/extractor';
12
+ export { ElysiaExtractor } from './elysia/extractor';
13
+ export { TrpcExtractor } from './trpc/extractor';
14
+ export { NextApiExtractor } from './next-api/extractor';
15
+ export { ZodSchemaExtractor } from './zod/extractor';
15
16
  /**
16
17
  * Register all built-in extractors with the global registry.
17
18
  */
18
- declare function registerAllExtractors(): void;
19
- //#endregion
20
- export { BaseExtractor, ElysiaExtractor, ExpressExtractor, type ExtractionContext, type ExtractorFsAdapter, FastifyExtractor, HonoExtractor, NestJsExtractor, NextApiExtractor, TrpcExtractor, ZodSchemaExtractor, index_d_exports, registerAllExtractors };
19
+ export declare function registerAllExtractors(): void;
21
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/extractors/index.ts"],"mappings":";;;;;;;;;;;;;;;;;iBAoCgB,qBAAA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extractors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAarD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C"}