zinfer 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -488,6 +488,33 @@ Re-run with `--generate-tests` after modifying schemas to continuously verify ty
488
488
  - Circular references: `z.lazy()`, getter patterns
489
489
  - Descriptions: `.describe()`
490
490
  - Branded types: `.brand()`
491
+ - Imported schemas: relative imports and subpath imports (package.json `imports` field, including the `#/*` form)
492
+
493
+ ## Subpath Imports
494
+
495
+ Schemas imported via the package.json [`imports`](https://nodejs.org/api/packages.html#subpath-imports) field are resolved automatically, including the `#/*` wildcard form supported by TypeScript 6 / Node 26.
496
+
497
+ ```json
498
+ // package.json
499
+ {
500
+ "imports": {
501
+ "#/*": "./src/*"
502
+ }
503
+ }
504
+ ```
505
+
506
+ ```typescript
507
+ // src/user.ts
508
+ import { z } from "zod";
509
+ import { AddressSchema } from "#/address.js";
510
+
511
+ export const UserSchema = z.object({
512
+ name: z.string(),
513
+ address: AddressSchema,
514
+ });
515
+ ```
516
+
517
+ The imported `AddressSchema` is resolved through the nearest package.json `imports` map (wildcard, exact, and conditional targets are all supported) so that its type is inlined into the generated output.
491
518
 
492
519
  ## License
493
520
 
@@ -1 +1 @@
1
- {"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../src/core/import-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,OAAO,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEhE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,qBAAqB,CAA6C;IAC1E,OAAO,CAAC,iBAAiB,CAGrB;gBAEQ,cAAc,CAAC,EAAE,cAAc;IAI3C;;;;;;OAMG;IACH,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,iBAAiB;IA2ChF;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA0ExB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqChC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAwB5B"}
1
+ {"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../src/core/import-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,OAAO,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEhE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,qBAAqB,CAA6C;IAC1E,OAAO,CAAC,iBAAiB,CAGrB;gBAEQ,cAAc,CAAC,EAAE,cAAc;IAI3C;;;;;;OAMG;IACH,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAmDhF;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA0ExB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqChC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAwB5B"}
@@ -23,8 +23,14 @@ export class ImportResolver {
23
23
  const imports = sourceFile.getImportDeclarations();
24
24
  for (const importDecl of imports) {
25
25
  const moduleSpecifier = importDecl.getModuleSpecifierValue();
26
- // Skip node_modules imports
27
- if (!moduleSpecifier.startsWith(".") && !moduleSpecifier.startsWith("/")) {
26
+ // Skip bare module specifiers (node_modules), but allow relative,
27
+ // absolute, and subpath imports (package.json "imports" field, e.g.
28
+ // "#/schemas/user.js"). Subpath imports — including the "#/*" form — are
29
+ // resolved by TypeScript's own module resolution (requires the
30
+ // TypeScript 6 bundled by ts-morph).
31
+ if (!moduleSpecifier.startsWith(".") &&
32
+ !moduleSpecifier.startsWith("/") &&
33
+ !moduleSpecifier.startsWith("#")) {
28
34
  continue;
29
35
  }
30
36
  // Resolve the module to a source file
@@ -1 +1 @@
1
- {"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../src/core/import-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../src/core/import-resolver.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * Built-in types like Date, Array, Map, Set, Promise, Function, etc. are preserved without expansion.
8
8
  * Symbol-keyed properties (like Zod's [BRAND]) are filtered out from object types.
9
9
  */
10
- export declare const NORMALIZE_TYPE_DEFINITION = "\ntype __Normalize<T> =\n T extends Date | RegExp | Error | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Function\n ? T\n : T extends (...args: infer A) => infer R\n ? (...args: __Normalize<A>) => __Normalize<R>\n : T extends (infer U)[]\n ? __Normalize<U>[]\n : T extends readonly (infer U)[]\n ? readonly __Normalize<U>[]\n : T extends string\n ? T extends object ? string : T\n : T extends number\n ? T extends object ? number : T\n : T extends boolean\n ? T extends object ? boolean : T\n : T extends bigint\n ? T extends object ? bigint : T\n : T extends object\n ? T extends infer O\n ? { [K in keyof O as K extends symbol ? never : K]: __Normalize<O[K]> }\n : never\n : T;\n";
10
+ export declare const NORMALIZE_TYPE_DEFINITION = "\ntype __Normalize<T> =\n T extends Date | RegExp | Error | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Function\n ? T\n : T extends (...args: infer A) => infer R\n ? (...args: __Normalize<A>) => __Normalize<R>\n : T extends readonly any[]\n ? number extends T['length']\n ? T extends (infer U)[]\n ? __Normalize<U>[]\n : readonly __Normalize<T[number]>[]\n : { [K in keyof T]: __Normalize<T[K]> }\n : T extends string\n ? T extends object ? string : T\n : T extends number\n ? T extends object ? number : T\n : T extends boolean\n ? T extends object ? boolean : T\n : T extends bigint\n ? T extends object ? bigint : T\n : T extends object\n ? T extends infer O\n ? { [K in keyof O as K extends symbol ? never : K]: __Normalize<O[K]> }\n : never\n : T;\n";
11
11
  /**
12
12
  * Creates a temporary type alias for extracting input or output type from a Zod schema.
13
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../src/core/normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,+7BAuBrC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAG5F"}
1
+ {"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../src/core/normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,giCAyBrC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAG5F"}
@@ -13,11 +13,13 @@ type __Normalize<T> =
13
13
  ? T
14
14
  : T extends (...args: infer A) => infer R
15
15
  ? (...args: __Normalize<A>) => __Normalize<R>
16
- : T extends (infer U)[]
17
- ? __Normalize<U>[]
18
- : T extends readonly (infer U)[]
19
- ? readonly __Normalize<U>[]
20
- : T extends string
16
+ : T extends readonly any[]
17
+ ? number extends T['length']
18
+ ? T extends (infer U)[]
19
+ ? __Normalize<U>[]
20
+ : readonly __Normalize<T[number]>[]
21
+ : { [K in keyof T]: __Normalize<T[K]> }
22
+ : T extends string
21
23
  ? T extends object ? string : T
22
24
  : T extends number
23
25
  ? T extends object ? number : T
@@ -1 +1 @@
1
- {"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/core/normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBxC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,QAA4B;IAClF,MAAM,QAAQ,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;IACvE,OAAO,QAAQ,QAAQ,oBAAoB,QAAQ,WAAW,UAAU,KAAK,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/core/normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBxC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,QAA4B;IAClF,MAAM,QAAQ,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;IACvE,OAAO,QAAQ,QAAQ,oBAAoB,QAAQ,WAAW,UAAU,KAAK,CAAC;AAChF,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "zinfer",
3
- "version": "0.1.7",
3
+ "version": "0.2.0",
4
4
  "description": "Extract input/output types from Zod schemas",
5
5
  "keywords": [
6
6
  "schema",
7
7
  "type-extraction",
8
8
  "typescript",
9
- "zod"
9
+ "zod",
10
+ "zod-to-ts"
10
11
  ],
11
12
  "license": "MIT",
12
13
  "repository": {
@@ -32,19 +33,19 @@
32
33
  "glob": "^13.0.0",
33
34
  "jiti": "^2.6.1",
34
35
  "pathe": "^2.0.3",
35
- "ts-morph": "^27.0.2"
36
+ "ts-morph": "^28.0.0"
36
37
  },
37
38
  "devDependencies": {
38
- "@changesets/cli": "2.29.8",
39
- "@types/node": "25.3.3",
40
- "@typescript/native-preview": "7.0.0-dev.20260302.1",
41
- "knip": "5.85.0",
42
- "lefthook": "2.1.2",
43
- "oxfmt": "0.36.0",
44
- "oxlint": "1.51.0",
45
- "typescript": "5.9.3",
46
- "vitest": "4.0.18",
47
- "zod": "4.3.6"
39
+ "@changesets/cli": "2.31.0",
40
+ "@types/node": "25.9.1",
41
+ "@typescript/native-preview": "7.0.0-dev.20260525.1",
42
+ "knip": "6.14.2",
43
+ "lefthook": "2.1.9",
44
+ "oxfmt": "0.51.0",
45
+ "oxlint": "1.66.0",
46
+ "typescript": "6.0.3",
47
+ "vitest": "4.1.7",
48
+ "zod": "4.4.3"
48
49
  },
49
50
  "peerDependencies": {
50
51
  "typescript": ">=5.0.0",