@native-form/core 0.1.0 → 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 (100) hide show
  1. package/dist/index.cjs +2073 -0
  2. package/dist/index.d.cts +495 -0
  3. package/dist/index.d.ts +495 -9
  4. package/dist/index.js +2030 -7
  5. package/package.json +5 -3
  6. package/dist/Discovery.d.ts +0 -2
  7. package/dist/Discovery.d.ts.map +0 -1
  8. package/dist/Discovery.js +0 -2
  9. package/dist/Discovery.js.map +0 -1
  10. package/dist/FieldErrorRenderer.d.ts +0 -2
  11. package/dist/FieldErrorRenderer.d.ts.map +0 -1
  12. package/dist/FieldErrorRenderer.js +0 -2
  13. package/dist/FieldErrorRenderer.js.map +0 -1
  14. package/dist/FieldNode.d.ts +0 -2
  15. package/dist/FieldNode.d.ts.map +0 -1
  16. package/dist/FieldNode.js +0 -2
  17. package/dist/FieldNode.js.map +0 -1
  18. package/dist/FieldRegistry.d.ts +0 -2
  19. package/dist/FieldRegistry.d.ts.map +0 -1
  20. package/dist/FieldRegistry.js +0 -2
  21. package/dist/FieldRegistry.js.map +0 -1
  22. package/dist/FieldState.d.ts +0 -2
  23. package/dist/FieldState.d.ts.map +0 -1
  24. package/dist/FieldState.js +0 -2
  25. package/dist/FieldState.js.map +0 -1
  26. package/dist/Path.d.ts +0 -78
  27. package/dist/Path.d.ts.map +0 -1
  28. package/dist/Path.js +0 -219
  29. package/dist/Path.js.map +0 -1
  30. package/dist/Runtime.d.ts +0 -2
  31. package/dist/Runtime.d.ts.map +0 -1
  32. package/dist/Runtime.js +0 -2
  33. package/dist/Runtime.js.map +0 -1
  34. package/dist/RuntimeMutationPolicy.d.ts +0 -2
  35. package/dist/RuntimeMutationPolicy.d.ts.map +0 -1
  36. package/dist/RuntimeMutationPolicy.js +0 -2
  37. package/dist/RuntimeMutationPolicy.js.map +0 -1
  38. package/dist/Serializer.d.ts +0 -2
  39. package/dist/Serializer.d.ts.map +0 -1
  40. package/dist/Serializer.js +0 -2
  41. package/dist/Serializer.js.map +0 -1
  42. package/dist/Validation.d.ts +0 -2
  43. package/dist/Validation.d.ts.map +0 -1
  44. package/dist/Validation.js +0 -2
  45. package/dist/Validation.js.map +0 -1
  46. package/dist/ValidationPipeline.d.ts +0 -2
  47. package/dist/ValidationPipeline.d.ts.map +0 -1
  48. package/dist/ValidationPipeline.js +0 -2
  49. package/dist/ValidationPipeline.js.map +0 -1
  50. package/dist/discovery/Discovery.d.ts +0 -5
  51. package/dist/discovery/Discovery.d.ts.map +0 -1
  52. package/dist/discovery/Discovery.js +0 -63
  53. package/dist/discovery/Discovery.js.map +0 -1
  54. package/dist/errors/FieldErrorRenderer.d.ts +0 -17
  55. package/dist/errors/FieldErrorRenderer.d.ts.map +0 -1
  56. package/dist/errors/FieldErrorRenderer.js +0 -115
  57. package/dist/errors/FieldErrorRenderer.js.map +0 -1
  58. package/dist/field/FieldNode.d.ts +0 -38
  59. package/dist/field/FieldNode.d.ts.map +0 -1
  60. package/dist/field/FieldNode.js +0 -154
  61. package/dist/field/FieldNode.js.map +0 -1
  62. package/dist/field/FieldRegistry.d.ts +0 -19
  63. package/dist/field/FieldRegistry.d.ts.map +0 -1
  64. package/dist/field/FieldRegistry.js +0 -46
  65. package/dist/field/FieldRegistry.js.map +0 -1
  66. package/dist/field/FieldState.d.ts +0 -13
  67. package/dist/field/FieldState.d.ts.map +0 -1
  68. package/dist/field/FieldState.js +0 -2
  69. package/dist/field/FieldState.js.map +0 -1
  70. package/dist/index.d.ts.map +0 -1
  71. package/dist/index.js.map +0 -1
  72. package/dist/runtime/Runtime.d.ts +0 -137
  73. package/dist/runtime/Runtime.d.ts.map +0 -1
  74. package/dist/runtime/Runtime.js +0 -1374
  75. package/dist/runtime/Runtime.js.map +0 -1
  76. package/dist/runtime/RuntimeMutationPolicy.d.ts +0 -3
  77. package/dist/runtime/RuntimeMutationPolicy.d.ts.map +0 -1
  78. package/dist/runtime/RuntimeMutationPolicy.js +0 -34
  79. package/dist/runtime/RuntimeMutationPolicy.js.map +0 -1
  80. package/dist/serialization/Serializer.d.ts +0 -52
  81. package/dist/serialization/Serializer.d.ts.map +0 -1
  82. package/dist/serialization/Serializer.js +0 -115
  83. package/dist/serialization/Serializer.js.map +0 -1
  84. package/dist/shared/types.d.ts +0 -66
  85. package/dist/shared/types.d.ts.map +0 -1
  86. package/dist/shared/types.js +0 -2
  87. package/dist/shared/types.js.map +0 -1
  88. package/dist/tsdoc-metadata.json +0 -11
  89. package/dist/types.d.ts +0 -2
  90. package/dist/types.d.ts.map +0 -1
  91. package/dist/types.js +0 -2
  92. package/dist/types.js.map +0 -1
  93. package/dist/validation/Validation.d.ts +0 -61
  94. package/dist/validation/Validation.d.ts.map +0 -1
  95. package/dist/validation/Validation.js +0 -34
  96. package/dist/validation/Validation.js.map +0 -1
  97. package/dist/validation/ValidationPipeline.d.ts +0 -61
  98. package/dist/validation/ValidationPipeline.d.ts.map +0 -1
  99. package/dist/validation/ValidationPipeline.js +0 -73
  100. package/dist/validation/ValidationPipeline.js.map +0 -1
