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.
Files changed (67) hide show
  1. package/README.md +1 -1
  2. package/dist/core/brand-detector.d.ts +2 -21
  3. package/dist/core/brand-detector.d.ts.map +1 -1
  4. package/dist/core/brand-detector.js +40 -67
  5. package/dist/core/brand-detector.js.map +1 -1
  6. package/dist/core/config-loader.d.ts.map +1 -1
  7. package/dist/core/description-extractor.d.ts +0 -22
  8. package/dist/core/description-extractor.d.ts.map +1 -1
  9. package/dist/core/description-extractor.js +21 -110
  10. package/dist/core/description-extractor.js.map +1 -1
  11. package/dist/core/errors.d.ts.map +1 -1
  12. package/dist/core/errors.js +1 -28
  13. package/dist/core/errors.js.map +1 -1
  14. package/dist/core/extractor.d.ts +3 -37
  15. package/dist/core/extractor.d.ts.map +1 -1
  16. package/dist/core/extractor.js +42 -178
  17. package/dist/core/extractor.js.map +1 -1
  18. package/dist/core/file-resolver.d.ts.map +1 -1
  19. package/dist/core/file-resolver.js.map +1 -1
  20. package/dist/core/getter-resolver.d.ts +2 -46
  21. package/dist/core/getter-resolver.d.ts.map +1 -1
  22. package/dist/core/getter-resolver.js +33 -85
  23. package/dist/core/getter-resolver.js.map +1 -1
  24. package/dist/core/import-resolver.d.ts +10 -30
  25. package/dist/core/import-resolver.d.ts.map +1 -1
  26. package/dist/core/import-resolver.js +59 -112
  27. package/dist/core/import-resolver.js.map +1 -1
  28. package/dist/core/index.d.ts +0 -2
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/core/index.js +0 -2
  31. package/dist/core/index.js.map +1 -1
  32. package/dist/core/logger.d.ts +0 -6
  33. package/dist/core/logger.d.ts.map +1 -1
  34. package/dist/core/logger.js +2 -9
  35. package/dist/core/logger.js.map +1 -1
  36. package/dist/core/name-mapper.d.ts.map +1 -1
  37. package/dist/core/name-mapper.js.map +1 -1
  38. package/dist/core/schema-detector.d.ts +10 -30
  39. package/dist/core/schema-detector.d.ts.map +1 -1
  40. package/dist/core/schema-detector.js +60 -82
  41. package/dist/core/schema-detector.js.map +1 -1
  42. package/dist/core/schema-reference-analyzer.d.ts +2 -56
  43. package/dist/core/schema-reference-analyzer.d.ts.map +1 -1
  44. package/dist/core/schema-reference-analyzer.js +89 -137
  45. package/dist/core/schema-reference-analyzer.js.map +1 -1
  46. package/dist/core/test-generator.d.ts.map +1 -1
  47. package/dist/core/test-generator.js.map +1 -1
  48. package/dist/core/ts-host.d.ts +38 -0
  49. package/dist/core/ts-host.d.ts.map +1 -0
  50. package/dist/core/ts-host.js +2 -0
  51. package/dist/core/ts-host.js.map +1 -0
  52. package/dist/core/tsgo-ast-utils.d.ts +12 -0
  53. package/dist/core/tsgo-ast-utils.d.ts.map +1 -0
  54. package/dist/core/tsgo-ast-utils.js +43 -0
  55. package/dist/core/tsgo-ast-utils.js.map +1 -0
  56. package/dist/core/tsgo-host.d.ts +72 -0
  57. package/dist/core/tsgo-host.d.ts.map +1 -0
  58. package/dist/core/tsgo-host.js +232 -0
  59. package/dist/core/tsgo-host.js.map +1 -0
  60. package/dist/core/type-printer.d.ts.map +1 -1
  61. package/dist/core/type-printer.js +8 -13
  62. package/dist/core/type-printer.js.map +1 -1
  63. package/dist/index.d.ts +1 -1
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +1 -1
  66. package/dist/index.js.map +1 -1
  67. package/package.json +7 -7
