driftdetect-core 0.1.3 → 0.3.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 (193) hide show
  1. package/dist/boundaries/boundary-store.d.ts +92 -0
  2. package/dist/boundaries/boundary-store.d.ts.map +1 -0
  3. package/dist/boundaries/boundary-store.js +458 -0
  4. package/dist/boundaries/boundary-store.js.map +1 -0
  5. package/dist/boundaries/index.d.ts +8 -0
  6. package/dist/boundaries/index.d.ts.map +1 -0
  7. package/dist/boundaries/index.js +8 -0
  8. package/dist/boundaries/index.js.map +1 -0
  9. package/dist/boundaries/types.d.ts +237 -0
  10. package/dist/boundaries/types.d.ts.map +1 -0
  11. package/dist/boundaries/types.js +8 -0
  12. package/dist/boundaries/types.js.map +1 -0
  13. package/dist/dna/ai-context.d.ts +10 -0
  14. package/dist/dna/ai-context.d.ts.map +1 -0
  15. package/dist/dna/ai-context.js +46 -0
  16. package/dist/dna/ai-context.js.map +1 -0
  17. package/dist/dna/dna-analyzer.d.ts +34 -0
  18. package/dist/dna/dna-analyzer.d.ts.map +1 -0
  19. package/dist/dna/dna-analyzer.js +110 -0
  20. package/dist/dna/dna-analyzer.js.map +1 -0
  21. package/dist/dna/dna-store.d.ts +13 -0
  22. package/dist/dna/dna-store.d.ts.map +1 -0
  23. package/dist/dna/dna-store.js +43 -0
  24. package/dist/dna/dna-store.js.map +1 -0
  25. package/dist/dna/gene-extractors/animation-approach.d.ts +15 -0
  26. package/dist/dna/gene-extractors/animation-approach.d.ts.map +1 -0
  27. package/dist/dna/gene-extractors/animation-approach.js +97 -0
  28. package/dist/dna/gene-extractors/animation-approach.js.map +1 -0
  29. package/dist/dna/gene-extractors/base-extractor.d.ts +53 -0
  30. package/dist/dna/gene-extractors/base-extractor.d.ts.map +1 -0
  31. package/dist/dna/gene-extractors/base-extractor.js +76 -0
  32. package/dist/dna/gene-extractors/base-extractor.js.map +1 -0
  33. package/dist/dna/gene-extractors/index.d.ts +16 -0
  34. package/dist/dna/gene-extractors/index.d.ts.map +1 -0
  35. package/dist/dna/gene-extractors/index.js +38 -0
  36. package/dist/dna/gene-extractors/index.js.map +1 -0
  37. package/dist/dna/gene-extractors/responsive-approach.d.ts +10 -0
  38. package/dist/dna/gene-extractors/responsive-approach.d.ts.map +1 -0
  39. package/dist/dna/gene-extractors/responsive-approach.js +30 -0
  40. package/dist/dna/gene-extractors/responsive-approach.js.map +1 -0
  41. package/dist/dna/gene-extractors/spacing-philosophy.d.ts +10 -0
  42. package/dist/dna/gene-extractors/spacing-philosophy.d.ts.map +1 -0
  43. package/dist/dna/gene-extractors/spacing-philosophy.js +30 -0
  44. package/dist/dna/gene-extractors/spacing-philosophy.js.map +1 -0
  45. package/dist/dna/gene-extractors/state-styling.d.ts +10 -0
  46. package/dist/dna/gene-extractors/state-styling.d.ts.map +1 -0
  47. package/dist/dna/gene-extractors/state-styling.js +29 -0
  48. package/dist/dna/gene-extractors/state-styling.js.map +1 -0
  49. package/dist/dna/gene-extractors/theming.d.ts +10 -0
  50. package/dist/dna/gene-extractors/theming.d.ts.map +1 -0
  51. package/dist/dna/gene-extractors/theming.js +30 -0
  52. package/dist/dna/gene-extractors/theming.js.map +1 -0
  53. package/dist/dna/gene-extractors/variant-handling.d.ts +13 -0
  54. package/dist/dna/gene-extractors/variant-handling.d.ts.map +1 -0
  55. package/dist/dna/gene-extractors/variant-handling.js +38 -0
  56. package/dist/dna/gene-extractors/variant-handling.js.map +1 -0
  57. package/dist/dna/health-calculator.d.ts +21 -0
  58. package/dist/dna/health-calculator.d.ts.map +1 -0
  59. package/dist/dna/health-calculator.js +113 -0
  60. package/dist/dna/health-calculator.js.map +1 -0
  61. package/dist/dna/index.d.ts +21 -0
  62. package/dist/dna/index.d.ts.map +1 -0
  63. package/dist/dna/index.js +19 -0
  64. package/dist/dna/index.js.map +1 -0
  65. package/dist/dna/mutation-detector.d.ts +10 -0
  66. package/dist/dna/mutation-detector.d.ts.map +1 -0
  67. package/dist/dna/mutation-detector.js +39 -0
  68. package/dist/dna/mutation-detector.js.map +1 -0
  69. package/dist/dna/playbook-generator.d.ts +6 -0
  70. package/dist/dna/playbook-generator.d.ts.map +1 -0
  71. package/dist/dna/playbook-generator.js +53 -0
  72. package/dist/dna/playbook-generator.js.map +1 -0
  73. package/dist/dna/types.d.ts +95 -0
  74. package/dist/dna/types.d.ts.map +1 -0
  75. package/dist/dna/types.js +8 -0
  76. package/dist/dna/types.js.map +1 -0
  77. package/dist/index.d.ts +7 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +10 -0
  80. package/dist/index.js.map +1 -1
  81. package/dist/parsers/parser-manager.d.ts.map +1 -1
  82. package/dist/parsers/parser-manager.js +2 -0
  83. package/dist/parsers/parser-manager.js.map +1 -1
  84. package/dist/parsers/tree-sitter/config.d.ts +82 -0
  85. package/dist/parsers/tree-sitter/config.d.ts.map +1 -0
  86. package/dist/parsers/tree-sitter/config.js +200 -0
  87. package/dist/parsers/tree-sitter/config.js.map +1 -0
  88. package/dist/parsers/tree-sitter/csharp-ast-converter.d.ts +64 -0
  89. package/dist/parsers/tree-sitter/csharp-ast-converter.d.ts.map +1 -0
  90. package/dist/parsers/tree-sitter/csharp-ast-converter.js +271 -0
  91. package/dist/parsers/tree-sitter/csharp-ast-converter.js.map +1 -0
  92. package/dist/parsers/tree-sitter/csharp-loader.d.ts +43 -0
  93. package/dist/parsers/tree-sitter/csharp-loader.d.ts.map +1 -0
  94. package/dist/parsers/tree-sitter/csharp-loader.js +146 -0
  95. package/dist/parsers/tree-sitter/csharp-loader.js.map +1 -0
  96. package/dist/parsers/tree-sitter/index.d.ts +26 -0
  97. package/dist/parsers/tree-sitter/index.d.ts.map +1 -0
  98. package/dist/parsers/tree-sitter/index.js +47 -0
  99. package/dist/parsers/tree-sitter/index.js.map +1 -0
  100. package/dist/parsers/tree-sitter/java/annotation-extractor.d.ts +79 -0
  101. package/dist/parsers/tree-sitter/java/annotation-extractor.d.ts.map +1 -0
  102. package/dist/parsers/tree-sitter/java/annotation-extractor.js +540 -0
  103. package/dist/parsers/tree-sitter/java/annotation-extractor.js.map +1 -0
  104. package/dist/parsers/tree-sitter/java/class-extractor.d.ts +40 -0
  105. package/dist/parsers/tree-sitter/java/class-extractor.d.ts.map +1 -0
  106. package/dist/parsers/tree-sitter/java/class-extractor.js +770 -0
  107. package/dist/parsers/tree-sitter/java/class-extractor.js.map +1 -0
  108. package/dist/parsers/tree-sitter/java/index.d.ts +14 -0
  109. package/dist/parsers/tree-sitter/java/index.d.ts.map +1 -0
  110. package/dist/parsers/tree-sitter/java/index.js +25 -0
  111. package/dist/parsers/tree-sitter/java/index.js.map +1 -0
  112. package/dist/parsers/tree-sitter/java/method-extractor.d.ts +88 -0
  113. package/dist/parsers/tree-sitter/java/method-extractor.d.ts.map +1 -0
  114. package/dist/parsers/tree-sitter/java/method-extractor.js +551 -0
  115. package/dist/parsers/tree-sitter/java/method-extractor.js.map +1 -0
  116. package/dist/parsers/tree-sitter/java/types.d.ts +545 -0
  117. package/dist/parsers/tree-sitter/java/types.d.ts.map +1 -0
  118. package/dist/parsers/tree-sitter/java/types.js +81 -0
  119. package/dist/parsers/tree-sitter/java/types.js.map +1 -0
  120. package/dist/parsers/tree-sitter/loader.d.ts +50 -0
  121. package/dist/parsers/tree-sitter/loader.d.ts.map +1 -0
  122. package/dist/parsers/tree-sitter/loader.js +156 -0
  123. package/dist/parsers/tree-sitter/loader.js.map +1 -0
  124. package/dist/parsers/tree-sitter/pydantic/config-extractor.d.ts +78 -0
  125. package/dist/parsers/tree-sitter/pydantic/config-extractor.d.ts.map +1 -0
  126. package/dist/parsers/tree-sitter/pydantic/config-extractor.js +278 -0
  127. package/dist/parsers/tree-sitter/pydantic/config-extractor.js.map +1 -0
  128. package/dist/parsers/tree-sitter/pydantic/constraint-parser.d.ts +84 -0
  129. package/dist/parsers/tree-sitter/pydantic/constraint-parser.d.ts.map +1 -0
  130. package/dist/parsers/tree-sitter/pydantic/constraint-parser.js +321 -0
  131. package/dist/parsers/tree-sitter/pydantic/constraint-parser.js.map +1 -0
  132. package/dist/parsers/tree-sitter/pydantic/field-extractor.d.ts +74 -0
  133. package/dist/parsers/tree-sitter/pydantic/field-extractor.d.ts.map +1 -0
  134. package/dist/parsers/tree-sitter/pydantic/field-extractor.js +285 -0
  135. package/dist/parsers/tree-sitter/pydantic/field-extractor.js.map +1 -0
  136. package/dist/parsers/tree-sitter/pydantic/index.d.ts +18 -0
  137. package/dist/parsers/tree-sitter/pydantic/index.d.ts.map +1 -0
  138. package/dist/parsers/tree-sitter/pydantic/index.js +23 -0
  139. package/dist/parsers/tree-sitter/pydantic/index.js.map +1 -0
  140. package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.d.ts +70 -0
  141. package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.d.ts.map +1 -0
  142. package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.js +251 -0
  143. package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.js.map +1 -0
  144. package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.d.ts +102 -0
  145. package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.d.ts.map +1 -0
  146. package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.js +399 -0
  147. package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.js.map +1 -0
  148. package/dist/parsers/tree-sitter/pydantic/type-resolver.d.ts +89 -0
  149. package/dist/parsers/tree-sitter/pydantic/type-resolver.d.ts.map +1 -0
  150. package/dist/parsers/tree-sitter/pydantic/type-resolver.js +426 -0
  151. package/dist/parsers/tree-sitter/pydantic/type-resolver.js.map +1 -0
  152. package/dist/parsers/tree-sitter/pydantic/types.d.ts +177 -0
  153. package/dist/parsers/tree-sitter/pydantic/types.d.ts.map +1 -0
  154. package/dist/parsers/tree-sitter/pydantic/types.js +139 -0
  155. package/dist/parsers/tree-sitter/pydantic/types.js.map +1 -0
  156. package/dist/parsers/tree-sitter/pydantic/validator-extractor.d.ts +88 -0
  157. package/dist/parsers/tree-sitter/pydantic/validator-extractor.d.ts.map +1 -0
  158. package/dist/parsers/tree-sitter/pydantic/validator-extractor.js +315 -0
  159. package/dist/parsers/tree-sitter/pydantic/validator-extractor.js.map +1 -0
  160. package/dist/parsers/tree-sitter/python-ast-converter.d.ts +140 -0
  161. package/dist/parsers/tree-sitter/python-ast-converter.d.ts.map +1 -0
  162. package/dist/parsers/tree-sitter/python-ast-converter.js +360 -0
  163. package/dist/parsers/tree-sitter/python-ast-converter.js.map +1 -0
  164. package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.d.ts +465 -0
  165. package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.d.ts.map +1 -0
  166. package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.js +1146 -0
  167. package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.js.map +1 -0
  168. package/dist/parsers/tree-sitter/tree-sitter-python-parser.d.ts +86 -0
  169. package/dist/parsers/tree-sitter/tree-sitter-python-parser.d.ts.map +1 -0
  170. package/dist/parsers/tree-sitter/tree-sitter-python-parser.js +177 -0
  171. package/dist/parsers/tree-sitter/tree-sitter-python-parser.js.map +1 -0
  172. package/dist/parsers/tree-sitter/types.d.ts +399 -0
  173. package/dist/parsers/tree-sitter/types.d.ts.map +1 -0
  174. package/dist/parsers/tree-sitter/types.js +20 -0
  175. package/dist/parsers/tree-sitter/types.js.map +1 -0
  176. package/dist/parsers/types.d.ts +1 -1
  177. package/dist/parsers/types.d.ts.map +1 -1
  178. package/dist/scanner/file-walker.d.ts.map +1 -1
  179. package/dist/scanner/file-walker.js +5 -0
  180. package/dist/scanner/file-walker.js.map +1 -1
  181. package/dist/store/history-store.d.ts +85 -269
  182. package/dist/store/history-store.d.ts.map +1 -1
  183. package/dist/store/history-store.js +272 -624
  184. package/dist/store/history-store.js.map +1 -1
  185. package/dist/types/index.d.ts +1 -0
  186. package/dist/types/index.d.ts.map +1 -1
  187. package/dist/types/index.js +2 -0
  188. package/dist/types/index.js.map +1 -1
  189. package/dist/types/java-type-mapping.d.ts +79 -0
  190. package/dist/types/java-type-mapping.d.ts.map +1 -0
  191. package/dist/types/java-type-mapping.js +290 -0
  192. package/dist/types/java-type-mapping.js.map +1 -0
  193. package/package.json +7 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inheritance-resolver.js","sourceRoot":"","sources":["../../../../src/parsers/tree-sitter/pydantic/inheritance-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Pydantic Model Extractor
