attaform 0.16.1 → 0.16.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.
Files changed (52) hide show
  1. package/README.md +11 -13
  2. package/dist/index.d.cts +3 -3
  3. package/dist/index.d.mts +3 -3
  4. package/dist/index.d.ts +3 -3
  5. package/dist/nuxt.d.cts +1 -1
  6. package/dist/nuxt.d.mts +1 -1
  7. package/dist/nuxt.d.ts +1 -1
  8. package/dist/shared/{attaform.CVv9Oh0a.d.mts → attaform.Bls_kFR6.d.mts} +1 -1
  9. package/dist/shared/attaform.C8CyvYa_.cjs +36 -0
  10. package/dist/shared/attaform.C8CyvYa_.cjs.map +1 -0
  11. package/dist/shared/attaform.C9Ph2SMx.cjs.map +1 -1
  12. package/dist/shared/{attaform.DdnithOf.mjs → attaform.CFA6y0KF.mjs} +6 -17
  13. package/dist/shared/attaform.CFA6y0KF.mjs.map +1 -0
  14. package/dist/shared/attaform.D13GMFgK.mjs +32 -0
  15. package/dist/shared/attaform.D13GMFgK.mjs.map +1 -0
  16. package/dist/shared/{attaform.DfrYByDj.cjs → attaform.DGuGGNg9.cjs} +8 -15
  17. package/dist/shared/attaform.DGuGGNg9.cjs.map +1 -0
  18. package/dist/shared/attaform.DILbdvfo.mjs.map +1 -1
  19. package/dist/shared/{attaform.Dq5BabH1.d.cts → attaform.DLnKT7wk.d.cts} +1 -1
  20. package/dist/shared/{attaform.Bp1c-uGF.cjs → attaform.KrNw10aW.cjs} +6 -17
  21. package/dist/shared/attaform.KrNw10aW.cjs.map +1 -0
  22. package/dist/shared/{attaform.CvOXSpCb.mjs → attaform.XYOMTvuO.mjs} +8 -15
  23. package/dist/shared/attaform.XYOMTvuO.mjs.map +1 -0
  24. package/dist/shared/{attaform.0Gxd_OOx.d.cts → attaform._EqYNPYF.d.cts} +21 -13
  25. package/dist/shared/{attaform.0Gxd_OOx.d.mts → attaform._EqYNPYF.d.mts} +21 -13
  26. package/dist/shared/{attaform.0Gxd_OOx.d.ts → attaform._EqYNPYF.d.ts} +21 -13
  27. package/dist/shared/{attaform.CWCx2r0x.d.ts → attaform.lFNwBcA3.d.ts} +1 -1
  28. package/dist/zod-v3.cjs +1 -1
  29. package/dist/zod-v3.d.cts +19 -14
  30. package/dist/zod-v3.d.mts +19 -14
  31. package/dist/zod-v3.d.ts +19 -14
  32. package/dist/zod-v3.mjs +1 -1
  33. package/dist/zod-v4.cjs +1 -1
  34. package/dist/zod-v4.d.cts +94 -5
  35. package/dist/zod-v4.d.mts +94 -5
  36. package/dist/zod-v4.d.ts +94 -5
  37. package/dist/zod-v4.mjs +1 -1
  38. package/dist/zod.cjs +22 -4
  39. package/dist/zod.cjs.map +1 -1
  40. package/dist/zod.d.cts +51 -7
  41. package/dist/zod.d.mts +51 -7
  42. package/dist/zod.d.ts +51 -7
  43. package/dist/zod.mjs +21 -4
  44. package/dist/zod.mjs.map +1 -1
  45. package/package.json +1 -1
  46. package/dist/shared/attaform.BAuJTWuT.d.mts +0 -84
  47. package/dist/shared/attaform.Bp1c-uGF.cjs.map +0 -1
  48. package/dist/shared/attaform.CvOXSpCb.mjs.map +0 -1
  49. package/dist/shared/attaform.DdnithOf.mjs.map +0 -1
  50. package/dist/shared/attaform.DfrYByDj.cjs.map +0 -1
  51. package/dist/shared/attaform.ls_7jBYc.d.ts +0 -84
  52. package/dist/shared/attaform.xIcmqscx.d.cts +0 -84
