zinfer 0.2.7 → 1.0.0-next.1
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/README.md +1 -1
- package/dist/core/brand-detector.d.ts +2 -21
- package/dist/core/brand-detector.d.ts.map +1 -1
- package/dist/core/brand-detector.js +40 -67
- package/dist/core/brand-detector.js.map +1 -1
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/description-extractor.d.ts +0 -22
- package/dist/core/description-extractor.d.ts.map +1 -1
- package/dist/core/description-extractor.js +21 -110
- package/dist/core/description-extractor.js.map +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +1 -28
- package/dist/core/errors.js.map +1 -1
- package/dist/core/extractor.d.ts +3 -37
- package/dist/core/extractor.d.ts.map +1 -1
- package/dist/core/extractor.js +42 -178
- package/dist/core/extractor.js.map +1 -1
- package/dist/core/file-resolver.d.ts.map +1 -1
- package/dist/core/file-resolver.js.map +1 -1
- package/dist/core/getter-resolver.d.ts +2 -46
- package/dist/core/getter-resolver.d.ts.map +1 -1
- package/dist/core/getter-resolver.js +33 -85
- package/dist/core/getter-resolver.js.map +1 -1
- package/dist/core/import-resolver.d.ts +10 -30
- package/dist/core/import-resolver.d.ts.map +1 -1
- package/dist/core/import-resolver.js +59 -112
- package/dist/core/import-resolver.js.map +1 -1
- package/dist/core/index.d.ts +0 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +0 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/logger.d.ts +0 -6
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +2 -9
- package/dist/core/logger.js.map +1 -1
- package/dist/core/name-mapper.d.ts.map +1 -1
- package/dist/core/name-mapper.js.map +1 -1
- package/dist/core/schema-detector.d.ts +10 -30
- package/dist/core/schema-detector.d.ts.map +1 -1
- package/dist/core/schema-detector.js +60 -82
- package/dist/core/schema-detector.js.map +1 -1
- package/dist/core/schema-reference-analyzer.d.ts +2 -56
- package/dist/core/schema-reference-analyzer.d.ts.map +1 -1
- package/dist/core/schema-reference-analyzer.js +89 -137
- package/dist/core/schema-reference-analyzer.js.map +1 -1
- package/dist/core/test-generator.d.ts.map +1 -1
- package/dist/core/test-generator.js.map +1 -1
- package/dist/core/ts-host.d.ts +38 -0
- package/dist/core/ts-host.d.ts.map +1 -0
- package/dist/core/ts-host.js +2 -0
- package/dist/core/ts-host.js.map +1 -0
- package/dist/core/tsgo-ast-utils.d.ts +12 -0
- package/dist/core/tsgo-ast-utils.d.ts.map +1 -0
- package/dist/core/tsgo-ast-utils.js +43 -0
- package/dist/core/tsgo-ast-utils.js.map +1 -0
- package/dist/core/tsgo-host.d.ts +72 -0
- package/dist/core/tsgo-host.d.ts.map +1 -0
- package/dist/core/tsgo-host.js +232 -0
- package/dist/core/tsgo-host.js.map +1 -0
- package/dist/core/type-printer.d.ts.map +1 -1
- package/dist/core/type-printer.js +8 -13
- package/dist/core/type-printer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,40 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
* Analyzes schema references to detect cross-schema dependencies.
|
|
4
|
-
*/
|
|
1
|
+
import { SyntaxKind, isArrayLiteralExpression, isAsExpression, isCallExpression, isIdentifier, isObjectLiteralExpression, isParenthesizedExpression, isPropertyAccessExpression, isPropertyAssignment, isSatisfiesExpression, isSpreadAssignment, isStringLiteral, isTypeAssertion, } from "@typescript/native-preview/unstable/ast";
|
|
2
|
+
import { findVariableDeclarationByName, forEachDescendant } from "./tsgo-ast-utils.js";
|
|
5
3
|
export class SchemaReferenceAnalyzer {
|
|
6
4
|
static OBJECT_BUILDERS = new Set(["object", "strictObject", "looseObject"]);
|
|
7
|
-
/**
|
|
8
|
-
* Zod methods that return `this` without changing the schema's input/output
|
|
9
|
-
* types. References wrapped in these calls are still references to the same
|
|
10
|
-
* schema, so they are unwrapped transparently during analysis.
|
|
11
|
-
*/
|
|
12
5
|
static TYPE_PRESERVING_METHODS = new Set([
|
|
13
6
|
"describe",
|
|
14
7
|
"meta",
|
|
15
8
|
"superRefine",
|
|
16
9
|
"check",
|
|
17
10
|
]);
|
|
18
|
-
/**
|
|
19
|
-
* Analyzes a source file to find all schema references and union references in a single pass.
|
|
20
|
-
*/
|
|
21
11
|
analyzeAllReferences(sourceFile, schemaNames) {
|
|
22
12
|
const references = new Map();
|
|
23
13
|
const unionReferences = new Map();
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
for (const statement of sourceFile.statements) {
|
|
15
|
+
if (statement.kind !== SyntaxKind.VariableStatement)
|
|
16
|
+
continue;
|
|
17
|
+
for (const decl of statement.declarationList.declarations) {
|
|
18
|
+
const schemaName = decl.name.getText(sourceFile);
|
|
28
19
|
if (!schemaNames.has(schemaName))
|
|
29
20
|
continue;
|
|
30
|
-
const init = decl.
|
|
21
|
+
const init = decl.initializer;
|
|
31
22
|
if (!init)
|
|
32
23
|
continue;
|
|
33
|
-
const refs = this.findSchemaReferences(init, schemaNames, schemaName);
|
|
24
|
+
const refs = this.findSchemaReferences(init, schemaNames, schemaName, sourceFile);
|
|
34
25
|
if (refs.length > 0) {
|
|
35
26
|
references.set(schemaName, refs);
|
|
36
27
|
}
|
|
37
|
-
const unionRef = this.findUnionReference(init, schemaNames, schemaName);
|
|
28
|
+
const unionRef = this.findUnionReference(init, schemaNames, schemaName, sourceFile);
|
|
38
29
|
if (unionRef) {
|
|
39
30
|
unionReferences.set(schemaName, unionRef);
|
|
40
31
|
}
|
|
@@ -42,58 +33,48 @@ export class SchemaReferenceAnalyzer {
|
|
|
42
33
|
}
|
|
43
34
|
return { references, unionReferences };
|
|
44
35
|
}
|
|
45
|
-
|
|
46
|
-
* Finds union references in a schema definition.
|
|
47
|
-
*/
|
|
48
|
-
findUnionReference(node, schemaNames, currentSchema) {
|
|
49
|
-
// Unwrap type-preserving wrappers like z.union([...]).describe("...")
|
|
36
|
+
findUnionReference(node, schemaNames, currentSchema, sourceFile) {
|
|
50
37
|
let current = node;
|
|
51
|
-
while (
|
|
52
|
-
const callee = current.
|
|
53
|
-
if (!
|
|
54
|
-
!SchemaReferenceAnalyzer.TYPE_PRESERVING_METHODS.has(callee.
|
|
38
|
+
while (isCallExpression(current)) {
|
|
39
|
+
const callee = current.expression;
|
|
40
|
+
if (!isPropertyAccessExpression(callee) ||
|
|
41
|
+
!SchemaReferenceAnalyzer.TYPE_PRESERVING_METHODS.has(callee.name.getText(sourceFile))) {
|
|
55
42
|
break;
|
|
56
43
|
}
|
|
57
|
-
current = callee.
|
|
44
|
+
current = callee.expression;
|
|
58
45
|
}
|
|
59
|
-
|
|
60
|
-
if (!Node.isCallExpression(current)) {
|
|
46
|
+
if (!isCallExpression(current)) {
|
|
61
47
|
return undefined;
|
|
62
48
|
}
|
|
63
|
-
const expr = current.
|
|
64
|
-
if (!
|
|
49
|
+
const expr = current.expression;
|
|
50
|
+
if (!isPropertyAccessExpression(expr)) {
|
|
65
51
|
return undefined;
|
|
66
52
|
}
|
|
67
|
-
const obj = expr.
|
|
68
|
-
const method = expr.
|
|
69
|
-
if (!
|
|
53
|
+
const obj = expr.expression;
|
|
54
|
+
const method = expr.name.getText(sourceFile);
|
|
55
|
+
if (!isIdentifier(obj) || obj.getText(sourceFile) !== "z") {
|
|
70
56
|
return undefined;
|
|
71
57
|
}
|
|
72
58
|
if (method === "discriminatedUnion") {
|
|
73
|
-
return this.parseDiscriminatedUnion(current, schemaNames, currentSchema);
|
|
59
|
+
return this.parseDiscriminatedUnion(current, schemaNames, currentSchema, sourceFile);
|
|
74
60
|
}
|
|
75
61
|
if (method === "union") {
|
|
76
|
-
return this.parseUnion(current, schemaNames, currentSchema);
|
|
62
|
+
return this.parseUnion(current, schemaNames, currentSchema, sourceFile);
|
|
77
63
|
}
|
|
78
64
|
return undefined;
|
|
79
65
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
*/
|
|
83
|
-
parseDiscriminatedUnion(node, schemaNames, currentSchema) {
|
|
84
|
-
const args = node.getArguments();
|
|
66
|
+
parseDiscriminatedUnion(node, schemaNames, currentSchema, sourceFile) {
|
|
67
|
+
const args = node.arguments;
|
|
85
68
|
if (args.length < 2) {
|
|
86
69
|
return undefined;
|
|
87
70
|
}
|
|
88
|
-
// First arg is the discriminator key
|
|
89
71
|
const discriminatorArg = args[0];
|
|
90
72
|
let discriminatorKey;
|
|
91
|
-
if (
|
|
92
|
-
discriminatorKey = discriminatorArg.
|
|
73
|
+
if (isStringLiteral(discriminatorArg)) {
|
|
74
|
+
discriminatorKey = discriminatorArg.text;
|
|
93
75
|
}
|
|
94
|
-
// Second arg is the array of schemas
|
|
95
76
|
const schemasArg = args[1];
|
|
96
|
-
const { memberSchemas, hasInlineMembers } = this.extractSchemaArrayMembers(schemasArg, schemaNames, currentSchema);
|
|
77
|
+
const { memberSchemas, hasInlineMembers } = this.extractSchemaArrayMembers(schemasArg, schemaNames, currentSchema, sourceFile);
|
|
97
78
|
if (memberSchemas.length === 0) {
|
|
98
79
|
return undefined;
|
|
99
80
|
}
|
|
@@ -104,17 +85,13 @@ export class SchemaReferenceAnalyzer {
|
|
|
104
85
|
discriminatorKey,
|
|
105
86
|
};
|
|
106
87
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
*/
|
|
110
|
-
parseUnion(node, schemaNames, currentSchema) {
|
|
111
|
-
const args = node.getArguments();
|
|
88
|
+
parseUnion(node, schemaNames, currentSchema, sourceFile) {
|
|
89
|
+
const args = node.arguments;
|
|
112
90
|
if (args.length < 1) {
|
|
113
91
|
return undefined;
|
|
114
92
|
}
|
|
115
|
-
// First arg is the array of schemas
|
|
116
93
|
const schemasArg = args[0];
|
|
117
|
-
const { memberSchemas, hasInlineMembers } = this.extractSchemaArrayMembers(schemasArg, schemaNames, currentSchema);
|
|
94
|
+
const { memberSchemas, hasInlineMembers } = this.extractSchemaArrayMembers(schemasArg, schemaNames, currentSchema, sourceFile);
|
|
118
95
|
if (memberSchemas.length === 0) {
|
|
119
96
|
return undefined;
|
|
120
97
|
}
|
|
@@ -124,18 +101,15 @@ export class SchemaReferenceAnalyzer {
|
|
|
124
101
|
isDiscriminated: false,
|
|
125
102
|
};
|
|
126
103
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
*/
|
|
130
|
-
extractSchemaArrayMembers(node, schemaNames, currentSchema) {
|
|
131
|
-
if (!Node.isArrayLiteralExpression(node)) {
|
|
104
|
+
extractSchemaArrayMembers(node, schemaNames, currentSchema, sourceFile) {
|
|
105
|
+
if (!isArrayLiteralExpression(node)) {
|
|
132
106
|
return { memberSchemas: [], hasInlineMembers: true };
|
|
133
107
|
}
|
|
134
108
|
const members = [];
|
|
135
109
|
let hasInlineMembers = false;
|
|
136
|
-
for (const element of node.
|
|
137
|
-
if (
|
|
138
|
-
const name = element.getText();
|
|
110
|
+
for (const element of node.elements) {
|
|
111
|
+
if (isIdentifier(element)) {
|
|
112
|
+
const name = element.getText(sourceFile);
|
|
139
113
|
if (schemaNames.has(name) && name !== currentSchema) {
|
|
140
114
|
members.push(name);
|
|
141
115
|
continue;
|
|
@@ -145,91 +119,77 @@ export class SchemaReferenceAnalyzer {
|
|
|
145
119
|
}
|
|
146
120
|
return { memberSchemas: members, hasInlineMembers };
|
|
147
121
|
}
|
|
148
|
-
|
|
149
|
-
* Finds all references to other schemas within a schema definition.
|
|
150
|
-
*/
|
|
151
|
-
findSchemaReferences(node, schemaNames, currentSchema) {
|
|
122
|
+
findSchemaReferences(node, schemaNames, currentSchema, sourceFile) {
|
|
152
123
|
const refs = [];
|
|
153
|
-
|
|
154
|
-
const objectCalls = this.findZodObjectCalls(node);
|
|
124
|
+
const objectCalls = this.findZodObjectCalls(node, sourceFile);
|
|
155
125
|
for (const objectCall of objectCalls) {
|
|
156
|
-
const args = objectCall.
|
|
126
|
+
const args = objectCall.arguments;
|
|
157
127
|
if (args.length === 0)
|
|
158
128
|
continue;
|
|
159
129
|
const objectLiteral = args[0];
|
|
160
|
-
if (!
|
|
130
|
+
if (!isObjectLiteralExpression(objectLiteral))
|
|
161
131
|
continue;
|
|
162
|
-
const fields = this.findObjectLiteralReferences(objectLiteral, schemaNames, currentSchema, new Set());
|
|
132
|
+
const fields = this.findObjectLiteralReferences(objectLiteral, schemaNames, currentSchema, new Set(), sourceFile);
|
|
163
133
|
refs.push(...[...fields.values()].filter((ref) => ref !== null));
|
|
164
134
|
}
|
|
165
135
|
return refs;
|
|
166
136
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
* Later properties override earlier spread entries, matching JavaScript object semantics.
|
|
170
|
-
*/
|
|
171
|
-
findObjectLiteralReferences(objectLiteral, schemaNames, currentSchema, visitedShapes) {
|
|
172
|
-
if (!Node.isObjectLiteralExpression(objectLiteral)) {
|
|
137
|
+
findObjectLiteralReferences(objectLiteral, schemaNames, currentSchema, visitedShapes, sourceFile) {
|
|
138
|
+
if (!isObjectLiteralExpression(objectLiteral)) {
|
|
173
139
|
return new Map();
|
|
174
140
|
}
|
|
175
141
|
const refsByField = new Map();
|
|
176
|
-
for (const prop of objectLiteral.
|
|
177
|
-
if (
|
|
178
|
-
const expression = prop.
|
|
179
|
-
if (!
|
|
142
|
+
for (const prop of objectLiteral.properties) {
|
|
143
|
+
if (isSpreadAssignment(prop)) {
|
|
144
|
+
const expression = prop.expression;
|
|
145
|
+
if (!isIdentifier(expression)) {
|
|
180
146
|
refsByField.clear();
|
|
181
147
|
continue;
|
|
182
148
|
}
|
|
183
|
-
const declaration =
|
|
184
|
-
|
|
185
|
-
.getVariableDeclaration(expression.getText());
|
|
186
|
-
let initializer = declaration?.getInitializer();
|
|
149
|
+
const declaration = findVariableDeclarationByName(sourceFile, expression.getText(sourceFile));
|
|
150
|
+
let initializer = declaration?.initializer;
|
|
187
151
|
while (initializer &&
|
|
188
|
-
(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
initializer = initializer.
|
|
152
|
+
(isAsExpression(initializer) ||
|
|
153
|
+
isSatisfiesExpression(initializer) ||
|
|
154
|
+
isParenthesizedExpression(initializer) ||
|
|
155
|
+
isTypeAssertion(initializer))) {
|
|
156
|
+
initializer = initializer.expression;
|
|
193
157
|
}
|
|
194
|
-
if (!declaration || !initializer || !
|
|
158
|
+
if (!declaration || !initializer || !isObjectLiteralExpression(initializer)) {
|
|
195
159
|
refsByField.clear();
|
|
196
160
|
continue;
|
|
197
161
|
}
|
|
198
|
-
const shapeId = `${
|
|
162
|
+
const shapeId = `${sourceFile.path}:${declaration.getStart(sourceFile)}`;
|
|
199
163
|
if (visitedShapes.has(shapeId))
|
|
200
164
|
continue;
|
|
201
165
|
const nextVisitedShapes = new Set(visitedShapes);
|
|
202
166
|
nextVisitedShapes.add(shapeId);
|
|
203
|
-
for (const [fieldName, ref] of this.findObjectLiteralReferences(initializer, schemaNames, currentSchema, nextVisitedShapes)) {
|
|
167
|
+
for (const [fieldName, ref] of this.findObjectLiteralReferences(initializer, schemaNames, currentSchema, nextVisitedShapes, sourceFile)) {
|
|
204
168
|
refsByField.set(fieldName, ref);
|
|
205
169
|
}
|
|
206
170
|
continue;
|
|
207
171
|
}
|
|
208
|
-
if (!
|
|
172
|
+
if (!isPropertyAssignment(prop))
|
|
209
173
|
continue;
|
|
210
|
-
const fieldName = prop.
|
|
211
|
-
const initializer = prop.
|
|
174
|
+
const fieldName = prop.name.getText(sourceFile);
|
|
175
|
+
const initializer = prop.initializer;
|
|
212
176
|
if (!initializer)
|
|
213
177
|
continue;
|
|
214
|
-
const refInfo = this.analyzeFieldValue(initializer, fieldName, schemaNames, currentSchema);
|
|
178
|
+
const refInfo = this.analyzeFieldValue(initializer, fieldName, schemaNames, currentSchema, sourceFile);
|
|
215
179
|
refsByField.set(fieldName, refInfo);
|
|
216
180
|
}
|
|
217
181
|
return refsByField;
|
|
218
182
|
}
|
|
219
|
-
|
|
220
|
-
* Finds all Zod object calls in a node (including the node itself).
|
|
221
|
-
*/
|
|
222
|
-
findZodObjectCalls(node) {
|
|
183
|
+
findZodObjectCalls(node, sourceFile) {
|
|
223
184
|
const calls = [];
|
|
224
|
-
// Check the node itself
|
|
225
185
|
const checkNode = (n) => {
|
|
226
|
-
if (
|
|
227
|
-
const expr = n.
|
|
228
|
-
if (
|
|
229
|
-
const obj = expr.
|
|
230
|
-
const method = expr.
|
|
231
|
-
if (
|
|
232
|
-
obj.getText() === "z" &&
|
|
186
|
+
if (isCallExpression(n)) {
|
|
187
|
+
const expr = n.expression;
|
|
188
|
+
if (isPropertyAccessExpression(expr)) {
|
|
189
|
+
const obj = expr.expression;
|
|
190
|
+
const method = expr.name.getText(sourceFile);
|
|
191
|
+
if (isIdentifier(obj) &&
|
|
192
|
+
obj.getText(sourceFile) === "z" &&
|
|
233
193
|
SchemaReferenceAnalyzer.OBJECT_BUILDERS.has(method)) {
|
|
234
194
|
calls.push(n);
|
|
235
195
|
}
|
|
@@ -237,24 +197,20 @@ export class SchemaReferenceAnalyzer {
|
|
|
237
197
|
}
|
|
238
198
|
};
|
|
239
199
|
checkNode(node);
|
|
240
|
-
|
|
200
|
+
forEachDescendant(node, checkNode);
|
|
241
201
|
return calls;
|
|
242
202
|
}
|
|
243
|
-
|
|
244
|
-
* Analyzes a field value to detect schema references.
|
|
245
|
-
*/
|
|
246
|
-
analyzeFieldValue(node, fieldPath, schemaNames, currentSchema) {
|
|
203
|
+
analyzeFieldValue(node, fieldPath, schemaNames, currentSchema, sourceFile) {
|
|
247
204
|
let isArray = false;
|
|
248
205
|
let isRecord = false;
|
|
249
206
|
let isOptional = false;
|
|
250
207
|
let refSchema = null;
|
|
251
|
-
// Unwrap method chains
|
|
252
208
|
let current = node;
|
|
253
|
-
while (
|
|
254
|
-
const expr = current.
|
|
255
|
-
if (
|
|
256
|
-
const method = expr.
|
|
257
|
-
const base = expr.
|
|
209
|
+
while (isCallExpression(current)) {
|
|
210
|
+
const expr = current.expression;
|
|
211
|
+
if (isPropertyAccessExpression(expr)) {
|
|
212
|
+
const method = expr.name.getText(sourceFile);
|
|
213
|
+
const base = expr.expression;
|
|
258
214
|
if (method === "optional" || method === "nullable") {
|
|
259
215
|
isOptional = true;
|
|
260
216
|
current = base;
|
|
@@ -265,20 +221,18 @@ export class SchemaReferenceAnalyzer {
|
|
|
265
221
|
continue;
|
|
266
222
|
}
|
|
267
223
|
if (method === "array") {
|
|
268
|
-
if (
|
|
269
|
-
|
|
270
|
-
const name = base.getText();
|
|
224
|
+
if (isIdentifier(base) && base.getText(sourceFile) !== "z") {
|
|
225
|
+
const name = base.getText(sourceFile);
|
|
271
226
|
if (schemaNames.has(name) && name !== currentSchema) {
|
|
272
227
|
isArray = true;
|
|
273
228
|
refSchema = name;
|
|
274
229
|
break;
|
|
275
230
|
}
|
|
276
231
|
}
|
|
277
|
-
else if (
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
const name = args[0].getText();
|
|
232
|
+
else if (isIdentifier(base) && base.getText(sourceFile) === "z") {
|
|
233
|
+
const args = current.arguments;
|
|
234
|
+
if (args.length > 0 && isIdentifier(args[0])) {
|
|
235
|
+
const name = args[0].getText(sourceFile);
|
|
282
236
|
if (schemaNames.has(name) && name !== currentSchema) {
|
|
283
237
|
isArray = true;
|
|
284
238
|
refSchema = name;
|
|
@@ -289,11 +243,10 @@ export class SchemaReferenceAnalyzer {
|
|
|
289
243
|
current = base;
|
|
290
244
|
continue;
|
|
291
245
|
}
|
|
292
|
-
if (method === "record" &&
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
const name = args[1].getText();
|
|
246
|
+
if (method === "record" && isIdentifier(base) && base.getText(sourceFile) === "z") {
|
|
247
|
+
const args = current.arguments;
|
|
248
|
+
if (args.length >= 2 && isIdentifier(args[1])) {
|
|
249
|
+
const name = args[1].getText(sourceFile);
|
|
297
250
|
if (schemaNames.has(name) && name !== currentSchema) {
|
|
298
251
|
isRecord = true;
|
|
299
252
|
refSchema = name;
|
|
@@ -304,9 +257,8 @@ export class SchemaReferenceAnalyzer {
|
|
|
304
257
|
}
|
|
305
258
|
break;
|
|
306
259
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
const name = current.getText();
|
|
260
|
+
if (!refSchema && isIdentifier(current)) {
|
|
261
|
+
const name = current.getText(sourceFile);
|
|
310
262
|
if (schemaNames.has(name) && name !== currentSchema) {
|
|
311
263
|
refSchema = name;
|
|
312
264
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-reference-analyzer.js","sourceRoot":"","sources":["../../src/core/schema-reference-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"schema-reference-analyzer.js","sourceRoot":"","sources":["../../src/core/schema-reference-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/core/test-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD;AAeD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,cAAc,GAC1B,cAAc,CAMhB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAiC;
|
|
1
|
+
{"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/core/test-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD;AAeD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,cAAc,GAC1B,cAAc,CAMhB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAiC;gBAEpC,OAAO,GAAE,oBAAyB;IAM9C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM;IA6BvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAG/F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-generator.js","sourceRoot":"","sources":["../../src/core/test-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAqC1C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG;SACP,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3F,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,WAA2B;IAE3B,OAAO;QACL,UAAU;QACV,aAAa,EAAE,WAAW,CAAC,SAAS;QACpC,cAAc,EAAE,WAAW,CAAC,UAAU;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,CAAiC;IAEhD,YAAY,
|
|
1
|
+
{"version":3,"file":"test-generator.js","sourceRoot":"","sources":["../../src/core/test-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstraction boundary around the TypeScript "type resolution" primitives that
|
|
3
|
+
* ZodTypeExtractor needs: loading a source file, and resolving the fully
|
|
4
|
+
* expanded text of one or more type aliases after temporarily injecting
|
|
5
|
+
* synthetic type-alias statements (e.g. `__TempInput` / `__TempOutput`).
|
|
6
|
+
*
|
|
7
|
+
* This exists so the trickiest, most compiler-API-specific piece of the
|
|
8
|
+
* extraction pipeline - injecting throwaway type aliases and asking the
|
|
9
|
+
* checker to expand them - has a single, narrow seam. The implementation,
|
|
10
|
+
* `TsgoHost`, is built on `@typescript/native-preview`'s Corsa API and
|
|
11
|
+
* implements this contract by building a virtual-FS overlay per call instead
|
|
12
|
+
* of mutating a live `SourceFile` (the Corsa API is read-only at the AST
|
|
13
|
+
* level). See issue #200.
|
|
14
|
+
*/
|
|
15
|
+
export interface TsHost<TSourceFile = unknown> {
|
|
16
|
+
/** Loads (if necessary) and returns the source file at `filePath`. */
|
|
17
|
+
getSourceFile(filePath: string): TSourceFile;
|
|
18
|
+
/** Returns the source file at `filePath` only if it is already loaded. */
|
|
19
|
+
tryGetSourceFile(filePath: string): TSourceFile | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Ensures the shared `__Normalize<T>` helper type is present in
|
|
22
|
+
* `sourceFile`. Idempotent; safe to call before every batch of
|
|
23
|
+
* `resolveTypes` calls against the same file.
|
|
24
|
+
*/
|
|
25
|
+
ensureNormalizeType(sourceFile: TSourceFile): void;
|
|
26
|
+
/** Removes the `__Normalize<T>` helper type injected by `ensureNormalizeType`. */
|
|
27
|
+
cleanupNormalizeType(sourceFile: TSourceFile): void;
|
|
28
|
+
/**
|
|
29
|
+
* Temporarily injects `statements` (type-alias declarations, e.g.
|
|
30
|
+
* `type __TempInput = ...;`) into `sourceFile`, resolves the fully
|
|
31
|
+
* expanded type text for each name in `typeNames`, then removes the
|
|
32
|
+
* injected statements again - regardless of whether resolution succeeded.
|
|
33
|
+
*
|
|
34
|
+
* @returns a map from type name to its expanded, printable type text.
|
|
35
|
+
*/
|
|
36
|
+
resolveTypes(sourceFile: TSourceFile, statements: string[], typeNames: string[]): Map<string, string>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ts-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-host.d.ts","sourceRoot":"","sources":["../../src/core/ts-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,MAAM,CAAC,WAAW,GAAG,OAAO;IAC3C,sEAAsE;IACtE,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IAE7C,0EAA0E;IAC1E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAE5D;;;;OAIG;IACH,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAEnD,kFAAkF;IAClF,oBAAoB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAEpD;;;;;;;OAOG;IACH,YAAY,CACV,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-host.js","sourceRoot":"","sources":["../../src/core/ts-host.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Node, SourceFile, VariableDeclaration } from "@typescript/native-preview/unstable/ast";
|
|
2
|
+
import { SyntaxKind } from "@typescript/native-preview/unstable/ast";
|
|
3
|
+
/**
|
|
4
|
+
* Shared tree-walking helpers for the tsgo/Corsa `ast` API, which (unlike
|
|
5
|
+
* ts-morph) has no built-in "getDescendantsOfKind"-style convenience methods.
|
|
6
|
+
*/
|
|
7
|
+
export declare function forEachDescendant(node: Node, cb: (node: Node) => void): void;
|
|
8
|
+
export declare function getDescendantsOfKind(node: Node, kind: SyntaxKind): Node[];
|
|
9
|
+
export declare function findFirstDescendantByKind(node: Node, kind: SyntaxKind): Node | undefined;
|
|
10
|
+
/** Finds a top-level `const`/`let`/`var` declaration by name within a source file. */
|
|
11
|
+
export declare function findVariableDeclarationByName(sourceFile: SourceFile, name: string): VariableDeclaration | undefined;
|
|
12
|
+
//# sourceMappingURL=tsgo-ast-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsgo-ast-utils.d.ts","sourceRoot":"","sources":["../../src/core/tsgo-ast-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,mBAAmB,EAEpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE;;;GAGG;AAEH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAM5E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,CAMzE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAMxF;AAED,sFAAsF;AACtF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,mBAAmB,GAAG,SAAS,CAajC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { SyntaxKind } from "@typescript/native-preview/unstable/ast";
|
|
2
|
+
/**
|
|
3
|
+
* Shared tree-walking helpers for the tsgo/Corsa `ast` API, which (unlike
|
|
4
|
+
* ts-morph) has no built-in "getDescendantsOfKind"-style convenience methods.
|
|
5
|
+
*/
|
|
6
|
+
export function forEachDescendant(node, cb) {
|
|
7
|
+
node.forEachChild((child) => {
|
|
8
|
+
cb(child);
|
|
9
|
+
forEachDescendant(child, cb);
|
|
10
|
+
return undefined;
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export function getDescendantsOfKind(node, kind) {
|
|
14
|
+
const results = [];
|
|
15
|
+
forEachDescendant(node, (n) => {
|
|
16
|
+
if (n.kind === kind)
|
|
17
|
+
results.push(n);
|
|
18
|
+
});
|
|
19
|
+
return results;
|
|
20
|
+
}
|
|
21
|
+
export function findFirstDescendantByKind(node, kind) {
|
|
22
|
+
function visit(n) {
|
|
23
|
+
if (n.kind === kind)
|
|
24
|
+
return n;
|
|
25
|
+
return n.forEachChild(visit);
|
|
26
|
+
}
|
|
27
|
+
return node.forEachChild(visit);
|
|
28
|
+
}
|
|
29
|
+
/** Finds a top-level `const`/`let`/`var` declaration by name within a source file. */
|
|
30
|
+
export function findVariableDeclarationByName(sourceFile, name) {
|
|
31
|
+
for (const statement of sourceFile.statements) {
|
|
32
|
+
if (statement.kind !== SyntaxKind.VariableStatement)
|
|
33
|
+
continue;
|
|
34
|
+
for (const declaration of statement.declarationList.declarations) {
|
|
35
|
+
if (declaration.name.kind === SyntaxKind.Identifier &&
|
|
36
|
+
declaration.name.getText(sourceFile) === name) {
|
|
37
|
+
return declaration;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=tsgo-ast-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsgo-ast-utils.js","sourceRoot":"","sources":["../../src/core/tsgo-ast-utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE;;;GAGG;AAEH,MAAM,UAAU,iBAAiB,CAAC,IAAU,EAAE,EAAwB;IACpE,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;QACV,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAU,EAAE,IAAgB;IAC/D,MAAM,OAAO,GAAW,EAAE,CAAC;IAC3B,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAU,EAAE,IAAgB;IACpE,SAAS,KAAK,CAAC,CAAO;QACpB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,6BAA6B,CAC3C,UAAsB,EACtB,IAAY;IAEZ,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,iBAAiB;YAAE,SAAS;QAC9D,KAAK,MAAM,WAAW,IAAK,SAA+B,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;YACxF,IACE,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU;gBAC/C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAC7C,CAAC;gBACD,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|