@@ -1,14 +1,12 @@
1
1
  export { NORMALIZE_TYPE_DEFINITION, createTempTypeAlias } from "./normalizer.js";
2
2
  export { ZodTypeExtractor, type ExtractOptions } from "./extractor.js";
3
3
  export { formatResult, formatInputOnly, formatOutputOnly, formatAsDeclaration, formatMultipleAsDeclarations, generateDeclarationFile, relativizeImportPaths, type PrintOptions, } from "./type-printer.js";
4
- export { SchemaDetector } from "./schema-detector.js";
5
4
  export { NameMapper, createNameMapper } from "./name-mapper.js";
6
5
  export { FileResolver } from "./file-resolver.js";
7
6
  export { DescriptionExtractor } from "./description-extractor.js";
8
7
  export { ZinferError, NoSchemasFoundError, NoFilesMatchedError, InvalidOptionError, formatError, } from "./errors.js";
9
8
  export { setVerbose, logVerbose, logDebugError, logProgress } from "./logger.js";
10
9
  export { ConfigLoader, defineConfig, type ZinferConfig, type ConfigLoadResult, } from "./config-loader.js";
11
- export { BrandDetector, type SchemaBrandMap } from "./brand-detector.js";
12
10
  export { TestGenerator, generateTypeTests, generateImportPrefix, createTestSchemaInfo, toPascalCase, type TestSchemaInfo, type TestFileInfo, type TestGeneratorOptions, } from "./test-generator.js";
13
11
  export type { ExtractResult, FileExtractResult, DetectedSchema, MappedTypeName, NameMappingOptions, OutputOptions, GeneratedFile, DeclarationOptions, FieldDescription, BrandInfo, } from "./types.js";
14
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,GACV,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,GACV,MAAM,YAAY,CAAC"}
@@ -1,13 +1,11 @@
1
1
  export { NORMALIZE_TYPE_DEFINITION, createTempTypeAlias } from "./normalizer.js";
2
2
  export { ZodTypeExtractor } from "./extractor.js";
3
3
  export { formatResult, formatInputOnly, formatOutputOnly, formatAsDeclaration, formatMultipleAsDeclarations, generateDeclarationFile, relativizeImportPaths, } from "./type-printer.js";
4
- export { SchemaDetector } from "./schema-detector.js";
5
4
  export { NameMapper, createNameMapper } from "./name-mapper.js";
6
5
  export { FileResolver } from "./file-resolver.js";
7
6
  export { DescriptionExtractor } from "./description-extractor.js";
8
7
  export { ZinferError, NoSchemasFoundError, NoFilesMatchedError, InvalidOptionError, formatError, } from "./errors.js";
9
8
  export { setVerbose, logVerbose, logDebugError, logProgress } from "./logger.js";
10
9
  export { ConfigLoader, defineConfig, } from "./config-loader.js";
11
- export { BrandDetector } from "./brand-detector.js";
12
10
  export { TestGenerator, generateTypeTests, generateImportPrefix, createTestSchemaInfo, toPascalCase, } from "./test-generator.js";
13
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EACL,YAAY,EACZ,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GAIb,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EACL,YAAY,EACZ,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GAIb,MAAM,qBAAqB,CAAC"}
@@ -9,12 +9,6 @@ export declare function setVerbose(enabled: boolean): void;
9
9
  * Logs a verbose message (only when verbose mode is enabled).
10
10
  */
11
11
  export declare function logVerbose(message: string, ...args: unknown[]): void;