package/README.md CHANGED
@@ -18,14 +18,12 @@ That's it for client-side rendering. Forms render and validate the moment you ca
18
18
 
19
19
  ### Going further
20
20
 
21
- **Nuxt 3 / 4** — install the Vue plugin via a Nuxt plugin:
21
+ **Nuxt 3 / 4** — add the module:
22
22
 
23
23
  ```ts
24
- // plugins/attaform.ts
25
- import { createAttaform } from 'attaform'
26
-
27
- export default defineNuxtPlugin((nuxtApp) => {
28
- nuxtApp.vueApp.use(createAttaform())
24
+ // nuxt.config.ts
25
+ export default defineNuxtConfig({
26
+ modules: ['attaform/nuxt'],
29
27
  })
30
28
  ```
31
29
 
@@ -78,8 +76,8 @@ It catches stale `form.values.contacts[N]` reads at compile time. Nuxt 3 / 4 set
78
76
  import { useForm } from 'attaform/zod' // auto-detects Zod major
79
77
 
80
78
  const schema = z.object({
81
- email: z.email(),
82
- password: z.string().min(8),
79
+ username: z.string().min(2, 'At least 2 characters'),
80
+ password: z.string().min(8, 'At least 8 characters'),
83
81
  })
84
82
 
85
83
  const form = useForm({ schema, key: 'signup' })
@@ -91,8 +89,8 @@ It catches stale `form.values.contacts[N]` reads at compile time. Nuxt 3 / 4 set
91
89
 
92
90
  <template>
93
91
  <form @submit.prevent="onSubmit">
94
- <input v-register="form.register('email')" placeholder="Email" />
95
- <small v-if="form.errors.email?.[0]">{{ form.errors.email[0].message }}</small>
92
+ <input v-register="form.register('username')" placeholder="Username" />
93
+ <small v-if="form.errors.username?.[0]">{{ form.errors.username[0].message }}</small>
96
94
 
97
95
  <input v-register="form.register('password')" type="password" placeholder="Password" />
98
96
  <small v-if="form.errors.password?.[0]">{{ form.errors.password[0].message }}</small>
@@ -104,9 +102,9 @@ It catches stale `form.values.contacts[N]` reads at compile time. Nuxt 3 / 4 set
104
102
 
105
103
  `useForm({ schema, key })` returns a Pinia-style reactive object — read leaves directly, no `.value`:
106
104
 
107
- - **`form.values`** — current values. `form.values.email`, `form.values.address.city`.
108
- - **`form.errors`** — per-field errors, keyed by dotted path. `form.errors.email?.[0]?.message`.
109
- - **`form.fields`** — per-field flags (`dirty`, `touched`, `errors`, `blank`, …). `form.fields.email.dirty`.
105
+ - **`form.values`** — current values. `form.values.username`, `form.values.address.city`.
106
+ - **`form.errors`** — per-field errors, keyed by dotted path. `form.errors.username?.[0]?.message`.
107
+ - **`form.fields`** — per-field flags (`dirty`, `touched`, `errors`, `blank`, …). `form.fields.username.dirty`.
110
108
  - **`form.meta`** — form-level flags + counters (`isSubmitting`, `isValid`, `canUndo`, `submitCount`, the flat `meta.errors` aggregate, the per-mount `instanceId`, …).
111
109
  - **`form.register(path)`** — typed two-way binding; pair with `v-register` on `<input>` / `<textarea>` / `<select>`.
