zod-aot 0.7.2 → 0.7.3

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/dist/loader.d.ts CHANGED
@@ -5,7 +5,8 @@ export interface LoadOptions {
5
5
  /**
6
6
  * Dynamically import a source file (.ts or .js).
7
7
  * - Bun/Deno: native TypeScript support, direct import
8
- * - Node.js: uses tsx's register API for TypeScript files
8
+ * - Node.js 22+: native type stripping, direct import
9
+ * - Node.js <22: uses tsx's register API for TypeScript files
9
10
  */
10
11
  export declare function loadSourceFile(filePath: string, options?: LoadOptions): Promise<Record<string, unknown>>;
11
12
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkBlC"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBlC"}
package/dist/loader.js CHANGED
@@ -7,32 +7,37 @@ function detectRuntime() {
7
7
  return "deno";
8
8
  return "node";
9
9
  }
10
+ async function importModule(absPath, suffix) {
11
+ return (await import(pathToFileURL(absPath).href + suffix));
12
+ }
10
13
  /**
11
14
  * Dynamically import a source file (.ts or .js).
12
15
  * - Bun/Deno: native TypeScript support, direct import
13
- * - Node.js: uses tsx's register API for TypeScript files
16
+ * - Node.js 22+: native type stripping, direct import
17
+ * - Node.js <22: uses tsx's register API for TypeScript files
14
18
  */
15
19
  export async function loadSourceFile(filePath, options) {
16
20
  const absPath = path.resolve(filePath);
17
21
  const ext = path.extname(absPath);
18
22
  const runtime = detectRuntime();
19
23
  const suffix = options?.cacheBust ? `?t=${Date.now()}` : "";
20
- // Bun and Deno can import TypeScript natively
21
- if (runtime === "bun" || runtime === "deno") {
22
- return (await import(pathToFileURL(absPath).href + suffix));
24
+ // Node.js < 22 needs tsx for TypeScript files.
25
+ // Node.js 22+ has native type stripping; tsx's register hook causes
26
+ // ERR_REQUIRE_CYCLE_MODULE due to stricter CJS/ESM interop cycle enforcement.
27
+ const needsTsx = runtime === "node" &&
28
+ (ext === ".ts" || ext === ".tsx" || ext === ".mts") &&
29
+ parseInt(process.versions.node, 10) < 22;
30
+ const unregister = needsTsx ? await registerTsx(absPath) : undefined;
31
+ try {
32
+ return await importModule(absPath, suffix);
23
33
  }
24
- // Node.js: TypeScript files need tsx
25
- if (ext === ".ts" || ext === ".tsx" || ext === ".mts") {
26
- return loadTypeScriptFileWithTsx(absPath, suffix);
34
+ finally {
35
+ unregister?.();
27
36
  }
28
- // Node.js: .js / .mjs — direct import
29
- return (await import(pathToFileURL(absPath).href + suffix));
30
37
  }
31
- async function loadTypeScriptFileWithTsx(absPath, suffix = "") {
38
+ async function registerTsx(absPath) {
32
39
  let tsxModule;
33
40
  try {
34
- // Dynamic import — tsx may or may not be installed
35
- // Use variable to prevent TypeScript from resolving the module statically
36
41
  const tsxSpecifier = "tsx/esm/api";
37
42
  tsxModule = (await import(tsxSpecifier));
38
43
  }
@@ -41,12 +46,6 @@ async function loadTypeScriptFileWithTsx(absPath, suffix = "") {
41
46
  `Install it: npm install -D tsx\n` +
42
47
  `File: ${absPath}`);
43
48
  }
44
- const unregister = tsxModule.register();
45
- try {
46
- return (await import(pathToFileURL(absPath).href + suffix));
47
- }
48
- finally {
49
- unregister();
50
- }
49
+ return tsxModule.register();
51
50
  }
52
51
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,SAAS,aAAa;IACpB,IAAI,KAAK,IAAI,UAAU;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,MAAM,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,OAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D,8CAA8C;IAC9C,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5C,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAA4B,CAAC;IACzF,CAAC;IAED,qCAAqC;IACrC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACtD,OAAO,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,sCAAsC;IACtC,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAA4B,CAAC;AACzF,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,OAAe,EACf,MAAM,GAAG,EAAE;IAEX,IAAI,SAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,mDAAmD;QACnD,0EAA0E;QAC1E,MAAM,YAAY,GAAG,aAAa,CAAC;QACnC,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAqB,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,4CAA4C;YAC1C,kCAAkC;YAClC,SAAS,OAAO,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAA4B,CAAC;IACzF,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,SAAS,aAAa;IACpB,IAAI,KAAK,IAAI,UAAU;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,MAAM,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,MAAc;IACzD,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAA4B,CAAC;AACzF,CAAC;AAOD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,OAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D,+CAA+C;IAC/C,oEAAoE;IACpE,8EAA8E;IAC9E,MAAM,QAAQ,GACZ,OAAO,KAAK,MAAM;QAClB,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC;QACnD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAE3C,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe;IACxC,IAAI,SAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,aAAa,CAAC;QACnC,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAqB,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,4CAA4C;YAC1C,kCAAkC;YAClC,SAAS,OAAO,EAAE,CACrB,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-aot",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Compile Zod schemas into zero-overhead validation functions at build time",
5
5
  "type": "module",
6
6
  "keywords": [