@vielzeug/forge 3.0.0 → 3.1.2

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 (60) hide show
  1. package/dist/_field.cjs +1 -1
  2. package/dist/_field.cjs.map +1 -1
  3. package/dist/_field.js +1 -63
  4. package/dist/_field.js.map +1 -1
  5. package/dist/_notify.cjs +1 -1
  6. package/dist/_notify.cjs.map +1 -1
  7. package/dist/_notify.js +1 -52
  8. package/dist/_notify.js.map +1 -1
  9. package/dist/core/path.cjs +1 -1
  10. package/dist/core/path.cjs.map +1 -1
  11. package/dist/core/path.d.ts +16 -2
  12. package/dist/core/path.d.ts.map +1 -1
  13. package/dist/core/path.js +1 -173
  14. package/dist/core/path.js.map +1 -1
  15. package/dist/dom.cjs +1 -1
  16. package/dist/dom.cjs.map +1 -1
  17. package/dist/dom.js +1 -23
  18. package/dist/dom.js.map +1 -1
  19. package/dist/errors.cjs +1 -1
  20. package/dist/errors.cjs.map +1 -1
  21. package/dist/errors.d.ts +0 -5
  22. package/dist/errors.d.ts.map +1 -1
  23. package/dist/errors.js +1 -21
  24. package/dist/errors.js.map +1 -1
  25. package/dist/forge.cjs +1 -1
  26. package/dist/forge.cjs.map +1 -1
  27. package/dist/forge.iife.js +1 -1
  28. package/dist/forge.iife.js.map +1 -1
  29. package/dist/forge.js +1 -1
  30. package/dist/forge.js.map +1 -1
  31. package/dist/form-data.cjs +1 -1
  32. package/dist/form-data.cjs.map +1 -1
  33. package/dist/form-data.js +1 -29
  34. package/dist/form-data.js.map +1 -1
  35. package/dist/form.cjs +1 -1
  36. package/dist/form.cjs.map +1 -1
  37. package/dist/form.d.ts.map +1 -1
  38. package/dist/form.js +1 -222
  39. package/dist/form.js.map +1 -1
  40. package/dist/index.cjs +1 -1
  41. package/dist/index.d.ts +1 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -3
  44. package/dist/persist.cjs +1 -1
  45. package/dist/persist.cjs.map +1 -1
  46. package/dist/persist.js +1 -18
  47. package/dist/persist.js.map +1 -1
  48. package/dist/plain.cjs +2 -0
  49. package/dist/plain.cjs.map +1 -0
  50. package/dist/plain.d.ts +21 -0
  51. package/dist/plain.d.ts.map +1 -0
  52. package/dist/plain.js +2 -0
  53. package/dist/plain.js.map +1 -0
  54. package/dist/schema.cjs +1 -1
  55. package/dist/schema.cjs.map +1 -1
  56. package/dist/schema.js +1 -25
  57. package/dist/schema.js.map +1 -1
  58. package/dist/types.d.ts +4 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/package.json +7 -7