112
110
  - **`form.handleSubmit(onValid, onInvalid?)`** — runs validation, dispatches. The valid callback receives the strict zod-inferred type.
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { App, InjectionKey, Plugin } from 'vue';
2
- import { C as CoercionRegistry, S as SlimPrimitiveKind, a as CoercionEntry, A as AttaformDefaults, F as FormKey, G as GenericForm, U as UseFormConfiguration, b as AbstractSchema, D as DeepPartial, c as DefaultValuesShape, d as UseFormReturnType, R as RegisterValue, e as RegisterModelDynamicCustomDirective, V as ValidationError, f as ApiErrorEnvelope, g as ApiErrorDetails } from './shared/attaform.0Gxd_OOx.cjs';
3
- export { h as ApiErrorEntry, i as ArrayItem, j as ArrayPath, k as CoercionResult, l as CustomDirectiveRegisterAssignerFn, m as DefaultValuesResponse, n as FieldMetaPayload, o as FieldState, p as FieldStateMap, q as FieldStateMapEntry, r as FlatPath, s as FormErrorRecord, t as FormErrorsSurface, u as FormMeta, v as FormStorage, w as FormStorageKind, H as HandleSubmit, x as HistoryConfig, I as IsTuple, y as IsUnion, J as JoinSegments, K as KeyofUnion, L as LiftedValueShape, M as MetaTrackerValue, N as NestedReadType, z as NestedType, O as OnError, B as OnInvalidSubmitPolicy, E as OnSubmit, P as Path, Q as PathKey, T as PendingValidationStatus, W as PersistConfig, X as PersistConfigOptions, Y as PersistIncludeMode, Z as ROOT_PATH, _ as ROOT_PATH_KEY, $ as ReactiveValidationStatus, a0 as RegisterDirective, a1 as RegisterFlatPath, a2 as RegisterOptions, a3 as RegisterSelectModifier, a4 as RegisterTextModifier, a5 as RegisterTransform, a6 as Segment, a7 as SetValueCallback, a8 as SetValuePayload, a9 as SettledValidationStatus, aa as SlimRuntimeOf, ab as SubmitHandler, ac as Unset, ad as ValidateOn, ae as ValidateOnConfig, af as ValidationResponse, ag as ValidationResponseWithoutValue, ah as ValueOfUnion, ai as WriteMeta, aj as WriteShape, ak as canonicalizePath, al as isPathPrefix, am as isUnset, an as parseDottedPath, ao as unset } from './shared/attaform.0Gxd_OOx.cjs';
4
- export { A as AttaformErrorCode, i as injectForm, u as useRegister } from './shared/attaform.Dq5BabH1.cjs';
2
+ import { C as CoercionRegistry, S as SlimPrimitiveKind, a as CoercionEntry, A as AttaformDefaults, F as FormKey, G as GenericForm, U as UseFormConfiguration, b as AbstractSchema, D as DeepPartial, c as DefaultValuesShape, d as UseFormReturnType, R as RegisterValue, e as RegisterModelDynamicCustomDirective, V as ValidationError, f as ApiErrorEnvelope, g as ApiErrorDetails } from './shared/attaform._EqYNPYF.cjs';
3
+ export { h as ApiErrorEntry, i as ArrayItem, j as ArrayPath, k as CoercionResult, l as CustomDirectiveRegisterAssignerFn, m as DefaultValuesResponse, n as FieldMetaPayload, o as FieldState, p as FieldStateMap, q as FieldStateMapEntry, r as FlatPath, s as FormErrorRecord, t as FormErrorsSurface, u as FormMeta, v as FormStorage, w as FormStorageKind, H as HandleSubmit, x as HistoryConfig, I as IsTuple, y as IsUnion, J as JoinSegments, K as KeyofUnion, L as LiftedValueShape, M as MetaTrackerValue, N as NestedReadType, z as NestedType, O as OnError, B as OnInvalidSubmitPolicy, E as OnSubmit, P as Path, Q as PathKey, T as PendingValidationStatus, W as PersistConfig, X as PersistConfigOptions, Y as PersistIncludeMode, Z as ROOT_PATH, _ as ROOT_PATH_KEY, $ as ReactiveValidationStatus, a0 as RegisterDirective, a1 as RegisterFlatPath, a2 as RegisterOptions, a3 as RegisterSelectModifier, a4 as RegisterTextModifier, a5 as RegisterTransform, a6 as Segment, a7 as SetValueCallback, a8 as SetValuePayload, a9 as SettledValidationStatus, aa as SlimRuntimeOf, ab as SubmitHandler, ac as Unset, ad as ValidateOn, ae as ValidateOnConfig, af as ValidationResponse, ag as ValidationResponseWithoutValue, ah as ValueOfUnion, ai as WriteMeta, aj as WriteShape, ak as canonicalizePath, al as isPathPrefix, am as isUnset, an as parseDottedPath, ao as unset } from './shared/attaform._EqYNPYF.cjs';
4
+ export { A as AttaformErrorCode, i as injectForm, u as useRegister } from './shared/attaform.DLnKT7wk.cjs';
5
5
  export { A as AnonPersistError, a as AttaformError, I as InvalidPathError, b as InvalidUseFormConfigError, O as OutsideSetupError, R as RegistryNotInstalledError, c as ReservedFormKeyError, S as SensitivePersistFieldError, d as SubmitErrorHandlerError } from './shared/attaform.B7rzpK1U.cjs';