package/package.json CHANGED
@@ -1,15 +1,17 @@
1
1
  {
2
2
  "name": "@native-form/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Framework-agnostic native HTML-first form runtime, discovery, and validation contracts.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
- "main": "./dist/index.js",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.js",
8
9
  "types": "./dist/index.d.ts",
9
10
  "exports": {
10
11
  ".": {
11
12
  "types": "./dist/index.d.ts",
12
13
  "import": "./dist/index.js",
14
+ "require": "./dist/index.cjs",
13
15
  "default": "./dist/index.js"
14
16
  }
15
17
  },
@@ -39,7 +41,7 @@
39
41
  "@native-form/adapter-contracts": "0.0.0"
40
42
  },
41
43
  "scripts": {
42
- "build": "tsc",
44
+ "build": "tsup src/index.ts --format esm,cjs --dts --clean",
43
45
  "test": "vitest run",
44
46
  "test:watch": "vitest"
45
47
  }
@@ -1,2 +0,0 @@
1
- export * from "./discovery/Discovery";
2
- //# sourceMappingURL=Discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Discovery.d.ts","sourceRoot":"","sources":["../src/Discovery.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
package/dist/Discovery.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./discovery/Discovery";
2
- //# sourceMappingURL=Discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Discovery.js","sourceRoot":"","sources":["../src/Discovery.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./errors/FieldErrorRenderer";
2
- //# sourceMappingURL=FieldErrorRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldErrorRenderer.d.ts","sourceRoot":"","sources":["../src/FieldErrorRenderer.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./errors/FieldErrorRenderer";
2
- //# sourceMappingURL=FieldErrorRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldErrorRenderer.js","sourceRoot":"","sources":["../src/FieldErrorRenderer.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./field/FieldNode";
2
- //# sourceMappingURL=FieldNode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldNode.d.ts","sourceRoot":"","sources":["../src/FieldNode.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
package/dist/FieldNode.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./field/FieldNode";
2
- //# sourceMappingURL=FieldNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldNode.js","sourceRoot":"","sources":["../src/FieldNode.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./field/FieldRegistry";
2
- //# sourceMappingURL=FieldRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldRegistry.d.ts","sourceRoot":"","sources":["../src/FieldRegistry.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./field/FieldRegistry";
2
- //# sourceMappingURL=FieldRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldRegistry.js","sourceRoot":"","sources":["../src/FieldRegistry.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./field/FieldState";
2
- //# sourceMappingURL=FieldState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldState.d.ts","sourceRoot":"","sources":["../src/FieldState.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./field/FieldState";
2
- //# sourceMappingURL=FieldState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldState.js","sourceRoot":"","sources":["../src/FieldState.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
package/dist/Path.d.ts DELETED
@@ -1,78 +0,0 @@
1
- /** @public */
2
- export type FieldPathSegment = string | number;
3
- /** @public */
4
- export interface ArrayItemPathInfo {
5
- arrayName: string;
6
- index: number;
7
- subPath: string;
8
- }
9
- /** @public */
10
- export declare function formPath(...segments: FieldPathSegment[]): string;
11
- /** @public */
12
- export declare function arrayItemPath(arrayName: string, index: number, ...segments: FieldPathSegment[]): string;
13
- /**
14
- * Splits any dot or bracket notation path into string segments.
15
- *
16
- * @example
17
- * splitPath("user.name") // ["user", "name"]
18
- * splitPath("user[profile][name]") // ["user", "profile", "name"]
19
- * splitPath("items[0].title") // ["items", "0", "title"]
20
- *
21
- * @public
22
- */
23
- export declare function splitPath(path: string): string[];
24
- /**
25
- * Normalizes any dot or bracket notation path into canonical dot notation.
26
- *
27
- * @example
28
- * normalizePath("user[profile][name]") // "user.profile.name"
29
- * normalizePath("tasks[0].title") // "tasks.0.title"
30
- *
31
- * @public
32
- */
33
- export declare function normalizePath(path: string): string;
34
- /** @public */
35
- export declare function parseArrayItemPath(path: string): ArrayItemPathInfo | null;
36
- /** @public */
37
- export declare function isArrayItemPath(path: string, arrayName?: string): boolean;
38
- /** @public */
39
- export declare function matchArrayItemPath(path: string, arrayName: string): {
40
- index: number;
41
- subPath: string;
42
- } | null;
43
- /** @public */
44
- export declare function shiftArrayItemIndex(path: string, arrayName: string, fromIndex: number, delta: number): string;
45
- /** @public */
46
- export declare function remapArrayItemIndex(path: string, arrayName: string, oldIndex: number, newIndex: number): string;
47
- /**
48
- * Safely accesses a value at a nested path inside an object or array.
49
- *
50
- * @param target - The root object or array
51
- * @param path - Dot or bracket path string or segment array
52
- * @param defaultValue - Optional fallback if the resolved value is undefined
53
- *
54
- * @public
55
- */
56
- export declare function getByPath(target: unknown, path: string | readonly string[], defaultValue?: unknown): unknown;
57
- /**
58
- * Safely sets a value at a nested path, automatically creating intermediate
59
- * objects or arrays (for numeric integer segments).
60
- * Protects against prototype pollution by skipping __proto__, prototype, and constructor.
61
- *
62
- * @param target - The root object to modify
63
- * @param path - Dot or bracket path string or segment array
64
- * @param value - The value to assign
65
- *
66
- * @public
67
- */
68
- export declare function setByPath(target: Record<string, unknown>, path: string | readonly string[], value: unknown): void;
69
- /**
70
- * Transforms a flat key-value map into deeply nested objects and arrays.
71
- *
72
- * @param flatValues - Flat map of field names to values
73
- * @returns Deeply nested object/array structure
74
- *
75
- * @public
76
- */
77
- export declare function toNestedValues<TOutput extends Record<string, unknown> = Record<string, unknown>>(flatValues: Record<string, unknown>): TOutput;
78
- //# sourceMappingURL=Path.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Path.d.ts","sourceRoot":"","sources":["../src/Path.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,cAAc;AACd,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,cAAc;AACd,wBAAgB,QAAQ,CAAC,GAAG,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAKhE;AAED,cAAc;AACd,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,QAAQ,EAAE,gBAAgB,EAAE,GAC9B,MAAM,CAMR;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,cAAc;AACd,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAczE;AAED,cAAc;AACd,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAWzE;AAED,cAAc;AACd,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO3C;AAED,cAAc;AACd,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAcR;AAED,cAAc;AACd,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CAeR;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAChC,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAgCT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,OAAO,GACb,IAAI,CAwDN;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAY9C"}
package/dist/Path.js DELETED
@@ -1,219 +0,0 @@
1
- const BLOCKED_PROPERTIES = new Set(["__proto__", "constructor", "prototype"]);
2
- /** @public */
3
- export function formPath(...segments) {
4
- return segments
5
- .map((segment) => String(segment).trim())
6
- .filter(Boolean)
7
- .join(".");
8
- }
9
- /** @public */
10
- export function arrayItemPath(arrayName, index, ...segments) {
11
- if (!Number.isInteger(index) || index < 0) {
12
- throw new Error("arrayItemPath index must be a non-negative integer.");
13
- }
14
- return formPath(arrayName, index, ...segments);
15
- }
16
- /**
17
- * Splits any dot or bracket notation path into string segments.
18
- *
19
- * @example
20
- * splitPath("user.name") // ["user", "name"]
21
- * splitPath("user[profile][name]") // ["user", "profile", "name"]
22
- * splitPath("items[0].title") // ["items", "0", "title"]
23
- *
24
- * @public
25
- */
26
- export function splitPath(path) {
27
- if (!path)
28
- return [];
29
- return path
30
- .replace(/\[/g, ".")
31
- .replace(/\]/g, "")
32
- .split(".")
33
- .map((segment) => segment.replace(/['"]/g, "").trim())
34
- .filter(Boolean);
35
- }
36
- /**
37
- * Normalizes any dot or bracket notation path into canonical dot notation.
38
- *
39
- * @example
40
- * normalizePath("user[profile][name]") // "user.profile.name"
41
- * normalizePath("tasks[0].title") // "tasks.0.title"
42
- *
43
- * @public
44
- */
45
- export function normalizePath(path) {
46
- return splitPath(path).join(".");
47
- }
48
- /** @public */
49
- export function parseArrayItemPath(path) {
50
- const parts = splitPath(path);
51
- for (let i = 0; i < parts.length - 1; i++) {
52
- const next = parts[i + 1];
53
- if (/^\d+$/.test(next)) {
54
- const arrayName = parts.slice(0, i + 1).join(".");
55
- const index = Number(next);
56
- const subPath = parts.slice(i + 2).join(".");
57
- return { arrayName, index, subPath };
58
- }
59
- }
60
- return null;
61
- }
62
- /** @public */
63
- export function isArrayItemPath(path, arrayName) {
64
- const parsed = parseArrayItemPath(path);
65
- if (!parsed) {
66
- return false;
67
- }
68
- if (arrayName !== undefined && parsed.arrayName !== arrayName) {
69
- return false;
70
- }
71
- return true;
72
- }
73
- /** @public */
74
- export function matchArrayItemPath(path, arrayName) {
75
- const parsed = parseArrayItemPath(path);
76
- if (!parsed || parsed.arrayName !== arrayName) {
77
- return null;
78
- }
79
- return { index: parsed.index, subPath: parsed.subPath };
80
- }
81
- /** @public */
82
- export function shiftArrayItemIndex(path, arrayName, fromIndex, delta) {
83
- const parsed = parseArrayItemPath(path);
84
- if (!parsed || parsed.arrayName !== arrayName || parsed.index < fromIndex) {
85
- return path;
86
- }
87
- const nextIndex = parsed.index + delta;
88
- if (nextIndex < 0) {
89
- throw new Error("shiftArrayItemIndex resulted in a negative index.");
90
- }
91
- return parsed.subPath
92
- ? arrayItemPath(arrayName, nextIndex, parsed.subPath)
93
- : arrayItemPath(arrayName, nextIndex);
94
- }
95
- /** @public */
96
- export function remapArrayItemIndex(path, arrayName, oldIndex, newIndex) {
97
- if (!Number.isInteger(newIndex) || newIndex < 0) {
98
- throw new Error("remapArrayItemIndex newIndex must be a non-negative integer.");
99
- }
100
- const parsed = parseArrayItemPath(path);
101
- if (!parsed || parsed.arrayName !== arrayName || parsed.index !== oldIndex) {
102
- return path;
103
- }
104
- return parsed.subPath
105
- ? arrayItemPath(arrayName, newIndex, parsed.subPath)
106
- : arrayItemPath(arrayName, newIndex);
107
- }
108
- /**
109
- * Safely accesses a value at a nested path inside an object or array.
110
- *
111
- * @param target - The root object or array
112
- * @param path - Dot or bracket path string or segment array
113
- * @param defaultValue - Optional fallback if the resolved value is undefined
114
- *
115
- * @public
116
- */
117
- export function getByPath(target, path, defaultValue) {
118
- const parts = typeof path === "string" ? splitPath(path) : path;
119
- if (parts.length === 0) {
120
- return target !== undefined ? target : defaultValue;
121
- }
122
- let current = target;
123
- for (const part of parts) {
124
- if (current === null || current === undefined) {
125
- return defaultValue;
126
- }
127
- if (BLOCKED_PROPERTIES.has(part)) {
128
- return defaultValue;
129
- }
130
- if (Array.isArray(current)) {
131
- const index = Number(part);
132
- if (!Number.isInteger(index) || index < 0) {
133
- return defaultValue;
134
- }
135
- current = current[index];
136
- }
137
- else if (typeof current === "object") {
138
- current = current[part];
139
- }
140
- else {
141
- return defaultValue;
142
- }
143
- }
144
- return current !== undefined ? current : defaultValue;
145
- }
146
- /**
147
- * Safely sets a value at a nested path, automatically creating intermediate
148
- * objects or arrays (for numeric integer segments).
149
- * Protects against prototype pollution by skipping __proto__, prototype, and constructor.
150
- *
151
- * @param target - The root object to modify
152
- * @param path - Dot or bracket path string or segment array
153
- * @param value - The value to assign
154
- *
155
- * @public
156
- */
157
- export function setByPath(target, path, value) {
158
- const parts = typeof path === "string" ? splitPath(path) : path;
159
- if (parts.length === 0) {
160
- return;
161
- }
162
- let current = target;
163
- for (let i = 0; i < parts.length; i++) {
164
- const part = parts[i];
165
- if (BLOCKED_PROPERTIES.has(part)) {
166
- return;
167
- }
168
- const isLast = i === parts.length - 1;
169
- const nextPart = parts[i + 1];
170
- const nextIsIndex = nextPart !== undefined && /^\d+$/.test(nextPart);
171
- if (Array.isArray(current)) {
172
- const index = Number(part);
173
- if (!Number.isInteger(index) || index < 0) {
174
- return;
175
- }
176
- if (isLast) {
177
- current[index] = value;
178
- return;
179
- }
180
- if (current[index] === undefined || current[index] === null) {
181
- current[index] = nextIsIndex ? [] : {};
182
- }
183
- current = current[index];
184
- continue;
185
- }
186
- if (typeof current === "object" && current !== null) {
187
- if (isLast) {
188
- current[part] = value;
189
- return;
190
- }
191
- if (current[part] === undefined || current[part] === null) {
192
- current[part] = nextIsIndex ? [] : {};
193
- }
194
- current = current[part];
195
- continue;
196
- }
197
- return;
198
- }
199
- }
200
- /**
201
- * Transforms a flat key-value map into deeply nested objects and arrays.
202
- *
203
- * @param flatValues - Flat map of field names to values
204
- * @returns Deeply nested object/array structure
205
- *
206
- * @public
207
- */
208
- export function toNestedValues(flatValues) {
209
- const nested = {};
210
- for (const [path, value] of Object.entries(flatValues)) {
211
- const parts = splitPath(path);
212
- if (parts.length === 0) {
213
- continue;
214
- }
215
- setByPath(nested, parts, value);
216
- }
217
- return nested;
218
- }
219
- //# sourceMappingURL=Path.js.map
package/dist/Path.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Path.js","sourceRoot":"","sources":["../src/Path.ts"],"names":[],"mappings":"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"}
package/dist/Runtime.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./runtime/Runtime";
2
- //# sourceMappingURL=Runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Runtime.d.ts","sourceRoot":"","sources":["../src/Runtime.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
package/dist/Runtime.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "./runtime/Runtime";
2
- //# sourceMappingURL=Runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../src/Runtime.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./runtime/RuntimeMutationPolicy";
2
- //# sourceMappingURL=RuntimeMutationPolicy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeMutationPolicy.d.ts","sourceRoot":"","sources":["../src/RuntimeMutationPolicy.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./runtime/RuntimeMutationPolicy";
2
- //# sourceMappingURL=RuntimeMutationPolicy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RuntimeMutationPolicy.js","sourceRoot":"","sources":["../src/RuntimeMutationPolicy.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./serialization/Serializer";
2
- //# sourceMappingURL=Serializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Serializer.d.ts","sourceRoot":"","sources":["../src/Serializer.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./serialization/Serializer";
2
- //# sourceMappingURL=Serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../src/Serializer.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./validation/Validation";
2
- //# sourceMappingURL=Validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["../src/Validation.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./validation/Validation";
2
- //# sourceMappingURL=Validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Validation.js","sourceRoot":"","sources":["../src/Validation.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./validation/ValidationPipeline";
2
- //# sourceMappingURL=ValidationPipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ValidationPipeline.d.ts","sourceRoot":"","sources":["../src/ValidationPipeline.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./validation/ValidationPipeline";
2
- //# sourceMappingURL=ValidationPipeline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ValidationPipeline.js","sourceRoot":"","sources":["../src/ValidationPipeline.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { FieldRegistry } from "../field/FieldRegistry";
2
- export declare class Discovery {
3
- discover(form: HTMLFormElement, registry: FieldRegistry): void;
4
- }
5
- //# sourceMappingURL=Discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/Discovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;CA2E/D"}
@@ -1,63 +0,0 @@
1
- import { FieldNode } from "../field/FieldNode";
2
- export class Discovery {
3
- discover(form, registry) {
4
- // Register controls found in the form. If a control with the same
5
- // name already exists in the registry, reuse it when it's the same
6
- // DOM element; otherwise replace the entry so the registry always
7
- // reflects the current DOM node for that name.
8
- const seen = new Set();
9
- for (const control of Array.from(form.elements)) {
10
- if (control instanceof HTMLInputElement ||
11
- control instanceof HTMLSelectElement ||
12
- control instanceof HTMLTextAreaElement) {
13
- if (!control.name) {
14
- continue;
15
- }
16
- const name = control.name;
17
- seen.add(name);
18
- if (registry.has(name)) {
19
- const existing = registry.get(name);
20
- // If the registry already has the same DOM element, keep it.
21
- if (existing.element === control) {
22
- continue;
23
- }
24
- // If both are radio buttons in the same radio group, prefer the checked one
25
- // and avoid thrashing on sibling radios.
26
- if (control instanceof HTMLInputElement &&
27
- control.type === "radio" &&
28
- existing.element instanceof HTMLInputElement &&
29
- existing.element.type === "radio") {
30
- if (control.checked && !existing.element.checked) {
31
- registry.unregister(name);
32
- registry.register(new FieldNode(control));
33
- }
34
- continue;
35
- }
36
- // If multiple checkboxes share the same name, retain the registered node
37
- // if it is still part of the form, rather than thrashing.
38
- if (control instanceof HTMLInputElement &&
39
- control.type === "checkbox" &&
40
- existing.element instanceof HTMLInputElement &&
41
- existing.element.type === "checkbox" &&
42
- existing.element.form === form) {
43
- continue;
44
- }
45
- // Otherwise replace the registry entry so the FieldNode points
46
- // to the current DOM control.
47
- registry.unregister(name);
48
- registry.register(new FieldNode(control));
49
- continue;
50
- }
51
- registry.register(new FieldNode(control));
52
- }
53
- }
54
- // Unregister any fields that were removed from the DOM or whose names changed
55
- // since the previous discovery pass.
56
- for (const [key, field] of registry.entries()) {
57
- if (!seen.has(key) || field.element.name !== key) {
58
- registry.unregister(key);
59
- }
60
- }
61
- }
62
- }
63
- //# sourceMappingURL=Discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Discovery.js","sourceRoot":"","sources":["../../src/discovery/Discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,OAAO,SAAS;IACpB,QAAQ,CAAC,IAAqB,EAAE,QAAuB;QACrD,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,+CAA+C;QAE/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,IACE,OAAO,YAAY,gBAAgB;gBACnC,OAAO,YAAY,iBAAiB;gBACpC,OAAO,YAAY,mBAAmB,EACtC,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAClB,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEf,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;oBAErC,6DAA6D;oBAC7D,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;wBACjC,SAAS;oBACX,CAAC;oBAED,4EAA4E;oBAC5E,yCAAyC;oBACzC,IACE,OAAO,YAAY,gBAAgB;wBACnC,OAAO,CAAC,IAAI,KAAK,OAAO;wBACxB,QAAQ,CAAC,OAAO,YAAY,gBAAgB;wBAC5C,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EACjC,CAAC;wBACD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;4BACjD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BAC1B,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC5C,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,yEAAyE;oBACzE,0DAA0D;oBAC1D,IACE,OAAO,YAAY,gBAAgB;wBACnC,OAAO,CAAC,IAAI,KAAK,UAAU;wBAC3B,QAAQ,CAAC,OAAO,YAAY,gBAAgB;wBAC5C,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU;wBACpC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,EAC9B,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,+DAA+D;oBAC/D,8BAA8B;oBAC9B,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC1B,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,qCAAqC;QACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjD,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,17 +0,0 @@
1
- import { FieldNode } from "../field/FieldNode";
2
- export declare class FieldErrorRenderer {
3
- private static nextErrorId;
4
- private readonly errorIds;
5
- private readonly errorElements;
6
- applyErrors(fields: FieldNode[], errors: Record<string, string>): void;
7
- normalizeFields(fields: FieldNode[]): void;
8
- private applyFieldError;
9
- private normalizeField;
10
- private getPrimaryErrorElement;
11
- private findExistingErrorElements;
12
- private removeErrorElements;
13
- private createErrorElement;
14
- private decorateErrorElement;
15
- private getOrCreateErrorId;
16
- }
17
- //# sourceMappingURL=FieldErrorRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldErrorRenderer.d.ts","sourceRoot":"","sources":["../../src/errors/FieldErrorRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IAErE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;IAEJ,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM/D,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE;IAMnC,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,kBAAkB;CAW3B"}