@vielzeug/forge 1.3.0 → 1.4.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.
Files changed (87) hide show
  1. package/dist/_utils.cjs +1 -1
  2. package/dist/_utils.cjs.map +1 -1
  3. package/dist/_utils.d.ts.map +1 -1
  4. package/dist/_utils.js +1 -0
  5. package/dist/_utils.js.map +1 -1
  6. package/dist/core/array.cjs +1 -1
  7. package/dist/core/array.cjs.map +1 -1
  8. package/dist/core/array.d.ts.map +1 -1
  9. package/dist/core/array.js +63 -32
  10. package/dist/core/array.js.map +1 -1
  11. package/dist/core/asyncQueue.cjs.map +1 -1
  12. package/dist/core/asyncQueue.d.ts +2 -2
  13. package/dist/core/asyncQueue.js.map +1 -1
  14. package/dist/core/context.cjs +1 -1
  15. package/dist/core/context.cjs.map +1 -1
  16. package/dist/core/context.d.ts +2 -5
  17. package/dist/core/context.d.ts.map +1 -1
  18. package/dist/core/context.js +72 -109
  19. package/dist/core/context.js.map +1 -1
  20. package/dist/core/fields.cjs +2 -0
  21. package/dist/core/fields.cjs.map +1 -0
  22. package/dist/core/fields.d.ts +52 -0
  23. package/dist/core/fields.d.ts.map +1 -0
  24. package/dist/core/fields.js +310 -0
  25. package/dist/core/fields.js.map +1 -0
  26. package/dist/core/lifecycle.cjs +1 -1
  27. package/dist/core/lifecycle.cjs.map +1 -1
  28. package/dist/core/lifecycle.d.ts +3 -1
  29. package/dist/core/lifecycle.d.ts.map +1 -1
  30. package/dist/core/lifecycle.js +10 -14
  31. package/dist/core/lifecycle.js.map +1 -1
  32. package/dist/core/notifier.cjs +2 -0
  33. package/dist/core/notifier.cjs.map +1 -0
  34. package/dist/core/notifier.d.ts +33 -0
  35. package/dist/core/notifier.d.ts.map +1 -0
  36. package/dist/core/notifier.js +78 -0
  37. package/dist/core/notifier.js.map +1 -0
  38. package/dist/core/observe.cjs +1 -1
  39. package/dist/core/observe.cjs.map +1 -1
  40. package/dist/core/observe.d.ts +8 -6
  41. package/dist/core/observe.d.ts.map +1 -1
  42. package/dist/core/observe.js +34 -45
  43. package/dist/core/observe.js.map +1 -1
  44. package/dist/core/scope.cjs +1 -1
  45. package/dist/core/scope.cjs.map +1 -1
  46. package/dist/core/scope.d.ts +6 -3
  47. package/dist/core/scope.d.ts.map +1 -1
  48. package/dist/core/scope.js +105 -156
  49. package/dist/core/scope.js.map +1 -1
  50. package/dist/errors.cjs +1 -1
  51. package/dist/errors.cjs.map +1 -1
  52. package/dist/errors.d.ts +3 -1
  53. package/dist/errors.d.ts.map +1 -1
  54. package/dist/errors.js +2 -2
  55. package/dist/errors.js.map +1 -1
  56. package/dist/forge.cjs +1 -1
  57. package/dist/forge.cjs.map +1 -1
  58. package/dist/forge.iife.js +1 -1
  59. package/dist/forge.iife.js.map +1 -1
  60. package/dist/forge.js +1 -1
  61. package/dist/forge.js.map +1 -1
  62. package/dist/form.cjs +1 -1
  63. package/dist/form.cjs.map +1 -1
  64. package/dist/form.d.ts.map +1 -1
  65. package/dist/form.js +45 -56
  66. package/dist/form.js.map +1 -1
  67. package/dist/index.cjs +1 -1
  68. package/dist/index.js +4 -4
  69. package/dist/types.cjs +1 -1
  70. package/dist/types.cjs.map +1 -1
  71. package/dist/types.d.ts +53 -36
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/types.js +2 -2
  74. package/dist/types.js.map +1 -1
  75. package/package.json +4 -4
  76. package/dist/core/validation.cjs +0 -2
  77. package/dist/core/validation.cjs.map +0 -1
  78. package/dist/core/validation.d.ts +0 -23
  79. package/dist/core/validation.d.ts.map +0 -1
  80. package/dist/core/validation.js +0 -173
  81. package/dist/core/validation.js.map +0 -1
  82. package/dist/core/values.cjs +0 -2
  83. package/dist/core/values.cjs.map +0 -1
  84. package/dist/core/values.d.ts +0 -31
  85. package/dist/core/values.d.ts.map +0 -1
  86. package/dist/core/values.js +0 -149
  87. package/dist/core/values.js.map +0 -1