6
6
 
7
7
  /**
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { App, InjectionKey, Plugin } from 'vue';
2
- import { C as CoercionRegistry, S as SlimPrimitiveKind, a as CoercionEntry, A as AttaformDefaults, F as FormKey, G as GenericForm, U as UseFormConfiguration, b as AbstractSchema, D as DeepPartial, c as DefaultValuesShape, d as UseFormReturnType, R as RegisterValue, e as RegisterModelDynamicCustomDirective, V as ValidationError, f as ApiErrorEnvelope, g as ApiErrorDetails } from './shared/attaform.0Gxd_OOx.mjs';
3
- export { h as ApiErrorEntry, i as ArrayItem, j as ArrayPath, k as CoercionResult, l as CustomDirectiveRegisterAssignerFn, m as DefaultValuesResponse, n as FieldMetaPayload, o as FieldState, p as FieldStateMap, q as FieldStateMapEntry, r as FlatPath, s as FormErrorRecord, t as FormErrorsSurface, u as FormMeta, v as FormStorage, w as FormStorageKind, H as HandleSubmit, x as HistoryConfig, I as IsTuple, y as IsUnion, J as JoinSegments, K as KeyofUnion, L as LiftedValueShape, M as MetaTrackerValue, N as NestedReadType, z as NestedType, O as OnError, B as OnInvalidSubmitPolicy, E as OnSubmit, P as Path, Q as PathKey, T as PendingValidationStatus, W as PersistConfig, X as PersistConfigOptions, Y as PersistIncludeMode, Z as ROOT_PATH, _ as ROOT_PATH_KEY, $ as ReactiveValidationStatus, a0 as RegisterDirective, a1 as RegisterFlatPath, a2 as RegisterOptions, a3 as RegisterSelectModifier, a4 as RegisterTextModifier, a5 as RegisterTransform, a6 as Segment, a7 as SetValueCallback, a8 as SetValuePayload, a9 as SettledValidationStatus, aa as SlimRuntimeOf, ab as SubmitHandler, ac as Unset, ad as ValidateOn, ae as ValidateOnConfig, af as ValidationResponse, ag as ValidationResponseWithoutValue, ah as ValueOfUnion, ai as WriteMeta, aj as WriteShape, ak as canonicalizePath, al as isPathPrefix, am as isUnset, an as parseDottedPath, ao as unset } from './shared/attaform.0Gxd_OOx.mjs';
4
- export { A as AttaformErrorCode, i as injectForm, u as useRegister } from './shared/attaform.CVv9Oh0a.mjs';
2
+ import { C as CoercionRegistry, S as SlimPrimitiveKind, a as CoercionEntry, A as AttaformDefaults, F as FormKey, G as GenericForm, U as UseFormConfiguration, b as AbstractSchema, D as DeepPartial, c as DefaultValuesShape, d as UseFormReturnType, R as RegisterValue, e as RegisterModelDynamicCustomDirective, V as ValidationError, f as ApiErrorEnvelope, g as ApiErrorDetails } from './shared/attaform._EqYNPYF.mjs';
3
+ export { h as ApiErrorEntry, i as ArrayItem, j as ArrayPath, k as CoercionResult, l as CustomDirectiveRegisterAssignerFn, m as DefaultValuesResponse, n as FieldMetaPayload, o as FieldState, p as FieldStateMap, q as FieldStateMapEntry, r as FlatPath, s as FormErrorRecord, t as FormErrorsSurface, u as FormMeta, v as FormStorage, w as FormStorageKind, H as HandleSubmit, x as HistoryConfig, I as IsTuple, y as IsUnion, J as JoinSegments, K as KeyofUnion, L as LiftedValueShape, M as MetaTrackerValue, N as NestedReadType, z as NestedType, O as OnError, B as OnInvalidSubmitPolicy, E as OnSubmit, P as Path, Q as PathKey, T as PendingValidationStatus, W as PersistConfig, X as PersistConfigOptions, Y as PersistIncludeMode, Z as ROOT_PATH, _ as ROOT_PATH_KEY, $ as ReactiveValidationStatus, a0 as RegisterDirective, a1 as RegisterFlatPath, a2 as RegisterOptions, a3 as RegisterSelectModifier, a4 as RegisterTextModifier, a5 as RegisterTransform, a6 as Segment, a7 as SetValueCallback, a8 as SetValuePayload, a9 as SettledValidationStatus, aa as SlimRuntimeOf, ab as SubmitHandler, ac as Unset, ad as ValidateOn, ae as ValidateOnConfig, af as ValidationResponse, ag as ValidationResponseWithoutValue, ah as ValueOfUnion, ai as WriteMeta, aj as WriteShape, ak as canonicalizePath, al as isPathPrefix, am as isUnset, an as parseDottedPath, ao as unset } from './shared/attaform._EqYNPYF.mjs';
4
+ export { A as AttaformErrorCode, i as injectForm, u as useRegister } from './shared/attaform.Bls_kFR6.mjs';
5
5
  export { A as AnonPersistError, a as AttaformError, I as InvalidPathError, b as InvalidUseFormConfigError, O as OutsideSetupError, R as RegistryNotInstalledError, c as ReservedFormKeyError, S as SensitivePersistFieldError, d as SubmitErrorHandlerError } from './shared/attaform.B7rzpK1U.mjs';
6
6
 
7
7
  /**
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { App, InjectionKey, Plugin } from 'vue';
2
- import { C as CoercionRegistry, S as SlimPrimitiveKind, a as CoercionEntry, A as AttaformDefaults, F as FormKey, G as GenericForm, U as UseFormConfiguration, b as AbstractSchema, D as DeepPartial, c as DefaultValuesShape, d as UseFormReturnType, R as RegisterValue, e as RegisterModelDynamicCustomDirective, V as ValidationError, f as ApiErrorEnvelope, g as ApiErrorDetails } from './shared/attaform.0Gxd_OOx.js';
3
- export { h as ApiErrorEntry, i as ArrayItem, j as ArrayPath, k as CoercionResult, l as CustomDirectiveRegisterAssignerFn, m as DefaultValuesResponse, n as FieldMetaPayload, o as FieldState, p as FieldStateMap, q as FieldStateMapEntry, r as FlatPath, s as FormErrorRecord, t as FormErrorsSurface, u as FormMeta, v as FormStorage, w as FormStorageKind, H as HandleSubmit, x as HistoryConfig, I as IsTuple, y as IsUnion, J as JoinSegments, K as KeyofUnion, L as LiftedValueShape, M as MetaTrackerValue, N as NestedReadType, z as NestedType, O as OnError, B as OnInvalidSubmitPolicy, E as OnSubmit, P as Path, Q as PathKey, T as PendingValidationStatus, W as PersistConfig, X as PersistConfigOptions, Y as PersistIncludeMode, Z as ROOT_PATH, _ as ROOT_PATH_KEY, $ as ReactiveValidationStatus, a0 as RegisterDirective, a1 as RegisterFlatPath, a2 as RegisterOptions, a3 as RegisterSelectModifier, a4 as RegisterTextModifier, a5 as RegisterTransform, a6 as Segment, a7 as SetValueCallback, a8 as SetValuePayload, a9 as SettledValidationStatus, aa as SlimRuntimeOf, ab as SubmitHandler, ac as Unset, ad as ValidateOn, ae as ValidateOnConfig, af as ValidationResponse, ag as ValidationResponseWithoutValue, ah as ValueOfUnion, ai as WriteMeta, aj as WriteShape, ak as canonicalizePath, al as isPathPrefix, am as isUnset, an as parseDottedPath, ao as unset } from './shared/attaform.0Gxd_OOx.js';
4
- export { A as AttaformErrorCode, i as injectForm, u as useRegister } from './shared/attaform.CWCx2r0x.js';
2
+ import { C as CoercionRegistry, S as SlimPrimitiveKind, a as CoercionEntry, A as AttaformDefaults, F as FormKey, G as GenericForm, U as UseFormConfiguration, b as AbstractSchema, D as DeepPartial, c as DefaultValuesShape, d as UseFormReturnType, R as RegisterValue, e as RegisterModelDynamicCustomDirective, V as ValidationError, f as ApiErrorEnvelope, g as ApiErrorDetails } from './shared/attaform._EqYNPYF.js';
3
+ export { h as ApiErrorEntry, i as ArrayItem, j as ArrayPath, k as CoercionResult, l as CustomDirectiveRegisterAssignerFn, m as DefaultValuesResponse, n as FieldMetaPayload, o as FieldState, p as FieldStateMap, q as FieldStateMapEntry, r as FlatPath, s as FormErrorRecord, t as FormErrorsSurface, u as FormMeta, v as FormStorage, w as FormStorageKind, H as HandleSubmit, x as HistoryConfig, I as IsTuple, y as IsUnion, J as JoinSegments, K as KeyofUnion, L as LiftedValueShape, M as MetaTrackerValue, N as NestedReadType, z as NestedType, O as OnError, B as OnInvalidSubmitPolicy, E as OnSubmit, P as Path, Q as PathKey, T as PendingValidationStatus, W as PersistConfig, X as PersistConfigOptions, Y as PersistIncludeMode, Z as ROOT_PATH, _ as ROOT_PATH_KEY, $ as ReactiveValidationStatus, a0 as RegisterDirective, a1 as RegisterFlatPath, a2 as RegisterOptions, a3 as RegisterSelectModifier, a4 as RegisterTextModifier, a5 as RegisterTransform, a6 as Segment, a7 as SetValueCallback, a8 as SetValuePayload, a9 as SettledValidationStatus, aa as SlimRuntimeOf, ab as SubmitHandler, ac as Unset, ad as ValidateOn, ae as ValidateOnConfig, af as ValidationResponse, ag as ValidationResponseWithoutValue, ah as ValueOfUnion, ai as WriteMeta, aj as WriteShape, ak as canonicalizePath, al as isPathPrefix, am as isUnset, an as parseDottedPath, ao as unset } from './shared/attaform._EqYNPYF.js';
4
+ export { A as AttaformErrorCode, i as injectForm, u as useRegister } from './shared/attaform.lFNwBcA3.js';
5
5
  export { A as AnonPersistError, a as AttaformError, I as InvalidPathError, b as InvalidUseFormConfigError, O as OutsideSetupError, R as RegistryNotInstalledError, c as ReservedFormKeyError, S as SensitivePersistFieldError, d as SubmitErrorHandlerError } from './shared/attaform.B7rzpK1U.js';
6
6
 
7
7
  /**
package/dist/nuxt.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { A as AttaformDefaults } from './shared/attaform.0Gxd_OOx.cjs';
2
+ import { A as AttaformDefaults } from './shared/attaform._EqYNPYF.cjs';
3
3
  import 'vue';
4
4
 
5
5
  /**
package/dist/nuxt.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { A as AttaformDefaults } from './shared/attaform.0Gxd_OOx.mjs';
2
+ import { A as AttaformDefaults } from './shared/attaform._EqYNPYF.mjs';
3
3
  import 'vue';
4
4
 
5
5
  /**
package/dist/nuxt.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { A as AttaformDefaults } from './shared/attaform.0Gxd_OOx.js';
2
+ import { A as AttaformDefaults } from './shared/attaform._EqYNPYF.js';
3
3
  import 'vue';
4
4
 
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { G as GenericForm, F as FormKey, d as UseFormReturnType, R as RegisterValue } from './attaform.0Gxd_OOx.mjs';
1
+ import { G as GenericForm, F as FormKey, d as UseFormReturnType, R as RegisterValue } from './attaform._EqYNPYF.mjs';
2
2
  import { Ref } from 'vue';
3
3
 
4
4
  /**
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ const store = /* @__PURE__ */ new WeakMap();
4
+ const lists = /* @__PURE__ */ new WeakMap();
5
+ const registry = {
6
+ add(schema, payload) {
7
+ store.set(schema, payload);
8
+ const list = lists.get(schema) ?? [];
9
+ list.push(payload);
10
+ lists.set(schema, list);
11
+ return registry;
12
+ },
13
+ get(schema) {
14
+ return store.get(schema);
15
+ },
16
+ has(schema) {
17
+ return store.has(schema);
18
+ },
19
+ remove(schema) {
20
+ store.delete(schema);
21
+ lists.delete(schema);
22
+ return registry;
23
+ }
24
+ };
25
+ const fieldMetaStore = registry;
26
+ function getFieldMetaForSchema(schema) {
27
+ return store.get(schema);
28
+ }
29
+ function getFieldMetaListForSchema(schema) {
30
+ return lists.get(schema) ?? [];
31
+ }
32
+
33
+ exports.fieldMetaStore = fieldMetaStore;
34
+ exports.getFieldMetaForSchema = getFieldMetaForSchema;
35
+ exports.getFieldMetaListForSchema = getFieldMetaListForSchema;
36
+ //# sourceMappingURL=attaform.C8CyvYa_.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attaform.C8CyvYa_.cjs","sources":["../../src/runtime/core/field-meta-store.ts"],"sourcesContent":["/**\n * Shared field-metadata storage. Both Zod adapters (v3 and v4) and the\n * unified `attaform/zod` entry read from the same `WeakMap`s so a\n * payload written via any entry's `withMeta` / `fieldMeta.add` is\n * visible to whichever adapter actually runs at lookup time.\n *\n * No `zod` runtime import — pure JavaScript primitives. The previous\n * v4 adapter built `fieldMeta` via `z.registry<FieldMetaPayload>()`,\n * which left a `z.registry` namespace reference reachable from\n * `attaform/zod`'s module graph; bundlers analysing a `zod@^3` consumer\n * resolved that against zod 3's exports map (no `registry` export) and\n * emitted an `IMPORT_IS_UNDEFINED` warning. Lifting storage here drops\n * that reference entirely so the unified entry behaves cleanly on any\n * Zod major.\n *\n * The native v4 chain `schema.register(fieldMeta, payload)` still\n * works against this shim — Zod 4's `.register()` only calls\n * `registry.add(this, payload)` and returns the schema; structural\n * matching is enough.\n *\n * Two parallel maps:\n * - `store` — last-write-wins single payload per schema reference.\n * Backs `fieldMeta.get(schema)` and the adapter's\n * `getFieldMetaAtPath` single-payload fallback.\n * - `lists` — every registration in order, per schema reference.\n * Backs the v4 adapter's path-walker disambiguation when the same\n * schema instance is bound at multiple form paths.\n */\n\nimport type { FieldMetaPayload } from './field-meta'\n\n/**\n * Minimal registry shape the shared store satisfies — `.add` / `.get`\n * / `.has` / `.remove`. Cast to `z.$ZodRegistry<FieldMetaPayload>` at\n * the v4 adapter's re-export so the native `schema.register(fieldMeta,\n * payload)` chain type-checks; the v3 adapter exports it as its own\n * registry-shaped surface.\n */\nexport type FieldMetaStore = {\n add(schema: object, payload: FieldMetaPayload): FieldMetaStore\n get(schema: object): FieldMetaPayload | undefined\n has(schema: object): boolean\n remove(schema: object): FieldMetaStore\n}\n\nconst store = new WeakMap<object, FieldMetaPayload>()\nconst lists = new WeakMap<object, FieldMetaPayload[]>()\n\nconst registry: FieldMetaStore = {\n add(schema, payload) {\n store.set(schema, payload)\n const list = lists.get(schema) ?? []\n list.push(payload)\n lists.set(schema, list)\n return registry\n },\n get(schema) {\n return store.get(schema)\n },\n has(schema) {\n return store.has(schema)\n },\n remove(schema) {\n store.delete(schema)\n lists.delete(schema)\n return registry\n },\n}\n\n/**\n * The shared registry every Attaform-aware Zod schema can register\n * field metadata against, regardless of Zod major. One module-scoped\n * instance — every adapter entry re-exports this same object so\n * writes from one entry are visible at lookup through any other.\n */\nexport const fieldMetaStore: FieldMetaStore = registry\n\n/**\n * Last-write-wins payload lookup for a schema reference. Returns\n * `undefined` if nothing has been registered.\n */\nexport function getFieldMetaForSchema(schema: object): FieldMetaPayload | undefined {\n return store.get(schema)\n}\n\n/**\n * Read every payload registered against `schema` in registration\n * order. Empty list when nothing has been registered. Used by the v4\n * adapter's path-resolver to disambiguate per occurrence when one\n * schema instance is bound at multiple form paths.\n */\nexport function getFieldMetaListForSchema(schema: object): readonly FieldMetaPayload[] {\n return lists.get(schema) ?? []\n}\n"],"names":[],"mappings":";;AA6CA,MAAM,KAAA,uBAAY,OAAA,EAAkC;AACpD,MAAM,KAAA,uBAAY,OAAA,EAAoC;AAEtD,MAAM,QAAA,GAA2B;AAAA,EAC/B,GAAA,CAAI,QAAQ,OAAA,EAAS;AACnB,IAAA,KAAA,CAAM,GAAA,CAAI,QAAQ,OAAO,CAAA;AACzB,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,GAAA,CAAI,MAAM,KAAK,EAAC;AACnC,IAAA,IAAA,CAAK,KAAK,OAAO,CAAA;AACjB,IAAA,KAAA,CAAM,GAAA,CAAI,QAAQ,IAAI,CAAA;AACtB,IAAA,OAAO,QAAA;AAAA,EACT,CAAA;AAAA,EACA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAO,KAAA,CAAM,IAAI,MAAM,CAAA;AAAA,EACzB,CAAA;AAAA,EACA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAO,KAAA,CAAM,IAAI,MAAM,CAAA;AAAA,EACzB,CAAA;AAAA,EACA,OAAO,MAAA,EAAQ;AACb,IAAA,KAAA,CAAM,OAAO,MAAM,CAAA;AACnB,IAAA,KAAA,CAAM,OAAO,MAAM,CAAA;AACnB,IAAA,OAAO,QAAA;AAAA,EACT;AACF,CAAA;AAQO,MAAM,cAAA,GAAiC;AAMvC,SAAS,sBAAsB,MAAA,EAA8C;AAClF,EAAA,OAAO,KAAA,CAAM,IAAI,MAAM,CAAA;AACzB;AAQO,SAAS,0BAA0B,MAAA,EAA6C;AACrF,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA,IAAK,EAAC;AAC/B;;;;;;"}