package/dist/schema.js CHANGED
@@ -1,26 +1,2 @@
1
- import { abortable as e } from "@vielzeug/arsenal";
2
- //#region src/schema.ts
3
- var t = (e) => {
4
- let t = [];
5
- for (let n of e ?? []) {
6
- let e = typeof n == "object" && n && "key" in n ? n.key : n;
7
- if (typeof e == "string") t.push(e);
8
- else if (typeof e == "number" && Number.isSafeInteger(e) && e >= 0) t.push(e);
9
- else return [];
10
- }
11
- return t;
12
- };
13
- function n(n) {
14
- return async (r, i) => {
15
- if (i.aborted) return;
16
- let a = await e(Promise.resolve(n["~standard"].validate(r)), i);
17
- if (!(i.aborted || "value" in a)) return a.issues.map((e) => ({
18
- message: e.message,
19
- path: t(e.path)
20
- }));
21
- };
22
- }
23
- //#endregion
24
- export { n as schemaValidator };
25
-
1
+ import{abortable as e}from"@vielzeug/arsenal";var toPath=e=>{let t=[];for(let n of e??[]){let e=typeof n==`object`&&n&&`key`in n?n.key:n;if(typeof e==`string`)t.push(e);else if(typeof e==`number`&&Number.isSafeInteger(e)&&e>=0)t.push(e);else return[]}return t};function schemaValidator(t){return async(n,r)=>{if(r.aborted)return;let i=await e(Promise.resolve(t[`~standard`].validate(n)),r);if(!(r.aborted||`value`in i))return i.issues.map(e=>({message:e.message,path:toPath(e.path)}))}}export{schemaValidator};
26
2
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../src/schema.ts"],"sourcesContent":["import { abortable } from '@vielzeug/arsenal';\n\nimport type { FormValidator, ValidationIssue } from './types.js';\n\nexport type StandardSchemaLike<Output> = {\n readonly '~standard': {\n readonly validate: (\n value: unknown,\n ) =>\n | PromiseLike<\n | { readonly issues: readonly { readonly message: string; readonly path?: readonly unknown[] }[] }\n | { readonly value: Output }\n >\n | { readonly issues: readonly { readonly message: string; readonly path?: readonly unknown[] }[] }\n | { readonly value: Output };\n };\n};\n\nconst toPath = (path: readonly unknown[] | undefined): ValidationIssue['path'] => {\n const result: Array<string | number> = [];\n\n for (const part of path ?? []) {\n const key = typeof part === 'object' && part !== null && 'key' in part ? part.key : part;\n if (typeof key === 'string') result.push(key);\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key >= 0) result.push(key);\n else return [];\n }\n\n return result;\n};\n\nexport function schemaValidator<TValues extends Record<string, unknown>>(\n schema: StandardSchemaLike<TValues>,\n): FormValidator<TValues> {\n return async (values, signal) => {\n if (signal.aborted) return undefined;\n\n const result = await abortable(Promise.resolve(schema['~standard'].validate(values)), signal);\n\n if (signal.aborted || 'value' in result) return undefined;\n\n return result.issues.map((issue) => ({ message: issue.message, path: toPath(issue.path) }));\n };\n}\n"],"mappings":";;AAkBA,IAAM,KAAU,MAAkE;CAChF,IAAM,IAAiC,CAAC;CAExC,KAAK,IAAM,KAAQ,KAAQ,CAAC,GAAG;EAC7B,IAAM,IAAM,OAAO,KAAS,YAAY,KAAiB,SAAS,IAAO,EAAK,MAAM;EACpF,IAAI,OAAO,KAAQ,UAAU,EAAO,KAAK,CAAG;OACvC,IAAI,OAAO,KAAQ,YAAY,OAAO,cAAc,CAAG,KAAK,KAAO,GAAG,EAAO,KAAK,CAAG;OACrF,OAAO,CAAC;CACf;CAEA,OAAO;AACT;AAEA,SAAgB,EACd,GACwB;CACxB,OAAO,OAAO,GAAQ,MAAW;EAC/B,IAAI,EAAO,SAAS;EAEpB,IAAM,IAAS,MAAM,EAAU,QAAQ,QAAQ,EAAO,YAAY,CAAC,SAAS,CAAM,CAAC,GAAG,CAAM;EAExF,QAAO,WAAW,WAAW,IAEjC,OAAO,EAAO,OAAO,KAAK,OAAW;GAAE,SAAS,EAAM;GAAS,MAAM,EAAO,EAAM,IAAI;EAAE,EAAE;CAC5F;AACF"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../src/schema.ts"],"sourcesContent":["import { abortable } from '@vielzeug/arsenal';\n\nimport type { FormValidator, ValidationIssue } from './types.js';\n\nexport type StandardSchemaLike<Output> = {\n readonly '~standard': {\n readonly validate: (\n value: unknown,\n ) =>\n | PromiseLike<\n | { readonly issues: readonly { readonly message: string; readonly path?: readonly unknown[] }[] }\n | { readonly value: Output }\n >\n | { readonly issues: readonly { readonly message: string; readonly path?: readonly unknown[] }[] }\n | { readonly value: Output };\n };\n};\n\nconst toPath = (path: readonly unknown[] | undefined): ValidationIssue['path'] => {\n const result: Array<string | number> = [];\n\n for (const part of path ?? []) {\n const key = typeof part === 'object' && part !== null && 'key' in part ? part.key : part;\n if (typeof key === 'string') result.push(key);\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key >= 0) result.push(key);\n else return [];\n }\n\n return result;\n};\n\nexport function schemaValidator<TValues extends Record<string, unknown>>(\n schema: StandardSchemaLike<TValues>,\n): FormValidator<TValues> {\n return async (values, signal) => {\n if (signal.aborted) return undefined;\n\n const result = await abortable(Promise.resolve(schema['~standard'].validate(values)), signal);\n\n if (signal.aborted || 'value' in result) return undefined;\n\n return result.issues.map((issue) => ({ message: issue.message, path: toPath(issue.path) }));\n };\n}\n"],"mappings":"8CAkBA,IAAM,OAAU,GAAkE,CAChF,IAAM,EAAiC,CAAC,EAExC,IAAK,IAAM,KAAQ,GAAQ,CAAC,EAAG,CAC7B,IAAM,EAAM,OAAO,GAAS,UAAY,GAAiB,QAAS,EAAO,EAAK,IAAM,EACpF,GAAI,OAAO,GAAQ,SAAU,EAAO,KAAK,CAAG,OACvC,GAAI,OAAO,GAAQ,UAAY,OAAO,cAAc,CAAG,GAAK,GAAO,EAAG,EAAO,KAAK,CAAG,OACrF,MAAO,CAAC,CACf,CAEA,OAAO,CACT,EAEA,SAAgB,gBACd,EACwB,CACxB,OAAO,MAAO,EAAQ,IAAW,CAC/B,GAAI,EAAO,QAAS,OAEpB,IAAM,EAAS,MAAM,EAAU,QAAQ,QAAQ,EAAO,YAAY,CAAC,SAAS,CAAM,CAAC,EAAG,CAAM,EAExF,OAAO,SAAW,UAAW,GAEjC,OAAO,EAAO,OAAO,IAAK,IAAW,CAAE,QAAS,EAAM,QAAS,KAAM,OAAO,EAAM,IAAI,CAAE,EAAE,CAC5F,CACF"}
package/dist/types.d.ts CHANGED
@@ -19,6 +19,8 @@ export type ValidationIssue = Readonly<{
19
19
  export type FormValidator<TValues extends Record<string, unknown>> = (values: ReadonlyDeep<TValues>, signal: AbortSignal) => MaybePromise<readonly ValidationIssue[] | undefined>;
20
20
  export type FormOptions<TValues extends Record<string, unknown>> = Readonly<{
21
21
  initialValues: TValues;
22
+ /** Applied before immutable() at every write boundary (init, set, patch, reset, field.set). */
23
+ normalize?: (value: unknown) => unknown;
22
24
  onSubscriberError?: (error: unknown) => void;
23
25
  validate?: FormValidator<NoInfer<TValues>>;
24
26
  }>;
@@ -80,6 +82,8 @@ export type Form<TValues extends Record<string, unknown>> = {
80
82
  dispose(): void;
81
83
  readonly disposed: boolean;
82
84
  field<K extends keyof TValues & string>(key: K): Field<TValues[K]>;
85
+ patch(next: Partial<TValues>): void;
86
+ patch(updater: (previous: ReadonlyDeep<TValues>) => Partial<TValues>): void;
83
87
  reset(next?: TValues): void;
84
88
  set(next: TValues | ((previous: ReadonlyDeep<TValues>) => TValues)): void;
85
89
  readonly state: FormState;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vielzeug/forge",
3
- "version": "3.0.0",
4
- "description": "Immutable typed form state with focused fields and explicit full-form validation",
3
+ "version": "3.1.2",
4
+ "description": "Typed form state, validation, submission",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/helmuthdu/vielzeug",
@@ -81,11 +81,11 @@
81
81
  "@vielzeug/arsenal": "3.0.0"
82
82
  },
83
83
  "devDependencies": {
84
- "@types/node": "^26.4.1",
85
- "@vielzeug/spell": "3.0.0",
86
- "@vielzeug/vault": "3.0.0",
84
+ "@types/node": "^26.6.2",
85
+ "@vielzeug/spell": "3.1.1",
86
+ "@vielzeug/vault": "3.0.3",
87
87
  "typescript": "^6.0.3",
88
- "vite": "^8.2.2",
89
- "vitest": "^5.0.0"
88
+ "vite": "^8.3.0",
89
+ "vitest": "^5.0.1"
90
90
  }
91
91
  }