@@ -1,149 +0,0 @@
1
- import { warn as e } from "../_dev.js";
2
- import { assertSafeKey as t, flattenValues as n, sanitizeForLog as r, unflattenValues as i } from "../_utils.js";
3
- import { createArrayField as a } from "./array.js";
4
- //#region src/core/values.ts
5
- function o(o) {
6
- function s(e) {
7
- let n = e;
8
- return t(n), o.store.get(n);
9
- }
10
- function c() {
11
- return o.cachedValues ??= i(Object.fromEntries(o.store));
12
- }
13
- function l(e, t) {
14
- o.baseline.get(e) === t ? o.dirty.delete(e) : o.dirty.add(e);
15
- }
16
- function u(e, n, r = {}) {
17
- o.ensureNotDisposed();
18
- let i = e;
19
- t(i), o.store.set(i, n), l(i, n), r.touched && o.touched.add(i), o.requestNotify(i);
20
- }
21
- function d(e) {
22
- let n = e;
23
- return t(n), o.getFieldSnapshot(n);
24
- }
25
- function f(e, n) {
26
- o.ensureNotDisposed();
27
- let r = e;
28
- t(r), o.fieldErrors.set(r, n), o.invalidateErrors(), o.requestNotify(r);
29
- }
30
- function p(e) {
31
- o.ensureNotDisposed();
32
- let n = e;
33
- t(n), o.fieldErrors.delete(n) && (o.invalidateErrors(), o.requestNotify(n));
34
- }
35
- function m(e = {}) {
36
- o.ensureNotDisposed(), o.fieldErrors.clear();
37
- for (let [n, r] of Object.entries(e)) t(n), typeof r == "string" && o.fieldErrors.set(n, r);
38
- o.invalidateErrors(), o.requestNotify();
39
- }
40
- function h(t, n) {
41
- /\.\d+(\.|$)/.test(t) && !o.store.has(t) && e(`${n}('${r(t, 80)}'): path looks like an array item key. Array items are stored as whole arrays — register on the parent key instead.`);
42
- }
43
- function g(e, n) {
44
- o.ensureNotDisposed();
45
- let r = e;
46
- t(r), h(r, "setValidator"), o.fieldCtrls.get(r)?.abort(), o.fieldCtrls.delete(r), n ? o.validators.set(r, n) : (o.validators.delete(r), o.fieldErrors.delete(r) && (o.invalidateErrors(), o.requestNotify(r)));
47
- }
48
- function _(e, n = {}) {
49
- o.ensureNotDisposed();
50
- let r = e;
51
- return t(r), h(r, "fields.register"), n.validator !== void 0 && g(e, n.validator), n.defaultValue !== void 0 && !o.store.has(r) && (o.store.set(r, n.defaultValue), o.baseline.set(r, n.defaultValue), o.requestNotify(r)), () => {
52
- o.disposed || w(e);
53
- };
54
- }
55
- function v() {
56
- let e = /* @__PURE__ */ new Set();
57
- for (let t of o.store.keys()) e.add(t);
58
- for (let t of o.validators.keys()) e.add(t);
59
- return Object.freeze([...e]);
60
- }
61
- function y(e) {
62
- o.ensureNotDisposed();
63
- let n = e;
64
- t(n), o.touched.add(n), o.requestNotify(n);
65
- }
66
- function b(e) {
67
- o.ensureNotDisposed();
68
- let n = e;
69
- t(n), o.touched.delete(n) && o.requestNotify(n);
70
- }
71
- function x() {
72
- o.ensureNotDisposed();
73
- for (let e of o.store.keys()) o.touched.add(e);
74
- for (let e of o.validators.keys()) o.touched.add(e);
75
- o.requestNotify();
76
- }
77
- function S() {
78
- o.ensureNotDisposed(), o.touched.clear(), o.requestNotify();
79
- }
80
- function C(e) {
81
- o.ensureNotDisposed();
82
- let n = e;
83
- t(n), o.fieldCtrls.get(n)?.abort(), o.fieldCtrls.delete(n), o.store.set(n, o.baseline.get(n)), o.dirty.delete(n), o.touched.delete(n), o.fieldErrors.delete(n) && o.invalidateErrors(), o.requestNotify(n);
84
- }
85
- function w(e) {
86
- o.ensureNotDisposed();
87
- let n = e;
88
- t(n), o.store.delete(n), o.baseline.delete(n), o.dirty.delete(n), o.touched.delete(n), o.validators.delete(n), o.arrayCache.delete(n), o.fieldCtrls.get(n)?.abort(), o.fieldCtrls.delete(n), o.fieldErrors.delete(n) && o.invalidateErrors(), o.requestNotify(n);
89
- }
90
- function T() {
91
- o.ensureNotDisposed();
92
- for (let e of o.runCtrls) e.abort();
93
- for (let e of o.fieldCtrls.values()) e.abort();
94
- o.runCtrls.clear(), o.fieldCtrls.clear(), o.validatingRuns.clear(), o.store.clear(), o.fieldErrors.clear(), o.touched.clear(), o.dirty.clear(), o.submitCount = 0, o.invalidateErrors();
95
- for (let [e, t] of o.baseline) o.store.set(e, t);
96
- o.requestNotify();
97
- }
98
- function E(e) {
99
- o.ensureNotDisposed();
100
- for (let e of o.runCtrls) e.abort();
101
- for (let e of o.fieldCtrls.values()) e.abort();
102
- o.runCtrls.clear(), o.fieldCtrls.clear(), o.validatingRuns.clear();
103
- let t = n(e);
104
- o.store.clear(), o.baseline.clear(), o.fieldErrors.clear(), o.touched.clear(), o.dirty.clear(), o.submitCount = 0, o.invalidateErrors();
105
- for (let [e, n] of Object.entries(t)) o.store.set(e, n), o.baseline.set(e, n);
106
- o.requestNotify();
107
- }
108
- function D(e) {
109
- o.ensureNotDisposed();
110
- let t = n(e);
111
- for (let [e, n] of Object.entries(t)) o.baseline.set(e, n), o.store.set(e, n), o.dirty.delete(e);
112
- o.requestNotify(Object.keys(t));
113
- }
114
- function O(e) {
115
- o.ensureNotDisposed();
116
- let n = e;
117
- t(n);
118
- let r = o.arrayCache.get(n);
119
- if (r) return r;
120
- let i = a(e, o.store, u);
121
- return o.arrayCache.set(n, i), i;
122
- }
123
- return {
124
- array: O,
125
- clearError: p,
126
- field: d,
127
- get: s,
128
- listFields: v,
129
- patch: D,
130
- registerField: _,
131
- removeField: w,
132
- replace: E,
133
- reset: T,
134
- resetErrors: m,
135
- resetField: C,
136
- set: u,
137
- setError: f,
138
- setValidator: g,
139
- touch: y,
140
- touchAll: x,
141
- untouch: b,
142
- untouchAll: S,
143
- values: c
144
- };
145
- }
146
- //#endregion
147
- export { o as createValueOps };
148
-
149
- //# sourceMappingURL=values.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"values.js","names":[],"sources":["../../src/core/values.ts"],"sourcesContent":["import type { FormContext } from './context';\n\nimport { warn } from '../_dev';\nimport { assertSafeKey, flattenValues, sanitizeForLog, unflattenValues } from '../_utils';\nimport {\n type ArrayField,\n type ErrorKeyOf,\n type FieldState,\n type FieldValidator,\n type FlatKeyOf,\n type RegisterFieldOptions,\n type SetOptions,\n type TypeAtPath,\n type Unsubscribe,\n} from '../types';\nimport { createArrayField } from './array';\n\n/**\n * Value/field-mutation operations: get/set/values, dirty tracking, errors, dynamic field\n * registration, touch, and reset/replace/patch/array. Moved verbatim from `createForm()`'s\n * \"Value access\" through \"Lifecycle: field operations\" sections.\n */\nexport function createValueOps<TValues extends Record<string, unknown>>(ctx: FormContext<TValues>) {\n function get<K extends FlatKeyOf<TValues>>(name: K): TypeAtPath<TValues, K> {\n const key = name as string;\n\n assertSafeKey(key);\n\n return ctx.store.get(key) as TypeAtPath<TValues, K>;\n }\n\n function values(): TValues {\n return (ctx.cachedValues ??= unflattenValues(Object.fromEntries(ctx.store)) as TValues);\n }\n\n /* ======== Dirty tracking ======== */\n\n function trackDirty(name: string, value: unknown): void {\n if (ctx.baseline.get(name) === value) ctx.dirty.delete(name);\n else ctx.dirty.add(name);\n }\n\n /* ======== Field mutation ======== */\n\n function set<K extends FlatKeyOf<TValues>>(name: K, value: TypeAtPath<TValues, K>, options: SetOptions = {}): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n ctx.store.set(key, value);\n trackDirty(key, value);\n\n if (options.touched) ctx.touched.add(key);\n\n ctx.requestNotify(key);\n }\n\n function field<K extends FlatKeyOf<TValues>>(name: K): FieldState<TypeAtPath<TValues, K>> {\n const key = name as string;\n\n assertSafeKey(key);\n\n return ctx.getFieldSnapshot(key) as FieldState<TypeAtPath<TValues, K>>;\n }\n\n function setError(name: ErrorKeyOf<TValues>, message: string): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n ctx.fieldErrors.set(key, message);\n ctx.invalidateErrors();\n ctx.requestNotify(key);\n }\n\n function clearError(name: ErrorKeyOf<TValues>): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n\n if (ctx.fieldErrors.delete(key)) {\n ctx.invalidateErrors();\n ctx.requestNotify(key);\n }\n }\n\n function resetErrors(nextErrors: Partial<Record<ErrorKeyOf<TValues>, string | undefined>> = {}): void {\n ctx.ensureNotDisposed();\n\n ctx.fieldErrors.clear();\n\n for (const [key, message] of Object.entries(nextErrors)) {\n assertSafeKey(key);\n\n if (typeof message === 'string') ctx.fieldErrors.set(key, message);\n }\n\n ctx.invalidateErrors();\n ctx.requestNotify();\n }\n\n /**\n * Warns when `key` looks like a dot-notation array item path (e.g. \"tags.0\") that isn't\n * already a real store entry — array items are stored as whole arrays, not individual keys.\n * Shared by `setValidator()` and `registerField()`.\n */\n function warnIfArrayItemKey(key: string, apiLabel: string): void {\n if (/\\.\\d+(\\.|$)/.test(key) && !ctx.store.has(key)) {\n const displayKey = sanitizeForLog(key, 80);\n\n warn(\n `${apiLabel}('${displayKey}'): path looks like an array item key. ` +\n `Array items are stored as whole arrays — register on the parent key instead.`,\n );\n }\n }\n\n function setValidator(name: FlatKeyOf<TValues>, validator?: FieldValidator<unknown>): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n warnIfArrayItemKey(key, 'setValidator');\n\n ctx.fieldCtrls.get(key)?.abort();\n ctx.fieldCtrls.delete(key);\n\n if (validator) {\n ctx.validators.set(key, validator);\n } else {\n ctx.validators.delete(key);\n\n if (ctx.fieldErrors.delete(key)) {\n ctx.invalidateErrors();\n ctx.requestNotify(key);\n }\n }\n }\n\n /* ======== Dynamic field registration ======== */\n\n function registerField<K extends FlatKeyOf<TValues>>(\n name: K,\n options: RegisterFieldOptions<TypeAtPath<TValues, K>> = {},\n ): Unsubscribe {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n warnIfArrayItemKey(key, 'fields.register');\n\n if (options.validator !== undefined) setValidator(name, options.validator as FieldValidator<unknown>);\n\n if (options.defaultValue !== undefined && !ctx.store.has(key)) {\n ctx.store.set(key, options.defaultValue);\n ctx.baseline.set(key, options.defaultValue);\n ctx.requestNotify(key);\n }\n\n return () => {\n if (!ctx.disposed) removeField(name);\n };\n }\n\n /* ======== Field enumeration ======== */\n\n function listFields(): readonly string[] {\n const known = new Set<string>();\n\n for (const name of ctx.store.keys()) known.add(name);\n for (const name of ctx.validators.keys()) known.add(name);\n\n return Object.freeze([...known]);\n }\n\n /* ======== Touch ======== */\n\n function touch(name: FlatKeyOf<TValues>): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n ctx.touched.add(key);\n ctx.requestNotify(key);\n }\n\n function untouch(name: FlatKeyOf<TValues>): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n\n if (ctx.touched.delete(key)) ctx.requestNotify(key);\n }\n\n function touchAll(): void {\n ctx.ensureNotDisposed();\n\n for (const name of ctx.store.keys()) ctx.touched.add(name);\n for (const name of ctx.validators.keys()) ctx.touched.add(name);\n\n ctx.requestNotify();\n }\n\n function untouchAll(): void {\n ctx.ensureNotDisposed();\n ctx.touched.clear();\n ctx.requestNotify();\n }\n\n /* ======== Lifecycle: field operations ======== */\n\n function resetField(name: FlatKeyOf<TValues>): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n ctx.fieldCtrls.get(key)?.abort();\n ctx.fieldCtrls.delete(key);\n ctx.store.set(key, ctx.baseline.get(key));\n ctx.dirty.delete(key);\n ctx.touched.delete(key);\n\n if (ctx.fieldErrors.delete(key)) ctx.invalidateErrors();\n\n ctx.requestNotify(key);\n }\n\n function removeField(name: FlatKeyOf<TValues>): void {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n ctx.store.delete(key);\n ctx.baseline.delete(key);\n ctx.dirty.delete(key);\n ctx.touched.delete(key);\n ctx.validators.delete(key);\n ctx.arrayCache.delete(key);\n ctx.fieldCtrls.get(key)?.abort();\n ctx.fieldCtrls.delete(key);\n\n if (ctx.fieldErrors.delete(key)) ctx.invalidateErrors();\n\n ctx.requestNotify(key);\n }\n\n function reset(): void {\n ctx.ensureNotDisposed();\n\n for (const ctrl of ctx.runCtrls) ctrl.abort();\n for (const ctrl of ctx.fieldCtrls.values()) ctrl.abort();\n\n ctx.runCtrls.clear();\n ctx.fieldCtrls.clear();\n ctx.validatingRuns.clear();\n ctx.store.clear();\n ctx.fieldErrors.clear();\n ctx.touched.clear();\n ctx.dirty.clear();\n ctx.submitCount = 0;\n ctx.invalidateErrors();\n\n for (const [name, value] of ctx.baseline) ctx.store.set(name, value);\n\n ctx.requestNotify();\n }\n\n function replace(newValues: TValues): void {\n ctx.ensureNotDisposed();\n\n for (const ctrl of ctx.runCtrls) ctrl.abort();\n for (const ctrl of ctx.fieldCtrls.values()) ctrl.abort();\n\n ctx.runCtrls.clear();\n ctx.fieldCtrls.clear();\n ctx.validatingRuns.clear();\n\n const flat = flattenValues(newValues as Record<string, unknown>);\n\n ctx.store.clear();\n ctx.baseline.clear();\n ctx.fieldErrors.clear();\n ctx.touched.clear();\n ctx.dirty.clear();\n ctx.submitCount = 0;\n ctx.invalidateErrors();\n\n for (const [name, value] of Object.entries(flat)) {\n ctx.store.set(name, value);\n ctx.baseline.set(name, value);\n }\n\n ctx.requestNotify();\n }\n\n function patch(partial: Record<string, unknown>): void {\n ctx.ensureNotDisposed();\n\n const flat = flattenValues(partial);\n\n for (const [key, value] of Object.entries(flat)) {\n ctx.baseline.set(key, value);\n ctx.store.set(key, value);\n ctx.dirty.delete(key);\n }\n\n ctx.requestNotify(Object.keys(flat));\n }\n\n /* ======== Array helpers ======== */\n\n function array(name: FlatKeyOf<TValues>): ArrayField {\n ctx.ensureNotDisposed();\n\n const key = name as string;\n\n assertSafeKey(key);\n\n const cached = ctx.arrayCache.get(key);\n\n if (cached) return cached;\n\n const helpers = createArrayField(name, ctx.store, set as (name: string, value: unknown) => void);\n\n ctx.arrayCache.set(key, helpers);\n\n return helpers;\n }\n\n return {\n array,\n clearError,\n field,\n get,\n listFields,\n patch,\n registerField,\n removeField,\n replace,\n reset,\n resetErrors,\n resetField,\n set,\n setError,\n setValidator,\n touch,\n touchAll,\n untouch,\n untouchAll,\n values,\n };\n}\n\nexport type ValueOps<TValues extends Record<string, unknown>> = ReturnType<typeof createValueOps<TValues>>;\n"],"mappings":"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"}