12
- /**
13
- * Safely extracts a message from a caught value of unknown shape.
14
- * `throw` can raise anything (a string, null, a plain object, ...), not just
15
- * an `Error`, so callers must not assume `.message` exists.
16
- */
17
- export declare function getErrorMessage(error: unknown): string;
18
12
  /**
19
13
  * Logs a debug message about a non-critical error (only when verbose mode is enabled).
20
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAIpE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAInE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIjF"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAIpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAKnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIjF"}
@@ -16,20 +16,13 @@ export function logVerbose(message, ...args) {
16
16
  console.log(`[verbose] ${message}`, ...args);
17
17
  }
18
18
  }
19
- /**
20
- * Safely extracts a message from a caught value of unknown shape.
21
- * `throw` can raise anything (a string, null, a plain object, ...), not just
22
- * an `Error`, so callers must not assume `.message` exists.
23
- */
24
- export function getErrorMessage(error) {
25
- return error instanceof Error ? error.message : String(error);
26
- }
27
19
  /**
28
20
  * Logs a debug message about a non-critical error (only when verbose mode is enabled).
29
21
  */
30
22
  export function logDebugError(context, error) {
31
23
  if (verboseEnabled) {
32
- console.log(`[verbose] ${context}: ${getErrorMessage(error)}`);
24
+ const errorMessage = error instanceof Error ? error.message : String(error);
25
+ console.log(`[verbose] ${context}: ${errorMessage}`);
33
26
  }
34
27
  }
