@zod-to-form/vite 0.1.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 (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -0
  3. package/dist/cache.d.ts +39 -0
  4. package/dist/cache.d.ts.map +1 -0
  5. package/dist/cache.js +56 -0
  6. package/dist/cache.js.map +1 -0
  7. package/dist/config/load.d.ts +59 -0
  8. package/dist/config/load.d.ts.map +1 -0
  9. package/dist/config/load.js +117 -0
  10. package/dist/config/load.js.map +1 -0
  11. package/dist/errors.d.ts +50 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +62 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/generate-mode/babel-traverse.d.ts +5 -0
  16. package/dist/generate-mode/babel-traverse.d.ts.map +1 -0
  17. package/dist/generate-mode/babel-traverse.js +16 -0
  18. package/dist/generate-mode/babel-traverse.js.map +1 -0
  19. package/dist/generate-mode/generate-source.d.ts +51 -0
  20. package/dist/generate-mode/generate-source.d.ts.map +1 -0
  21. package/dist/generate-mode/generate-source.js +187 -0
  22. package/dist/generate-mode/generate-source.js.map +1 -0
  23. package/dist/generate-mode/resolve-schema.d.ts +43 -0
  24. package/dist/generate-mode/resolve-schema.d.ts.map +1 -0
  25. package/dist/generate-mode/resolve-schema.js +182 -0
  26. package/dist/generate-mode/resolve-schema.js.map +1 -0
  27. package/dist/generate-mode/scan-jsx.d.ts +86 -0
  28. package/dist/generate-mode/scan-jsx.d.ts.map +1 -0
  29. package/dist/generate-mode/scan-jsx.js +161 -0
  30. package/dist/generate-mode/scan-jsx.js.map +1 -0
  31. package/dist/hmr.d.ts +44 -0
  32. package/dist/hmr.d.ts.map +1 -0
  33. package/dist/hmr.js +28 -0
  34. package/dist/hmr.js.map +1 -0
  35. package/dist/index.d.ts +61 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +59 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/logger.d.ts +27 -0
  40. package/dist/logger.d.ts.map +1 -0
  41. package/dist/logger.js +46 -0
  42. package/dist/logger.js.map +1 -0
  43. package/dist/plugin.d.ts +61 -0
  44. package/dist/plugin.d.ts.map +1 -0
  45. package/dist/plugin.js +650 -0
  46. package/dist/plugin.js.map +1 -0
  47. package/dist/query-mode/parse-specifier.d.ts +23 -0
  48. package/dist/query-mode/parse-specifier.d.ts.map +1 -0
  49. package/dist/query-mode/parse-specifier.js +83 -0
  50. package/dist/query-mode/parse-specifier.js.map +1 -0
  51. package/dist/query-mode/resolve-id.d.ts +12 -0
  52. package/dist/query-mode/resolve-id.d.ts.map +1 -0
  53. package/dist/query-mode/resolve-id.js +61 -0
  54. package/dist/query-mode/resolve-id.js.map +1 -0
  55. package/dist/query-mode/transform.d.ts +33 -0
  56. package/dist/query-mode/transform.d.ts.map +1 -0
  57. package/dist/query-mode/transform.js +90 -0
  58. package/dist/query-mode/transform.js.map +1 -0
  59. package/dist/resolver-strip.d.ts +58 -0
  60. package/dist/resolver-strip.d.ts.map +1 -0
  61. package/dist/resolver-strip.js +141 -0
  62. package/dist/resolver-strip.js.map +1 -0
  63. package/dist/tsconfig.tsbuildinfo +1 -0
  64. package/dist/types.d.ts +242 -0
  65. package/dist/types.d.ts.map +1 -0
  66. package/dist/types.js +2 -0
  67. package/dist/types.js.map +1 -0
  68. package/dist/write-guard.d.ts +26 -0
  69. package/dist/write-guard.d.ts.map +1 -0
  70. package/dist/write-guard.js +32 -0
  71. package/dist/write-guard.js.map +1 -0
  72. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface ParsedSpecifier {
2
+ kind: 'z2f';
3
+ /** The path portion without the query suffix. */
4
+ path: string;
5
+ /** Variant name (`''` for the bare `?z2f` default). */
6
+ variant: string;
7
+ }
8
+ /**
9
+ * Parse a Vite import specifier and decide whether the plugin handles it.
10
+ *
11
+ * Returns:
12
+ * - A {@link ParsedSpecifier} when the specifier carries a `?z2f` query
13
+ * that is well-formed
14
+ * - `null` when the specifier doesn't reference z2f at all (so other
15
+ * Vite plugins get their turn via the standard `resolveId` chain)
16
+ *
17
+ * Throws {@link Z2FViteError} when the specifier *intends* to use z2f
18
+ * (contains `z2f` as a query token) but is malformed — composed with
19
+ * other known queries, has an invalid variant name, or uses a reserved
20
+ * internal prefix.
21
+ */
22
+ export declare function parseSpecifier(specifier: string): ParsedSpecifier | null;
23
+ //# sourceMappingURL=parse-specifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-specifier.d.ts","sourceRoot":"","sources":["../../src/query-mode/parse-specifier.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA6ExE"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * parseSpecifier — recognize `?z2f` and `?z2f=<variant>` query-suffix
3
+ * imports, return null for everything else.
4
+ *
5
+ * Single source of truth for what counts as a z2f-handled specifier.
6
+ * Every Vite hook delegates here. Grammar table lives in
7
+ * `contracts/query-specifier.md`.
8
+ */
9
+ import { Z2FViteError } from '../errors.js';
10
+ const VARIANT_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
11
+ /**
12
+ * Parse a Vite import specifier and decide whether the plugin handles it.
13
+ *
14
+ * Returns:
15
+ * - A {@link ParsedSpecifier} when the specifier carries a `?z2f` query
16
+ * that is well-formed
17
+ * - `null` when the specifier doesn't reference z2f at all (so other
18
+ * Vite plugins get their turn via the standard `resolveId` chain)
19
+ *
20
+ * Throws {@link Z2FViteError} when the specifier *intends* to use z2f
21
+ * (contains `z2f` as a query token) but is malformed — composed with
22
+ * other known queries, has an invalid variant name, or uses a reserved
23
+ * internal prefix.
24
+ */
25
+ export function parseSpecifier(specifier) {
26
+ // Empty / no query / no path before `?` → not ours
27
+ const queryIndex = specifier.indexOf('?');
28
+ if (queryIndex <= 0)
29
+ return null;
30
+ const path = specifier.slice(0, queryIndex);
31
+ const query = specifier.slice(queryIndex + 1);
32
+ // Tokenize the query string by `&`. We're looking for `z2f` as a
33
+ // standalone key (or `z2f=value`), NOT a substring of a different key.
34
+ const tokens = query.split('&');
35
+ let z2fToken;
36
+ const otherTokens = [];
37
+ for (const token of tokens) {
38
+ const eqIndex = token.indexOf('=');
39
+ const key = eqIndex === -1 ? token : token.slice(0, eqIndex);
40
+ if (key === 'z2f') {
41
+ z2fToken = token;
42
+ }
43
+ else if (key.length > 0) {
44
+ otherTokens.push(key);
45
+ }
46
+ }
47
+ // No `z2f` token → not ours
48
+ if (z2fToken === undefined)
49
+ return null;
50
+ // `z2f` combined with other tokens → unsupported composition.
51
+ // The plugin refuses rather than silently picking one to honor.
52
+ if (otherTokens.length > 0) {
53
+ throw new Z2FViteError('Z2F_VITE_QUERY_COMPOSITION_UNSUPPORTED', `Specifier '${specifier}' combines '?z2f' with other query keys (${otherTokens.join(', ')}). Combine queries on the same import is not supported — use a separate import statement instead.`);
54
+ }
55
+ // Parse the variant value (or empty for bare `?z2f`)
56
+ const eqIndex = z2fToken.indexOf('=');
57
+ if (eqIndex === -1) {
58
+ return { kind: 'z2f', path, variant: '' };
59
+ }
60
+ const variant = z2fToken.slice(eqIndex + 1);
61
+ // Empty variant value (`?z2f=`) is malformed
62
+ if (variant.length === 0) {
63
+ throw new Z2FViteError('Z2F_VITE_INVALID_VARIANT_NAME', `Specifier '${specifier}' uses '?z2f=' with an empty variant value. Either drop the '=' to use the default variant, or supply a name matching ${VARIANT_NAME}.`);
64
+ }
65
+ // `__generate_` prefix is reserved for generate mode's internal use.
66
+ // The plugin's own generate-mode emitter produces ids of the form
67
+ // `__generate_<positive-int>` (counter scoped per source file), and
68
+ // those round-trip back through this parser when the synthesized
69
+ // import hits the load hook. Allow the strict `__generate_<digits>`
70
+ // form, reject anything else with the prefix as a user-collision
71
+ // attempt.
72
+ if (variant.startsWith('__generate_')) {
73
+ if (!/^__generate_\d+$/.test(variant)) {
74
+ throw new Z2FViteError('Z2F_VITE_INVALID_VARIANT_NAME', `Variant name '${variant}' uses the reserved '__generate_' prefix. The '__generate_<n>' form is plugin-internal — pick a different name.`);
75
+ }
76
+ return { kind: 'z2f', path, variant };
77
+ }
78
+ if (!VARIANT_NAME.test(variant)) {
79
+ throw new Z2FViteError('Z2F_VITE_INVALID_VARIANT_NAME', `Variant name '${variant}' is invalid. Variant names must match ${VARIANT_NAME} (JavaScript identifier rules: starts with letter or underscore, then alphanumerics or underscores).`);
80
+ }
81
+ return { kind: 'z2f', path, variant };
82
+ }
83
+ //# sourceMappingURL=parse-specifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-specifier.js","sourceRoot":"","sources":["../../src/query-mode/parse-specifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare function resolveZ2FId(specifier: string, resolvedAbsolutePath: string, viteRoot: string): string | null;
2
+ /**
3
+ * Inverse of `resolveZ2FId`: parse a normalized virtual module id back into
4
+ * `(schemaFile, variant)`. Used by the load and HMR hooks.
5
+ *
6
+ * Returns `null` if the id is not a z2f virtual id.
7
+ */
8
+ export declare function parseZ2FId(id: string): {
9
+ schemaFile: string;
10
+ variant: string;
11
+ } | null;
12
+ //# sourceMappingURL=resolve-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-id.d.ts","sourceRoot":"","sources":["../../src/query-mode/resolve-id.ts"],"names":[],"mappings":"AAmCA,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAgBf;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMrF"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * resolveZ2FId — pure helper for the resolveId Vite hook.
3
+ *
4
+ * Given an import specifier and the absolute resolved path that Vite's
5
+ * standard resolver returned for the path portion, decide whether this
6
+ * is a z2f-handled import and produce the normalized virtual module id.
7
+ *
8
+ * Returns:
9
+ * - `null` if the specifier doesn't carry `?z2f` (so other Vite plugins
10
+ * get their turn via the standard resolveId chain)
11
+ * - The normalized id `<absolutePath>?z2f[=variant]` when the import is
12
+ * handled
13
+ *
14
+ * Throws:
15
+ * - `Z2F_VITE_SCHEMA_OUTSIDE_ROOT` when the resolved path is outside the
16
+ * Vite root (FR-021 — schemas must live in project source)
17
+ * - Any error parseSpecifier throws (composition errors, invalid variants)
18
+ */
19
+ import { parseSpecifier } from './parse-specifier.js';
20
+ import { Z2FViteError } from '../errors.js';
21
+ /**
22
+ * Check if a child path lives inside a parent root. Both must be
23
+ * absolute. We normalize backslashes to forward slashes on both sides
24
+ * so mixed separators on Windows compare correctly — Vite itself exposes
25
+ * forward-slash ids in most code paths, but `this.resolve()` sometimes
26
+ * returns OS-native paths, so the guard needs to survive either shape.
27
+ */
28
+ function isInsideRoot(child, root) {
29
+ const c = child.replace(/\\/g, '/');
30
+ const r = root.replace(/\\/g, '/');
31
+ const normalizedRoot = r.endsWith('/') ? r : r + '/';
32
+ return c === r || c.startsWith(normalizedRoot);
33
+ }
34
+ export function resolveZ2FId(specifier, resolvedAbsolutePath, viteRoot) {
35
+ const parsed = parseSpecifier(specifier);
36
+ if (parsed === null)
37
+ return null;
38
+ if (!isInsideRoot(resolvedAbsolutePath, viteRoot)) {
39
+ throw new Z2FViteError('Z2F_VITE_SCHEMA_OUTSIDE_ROOT', `Schema '${resolvedAbsolutePath}' is outside the Vite root '${viteRoot}'. The plugin only compiles schemas in your project's own source. Move the schema into the project, or use the codegen CLI for cross-project schemas.`, { file: resolvedAbsolutePath });
40
+ }
41
+ // Re-attach the query so each (schema, variant) pair has its own
42
+ // stable virtual module id in Vite's graph.
43
+ const query = parsed.variant === '' ? '?z2f' : `?z2f=${parsed.variant}`;
44
+ return `${resolvedAbsolutePath}${query}`;
45
+ }
46
+ /**
47
+ * Inverse of `resolveZ2FId`: parse a normalized virtual module id back into
48
+ * `(schemaFile, variant)`. Used by the load and HMR hooks.
49
+ *
50
+ * Returns `null` if the id is not a z2f virtual id.
51
+ */
52
+ export function parseZ2FId(id) {
53
+ // Cheap check before invoking parseSpecifier
54
+ if (!id.includes('?z2f'))
55
+ return null;
56
+ const parsed = parseSpecifier(id);
57
+ if (parsed === null)
58
+ return null;
59
+ return { schemaFile: parsed.path, variant: parsed.variant };
60
+ }
61
+ //# sourceMappingURL=resolve-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-id.js","sourceRoot":"","sources":["../../src/query-mode/resolve-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACrD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,oBAA4B,EAC5B,QAAgB;IAEhB,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,YAAY,CACpB,8BAA8B,EAC9B,WAAW,oBAAoB,+BAA+B,QAAQ,uJAAuJ,EAC7N,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAC/B,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,4CAA4C;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;IACxE,OAAO,GAAG,oBAAoB,GAAG,KAAK,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { CodegenConfig } from '@zod-to-form/core';
2
+ import type { ModuleNamespace } from '../config/load.js';
3
+ import type { Z2FViteConfig } from '../types.js';
4
+ export interface CompileTargetInput {
5
+ /** The module namespace returned by `ssrLoadModule` / `this.load`. */
6
+ namespace: ModuleNamespace;
7
+ /** Absolute path to the schema source file (used in error messages). */
8
+ schemaFile: string;
9
+ /** Variant name (`''` for the default target). */
10
+ variant: string;
11
+ /** The full plugin-side config, before variant merging. */
12
+ config: Z2FViteConfig;
13
+ }
14
+ export interface CompileTargetResult {
15
+ /** The generated `.tsx` source string. */
16
+ generatedSource: string;
17
+ /** The companion `.lite.ts` source, or `null` if no top-level effects. */
18
+ schemaLiteSource: string | null;
19
+ /** The effective config used for this compilation (post variant merge). */
20
+ effectiveConfig: CodegenConfig;
21
+ /** The selected export name from the schema module namespace. */
22
+ exportName: string;
23
+ }
24
+ /**
25
+ * Pick the schema, walk it, generate the form. This is the function every
26
+ * other entry point (load hook, build pipeline, integration tests) calls.
27
+ *
28
+ * Note on the type cast for `walkSchema`: `walkSchema` accepts a `$ZodType`
29
+ * and we just verified the value structurally has `_zod`, so the cast is
30
+ * sound. The structural check happens inside `selectExport`.
31
+ */
32
+ export declare function compileTarget(input: CompileTargetInput): CompileTargetResult;
33
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/query-mode/transform.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAA8B,MAAM,mBAAmB,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAejD,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,SAAS,EAAE,eAAe,CAAC;IAC3B,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2EAA2E;IAC3E,eAAe,EAAE,aAAa,CAAC;IAC/B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA+D5E"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * compileTarget — pure side of the `load` hook.
3
+ *
4
+ * Given an already-loaded schema module namespace (whoever's calling this
5
+ * is responsible for getting it via `ssrLoadModule` or `this.load`),
6
+ * produces the generated form source string and optional `.lite.ts` source.
7
+ *
8
+ * No I/O. No Vite context. No caching. The dispatching `load` hook in
9
+ * `plugin.ts` handles all of that.
10
+ */
11
+ import path from 'node:path';
12
+ import { walkSchema } from '@zod-to-form/core';
13
+ import { generateFormComponent, generateSchemaLiteFile } from '@zod-to-form/codegen';
14
+ import { buildEffectiveConfig, selectExport } from '../config/load.js';
15
+ /**
16
+ * Default `schemaImportPath` for query-mode targets when the user did not
17
+ * configure one explicitly. The generated module's id is
18
+ * `<schemaFile>?z2f`, so a relative import to the schema file's full
19
+ * basename (WITH extension) unambiguously points back at the original
20
+ * schema. We deliberately keep the extension to avoid the `signup.ts`
21
+ * vs `signup.tsx` vs `signup/index.ts` ambiguity that would arise from
22
+ * stripping it and relying on Vite's `resolve.extensions` auto-resolution.
23
+ */
24
+ function defaultSchemaImportPath(schemaFile) {
25
+ return `./${path.basename(schemaFile)}`;
26
+ }
27
+ /**
28
+ * Pick the schema, walk it, generate the form. This is the function every
29
+ * other entry point (load hook, build pipeline, integration tests) calls.
30
+ *
31
+ * Note on the type cast for `walkSchema`: `walkSchema` accepts a `$ZodType`
32
+ * and we just verified the value structurally has `_zod`, so the cast is
33
+ * sound. The structural check happens inside `selectExport`.
34
+ */
35
+ export function compileTarget(input) {
36
+ const { namespace, schemaFile, variant, config } = input;
37
+ const effectiveConfig = buildEffectiveConfig(config, variant);
38
+ const expectedName = effectiveConfig.exportName || undefined;
39
+ const { name, schema } = selectExport(namespace, schemaFile, expectedName);
40
+ // Walk the schema, optionally with the optimization level the user
41
+ // configured. The result type depends on whether optimization is set.
42
+ const optimization = effectiveConfig.validationLevel
43
+ ? { optimization: { level: effectiveConfig.validationLevel } }
44
+ : undefined;
45
+ let fields;
46
+ let schemaLite = null;
47
+ let schemaLiteInfo = null;
48
+ if (optimization) {
49
+ const result = walkSchema(schema, optimization);
50
+ fields = result.fields;
51
+ schemaLite = result.schemaLite;
52
+ schemaLiteInfo = result.schemaLiteInfo;
53
+ }
54
+ else {
55
+ fields = walkSchema(schema);
56
+ }
57
+ // Build the codegen-facing config: take the effective config but
58
+ // overwrite exportName with the actually-selected name (so auto-detect
59
+ // mode produces the right import statements), inject the default
60
+ // schemaImportPath when the user didn't supply one, and inject
61
+ // schemaLite info if optimization produced any effects.
62
+ //
63
+ // Generate-mode variants always emit under the fixed component name
64
+ // `Form` regardless of `componentName`. The synthesized generate-mode
65
+ // import (`import { Form as _z2fGeneratedForm_<n> }`) is decoupled
66
+ // from the user's chosen name this way — the generate emitter can hard-
67
+ // code `Form` instead of threading the user's configured name through
68
+ // the AST visitor.
69
+ const isGenerateVariant = /^__generate_\d+$/.test(variant);
70
+ const codegenConfig = {
71
+ ...effectiveConfig,
72
+ exportName: name,
73
+ componentName: isGenerateVariant ? 'Form' : (effectiveConfig.componentName ?? 'Form'),
74
+ schemaImportPath: effectiveConfig.schemaImportPath ?? defaultSchemaImportPath(schemaFile),
75
+ schemaLite: schemaLite ?? undefined,
76
+ schemaLiteInfo: schemaLiteInfo ?? undefined
77
+ };
78
+ const generatedSource = generateFormComponent(fields, codegenConfig);
79
+ // Generate the companion .lite.ts file if optimization produced effects.
80
+ const schemaLiteSource = schemaLiteInfo !== null
81
+ ? generateSchemaLiteFile(codegenConfig.schemaImportPath ?? './schema', name, schemaLiteInfo)
82
+ : null;
83
+ return {
84
+ generatedSource,
85
+ schemaLiteSource,
86
+ effectiveConfig: codegenConfig,
87
+ exportName: name
88
+ };
89
+ }
90
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/query-mode/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIvE;;;;;;;;GAQG;AACH,SAAS,uBAAuB,CAAC,UAAkB;IACjD,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1C,CAAC;AAwBD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzD,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,IAAI,SAAS,CAAC;IAE7D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAE3E,mEAAmE;IACnE,sEAAsE;IACtE,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe;QAClD,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,eAAe,EAAE,EAAE;QAC9D,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,MAAM,CAAC;IACX,IAAI,UAAU,GAAoB,IAAI,CAAC;IACvC,IAAI,cAAc,GAAmB,IAAI,CAAC;IAE1C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,YAAY,CAAe,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC/B,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,iEAAiE;IACjE,uEAAuE;IACvE,iEAAiE;IACjE,+DAA+D;IAC/D,wDAAwD;IACxD,EAAE;IACF,oEAAoE;IACpE,sEAAsE;IACtE,mEAAmE;IACnE,wEAAwE;IACxE,sEAAsE;IACtE,mBAAmB;IACnB,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAkB;QACnC,GAAG,eAAe;QAClB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,IAAI,MAAM,CAAC;QACrF,gBAAgB,EAAE,eAAe,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,UAAU,CAAC;QACzF,UAAU,EAAE,UAAU,IAAI,SAAS;QACnC,cAAc,EAAE,cAAc,IAAI,SAAS;KAC5C,CAAC;IAEF,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAErE,yEAAyE;IACzE,MAAM,gBAAgB,GACpB,cAAc,KAAK,IAAI;QACrB,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,gBAAgB,IAAI,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO;QACL,eAAe;QACf,gBAAgB;QAChB,eAAe,EAAE,aAAa;QAC9B,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * resolver-strip — build-mode pass that eliminates `zodResolver` from the
3
+ * `@zod-to-form/react` `useZodForm` hook when the user has validation
4
+ * optimization enabled (FR-013).
5
+ *
6
+ * The runtime hook keeps a static `import { zodResolver } from
7
+ * '@hookform/resolvers/zod'` so non-optimized users get the resolver via
8
+ * normal ESM evaluation. When optimization is on, every call site sits
9
+ * inside an `isOptimized ? undefined : zodResolver(...)` ternary, and
10
+ * the call is dead code — but Rollup's tree-shaker can't prove that
11
+ * statically because the ternary's condition is a runtime value.
12
+ *
13
+ * This pure helper rewrites every `zodResolver(rhfCast(schema))` call
14
+ * in `useZodForm` source to a literal `undefined`. After the rewrite
15
+ * the import has zero remaining references, and Rollup eliminates the
16
+ * import statement automatically — closing the gzipped delta the
17
+ * benchmark page asserts.
18
+ *
19
+ * Pure: takes source + a "should-strip" flag, returns transformed source
20
+ * + sourcemap. No I/O, no plugin context. The plugin's `transform` hook
21
+ * decides WHEN to call it based on file id + config.
22
+ */
23
+ import MagicString from 'magic-string';
24
+ export interface ResolverStripInput {
25
+ /** The source code of the file (typically `useZodForm.{ts,js}`). */
26
+ source: string;
27
+ }
28
+ export interface ResolverStripOutput {
29
+ /** Transformed code (or original if there was nothing to strip). */
30
+ code: string;
31
+ /** Magic-string sourcemap (hires). */
32
+ map: ReturnType<MagicString['generateMap']>;
33
+ /** Number of `zodResolver(...)` call sites the strip replaced. */
34
+ rewritten: number;
35
+ }
36
+ /**
37
+ * Detect whether a Vite/Rollup module id refers to the `useZodForm` hook
38
+ * source. We accept any extension (.ts / .tsx / .js / .mjs / .cjs) so
39
+ * the strip works equally well in dev (raw .ts) and build (transpiled .js).
40
+ */
41
+ export declare function isUseZodFormId(id: string): boolean;
42
+ /**
43
+ * Rewrite every `zodResolver(...)` call expression in `source` to
44
+ * `undefined` AND remove the now-unused
45
+ * `import { zodResolver } from '@hookform/resolvers/zod'` statement.
46
+ *
47
+ * Two-pass: first locate every call site (validates balanced parens
48
+ * across the whole file), then apply edits via magic-string. If the
49
+ * scan reports unbalanced parens we throw `Z2F_VITE_RESOLVER_STRIP_FAILED`
50
+ * — partial rewrites would corrupt the file silently.
51
+ *
52
+ * Uses a regex sweep + manual paren balancing rather than an AST visitor
53
+ * because the call shape in `useZodForm` is fixed and the strip is a
54
+ * one-shot source-level rewrite — pulling Babel back in just for two
55
+ * replacements would be massively over-engineered.
56
+ */
57
+ export declare function stripResolver(input: ResolverStripInput): ResolverStripOutput;
58
+ //# sourceMappingURL=resolver-strip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver-strip.d.ts","sourceRoot":"","sources":["../src/resolver-strip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,WAAW,MAAM,cAAc,CAAC;AAGvC,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5C,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMlD;AA+DD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAiD5E"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * resolver-strip — build-mode pass that eliminates `zodResolver` from the
3
+ * `@zod-to-form/react` `useZodForm` hook when the user has validation
4
+ * optimization enabled (FR-013).
5
+ *
6
+ * The runtime hook keeps a static `import { zodResolver } from
7
+ * '@hookform/resolvers/zod'` so non-optimized users get the resolver via
8
+ * normal ESM evaluation. When optimization is on, every call site sits
9
+ * inside an `isOptimized ? undefined : zodResolver(...)` ternary, and
10
+ * the call is dead code — but Rollup's tree-shaker can't prove that
11
+ * statically because the ternary's condition is a runtime value.
12
+ *
13
+ * This pure helper rewrites every `zodResolver(rhfCast(schema))` call
14
+ * in `useZodForm` source to a literal `undefined`. After the rewrite
15
+ * the import has zero remaining references, and Rollup eliminates the
16
+ * import statement automatically — closing the gzipped delta the
17
+ * benchmark page asserts.
18
+ *
19
+ * Pure: takes source + a "should-strip" flag, returns transformed source
20
+ * + sourcemap. No I/O, no plugin context. The plugin's `transform` hook
21
+ * decides WHEN to call it based on file id + config.
22
+ */
23
+ import MagicString from 'magic-string';
24
+ import { Z2FViteError } from './errors.js';
25
+ /**
26
+ * Detect whether a Vite/Rollup module id refers to the `useZodForm` hook
27
+ * source. We accept any extension (.ts / .tsx / .js / .mjs / .cjs) so
28
+ * the strip works equally well in dev (raw .ts) and build (transpiled .js).
29
+ */
30
+ export function isUseZodFormId(id) {
31
+ // Strip query string and normalize separators so the basename check
32
+ // survives on Windows.
33
+ const queryIdx = id.indexOf('?');
34
+ const path = (queryIdx === -1 ? id : id.slice(0, queryIdx)).replace(/\\/g, '/');
35
+ return /(^|\/)useZodForm\.(?:ts|tsx|js|jsx|mjs|cjs)$/.test(path);
36
+ }
37
+ /**
38
+ * Locate every `zodResolver(...)` call expression in `source`. Returns
39
+ * the call sites in source order, or `null` if any candidate is unbalanced
40
+ * — callers MUST treat `null` as "do not rewrite this file" (we can't
41
+ * partially rewrite without leaving a corrupt half-edited result).
42
+ *
43
+ * The scanner is kept separate from the rewriter so we can run a full
44
+ * pass before any `magic-string` mutation. That's the contract that
45
+ * prevents the unbalanced-paren bail from leaving the file half-stripped.
46
+ */
47
+ function scanCallSites(source) {
48
+ const sites = [];
49
+ let cursor = 0;
50
+ const NEEDLE = 'zodResolver(';
51
+ while (cursor < source.length) {
52
+ const start = source.indexOf(NEEDLE, cursor);
53
+ if (start === -1)
54
+ break;
55
+ // Word-boundary guard: reject when the preceding character is part
56
+ // of an identifier (so `myzodResolver(`, `_zodResolver(`, etc. are
57
+ // not matched). The previous character is checked DIRECTLY (no
58
+ // whitespace skip) — `foozodResolver(` should fail even though
59
+ // there's no whitespace separator.
60
+ const prev = start === 0 ? '' : source[start - 1];
61
+ const isIdentifierContinuation = prev !== '' && /[A-Za-z0-9_$]/.test(prev);
62
+ if (isIdentifierContinuation) {
63
+ cursor = start + NEEDLE.length;
64
+ continue;
65
+ }
66
+ // Find the matching close-paren via single-pass depth tracking.
67
+ let depth = 1;
68
+ let i = start + NEEDLE.length;
69
+ while (i < source.length && depth > 0) {
70
+ const c = source[i];
71
+ if (c === '(')
72
+ depth += 1;
73
+ else if (c === ')')
74
+ depth -= 1;
75
+ i += 1;
76
+ }
77
+ if (depth !== 0) {
78
+ // Unbalanced. Bail with `null` so the caller refuses to rewrite
79
+ // anything in this file rather than leaving a half-edited result.
80
+ return null;
81
+ }
82
+ sites.push({ start, end: i });
83
+ cursor = i;
84
+ }
85
+ return sites;
86
+ }
87
+ /**
88
+ * Rewrite every `zodResolver(...)` call expression in `source` to
89
+ * `undefined` AND remove the now-unused
90
+ * `import { zodResolver } from '@hookform/resolvers/zod'` statement.
91
+ *
92
+ * Two-pass: first locate every call site (validates balanced parens
93
+ * across the whole file), then apply edits via magic-string. If the
94
+ * scan reports unbalanced parens we throw `Z2F_VITE_RESOLVER_STRIP_FAILED`
95
+ * — partial rewrites would corrupt the file silently.
96
+ *
97
+ * Uses a regex sweep + manual paren balancing rather than an AST visitor
98
+ * because the call shape in `useZodForm` is fixed and the strip is a
99
+ * one-shot source-level rewrite — pulling Babel back in just for two
100
+ * replacements would be massively over-engineered.
101
+ */
102
+ export function stripResolver(input) {
103
+ const { source } = input;
104
+ // Substring fast-path — most files don't contain `zodResolver`, and
105
+ // even useZodForm is small enough that re-scanning the source is fine.
106
+ if (!source.includes('zodResolver(')) {
107
+ const ms = new MagicString(source);
108
+ return { code: source, map: ms.generateMap({ hires: true }), rewritten: 0 };
109
+ }
110
+ // Pass 1: locate every call site. Bail BEFORE any magic-string mutation
111
+ // if the scan can't find a matching close-paren.
112
+ const sites = scanCallSites(source);
113
+ if (sites === null) {
114
+ throw new Z2FViteError('Z2F_VITE_RESOLVER_STRIP_FAILED', 'resolver-strip aborted: an unbalanced zodResolver(...) call was encountered. Refusing to apply a partial rewrite. Check the source for syntax errors.');
115
+ }
116
+ if (sites.length === 0) {
117
+ const ms = new MagicString(source);
118
+ return { code: source, map: ms.generateMap({ hires: true }), rewritten: 0 };
119
+ }
120
+ // Pass 2: apply edits.
121
+ const ms = new MagicString(source);
122
+ // Drop the `import { zodResolver } from '@hookform/resolvers/zod'`
123
+ // line entirely. Rollup is conservative about side-effect-only
124
+ // imports — even after every call site becomes `undefined`, the
125
+ // bare `import '@hookform/resolvers/zod'` survives in the bundle
126
+ // unless we remove it ourselves.
127
+ const importRegex = /^\s*import\s*\{\s*zodResolver\s*\}\s*from\s*['"]@hookform\/resolvers\/zod['"]\s*;?\s*\n?/m;
128
+ const importMatch = importRegex.exec(source);
129
+ if (importMatch !== null) {
130
+ ms.remove(importMatch.index, importMatch.index + importMatch[0].length);
131
+ }
132
+ for (const site of sites) {
133
+ ms.overwrite(site.start, site.end, 'undefined');
134
+ }
135
+ return {
136
+ code: ms.toString(),
137
+ map: ms.generateMap({ hires: true }),
138
+ rewritten: sites.length
139
+ };
140
+ }
141
+ //# sourceMappingURL=resolver-strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver-strip.js","sourceRoot":"","sources":["../src/resolver-strip.ts"],"names":[],"mappings":"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"}