3
+ *
4
+ * Main orchestrator for extracting Pydantic model information.
5
+ * Coordinates field, validator, config, and inheritance extraction.
6
+ *
7
+ * @module pydantic/pydantic-extractor
8
+ */
9
+ import type { TreeSitterTree } from '../types.js';
10
+ import type { PydanticModelInfo, PydanticFieldInfo } from '../types.js';
11
+ import type { ExtractionContext } from './types.js';
12
+ /**
13
+ * Main Pydantic model extractor.
14
+ *
15
+ * Orchestrates extraction of:
16
+ * - Model definitions
17
+ * - Field definitions with types and constraints
18
+ * - Validators (v1 and v2)
19
+ * - Model configuration
20
+ * - Inheritance resolution
21
+ */
22
+ export declare class PydanticExtractor {
23
+ private readonly fieldExtractor;
24
+ private readonly validatorExtractor;
25
+ private readonly configExtractor;
26
+ private readonly inheritanceResolver;
27
+ constructor();
28
+ /**
29
+ * Extract all Pydantic models from a tree-sitter tree.
30
+ *
31
+ * @param tree - The parsed tree-sitter tree
32
+ * @param source - Original source code
33
+ * @param options - Extraction options
34
+ * @returns Array of extracted model information
35
+ */
36
+ extractModels(tree: TreeSitterTree, source: string, options?: Partial<ExtractionContext>): PydanticModelInfo[];
37
+ /**
38
+ * Extract a single model with resolved inheritance.
39
+ *
40
+ * @param modelName - Name of the model to extract
41
+ * @param allModels - Map of all models
42
+ * @returns Model with resolved inherited fields
43
+ */
44
+ resolveModel(modelName: string, allModels: Map<string, PydanticModelInfo>): PydanticModelInfo | null;
45
+ /**
46
+ * Get all models as a map for easy lookup.
47
+ */
48
+ modelsToMap(models: PydanticModelInfo[]): Map<string, PydanticModelInfo>;
49
+ /**
50
+ * Extract a single Pydantic model from a class definition.
51
+ */
52
+ private extractModel;
53
+ /**
54
+ * Find all model names in the tree (first pass).
55
+ */
56
+ private findModelNames;
57
+ /**
58
+ * Find all class definitions in the tree.
59
+ */
60
+ private findClassDefinitions;
61
+ /**
62
+ * Extract type aliases from the tree.
63
+ */
64
+ private extractTypeAliases;
65
+ /**
66
+ * Extract base classes from a class definition.
67
+ */
68
+ private extractBaseClasses;
69
+ /**
70
+ * Check if base classes indicate a Pydantic model.
71
+ */
72
+ private isPydanticModel;
73
+ /**
74
+ * Extract decorators from a class.
75
+ */
76
+ private extractDecorators;
77
+ /**
78
+ * Extract docstring from a class body.
79
+ */
80
+ private extractDocstring;
81
+ /**
82
+ * Detect Pydantic version from model structure.
83
+ */
84
+ private detectPydanticVersion;
85
+ /**
86
+ * Walk the tree and call visitor for each node.
87
+ */
88
+ private walkTree;
89
+ }
90
+ /**
91
+ * Convert extracted models to a flat field list for contracts.
92
+ */
93
+ export declare function modelsToContractFields(models: PydanticModelInfo[], modelName: string): PydanticFieldInfo[] | null;
94
+ /**
95
+ * Find a model by name in the extracted models.
96
+ */
97
+ export declare function findModel(models: PydanticModelInfo[], name: string): PydanticModelInfo | null;
98
+ /**
99
+ * Get all model names from extracted models.
100
+ */
101
+ export declare function getModelNames(models: PydanticModelInfo[]): string[];
102
+ //# sourceMappingURL=pydantic-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pydantic-extractor.d.ts","sourceRoot":"","sources":["../../../../src/parsers/tree-sitter/pydantic/pydantic-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAWpD;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;;IAS1D;;;;;;;OAOG;IACH,aAAa,CACX,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACvC,iBAAiB,EAAE;IA2BtB;;;;;;OAMG;IACH,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GACxC,iBAAiB,GAAG,IAAI;IAe3B;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAYxE;;OAEG;IACH,OAAO,CAAC,YAAY;IAqEpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuD7B;;OAEG;IACH,OAAO,CAAC,QAAQ;CASjB;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,SAAS,EAAE,MAAM,GAChB,iBAAiB,EAAE,GAAG,IAAI,CAG5B;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,IAAI,EAAE,MAAM,GACX,iBAAiB,GAAG,IAAI,CAE1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAEnE"}
@@ -0,0 +1,399 @@
1
+ /**
2
+ * Pydantic Model Extractor
3
+ *
4
+ * Main orchestrator for extracting Pydantic model information.
5
+ * Coordinates field, validator, config, and inheritance extraction.
6
+ *
7
+ * @module pydantic/pydantic-extractor
8
+ */
9
+ import { createExtractionContext, PYDANTIC_BASE_CLASSES } from './types.js';
10
+ import { FieldExtractor } from './field-extractor.js';
11
+ import { ValidatorExtractor } from './validator-extractor.js';
12
+ import { ConfigExtractor } from './config-extractor.js';
13
+ import { InheritanceResolver } from './inheritance-resolver.js';
14
+ // ============================================
15
+ // Pydantic Extractor Class
16
+ // ============================================
17
+ /**
18
+ * Main Pydantic model extractor.
19
+ *
20
+ * Orchestrates extraction of:
21
+ * - Model definitions
22
+ * - Field definitions with types and constraints
23
+ * - Validators (v1 and v2)
24
+ * - Model configuration
25
+ * - Inheritance resolution
26
+ */
27
+ export class PydanticExtractor {
28
+ fieldExtractor;
29
+ validatorExtractor;
30
+ configExtractor;
31
+ inheritanceResolver;
32
+ constructor() {
33
+ this.fieldExtractor = new FieldExtractor();
34
+ this.validatorExtractor = new ValidatorExtractor();
35
+ this.configExtractor = new ConfigExtractor();
36
+ this.inheritanceResolver = new InheritanceResolver();
37
+ }
38
+ /**
39
+ * Extract all Pydantic models from a tree-sitter tree.
40
+ *
41
+ * @param tree - The parsed tree-sitter tree
42
+ * @param source - Original source code
43
+ * @param options - Extraction options
44
+ * @returns Array of extracted model information
45
+ */
46
+ extractModels(tree, source, options = {}) {
47
+ // First pass: find all model names
48
+ const modelNames = this.findModelNames(tree.rootNode);
49
+ // Create context with known models
50
+ const context = createExtractionContext(source, {
51
+ ...options,
52
+ knownModels: new Set(modelNames),
53
+ });
54
+ // Extract type aliases
55
+ this.extractTypeAliases(tree.rootNode, context);
56
+ // Second pass: extract full model info
57
+ const models = [];
58
+ const classNodes = this.findClassDefinitions(tree.rootNode);
59
+ for (const classNode of classNodes) {
60
+ const model = this.extractModel(classNode, context);
61
+ if (model) {
62
+ models.push(model);
63
+ }
64
+ }
65
+ return models;
66
+ }
67
+ /**
68
+ * Extract a single model with resolved inheritance.
69
+ *
70
+ * @param modelName - Name of the model to extract
71
+ * @param allModels - Map of all models
72
+ * @returns Model with resolved inherited fields
73
+ */
74
+ resolveModel(modelName, allModels) {
75
+ const model = allModels.get(modelName);
76
+ if (!model)
77
+ return null;
78
+ const resolvedFields = this.inheritanceResolver.resolveFields(model, allModels);
79
+ return {
80
+ ...model,
81
+ fields: resolvedFields,
82
+ };
83
+ }
84
+ /**
85
+ * Get all models as a map for easy lookup.
86
+ */
87
+ modelsToMap(models) {
88
+ const map = new Map();
89
+ for (const model of models) {
90
+ map.set(model.name, model);
91
+ }
92
+ return map;
93
+ }
94
+ // ============================================
95
+ // Model Extraction
96
+ // ============================================
97
+ /**
98
+ * Extract a single Pydantic model from a class definition.
99
+ */
100
+ extractModel(classNode, context) {
101
+ // Get class name
102
+ const nameNode = classNode.childForFieldName('name');
103
+ if (!nameNode)
104
+ return null;
105
+ const name = nameNode.text;
106
+ // Get base classes
107
+ const bases = this.extractBaseClasses(classNode);
108
+ // Check if this is a Pydantic model
109
+ if (!this.isPydanticModel(bases)) {
110
+ return null;
111
+ }
112
+ // Get class body
113
+ const bodyNode = classNode.childForFieldName('body');
114
+ if (!bodyNode)
115
+ return null;
116
+ // Extract components
117
+ const fields = this.fieldExtractor.extractFields(bodyNode, context);
118
+ const validators = this.validatorExtractor.extractValidators(bodyNode, context);
119
+ const config = this.configExtractor.extractConfig(bodyNode, context);
120
+ // Extract decorators
121
+ const decorators = this.extractDecorators(classNode);
122
+ // Extract docstring
123
+ const docstring = this.extractDocstring(bodyNode);
124
+ // Detect Pydantic version
125
+ const version = this.detectPydanticVersion(bodyNode, bases);
126
+ // Build position info
127
+ const positions = context.includePositions
128
+ ? {
129
+ startPosition: {
130
+ row: classNode.startPosition.row,
131
+ column: classNode.startPosition.column,
132
+ },
133
+ endPosition: {
134
+ row: classNode.endPosition.row,
135
+ column: classNode.endPosition.column,
136
+ },
137
+ }
138
+ : {
139
+ startPosition: { row: 0, column: 0 },
140
+ endPosition: { row: 0, column: 0 },
141
+ };
142
+ return {
143
+ name,
144
+ bases,
145
+ fields,
146
+ validators,
147
+ config,
148
+ decorators,
149
+ docstring,
150
+ version,
151
+ ...positions,
152
+ };
153
+ }
154
+ // ============================================
155
+ // Discovery Methods
156
+ // ============================================
157
+ /**
158
+ * Find all model names in the tree (first pass).
159
+ */
160
+ findModelNames(rootNode) {
161
+ const names = [];
162
+ const classNodes = this.findClassDefinitions(rootNode);
163
+ for (const classNode of classNodes) {
164
+ const nameNode = classNode.childForFieldName('name');
165
+ if (!nameNode)
166
+ continue;
167
+ const bases = this.extractBaseClasses(classNode);
168
+ if (this.isPydanticModel(bases)) {
169
+ names.push(nameNode.text);
170
+ }
171
+ }
172
+ return names;
173
+ }
174
+ /**
175
+ * Find all class definitions in the tree.
176
+ */
177
+ findClassDefinitions(node) {
178
+ const classes = [];
179
+ this.walkTree(node, (n) => {
180
+ if (n.type === 'class_definition') {
181
+ classes.push(n);
182
+ }
183
+ // Also check decorated definitions
184
+ if (n.type === 'decorated_definition') {
185
+ for (const child of n.namedChildren) {
186
+ if (child.type === 'class_definition') {
187
+ classes.push(child);
188
+ }
189
+ }
190
+ }
191
+ });
192
+ return classes;
193
+ }
194
+ /**
195
+ * Extract type aliases from the tree.
196
+ */
197
+ extractTypeAliases(rootNode, context) {
198
+ this.walkTree(rootNode, (node) => {
199
+ if (node.type !== 'expression_statement')
200
+ return;
201
+ const inner = node.namedChildren[0];
202
+ if (!inner || inner.type !== 'assignment')
203
+ return;
204
+ const left = inner.childForFieldName('left');
205
+ const right = inner.childForFieldName('right');
206
+ if (!left || !right)
207
+ return;
208
+ if (left.type !== 'identifier')
209
+ return;
210
+ // Check if this looks like a type alias
211
+ const name = left.text;
212
+ const value = right.text;
213
+ // Simple heuristic: uppercase first letter or ends with common type suffixes
214
+ if (/^[A-Z]/.test(name) || name.endsWith('Type') || name.endsWith('T')) {
215
+ context.typeAliases.set(name, value);
216
+ }
217
+ });
218
+ }
219
+ // ============================================
220
+ // Base Class Handling
221
+ // ============================================
222
+ /**
223
+ * Extract base classes from a class definition.
224
+ */
225
+ extractBaseClasses(classNode) {
226
+ const bases = [];
227
+ const argumentList = classNode.childForFieldName('superclasses');
228
+ if (!argumentList)
229
+ return bases;
230
+ for (const child of argumentList.namedChildren) {
231
+ // Handle simple identifiers
232
+ if (child.type === 'identifier') {
233
+ bases.push(child.text);
234
+ }
235
+ // Handle attributes (e.g., pydantic.BaseModel)
236
+ else if (child.type === 'attribute') {
237
+ bases.push(child.text);
238
+ }
239
+ // Handle subscripts (e.g., Generic[T])
240
+ else if (child.type === 'subscript') {
241
+ bases.push(child.text);
242
+ }
243
+ // Handle calls (e.g., some_factory())
244
+ else if (child.type === 'call') {
245
+ const func = child.childForFieldName('function');
246
+ if (func) {
247
+ bases.push(func.text);
248
+ }
249
+ }
250
+ }
251
+ return bases;
252
+ }
253
+ /**
254
+ * Check if base classes indicate a Pydantic model.
255
+ */
256
+ isPydanticModel(bases) {
257
+ return bases.some((base) => {
258
+ // Direct match
259
+ if (PYDANTIC_BASE_CLASSES.has(base))
260
+ return true;
261
+ // Check without generic args
262
+ const baseName = base.split('[')[0];
263
+ if (baseName && PYDANTIC_BASE_CLASSES.has(baseName))
264
+ return true;
265
+ // Check for common patterns
266
+ if (base.includes('BaseModel') || base.includes('BaseSettings')) {
267
+ return true;
268
+ }
269
+ return false;
270
+ });
271
+ }
272
+ // ============================================
273
+ // Decorator & Docstring Extraction
274
+ // ============================================
275
+ /**
276
+ * Extract decorators from a class.
277
+ */
278
+ extractDecorators(classNode) {
279
+ const decorators = [];
280
+ const parent = classNode.parent;
281
+ if (parent?.type === 'decorated_definition') {
282
+ for (const child of parent.namedChildren) {
283
+ if (child.type === 'decorator') {
284
+ const content = child.namedChildren[0];
285
+ if (content) {
286
+ decorators.push(content.text);
287
+ }
288
+ }
289
+ }
290
+ }
291
+ return decorators;
292
+ }
293
+ /**
294
+ * Extract docstring from a class body.
295
+ */
296
+ extractDocstring(bodyNode) {
297
+ if (bodyNode.namedChildCount === 0)
298
+ return null;
299
+ const firstChild = bodyNode.namedChildren[0];
300
+ if (firstChild?.type !== 'expression_statement')
301
+ return null;
302
+ const expr = firstChild.namedChildren[0];
303
+ if (expr?.type !== 'string')
304
+ return null;
305
+ // Remove quotes
306
+ const text = expr.text;
307
+ if (text.startsWith('"""') || text.startsWith("'''")) {
308
+ return text.slice(3, -3).trim();
309
+ }
310
+ if (text.startsWith('"') || text.startsWith("'")) {
311
+ return text.slice(1, -1).trim();
312
+ }
313
+ return null;
314
+ }
315
+ // ============================================
316
+ // Version Detection
317
+ // ============================================
318
+ /**
319
+ * Detect Pydantic version from model structure.
320
+ */
321
+ detectPydanticVersion(bodyNode, bases) {
322
+ // Check for v2 indicators
323
+ for (const child of bodyNode.namedChildren) {
324
+ // model_config is v2
325
+ if (child.type === 'expression_statement') {
326
+ const inner = child.namedChildren[0];
327
+ if (inner?.type === 'assignment') {
328
+ const left = inner.childForFieldName('left');
329
+ if (left?.text === 'model_config') {
330
+ return 2;
331
+ }
332
+ }
333
+ }
334
+ // Config class is v1
335
+ if (child.type === 'class_definition') {
336
+ const name = child.childForFieldName('name');
337
+ if (name?.text === 'Config') {
338
+ return 1;
339
+ }
340
+ }
341
+ // Check for v2 validators
342
+ if (child.type === 'decorated_definition') {
343
+ for (const decorator of child.namedChildren) {
344
+ if (decorator.type === 'decorator') {
345
+ const content = decorator.namedChildren[0];
346
+ const text = content?.text ?? '';
347
+ if (text.includes('field_validator') || text.includes('model_validator')) {
348
+ return 2;
349
+ }
350
+ if (text.includes('validator') || text.includes('root_validator')) {
351
+ return 1;
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+ // Check base classes for hints
358
+ if (bases.some((b) => b.includes('BaseSettings'))) {
359
+ // BaseSettings exists in both, but v2 has different import
360
+ return 'unknown';
361
+ }
362
+ return 'unknown';
363
+ }
364
+ // ============================================
365
+ // Tree Walking
366
+ // ============================================
367
+ /**
368
+ * Walk the tree and call visitor for each node.
369
+ */
370
+ walkTree(node, visitor) {
371
+ visitor(node);
372
+ for (const child of node.children) {
373
+ this.walkTree(child, visitor);
374
+ }
375
+ }
376
+ }
377
+ // ============================================
378
+ // Utility Functions
379
+ // ============================================
380
+ /**
381
+ * Convert extracted models to a flat field list for contracts.
382
+ */
383
+ export function modelsToContractFields(models, modelName) {
384
+ const model = models.find((m) => m.name === modelName);
385
+ return model?.fields ?? null;
386
+ }
387
+ /**
388
+ * Find a model by name in the extracted models.
389
+ */
390
+ export function findModel(models, name) {
391
+ return models.find((m) => m.name === name) ?? null;
392
+ }
393
+ /**
394
+ * Get all model names from extracted models.
395
+ */
396
+ export function getModelNames(models) {
397
+ return models.map((m) => m.name);
398
+ }
399
+ //# sourceMappingURL=pydantic-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pydantic-extractor.js","sourceRoot":"","sources":["../../../../src/parsers/tree-sitter/pydantic/pydantic-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Pydantic Type Resolver
3
+ *
4
+ * Resolves Python type annotations to TypeInfo structures.
5
+ * Handles Optional, Union, List, Dict, Literal, and nested generics.
6
+ *
7
+ * @module pydantic/type-resolver
8
+ */
9
+ import type { TypeInfo } from '../types.js';
10
+ import type { ExtractionContext } from './types.js';
11
+ /**
12
+ * Resolves Python type annotations to TypeInfo.
13
+ *
14
+ * Handles:
15
+ * - Simple types: `str`, `int`, `bool`
16
+ * - Optional: `Optional[str]`, `str | None`
17
+ * - Union: `Union[str, int]`, `str | int`
18
+ * - List/Dict: `List[str]`, `Dict[str, int]`
19
+ * - Literal: `Literal['a', 'b', 'c']`
20
+ * - Nested: `List[Dict[str, Optional[int]]]`
21
+ */
22
+ export declare class TypeResolver {
23
+ /**
24
+ * Resolve a type annotation string to TypeInfo.
25
+ *
26
+ * @param typeStr - The type annotation string
27
+ * @param context - Extraction context
28
+ * @param depth - Current recursion depth
29
+ * @returns Resolved TypeInfo
30
+ */
31
+ resolve(typeStr: string, context: ExtractionContext, depth?: number): TypeInfo;
32
+ /**
33
+ * Create an unknown type placeholder.
34
+ */
35
+ createUnknownType(raw?: string): TypeInfo;
36
+ /**
37
+ * Parse a type string into a structured format.
38
+ */
39
+ private parseTypeString;
40
+ /**
41
+ * Check if type string contains union operator (|) outside brackets.
42
+ */
43
+ private containsUnionOperator;
44
+ /**
45
+ * Parse a union type (str | int | None).
46
+ */
47
+ private parseUnionType;
48
+ /**
49
+ * Split union members respecting bracket depth.
50
+ */
51
+ private splitUnionMembers;
52
+ /**
53
+ * Parse generic type arguments.
54
+ */
55
+ private parseGenericArgs;
56
+ /**
57
+ * Convert ParsedType to TypeInfo.
58
+ */
59
+ private parsedToTypeInfo;
60
+ /**
61
+ * Handle Union type conversion.
62
+ */
63
+ private handleUnionType;
64
+ /**
65
+ * Handle Literal type conversion.
66
+ */
67
+ private handleLiteralType;
68
+ /**
69
+ * Handle List/Sequence type conversion.
70
+ */
71
+ private handleListType;
72
+ /**
73
+ * Handle Dict/Mapping type conversion.
74
+ */
75
+ private handleDictType;
76
+ /**
77
+ * Handle Tuple type conversion.
78
+ */
79
+ private handleTupleType;
80
+ /**
81
+ * Check if a type name is a list-like type.
82
+ */
83
+ private isListType;
84
+ /**
85
+ * Check if a type name is a dict-like type.
86
+ */
87
+ private isDictType;
88
+ }
89
+ //# sourceMappingURL=type-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-resolver.d.ts","sourceRoot":"","sources":["../../../../src/parsers/tree-sitter/pydantic/type-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,YAAY,CAAC;AAOhE;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB;;;;;;;OAOG;IACH,OAAO,CACL,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,EAC1B,KAAK,GAAE,MAAU,GAChB,QAAQ;IAsBX;;OAEG;IACH,iBAAiB,CAAC,GAAG,GAAE,MAAkB,GAAG,QAAQ;IAoBpD;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkExB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwCvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,UAAU;CAQnB"}