35
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,GAAG,IAAe;IAC5D,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAc;IAC3D,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,OAAe;IACzE,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,GAAG,IAAe;IAC5D,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAc;IAC3D,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,OAAe;IACzE,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"name-mapper.d.ts","sourceRoot":"","sources":["../../src/core/name-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUrE;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAqB;IAEpC;;;;OAIG;IACH,YAAY,OAAO,GAAE,kBAAuB,EAK3C;IAED;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CActC;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;OAIG;IACH,iBAAiB,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc,CAE1D;CACF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,kBAAuB,GAC/B,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc,CAGxC"}
1
+ {"version":3,"file":"name-mapper.d.ts","sourceRoot":"","sources":["../../src/core/name-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUrE;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAqB;IAEpC;;;;OAIG;gBACS,OAAO,GAAE,kBAAuB;IAO5C;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc;IAgBvC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;OAIG;IACH,iBAAiB,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc;CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,kBAAuB,GAC/B,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc,CAGxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"name-mapper.js","sourceRoot":"","sources":["../../src/core/name-mapper.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,eAAe,GAAqE;IACxF,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,UAAU;IACb,OAAO,CAAqB;IAEpC;;;;OAIG;IACH,YAAY,OAAO,GAAuB,EAAE;QAC1C,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,eAAe;YAClB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,UAAkB;QACpB,iCAAiC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,6BAA6B;QAC7B,IAAI,QAAQ,GAAG,UAAU,CAAC;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAChF,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,YAAoB,EAAE,QAAgB;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,CAAC;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY,CAAC;QAE/E,OAAO;YACL,YAAY;YACZ,SAAS,EAAE,QAAQ,GAAG,WAAW;YACjC,UAAU,EAAE,QAAQ,GAAG,YAAY;YACnC,WAAW,EAAE,QAAQ;SACtB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAO,GAAuB,EAAE;IAEhC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,UAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"name-mapper.js","sourceRoot":"","sources":["../../src/core/name-mapper.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,eAAe,GAAqE;IACxF,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,UAAU;IACb,OAAO,CAAqB;IAEpC;;;;OAIG;IACH,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,eAAe;YAClB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,UAAkB;QACpB,iCAAiC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,6BAA6B;QAC7B,IAAI,QAAQ,GAAG,UAAU,CAAC;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAChF,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,YAAoB,EAAE,QAAgB;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,CAAC;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY,CAAC;QAE/E,OAAO;YACL,YAAY;YACZ,SAAS,EAAE,QAAQ,GAAG,WAAW;YACjC,UAAU,EAAE,QAAQ,GAAG,YAAY;YACnC,WAAW,EAAE,QAAQ;SACtB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,UAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxD,CAAC"}
@@ -1,50 +1,30 @@
1
- import { SourceFile } from "ts-morph";
1
+ import type { SourceFile } from "@typescript/native-preview/unstable/ast";
2
2
  import type { DetectedSchema } from "./types.js";
3
3
  /**
4
- * Detects Zod schemas in TypeScript source files.
4
+ * SchemaDetector, implemented against the tsgo/Corsa `ast` API instead of
5
+ * ts-morph. Purely syntactic (never touches the checker), so it operates
6
+ * directly on a Corsa `SourceFile` node tree. See issue #200.
5
7
  */
6
8
  export declare class SchemaDetector {
7
- private cache;
8
9
  /**
9
10
  * Detects all Zod schemas in a source file.
10
11
  *
11
- * @param sourceFile - The ts-morph SourceFile to analyze
12
+ * @param sourceFile - The tsgo SourceFile to analyze
12
13
  * @returns Array of detected schema information (including non-exported schemas)
13
14
  */
14
15
  detectExportedSchemas(sourceFile: SourceFile): DetectedSchema[];
15
- /**
16
- * Known Zod schema builder functions that follow the z. prefix.
17
- */
18
- private static readonly ZOD_SCHEMA_BUILDERS;
19
- /**
20
- * Checks if a variable declaration is a Zod schema.
21
- *
22
- * @param declaration - The variable declaration to check
23
- * @returns true if the declaration is a Zod schema
24
- */
25
- private isZodSchema;
26
16
  /**
27
17
  * Gets all schema names from a source file.
28
- *
29
- * @param sourceFile - The ts-morph SourceFile to analyze
30
- * @returns Array of schema names
31
18
  */
32
19
  getSchemaNames(sourceFile: SourceFile): string[];
20
+ private getStartLine;
21
+ private findVariableDeclaration;
33
22
  /**
34
- * Extracts explicit type annotation from z.ZodType<T> or z.ZodSchema<T>.
35
- *
36
- * @param declaration - The variable declaration to check
37
- * @returns The explicit type string if found, undefined otherwise
23
+ * Known Zod schema builder functions that follow the z. prefix.
38
24
  */
25
+ private static readonly ZOD_SCHEMA_BUILDERS;
26
+ private isZodSchema;
39
27
  private extractExplicitType;
40
- /**
41
- * Extracts the first type parameter from a generic type string.
42
- * Handles nested brackets properly.
43
- *
44
- * @param typeText - The full type text (e.g., "ZodType<{ a: string }, ZodTypeDef>")
45
- * @param startIdx - The index after the opening "<"
46
- * @returns The first type parameter, or undefined if parsing fails
47
- */
48
28
  private extractFirstTypeParameter;
49
29
  }
50
30
  //# sourceMappingURL=schema-detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-detector.d.ts","sourceRoot":"","sources":["../../src/core/schema-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAuC;IAEpD;;;;;OAKG;IACH,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,EAAE,CAoE9D;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAwCxC;IAEH;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAoEnB;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAE/C;IAED;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAmC3B;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;CAyClC"}
1
+ {"version":3,"file":"schema-detector.d.ts","sourceRoot":"","sources":["../../src/core/schema-detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,UAAU,EAGX,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,cAAc;IACzB;;;;;OAKG;IACH,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,EAAE;IA+D/D;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE;IAIhD,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAwCxC;IAEH,OAAO,CAAC,WAAW;IA4DnB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,yBAAyB;CAuClC"}
@@ -1,58 +1,58 @@
1
+ import { ModifierFlags, SyntaxKind } from "@typescript/native-preview/unstable/ast";
1
2
  /**
2
- * Detects Zod schemas in TypeScript source files.
3
+ * SchemaDetector, implemented against the tsgo/Corsa `ast` API instead of
4
+ * ts-morph. Purely syntactic (never touches the checker), so it operates
5
+ * directly on a Corsa `SourceFile` node tree. See issue #200.
3
6
  */
4
7
  export class SchemaDetector {
5
- cache = new Map();
6
8
  /**
7
9
  * Detects all Zod schemas in a source file.
8
10
  *
9
- * @param sourceFile - The ts-morph SourceFile to analyze
11
+ * @param sourceFile - The tsgo SourceFile to analyze
10
12
  * @returns Array of detected schema information (including non-exported schemas)
11
13
  */
12
14
  detectExportedSchemas(sourceFile) {
13
- const filePath = sourceFile.getFilePath();
14
- const cached = this.cache.get(filePath);
15
- if (cached)
16
- return cached;
17
15
  const schemas = [];
18
- // Find all variable declarations
19
- const variableStatements = sourceFile.getVariableStatements();
20
- for (const statement of variableStatements) {
21
- const isExported = statement.isExported();
22
- for (const declaration of statement.getDeclarations()) {
23
- if (this.isZodSchema(declaration)) {
16
+ for (const statement of sourceFile.statements) {
17
+ if (statement.kind !== SyntaxKind.VariableStatement)
18
+ continue;
19
+ const variableStatement = statement;
20
+ const isExported = (variableStatement.modifierFlags & ModifierFlags.Export) !== 0;
21
+ for (const declaration of variableStatement.declarationList.declarations) {
22
+ if (this.isZodSchema(declaration, sourceFile)) {
24
23
  schemas.push({
25
- name: declaration.getName(),
24
+ name: declaration.name.getText(sourceFile),
26
25
  isExported,
27
- line: declaration.getStartLineNumber(),
28
- explicitType: this.extractExplicitType(declaration),
26
+ line: this.getStartLine(declaration, sourceFile),
27
+ explicitType: this.extractExplicitType(declaration, sourceFile),
29
28
  });
30
29
  }
31
30
  }
32
31
  }
33
32
  // Also check for re-exports: export { X as Y }
34
- const exportDeclarations = sourceFile.getExportDeclarations();
35
- for (const exportDecl of exportDeclarations) {
36
- const namedExports = exportDecl.getNamedExports();
37
- for (const namedExport of namedExports) {
38
- const aliasNode = namedExport.getAliasNode();
39
- const exportedName = aliasNode ? aliasNode.getText() : namedExport.getName();
40
- // Check if the original variable is a Zod schema
41
- const originalName = namedExport.getName();
42
- const originalDecl = sourceFile.getVariableDeclaration(originalName);
43
- if (originalDecl && this.isZodSchema(originalDecl)) {
44
- // If the exported name is different from original (alias), add new entry
33
+ for (const statement of sourceFile.statements) {
34
+ if (statement.kind !== SyntaxKind.ExportDeclaration)
35
+ continue;
36
+ const exportDecl = statement;
37
+ if (!exportDecl.exportClause || exportDecl.exportClause.kind !== SyntaxKind.NamedExports)
38
+ continue;
39
+ for (const namedExport of exportDecl.exportClause.elements) {
40
+ const exportedName = namedExport.name.getText(sourceFile);
41
+ const originalName = namedExport.propertyName
42
+ ? namedExport.propertyName.getText(sourceFile)
43
+ : exportedName;
44
+ const originalDecl = this.findVariableDeclaration(sourceFile, originalName);
45
+ if (originalDecl && this.isZodSchema(originalDecl, sourceFile)) {
45
46
  if (exportedName !== originalName) {
46
47
  if (!schemas.some((s) => s.name === exportedName)) {
47
48
  schemas.push({
48
49
  name: exportedName,
49
50
  isExported: true,
50
- line: namedExport.getStartLineNumber(),
51
+ line: this.getStartLine(namedExport, sourceFile),
51
52
  });
52
53
  }
53
54
  }
54
55
  else {
55
- // Same name re-export: update existing schema to mark as exported
56
56
  const existing = schemas.find((s) => s.name === originalName);
57
57
  if (existing) {
58
58
  existing.isExported = true;
@@ -61,18 +61,37 @@ export class SchemaDetector {
61
61
  schemas.push({
62
62
  name: exportedName,
63
63
  isExported: true,
64
- line: namedExport.getStartLineNumber(),
64
+ line: this.getStartLine(namedExport, sourceFile),
65
65
  });
66
66
  }
67
67
  }
68
68
  }
69
69
  }
70
70
  }
71
- // Return all schemas (both exported and non-exported)
72
- // The isExported flag is used by the type printer to control export keyword
73
- this.cache.set(filePath, schemas);
74
71
  return schemas;
75
72
  }
73
+ /**
74
+ * Gets all schema names from a source file.
75
+ */
76
+ getSchemaNames(sourceFile) {
77
+ return this.detectExportedSchemas(sourceFile).map((s) => s.name);
78
+ }
79
+ getStartLine(node, sourceFile) {
80
+ return sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1;
81
+ }
82
+ findVariableDeclaration(sourceFile, name) {
83
+ for (const statement of sourceFile.statements) {
84
+ if (statement.kind !== SyntaxKind.VariableStatement)
85
+ continue;
86
+ for (const declaration of statement.declarationList.declarations) {
87
+ if (declaration.name.kind === SyntaxKind.Identifier &&
88
+ declaration.name.getText(sourceFile) === name) {
89
+ return declaration;
90
+ }
91
+ }
92
+ }
93
+ return undefined;
94
+ }
76
95
  /**
77
96
  * Known Zod schema builder functions that follow the z. prefix.
78
97
  */
@@ -117,37 +136,25 @@ export class SchemaDetector {
117
136
  "strictObject",
118
137
  "looseObject",
119
138
  ]);
120
- /**
121
- * Checks if a variable declaration is a Zod schema.
122
- *
123
- * @param declaration - The variable declaration to check
124
- * @returns true if the declaration is a Zod schema
125
- */
126
- isZodSchema(declaration) {
127
- // Check for explicit Zod type annotation (z.ZodType<T>, z.ZodSchema<T>, etc.)
128
- const typeNode = declaration.getTypeNode();
139
+ isZodSchema(declaration, sourceFile) {
140
+ const typeNode = declaration.type;
129
141
  if (typeNode) {
130
- const typeText = typeNode.getText();
142
+ const typeText = typeNode.getText(sourceFile);
131
143
  if (typeText.includes("ZodType") ||
132
144
  typeText.includes("ZodSchema") ||
133
145
  typeText.includes("ZodEffects")) {
134
146
  return true;
135
147
  }
136
148
  }
137
- const initializer = declaration.getInitializer();
149
+ const initializer = declaration.initializer;
138
150
  if (!initializer) {
139
151
  return false;
140
152
  }
141
- const initText = initializer.getText();
142
- // Check if it starts with z. followed by a known Zod schema builder.
143
- // Whitespace is allowed around the dot: formatters break long chains
144
- // into multiple lines (e.g. `z\n .union([...])\n .describe(...)`).
153
+ const initText = initializer.getText(sourceFile);
145
154
  const builderMatch = initText.match(/^z\s*\.\s*([A-Za-z_$][A-Za-z0-9_$]*)/);
146
155
  if (builderMatch && SchemaDetector.ZOD_SCHEMA_BUILDERS.has(builderMatch[1])) {
147
156
  return true;
148
157
  }
149
- // Check if it's a method chain on another schema variable
150
- // e.g., SomeSchema.pick({...}), SomeSchema.merge(...)
151
158
  const zodMethods = [
152
159
  ".pick(",
153
160
  ".omit(",
@@ -174,35 +181,17 @@ export class SchemaDetector {
174
181
  return true;
175
182
  }
176
183
  }
177
- // Check for z.lazy() pattern (recursive schemas), tolerating
178
- // formatter-inserted whitespace around the dot
179
184
  if (/\bz\s*\.\s*lazy\s*\(/.test(initText)) {
180
185
  return true;
181
186
  }
182
187
  return false;
183
188
  }
184
- /**
185
- * Gets all schema names from a source file.
186
- *
187
- * @param sourceFile - The ts-morph SourceFile to analyze
188
- * @returns Array of schema names
189
- */
190
- getSchemaNames(sourceFile) {
191
- return this.detectExportedSchemas(sourceFile).map((s) => s.name);
192
- }
193
- /**
194
- * Extracts explicit type annotation from z.ZodType<T> or z.ZodSchema<T>.
195
- *
196
- * @param declaration - The variable declaration to check
197
- * @returns The explicit type string if found, undefined otherwise
198
- */
199
- extractExplicitType(declaration) {
200
- const typeNode = declaration.getTypeNode();
189
+ extractExplicitType(declaration, sourceFile) {
190
+ const typeNode = declaration.type;
201
191
  if (!typeNode) {
202
192
  return undefined;
203
193
  }
204
- const typeText = typeNode.getText();
205
- // Check if it matches Zod type patterns
194
+ const typeText = typeNode.getText(sourceFile);
206
195
  const zodTypePatterns = [
207
196
  "z.ZodType<",
208
197
  "z.ZodSchema<",
@@ -221,18 +210,9 @@ export class SchemaDetector {
221
210
  if (!matchedPattern) {
222
211
  return undefined;
223
212
  }
224
- // Extract the first type parameter using bracket counting
225
213
  const startIdx = matchedPattern.length;
226
214
  return this.extractFirstTypeParameter(typeText, startIdx);
227
215
  }
228
- /**
229
- * Extracts the first type parameter from a generic type string.
230
- * Handles nested brackets properly.
231
- *
232
- * @param typeText - The full type text (e.g., "ZodType<{ a: string }, ZodTypeDef>")
233
- * @param startIdx - The index after the opening "<"
234
- * @returns The first type parameter, or undefined if parsing fails
235
- */
236
216
  extractFirstTypeParameter(typeText, startIdx) {
237
217
  let depth = 1;
238
218
  let endIdx = startIdx;
@@ -241,7 +221,6 @@ export class SchemaDetector {
241
221
  while (endIdx < typeText.length && depth > 0) {
242
222
  const char = typeText[endIdx];
243
223
  const prevChar = typeText[endIdx - 1];
244
- // Track string literals
245
224
  if ((char === '"' || char === "'" || char === "`") && prevChar !== "\\") {
246
225
  if (!inString) {
247
226
  inString = true;
@@ -262,7 +241,6 @@ export class SchemaDetector {
262
241
  break;
263
242
  }
264
243
  else if (char === "," && depth === 1) {
265
- // Found the comma separating type parameters at depth 1
266
244
  break;
267
245
  }
268
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema-detector.js","sourceRoot":"","sources":["../../src/core/schema-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-detector.js","sourceRoot":"","sources":["../../src/core/schema-detector.ts"],"names":[],"mappings":"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"}
@@ -1,90 +1,36 @@
1
- import { SourceFile } from "ts-morph";
1
+ import type { SourceFile } from "@typescript/native-preview/unstable/ast";
2
2
  /**
3
- * Information about a schema reference within another schema.
3
+ * SchemaReferenceAnalyzer, implemented against the tsgo/Corsa `ast` API. See issue #200.
4
4
  */
5
5
  export interface SchemaReferenceInfo {
6
- /** The field path where the reference occurs (e.g., "output", "input") */
7
6
  fieldPath: string;
8
- /** The referenced schema name */
9
7
  refSchema: string;
10
- /** Whether wrapped in z.array() */
11
8
  isArray: boolean;
12
- /** Whether wrapped in z.record() */
13
9
  isRecord: boolean;
14
- /** Whether optional */
15
10
  isOptional: boolean;
16
11
  }
17
- /**
18
- * Information about union member references.
19
- */
20
12
  export interface UnionReferenceInfo {
21
- /** The referenced schema names (members of the union) */
22
13
  memberSchemas: string[];
23
- /** Whether the union also contains members that are not named schema references */
24
14
  hasInlineMembers: boolean;
25
- /** Whether this is a discriminated union */
26
15
  isDiscriminated: boolean;
27
- /** The discriminator key for discriminated unions */
28
16
  discriminatorKey?: string;
29
17
  }
30
- /**
31
- * Map of schema name to its references to other schemas.
32
- */
33
18
  export type SchemaReferenceMap = Map<string, SchemaReferenceInfo[]>;
34
- /**
35
- * Map of schema name to its union member references.
36
- */
37
19
  export type UnionReferenceMap = Map<string, UnionReferenceInfo>;
38
- /**
39
- * Analyzes schema references to detect cross-schema dependencies.
40
- */
41
20
  export declare class SchemaReferenceAnalyzer {
42
21
  private static readonly OBJECT_BUILDERS;
43
- /**
44
- * Zod methods that return `this` without changing the schema's input/output
45
- * types. References wrapped in these calls are still references to the same
46
- * schema, so they are unwrapped transparently during analysis.
47
- */
48
22
  private static readonly TYPE_PRESERVING_METHODS;
49
- /**
50
- * Analyzes a source file to find all schema references and union references in a single pass.
51
- */
52
23
  analyzeAllReferences(sourceFile: SourceFile, schemaNames: Set<string>): {
53
24
  references: SchemaReferenceMap;
54
25
  unionReferences: UnionReferenceMap;
55
26
  };
56
- /**
57
- * Finds union references in a schema definition.
58
- */
59
27
  private findUnionReference;
60
- /**
61
- * Parses a z.discriminatedUnion() call.
62
- */
63
28
  private parseDiscriminatedUnion;
64
- /**
65
- * Parses a z.union() call.
66
- */
67
29
  private parseUnion;
68
- /**
69
- * Extracts schema names from an array expression.
70
- */
71
30
  private extractSchemaArrayMembers;
72
- /**
73
- * Finds all references to other schemas within a schema definition.
74
- */
75
31
  private findSchemaReferences;
76
- /**
77
- * Finds schema references in an object shape, including same-file object-literal spreads.
78
- * Later properties override earlier spread entries, matching JavaScript object semantics.
79
- */
80
32
  private findObjectLiteralReferences;
81
- /**
82
- * Finds all Zod object calls in a node (including the node itself).
83
- */
84
33
  private findZodObjectCalls;
85
- /**
86
- * Analyzes a field value to detect schema references.
87
- */
88
34
  private analyzeFieldValue;
89
35
  }
90
36
  //# sourceMappingURL=schema-reference-analyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-reference-analyzer.d.ts","sourceRoot":"","sources":["../../src/core/schema-reference-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,uBAAuB;IACvB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mFAAmF;IACnF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,4CAA4C;IAC5C,eAAe,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEhE;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAsD;IAC7F;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAK5C;IACH;;OAEG;IACH,oBAAoB,CAClB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,eAAe,EAAE,iBAAiB,CAAA;KAAE,CA0BxE;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8C1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAmEnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6F1B"}
1
+ {"version":3,"file":"schema-reference-analyzer.d.ts","sourceRoot":"","sources":["../../src/core/schema-reference-analyzer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAGV,UAAU,EAEX,MAAM,yCAAyC,CAAC;AAGjD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEhE,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAsD;IAC7F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAK5C;IAEH,oBAAoB,CAClB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,eAAe,EAAE,iBAAiB,CAAA;KAAE;IA4BzE,OAAO,CAAC,kBAAkB;IA6C1B,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,2BAA2B;IA4EnC,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,iBAAiB;CAyF1B"}