@texaryn/core 0.3.0 → 0.5.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.
- package/CHANGELOG.md +12 -0
- package/README.md +16 -6
- package/dist/commands/handler.d.ts.map +1 -1
- package/dist/commands/handler.js +18 -10
- package/dist/commands/handler.js.map +1 -1
- package/dist/identity/index.d.ts +2 -0
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +1 -0
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/key.d.ts +18 -0
- package/dist/identity/key.d.ts.map +1 -0
- package/dist/identity/key.js +7 -0
- package/dist/identity/key.js.map +1 -0
- package/dist/identity/map.d.ts +6 -5
- package/dist/identity/map.d.ts.map +1 -1
- package/dist/identity/map.js +14 -14
- package/dist/identity/map.js.map +1 -1
- package/dist/identity/reconcile.d.ts +3 -2
- package/dist/identity/reconcile.d.ts.map +1 -1
- package/dist/identity/reconcile.js +4 -4
- package/dist/identity/reconcile.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/compiler.d.ts.map +1 -1
- package/dist/ir/compiler.js +24 -9
- package/dist/ir/compiler.js.map +1 -1
- package/dist/ir/runtime-state.d.ts +5 -2
- package/dist/ir/runtime-state.d.ts.map +1 -1
- package/dist/ir/types.d.ts +3 -0
- package/dist/ir/types.d.ts.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +24 -18
- package/dist/runtime/runtime.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @texaryn/core
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8b20b6e: Array identity is keyed by an opaque `IdentityKey` for the logical container instead of the positional node id, exposed as `ArrayMeta.identityKey`. A nested array now keeps its `StableItemId`s when the row that contains it moves, or when a row is inserted or removed above it. `compile` returns identity for the arrays it visited only, so an array that leaves the document is minted afresh when it returns, and a compile that throws leaves the previous identity untouched. `registerArray`, `insertItem`, `removeItem`, `moveItem` and `reconcile` take an `IdentityKey` where they took a `NodeId`.
|
|
8
|
+
|
|
9
|
+
## 0.4.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- ffae9f1: A failed Submit now shows its errors. Before, `showErrors` required a field to be touched, so submitting a form the user had not interacted with validated, failed, returned to idle and displayed nothing. `SubmissionState` gains `attempts`, the number of accepted Submit commands since creation or the last Reset, and a field's errors are shown once it is invalid and either touched or `attempts` is above zero. Reset returns `attempts` to zero.
|
|
14
|
+
|
|
3
15
|
## 0.3.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Framework-neutral UI IR, compiler, runtime, state, commands, identity, and rende
|
|
|
10
10
|
pnpm add @texaryn/core
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
`@texaryn/core` has no React or DOM dependency.
|
|
13
|
+
`@texaryn/core` has no React, Vue or DOM dependency.
|
|
14
14
|
|
|
15
15
|
## What it does
|
|
16
16
|
|
|
@@ -108,6 +108,7 @@ A `FormRuntime` exposes stores for:
|
|
|
108
108
|
- `document`, the current `UIDocument`
|
|
109
109
|
- `data`, the current form data
|
|
110
110
|
- `submission`, the current submission state
|
|
111
|
+
- `visibleErrors`, every error currently shown across the form
|
|
111
112
|
|
|
112
113
|
It also exposes:
|
|
113
114
|
|
|
@@ -188,9 +189,9 @@ const runtime = createFormRuntime(port, {
|
|
|
188
189
|
|
|
189
190
|
Validation remains full-form: `port.validate(data)` is called with the entire form data, and errors are distributed to nodes by their data pointers. Synchronous validators skip the `pending` state entirely.
|
|
190
191
|
|
|
191
|
-
Errors are not displayed immediately. The runtime computes a `showErrors` flag per node: a field's errors become visible
|
|
192
|
+
Errors are not displayed immediately. The runtime computes a `showErrors` flag per node: a field's errors become visible once it is `invalid` and either `touched` (the user has interacted with it) or the form has been submitted, because a failed Submit has to show what blocked it, including fields the user never reached. `submission.attempts` counts the accepted Submit commands since creation or the last Reset, and the gate stays open while it is above zero. The form-level `visibleErrors` store aggregates all currently visible errors for use in error summaries. The `useField` hook in both `@texaryn/react` and `@texaryn/vue` returns `showErrors`, and the React `getInputProps` sets `aria-invalid` and the error ID in `aria-describedby` only when `showErrors` is true.
|
|
192
193
|
|
|
193
|
-
Pass hints to `createFormRuntime()
|
|
194
|
+
Pass hints to `createFormRuntime()`, or to `useForm()` in React or Vue.
|
|
194
195
|
|
|
195
196
|
## Submission lifecycle
|
|
196
197
|
|
|
@@ -206,7 +207,7 @@ const runtime = createFormRuntime(port, {
|
|
|
206
207
|
runtime.dispatch({ type: 'Submit' })
|
|
207
208
|
```
|
|
208
209
|
|
|
209
|
-
The `submission` store tracks the lifecycle: `idle`, `validating`, `submitting`, `submitted`. A failed `onSubmit` returns to `idle` with the error on `submission.error`. Dispatching `Submit` while already `validating` or `submitting` is a no-op.
|
|
210
|
+
The `submission` store tracks the lifecycle: `idle`, `validating`, `submitting`, `submitted`. It also carries `attempts`, the number of accepted Submit commands since creation or the last Reset. A failed validation returns to `idle` with every invalid field showing its errors; a failed `onSubmit` returns to `idle` with the error on `submission.error`. Dispatching `Submit` while already `validating` or `submitting` is a no-op.
|
|
210
211
|
|
|
211
212
|
Edits during `validating` cancel the submission attempt and return to `idle`. Edits during `submitting` update the live form data but do not alter the in-flight payload or trigger validation. A `Reset` during submission cleanly cancels via a generation counter, so late completions from abandoned attempts are ignored.
|
|
212
213
|
|
|
@@ -224,7 +225,11 @@ Framework packages can register concrete widget components without adding framew
|
|
|
224
225
|
|
|
225
226
|
## Stable array identity
|
|
226
227
|
|
|
227
|
-
The core includes identity helpers used to keep dynamic array items stable across inserts, removals, moves, and recompilation
|
|
228
|
+
The core includes identity helpers used to keep dynamic array items stable across inserts, removals, moves, and recompilation. Arrays are addressed by `ArrayMeta.identityKey`, an opaque key for the logical container that stays the same when rows above it move or change shape, so a nested array keeps its item identities when its parent row moves.
|
|
229
|
+
|
|
230
|
+
Identity follows structural edits: `InsertItem`, `RemoveItem` and `MoveItem` keep the ids of every item they do not touch, including the nested arrays inside a moved row. `Reset` is wholesale state replacement rather than a structural edit: it re-establishes identity by matching old and new items (by `ArrayMeta.itemKey` when set, otherwise by content), so the nested arrays under a row that changed position may be minted afresh.
|
|
231
|
+
|
|
232
|
+
The helpers:
|
|
228
233
|
|
|
229
234
|
- `createIdentityMap`
|
|
230
235
|
- `registerArray`
|
|
@@ -314,6 +319,10 @@ The core includes identity helpers used to keep dynamic array items stable acros
|
|
|
314
319
|
- `resolvePointer`
|
|
315
320
|
- `reconcile`
|
|
316
321
|
- `ReconcileOptions`
|
|
322
|
+
- `identityKey`
|
|
323
|
+
- `ROOT_IDENTITY_KEY`
|
|
324
|
+
- `IdentityKey`
|
|
325
|
+
- `IdentitySegment`
|
|
317
326
|
|
|
318
327
|
### Rendering
|
|
319
328
|
|
|
@@ -326,7 +335,7 @@ The core includes identity helpers used to keep dynamic array items stable acros
|
|
|
326
335
|
|
|
327
336
|
`@texaryn/core` intentionally does not depend on:
|
|
328
337
|
|
|
329
|
-
- React
|
|
338
|
+
- React, Vue or any other rendering framework
|
|
330
339
|
- the DOM
|
|
331
340
|
- a JSON Schema implementation
|
|
332
341
|
- an AI SDK or transport protocol
|
|
@@ -337,6 +346,7 @@ That boundary is what allows the same runtime model to support different schema
|
|
|
337
346
|
|
|
338
347
|
- [`@texaryn/schema-json`](../schema-json/README.md), primary JSON Schema adapter
|
|
339
348
|
- [`@texaryn/react`](../react/README.md), React bindings and default renderer
|
|
349
|
+
- [`@texaryn/vue`](../vue/README.md), Vue 3 bindings and default renderer
|
|
340
350
|
|
|
341
351
|
See the [repository README](../../README.md) and [ROADMAP](../../ROADMAP.md) for the full architecture.
|
|
342
352
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAYxD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU,GACnB,aAAa,CAiBf"}
|
package/dist/commands/handler.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { getAtPointer, setAtPointer } from '../json-pointer.js';
|
|
2
2
|
import { insertItem, removeItem, moveItem } from '../identity/map.js';
|
|
3
3
|
import { reconcile } from '../identity/reconcile.js';
|
|
4
|
+
/** Only an array container owns identity; anything else cannot be inserted into, removed from or reordered. */
|
|
5
|
+
function identityKeyOf(node) {
|
|
6
|
+
return node?.type === 'container' ? node.arrayMeta?.identityKey : undefined;
|
|
7
|
+
}
|
|
4
8
|
export function processCommand(state, command, document) {
|
|
5
9
|
switch (command.type) {
|
|
6
10
|
case 'SetValue':
|
|
@@ -43,14 +47,15 @@ function handleSetValue(state, cmd, document) {
|
|
|
43
47
|
}
|
|
44
48
|
function handleInsertItem(state, cmd, document) {
|
|
45
49
|
const container = document.nodes[cmd.containerId];
|
|
46
|
-
|
|
50
|
+
const key = identityKeyOf(container);
|
|
51
|
+
if (container?.dataPointer == null || key === undefined)
|
|
47
52
|
return { nextState: state, effects: [] };
|
|
48
53
|
const arr = getAtPointer(state.data, container.dataPointer) ?? [];
|
|
49
54
|
if (cmd.index < 0 || cmd.index > arr.length)
|
|
50
55
|
return { nextState: state, effects: [] };
|
|
51
56
|
const newArr = [...arr.slice(0, cmd.index), cmd.value ?? null, ...arr.slice(cmd.index)];
|
|
52
57
|
const newData = setAtPointer(state.data, container.dataPointer, newArr);
|
|
53
|
-
const { map: newIdentities } = insertItem(state.identities,
|
|
58
|
+
const { map: newIdentities } = insertItem(state.identities, key, cmd.index);
|
|
54
59
|
return {
|
|
55
60
|
nextState: { ...state, data: newData, identities: newIdentities },
|
|
56
61
|
effects: [
|
|
@@ -61,14 +66,15 @@ function handleInsertItem(state, cmd, document) {
|
|
|
61
66
|
}
|
|
62
67
|
function handleRemoveItem(state, cmd, document) {
|
|
63
68
|
const container = document.nodes[cmd.containerId];
|
|
64
|
-
|
|
69
|
+
const key = identityKeyOf(container);
|
|
70
|
+
if (container?.dataPointer == null || key === undefined)
|
|
65
71
|
return { nextState: state, effects: [] };
|
|
66
72
|
const arr = getAtPointer(state.data, container.dataPointer) ?? [];
|
|
67
73
|
if (cmd.index < 0 || cmd.index >= arr.length)
|
|
68
74
|
return { nextState: state, effects: [] };
|
|
69
75
|
const newArr = [...arr.slice(0, cmd.index), ...arr.slice(cmd.index + 1)];
|
|
70
76
|
const newData = setAtPointer(state.data, container.dataPointer, newArr);
|
|
71
|
-
const { map: newIdentities } = removeItem(state.identities,
|
|
77
|
+
const { map: newIdentities } = removeItem(state.identities, key, cmd.index);
|
|
72
78
|
return {
|
|
73
79
|
nextState: { ...state, data: newData, identities: newIdentities },
|
|
74
80
|
effects: [
|
|
@@ -79,7 +85,8 @@ function handleRemoveItem(state, cmd, document) {
|
|
|
79
85
|
}
|
|
80
86
|
function handleMoveItem(state, cmd, document) {
|
|
81
87
|
const container = document.nodes[cmd.containerId];
|
|
82
|
-
|
|
88
|
+
const key = identityKeyOf(container);
|
|
89
|
+
if (container?.dataPointer == null || key === undefined)
|
|
83
90
|
return { nextState: state, effects: [] };
|
|
84
91
|
const source = getAtPointer(state.data, container.dataPointer) ?? [];
|
|
85
92
|
if (cmd.from < 0 || cmd.from >= source.length || cmd.to < 0 || cmd.to >= source.length) {
|
|
@@ -89,7 +96,7 @@ function handleMoveItem(state, cmd, document) {
|
|
|
89
96
|
const [item] = arr.splice(cmd.from, 1);
|
|
90
97
|
arr.splice(cmd.to, 0, item);
|
|
91
98
|
const newData = setAtPointer(state.data, container.dataPointer, arr);
|
|
92
|
-
const newIdentities = moveItem(state.identities,
|
|
99
|
+
const newIdentities = moveItem(state.identities, key, cmd.from, cmd.to);
|
|
93
100
|
return {
|
|
94
101
|
nextState: { ...state, data: newData, identities: newIdentities },
|
|
95
102
|
effects: [
|
|
@@ -120,11 +127,12 @@ function handleSubmit(state) {
|
|
|
120
127
|
return {
|
|
121
128
|
nextState: {
|
|
122
129
|
...state,
|
|
123
|
-
submission: { status: 'validating' },
|
|
130
|
+
submission: { status: 'validating', attempts: state.submission.attempts + 1 },
|
|
124
131
|
},
|
|
125
132
|
effects: [{ type: 'validate', nodeIds: allNodeIds, trigger: 'submit' }],
|
|
126
133
|
};
|
|
127
134
|
}
|
|
135
|
+
/** Reset replaces state wholesale: identity is re-matched, so nested arrays under a reordered row may be minted afresh. */
|
|
128
136
|
function handleReset(state, cmd, document) {
|
|
129
137
|
const newData = cmd.data ?? state.initialData;
|
|
130
138
|
const nodes = new Map();
|
|
@@ -139,12 +147,12 @@ function handleReset(state, cmd, document) {
|
|
|
139
147
|
for (const node of Object.values(document.nodes)) {
|
|
140
148
|
if (node.type !== 'container' || node.containerType !== 'array')
|
|
141
149
|
continue;
|
|
142
|
-
if (node.dataPointer == null)
|
|
150
|
+
if (node.dataPointer == null || node.arrayMeta === undefined)
|
|
143
151
|
continue;
|
|
144
152
|
const oldItems = getAtPointer(state.data, node.dataPointer);
|
|
145
153
|
const newItems = getAtPointer(newData, node.dataPointer);
|
|
146
154
|
if (Array.isArray(oldItems) && Array.isArray(newItems)) {
|
|
147
|
-
identities = reconcile(identities, node.
|
|
155
|
+
identities = reconcile(identities, node.arrayMeta.identityKey, oldItems, newItems, node.arrayMeta.itemKey ? { itemKey: node.arrayMeta.itemKey } : undefined);
|
|
148
156
|
}
|
|
149
157
|
}
|
|
150
158
|
return {
|
|
@@ -154,7 +162,7 @@ function handleReset(state, cmd, document) {
|
|
|
154
162
|
initialData: newData,
|
|
155
163
|
nodes,
|
|
156
164
|
identities,
|
|
157
|
-
submission: { status: 'idle' },
|
|
165
|
+
submission: { status: 'idle', attempts: 0 },
|
|
158
166
|
},
|
|
159
167
|
effects: [{ type: 'recompile', reason: 'data-changed' }],
|
|
160
168
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"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"}
|
package/dist/identity/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { createIdentityMap, registerArray, insertItem, removeItem, moveItem, resolvePointer, } from './map.js';
|
|
2
2
|
export { reconcile } from './reconcile.js';
|
|
3
3
|
export type { ReconcileOptions } from './reconcile.js';
|
|
4
|
+
export { identityKey, ROOT_IDENTITY_KEY } from './key.js';
|
|
5
|
+
export type { IdentityKey, IdentitySegment } from './key.js';
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACzD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/identity/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { StableItemId } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Addresses a logical array container independently of position. Opaque to
|
|
4
|
+
* consumers: stable for the lifetime of that container, never to be parsed.
|
|
5
|
+
*/
|
|
6
|
+
export type IdentityKey = string & {
|
|
7
|
+
__brand: 'IdentityKey';
|
|
8
|
+
};
|
|
9
|
+
export type IdentitySegment = {
|
|
10
|
+
kind: 'property';
|
|
11
|
+
name: string;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'item';
|
|
14
|
+
id: StableItemId;
|
|
15
|
+
};
|
|
16
|
+
export declare const ROOT_IDENTITY_KEY: IdentityKey;
|
|
17
|
+
export declare function identityKey(segments: readonly IdentitySegment[]): IdentityKey;
|
|
18
|
+
//# sourceMappingURL=key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/identity/key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,YAAY,CAAA;CAAE,CAAA;AAEtC,eAAO,MAAM,iBAAiB,EAAS,WAAW,CAAA;AAElD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,WAAW,CAM7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/identity/key.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAiB,CAAA;AAElD,MAAM,UAAU,WAAW,CAAC,QAAoC;IAC9D,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE,EAAE,CAC1F;SACA,IAAI,CAAC,GAAG,CAAgB,CAAA;AAC7B,CAAC"}
|
package/dist/identity/map.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { StableItemId } from '../types.js';
|
|
2
|
+
import type { IdentityKey } from './key.js';
|
|
2
3
|
import type { IdentityMap } from '../ir/runtime-state.js';
|
|
3
4
|
export declare function createIdentityMap(): IdentityMap;
|
|
4
|
-
export declare function registerArray(map: IdentityMap,
|
|
5
|
-
export declare function insertItem(map: IdentityMap,
|
|
5
|
+
export declare function registerArray(map: IdentityMap, containerKey: IdentityKey): IdentityMap;
|
|
6
|
+
export declare function insertItem(map: IdentityMap, containerKey: IdentityKey, index: number): {
|
|
6
7
|
map: IdentityMap;
|
|
7
8
|
itemId: StableItemId;
|
|
8
9
|
};
|
|
9
|
-
export declare function removeItem(map: IdentityMap,
|
|
10
|
+
export declare function removeItem(map: IdentityMap, containerKey: IdentityKey, index: number): {
|
|
10
11
|
map: IdentityMap;
|
|
11
12
|
removedId: StableItemId;
|
|
12
13
|
};
|
|
13
|
-
export declare function moveItem(map: IdentityMap,
|
|
14
|
+
export declare function moveItem(map: IdentityMap, containerKey: IdentityKey, from: number, to: number): IdentityMap;
|
|
14
15
|
export declare function resolvePointer(map: IdentityMap, itemId: StableItemId): string;
|
|
15
16
|
//# sourceMappingURL=map.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/identity/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/identity/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEzD,wBAAgB,iBAAiB,IAAI,WAAW,CAM/C;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,WAAW,GACxB,WAAW,CAIb;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,WAAW,EACzB,KAAK,EAAE,MAAM,GACZ;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAiB5C;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,WAAW,EACzB,KAAK,EAAE,MAAM,GACZ;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAAE,CAkB/C;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,WAAW,EACzB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,WAAW,CAgBb;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,YAAY,GACnB,MAAM,CAIR"}
|
package/dist/identity/map.js
CHANGED
|
@@ -5,53 +5,53 @@ export function createIdentityMap() {
|
|
|
5
5
|
nextId: 0,
|
|
6
6
|
};
|
|
7
7
|
}
|
|
8
|
-
export function registerArray(map,
|
|
8
|
+
export function registerArray(map, containerKey) {
|
|
9
9
|
const arrayIdentities = new Map(map.arrayIdentities);
|
|
10
|
-
arrayIdentities.set(
|
|
10
|
+
arrayIdentities.set(containerKey, []);
|
|
11
11
|
return { ...map, arrayIdentities };
|
|
12
12
|
}
|
|
13
|
-
export function insertItem(map,
|
|
13
|
+
export function insertItem(map, containerKey, index) {
|
|
14
14
|
const itemId = `item_${map.nextId}`;
|
|
15
|
-
const ids = [...(map.arrayIdentities.get(
|
|
15
|
+
const ids = [...(map.arrayIdentities.get(containerKey) ?? [])];
|
|
16
16
|
ids.splice(index, 0, itemId);
|
|
17
17
|
const arrayIdentities = new Map(map.arrayIdentities);
|
|
18
|
-
arrayIdentities.set(
|
|
18
|
+
arrayIdentities.set(containerKey, ids);
|
|
19
19
|
const itemLookup = new Map(map.itemLookup);
|
|
20
20
|
for (let i = index; i < ids.length; i++) {
|
|
21
|
-
itemLookup.set(ids[i], {
|
|
21
|
+
itemLookup.set(ids[i], { containerKey, index: i });
|
|
22
22
|
}
|
|
23
23
|
return {
|
|
24
24
|
map: { ...map, arrayIdentities, itemLookup, nextId: map.nextId + 1 },
|
|
25
25
|
itemId,
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
export function removeItem(map,
|
|
29
|
-
const ids = [...(map.arrayIdentities.get(
|
|
28
|
+
export function removeItem(map, containerKey, index) {
|
|
29
|
+
const ids = [...(map.arrayIdentities.get(containerKey) ?? [])];
|
|
30
30
|
const removedId = ids[index];
|
|
31
31
|
ids.splice(index, 1);
|
|
32
32
|
const arrayIdentities = new Map(map.arrayIdentities);
|
|
33
|
-
arrayIdentities.set(
|
|
33
|
+
arrayIdentities.set(containerKey, ids);
|
|
34
34
|
const itemLookup = new Map(map.itemLookup);
|
|
35
35
|
itemLookup.delete(removedId);
|
|
36
36
|
for (let i = index; i < ids.length; i++) {
|
|
37
|
-
itemLookup.set(ids[i], {
|
|
37
|
+
itemLookup.set(ids[i], { containerKey, index: i });
|
|
38
38
|
}
|
|
39
39
|
return {
|
|
40
40
|
map: { ...map, arrayIdentities, itemLookup },
|
|
41
41
|
removedId,
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
export function moveItem(map,
|
|
45
|
-
const ids = [...(map.arrayIdentities.get(
|
|
44
|
+
export function moveItem(map, containerKey, from, to) {
|
|
45
|
+
const ids = [...(map.arrayIdentities.get(containerKey) ?? [])];
|
|
46
46
|
const [item] = ids.splice(from, 1);
|
|
47
47
|
ids.splice(to, 0, item);
|
|
48
48
|
const arrayIdentities = new Map(map.arrayIdentities);
|
|
49
|
-
arrayIdentities.set(
|
|
49
|
+
arrayIdentities.set(containerKey, ids);
|
|
50
50
|
const itemLookup = new Map(map.itemLookup);
|
|
51
51
|
const lo = Math.min(from, to);
|
|
52
52
|
const hi = Math.max(from, to);
|
|
53
53
|
for (let i = lo; i <= hi; i++) {
|
|
54
|
-
itemLookup.set(ids[i], {
|
|
54
|
+
itemLookup.set(ids[i], { containerKey, index: i });
|
|
55
55
|
}
|
|
56
56
|
return { ...map, arrayIdentities, itemLookup };
|
|
57
57
|
}
|
package/dist/identity/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/identity/map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/identity/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonPointer } from '../types.js';
|
|
2
|
+
import type { IdentityKey } from './key.js';
|
|
2
3
|
import type { IdentityMap } from '../ir/runtime-state.js';
|
|
3
4
|
export interface ReconcileOptions {
|
|
4
5
|
itemKey?: JsonPointer;
|
|
5
6
|
}
|
|
6
|
-
export declare function reconcile(map: IdentityMap,
|
|
7
|
+
export declare function reconcile(map: IdentityMap, containerKey: IdentityKey, oldItems: unknown[], newItems: unknown[], options?: ReconcileOptions): IdentityMap;
|
|
7
8
|
//# sourceMappingURL=reconcile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/identity/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/identity/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB;AAED,wBAAgB,SAAS,CACvB,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,WAAW,EACzB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,WAAW,CAwCb"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getAtPointer } from '../json-pointer.js';
|
|
2
|
-
export function reconcile(map,
|
|
3
|
-
const oldIds = map.arrayIdentities.get(
|
|
2
|
+
export function reconcile(map, containerKey, oldItems, newItems, options) {
|
|
3
|
+
const oldIds = map.arrayIdentities.get(containerKey) ?? [];
|
|
4
4
|
const matcher = options?.itemKey
|
|
5
5
|
? keyMatcher(options.itemKey)
|
|
6
6
|
: defaultMatcher;
|
|
@@ -26,14 +26,14 @@ export function reconcile(map, containerId, oldItems, newItems, options) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
const arrayIdentities = new Map(map.arrayIdentities);
|
|
29
|
-
arrayIdentities.set(
|
|
29
|
+
arrayIdentities.set(containerKey, newIds);
|
|
30
30
|
const itemLookup = new Map(map.itemLookup);
|
|
31
31
|
for (const oldId of oldIds) {
|
|
32
32
|
if (!newIds.includes(oldId))
|
|
33
33
|
itemLookup.delete(oldId);
|
|
34
34
|
}
|
|
35
35
|
for (let i = 0; i < newIds.length; i++) {
|
|
36
|
-
itemLookup.set(newIds[i], {
|
|
36
|
+
itemLookup.set(newIds[i], { containerKey, index: i });
|
|
37
37
|
}
|
|
38
38
|
return { ...map, arrayIdentities, itemLookup, nextId };
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/identity/reconcile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/identity/reconcile.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export { processCommand } from './commands/index.js';
|
|
|
11
11
|
export type { FormRuntime, FormRuntimeOptions, NodeState } from './runtime/index.js';
|
|
12
12
|
export { createFormRuntime } from './runtime/index.js';
|
|
13
13
|
export { getAtPointer, setAtPointer, parsePointer } from './json-pointer.js';
|
|
14
|
-
export { createIdentityMap, registerArray, insertItem, removeItem, moveItem, resolvePointer, reconcile, } from './identity/index.js';
|
|
15
|
-
export type { ReconcileOptions } from './identity/index.js';
|
|
14
|
+
export { createIdentityMap, registerArray, insertItem, removeItem, moveItem, resolvePointer, reconcile, identityKey, ROOT_IDENTITY_KEY, } from './identity/index.js';
|
|
15
|
+
export type { ReconcileOptions, IdentityKey, IdentitySegment } from './identity/index.js';
|
|
16
16
|
export type { WidgetTester, WidgetEntry, RendererRegistry } from './renderer/index.js';
|
|
17
17
|
export { createRendererRegistry } from './renderer/index.js';
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,MAAM,EACN,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EACf,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,eAAe,CAAA;AAEtB,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAEvE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,MAAM,EACN,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EACf,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,eAAe,CAAA;AAEtB,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAEvE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEzF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,6 @@ export { createStore } from './state/index.js';
|
|
|
3
3
|
export { processCommand } from './commands/index.js';
|
|
4
4
|
export { createFormRuntime } from './runtime/index.js';
|
|
5
5
|
export { getAtPointer, setAtPointer, parsePointer } from './json-pointer.js';
|
|
6
|
-
export { createIdentityMap, registerArray, insertItem, removeItem, moveItem, resolvePointer, reconcile, } from './identity/index.js';
|
|
6
|
+
export { createIdentityMap, registerArray, insertItem, removeItem, moveItem, resolvePointer, reconcile, identityKey, ROOT_IDENTITY_KEY, } from './identity/index.js';
|
|
7
7
|
export { createRendererRegistry } from './renderer/index.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAavC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAavC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/ir/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,mBAAmB,CAAA;AAS1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAA0B,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/ir/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,mBAAmB,CAAA;AAS1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAA0B,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AA0BrD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,OAAO,EACb,KAAK,CAAC,EAAE,OAAO,EACf,UAAU,CAAC,EAAE,WAAW,GACvB,aAAa,CA2Bf"}
|
package/dist/ir/compiler.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createIdentityMap, registerArray, insertItem } from '../identity/index.js';
|
|
2
|
+
import { identityKey } from '../identity/key.js';
|
|
2
3
|
import { getAtPointer } from '../json-pointer.js';
|
|
3
4
|
function nextId(ctx) {
|
|
4
5
|
return `node_${++ctx.nodeCounter}`;
|
|
@@ -22,14 +23,25 @@ export function compile(projection, data, hints, identities) {
|
|
|
22
23
|
if (!rootProjection) {
|
|
23
24
|
throw new Error('Schema projection missing root node');
|
|
24
25
|
}
|
|
25
|
-
const ctx = { nodes, identityMap, nodeCounter: 0 };
|
|
26
|
-
const rootId = compileNode('', rootProjection, null, 0, projection, data, hints, ctx);
|
|
26
|
+
const ctx = { nodes, identityMap, nodeCounter: 0, visited: new Set() };
|
|
27
|
+
const rootId = compileNode('', rootProjection, null, 0, projection, data, hints, ctx, undefined, []);
|
|
27
28
|
return {
|
|
28
29
|
document: { version: 1, rootId, nodes },
|
|
29
|
-
identityMap: ctx.identityMap,
|
|
30
|
+
identityMap: retainVisited(ctx.identityMap, ctx.visited),
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Only the arrays this compile visited keep identity. An array whose pointer
|
|
35
|
+
* left the document starts fresh when it returns, and because this builds a
|
|
36
|
+
* new map rather than editing the input, a compile that throws leaves the
|
|
37
|
+
* previous state untouched.
|
|
38
|
+
*/
|
|
39
|
+
function retainVisited(map, visited) {
|
|
40
|
+
const arrayIdentities = new Map([...map.arrayIdentities].filter(([key]) => visited.has(key)));
|
|
41
|
+
const itemLookup = new Map([...map.itemLookup].filter(([, entry]) => visited.has(entry.containerKey)));
|
|
42
|
+
return { ...map, arrayIdentities, itemLookup };
|
|
43
|
+
}
|
|
44
|
+
function compileNode(pointer, proj, parentId, order, projection, data, hints, ctx, required, segments) {
|
|
33
45
|
const { nodes } = ctx;
|
|
34
46
|
const id = nextId(ctx);
|
|
35
47
|
const fieldHints = hints?.[pointer];
|
|
@@ -62,7 +74,7 @@ function compileNode(pointer, proj, parentId, order, projection, data, hints, ct
|
|
|
62
74
|
const child = ordered[i].child;
|
|
63
75
|
const childProj = projection.nodes.get(child.pointer);
|
|
64
76
|
if (childProj) {
|
|
65
|
-
const childId = compileNode(child.pointer, childProj, id, i, projection, data, hints, ctx, child.required);
|
|
77
|
+
const childId = compileNode(child.pointer, childProj, id, i, projection, data, hints, ctx, child.required, [...segments, { kind: 'property', name: child.key }]);
|
|
66
78
|
children.push(childId);
|
|
67
79
|
}
|
|
68
80
|
}
|
|
@@ -94,7 +106,9 @@ function compileNode(pointer, proj, parentId, order, projection, data, hints, ct
|
|
|
94
106
|
//
|
|
95
107
|
// Identity map API is pure: register/insert return new maps, so we always
|
|
96
108
|
// reassign ctx.identityMap rather than mutate in place.
|
|
97
|
-
const
|
|
109
|
+
const key = identityKey(segments);
|
|
110
|
+
ctx.visited.add(key);
|
|
111
|
+
const carried = ctx.identityMap.arrayIdentities.get(key);
|
|
98
112
|
let itemStableIds;
|
|
99
113
|
if (carried !== undefined && carried.length === arrayItems.length) {
|
|
100
114
|
itemStableIds = [...carried];
|
|
@@ -104,10 +118,10 @@ function compileNode(pointer, proj, parentId, order, projection, data, hints, ct
|
|
|
104
118
|
// produce. Minting positional ids is right for a first compile and is
|
|
105
119
|
// the only safe fallback otherwise: reconciling here would be a second
|
|
106
120
|
// identity system competing with the handler's.
|
|
107
|
-
ctx.identityMap = registerArray(ctx.identityMap,
|
|
121
|
+
ctx.identityMap = registerArray(ctx.identityMap, key);
|
|
108
122
|
itemStableIds = [];
|
|
109
123
|
for (let i = 0; i < arrayItems.length; i++) {
|
|
110
|
-
const result = insertItem(ctx.identityMap,
|
|
124
|
+
const result = insertItem(ctx.identityMap, key, i);
|
|
111
125
|
ctx.identityMap = result.map;
|
|
112
126
|
itemStableIds.push(result.itemId);
|
|
113
127
|
}
|
|
@@ -116,13 +130,14 @@ function compileNode(pointer, proj, parentId, order, projection, data, hints, ct
|
|
|
116
130
|
const itemPointer = `${pointer}/${i}`;
|
|
117
131
|
const itemProj = projection.nodes.get(itemPointer);
|
|
118
132
|
if (itemProj) {
|
|
119
|
-
const childId = compileNode(itemPointer, itemProj, id, i, projection, data, hints, ctx, false);
|
|
133
|
+
const childId = compileNode(itemPointer, itemProj, id, i, projection, data, hints, ctx, false, [...segments, { kind: 'item', id: itemStableIds[i] }]);
|
|
120
134
|
children.push(childId);
|
|
121
135
|
}
|
|
122
136
|
}
|
|
123
137
|
const arrayHints = hints?.[pointer];
|
|
124
138
|
const arrayMeta = {
|
|
125
139
|
itemIds: itemStableIds,
|
|
140
|
+
identityKey: key,
|
|
126
141
|
itemKey: arrayHints?.itemKey,
|
|
127
142
|
minItems: proj.constraints.minItems,
|
|
128
143
|
maxItems: proj.constraints.maxItems,
|
package/dist/ir/compiler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/ir/compiler.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/ir/compiler.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AASjD,SAAS,MAAM,CAAC,GAAmB;IACjC,OAAO,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAY,CAAA;AAC9C,CAAC;AAED,SAAS,YAAY,CACnB,KAA0B,EAC1B,OAAoB,EACpB,WAAmB;IAEnB,OAAQ,KAAK,EAAE,CAAC,OAAO,CAA4B,EAAE,KAAK,IAAI,WAAW,CAAA;AAC3E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CACrB,UAA4B,EAC5B,IAAa,EACb,KAAe,EACf,UAAwB;IAExB,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,MAAM,WAAW,GAAG,UAAU,IAAI,iBAAiB,EAAE,CAAA;IAErD,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAiB,CAAC,CAAA;IAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,GAAG,GAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;IACtF,MAAM,MAAM,GAAG,WAAW,CACxB,EAAiB,EACjB,cAAc,EACd,IAAI,EACJ,CAAC,EACD,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,SAAS,EACT,EAAE,CACH,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;QACvC,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC;KACzD,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAAgB,EAAE,OAAyB;IAChE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC7F,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAC3E,CAAA;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA;AAChD,CAAC;AAED,SAAS,WAAW,CAClB,OAAoB,EACpB,IAAoB,EACpB,QAAuB,EACvB,KAAa,EACb,UAA4B,EAC5B,IAAa,EACb,KAA0B,EAC1B,GAAmB,EACnB,QAA6B,EAC7B,QAAoC;IAEpC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAEtB,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,WAAW,GAAoB;QACnC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;QACzC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;QACnC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;QACrC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU;QACvC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;QACnC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;KAClC,CAAA;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,mEAAmE;YACnE,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,6BAA6B;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;iBAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;iBACrD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACb,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;gBAClE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;gBAClE,OAAO,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAA;YACzD,CAAC,CAAC,CAAA;YAEJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAoB,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,CAAC,OAAO,EACb,SAAS,EACT,EAAE,EACF,CAAC,EACD,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,KAAK,CAAC,QAAQ,EACd,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CACrD,CAAA;oBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAkB;YAC1B,EAAE;YACF,IAAI,EAAE,WAAW;YACjB,aAAa,EAAE,QAAQ;YACvB,QAAQ;YACR,WAAW,EAAE,OAAO;YACpB,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,KAAK;YAC5C,WAAW;YACX,QAAQ;SACT,CAAA;QACD,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAEpD,sEAAsE;QACtE,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,eAAe;QACf,EAAE;QACF,0EAA0E;QAC1E,wDAAwD;QACxD,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QACjC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpB,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxD,IAAI,aAA6B,CAAA;QAEjC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAClE,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,sEAAsE;YACtE,uEAAuE;YACvE,gDAAgD;YAChD,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;YACrD,aAAa,GAAG,EAAE,CAAA;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;gBAClD,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;gBAC5B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,GAAG,OAAO,IAAI,CAAC,EAAiB,CAAA;YACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,WAAW,CACzB,WAAW,EACX,QAAQ,EACR,EAAE,EACF,CAAC,EACD,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,KAAK,EACL,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CACtD,CAAA;gBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,OAAO,CAA2B,CAAA;QAC7D,MAAM,SAAS,GAAc;YAC3B,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,UAAU,EAAE,OAAO;YAC5B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;YACnC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;YACnC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;YAC1F,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;YAC7F,UAAU,EAAE,UAAU,EAAE,UAAU,IAAI,KAAK;SAC5C,CAAA;QAED,MAAM,IAAI,GAAkB;YAC1B,EAAE;YACF,IAAI,EAAE,WAAW;YACjB,aAAa,EAAE,OAAO;YACtB,QAAQ;YACR,WAAW,EAAE,OAAO;YACpB,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,KAAK;YAC5C,WAAW;YACX,QAAQ;YACR,SAAS;SACV,CAAA;QACD,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAc,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QACxE,MAAM,IAAI,GAAc;YACtB,EAAE;YACF,IAAI,EAAE,OAAO;YACb,QAAQ;YACR,WAAW,EAAE,OAAO;YACpB,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,KAAK;YAC5C,WAAW;YACX,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC9F,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,UAAU,EAAE,MAAM;YAC1B,WAAW,EAAE,UAAU,EAAE,WAAW;YACpC,QAAQ,EAAE,UAAU,EAAE,QAAQ;SAC/B,CAAA;QACD,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { NodeId, StableItemId, ValidationError } from '../types.js';
|
|
2
|
+
import type { IdentityKey } from '../identity/key.js';
|
|
2
3
|
export interface RuntimeState {
|
|
3
4
|
data: unknown;
|
|
4
5
|
initialData: unknown;
|
|
@@ -24,11 +25,13 @@ export interface InteractionState {
|
|
|
24
25
|
export interface SubmissionState {
|
|
25
26
|
status: 'idle' | 'validating' | 'submitting' | 'submitted';
|
|
26
27
|
error?: unknown;
|
|
28
|
+
/** Accepted Submit commands since creation or the last Reset; above zero, invalid fields show their errors before they are touched. */
|
|
29
|
+
attempts: number;
|
|
27
30
|
}
|
|
28
31
|
export interface IdentityMap {
|
|
29
|
-
arrayIdentities: Map<
|
|
32
|
+
arrayIdentities: Map<IdentityKey, StableItemId[]>;
|
|
30
33
|
itemLookup: Map<StableItemId, {
|
|
31
|
-
|
|
34
|
+
containerKey: IdentityKey;
|
|
32
35
|
index: number;
|
|
33
36
|
}>;
|
|
34
37
|
nextId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../../src/ir/runtime-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../../src/ir/runtime-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACpC,UAAU,EAAE,WAAW,CAAA;IACvB,UAAU,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,UAAU,EAAE,eAAe,CAAA;IAC3B,WAAW,EAAE,gBAAgB,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;IAChD,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAA;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uIAAuI;IACvI,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC,CAAA;IACjD,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE;QAAE,YAAY,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,MAAM,EAAE,MAAM,CAAA;CACf"}
|
package/dist/ir/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { NodeId, StableItemId, JsonPointer } from '../types.js';
|
|
2
|
+
import type { IdentityKey } from '../identity/key.js';
|
|
2
3
|
export interface UIDocument {
|
|
3
4
|
version: 1;
|
|
4
5
|
rootId: NodeId;
|
|
@@ -61,6 +62,8 @@ export interface ContainerNode extends NodeBase {
|
|
|
61
62
|
}
|
|
62
63
|
export interface ArrayMeta {
|
|
63
64
|
itemIds: StableItemId[];
|
|
65
|
+
/** Addresses this logical array container across recompiles; stable for its lifetime and otherwise opaque. */
|
|
66
|
+
identityKey: IdentityKey;
|
|
64
67
|
itemKey?: JsonPointer;
|
|
65
68
|
minItems?: number;
|
|
66
69
|
maxItems?: number;
|
package/dist/ir/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAW7D,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAa,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAW7D,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAa,MAAM,YAAY,CAAA;AA2D5E,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAsWb"}
|
package/dist/runtime/runtime.js
CHANGED
|
@@ -23,7 +23,7 @@ function defaultNodeState(value) {
|
|
|
23
23
|
interaction: { dirty: false, touched: false, pristine: true, modified: false },
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
function createNodeStoreBundle(nodeState, uiNode) {
|
|
26
|
+
function createNodeStoreBundle(nodeState, uiNode, attempts) {
|
|
27
27
|
const touched = createStore(nodeState.interaction.touched);
|
|
28
28
|
const validationStatus = createStore(nodeState.validation.status);
|
|
29
29
|
return {
|
|
@@ -34,7 +34,8 @@ function createNodeStoreBundle(nodeState, uiNode) {
|
|
|
34
34
|
visible: createStore(uiNode.visible),
|
|
35
35
|
disabled: createStore(uiNode.disabled),
|
|
36
36
|
validationStatus,
|
|
37
|
-
showErrors: createComputedStore(() => touched.getSnapshot()
|
|
37
|
+
showErrors: createComputedStore(() => (touched.getSnapshot() || attempts.getSnapshot() > 0) &&
|
|
38
|
+
validationStatus.getSnapshot() === 'invalid'),
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
export function createFormRuntime(port, options = {}) {
|
|
@@ -44,8 +45,9 @@ export function createFormRuntime(port, options = {}) {
|
|
|
44
45
|
let currentDoc = initialCompile.document;
|
|
45
46
|
const documentStore = createStore(initialCompile.document);
|
|
46
47
|
const dataStore = createStore(initialData);
|
|
47
|
-
const submissionStore = createStore({ status: 'idle' });
|
|
48
|
+
const submissionStore = createStore({ status: 'idle', attempts: 0 });
|
|
48
49
|
const visibleErrorsStore = createStore([]);
|
|
50
|
+
const attemptsStore = createStore(0);
|
|
49
51
|
const nodeStores = new Map();
|
|
50
52
|
const nodes = new Map();
|
|
51
53
|
for (const key of Object.keys(currentDoc.nodes)) {
|
|
@@ -54,18 +56,22 @@ export function createFormRuntime(port, options = {}) {
|
|
|
54
56
|
const value = uiNode.dataPointer != null ? getAtPointer(initialData, uiNode.dataPointer) : undefined;
|
|
55
57
|
const nodeRuntimeState = defaultNodeState(value);
|
|
56
58
|
nodes.set(nodeId, nodeRuntimeState);
|
|
57
|
-
nodeStores.set(nodeId, createNodeStoreBundle(nodeRuntimeState, uiNode));
|
|
59
|
+
nodeStores.set(nodeId, createNodeStoreBundle(nodeRuntimeState, uiNode, attemptsStore));
|
|
58
60
|
}
|
|
59
61
|
let state = {
|
|
60
62
|
data: initialData,
|
|
61
63
|
initialData,
|
|
62
64
|
nodes,
|
|
63
65
|
identities: initialCompile.identityMap,
|
|
64
|
-
submission: { status: 'idle' },
|
|
66
|
+
submission: { status: 'idle', attempts: 0 },
|
|
65
67
|
};
|
|
66
68
|
let destroyed = false;
|
|
67
69
|
let submissionGeneration = 0;
|
|
68
70
|
let currentAttempt = null;
|
|
71
|
+
function publishSubmission() {
|
|
72
|
+
submissionStore.set(state.submission);
|
|
73
|
+
attemptsStore.set(state.submission.attempts);
|
|
74
|
+
}
|
|
69
75
|
function syncNodeStores() {
|
|
70
76
|
for (const [nodeId, nodeRuntimeState] of state.nodes) {
|
|
71
77
|
const bundle = nodeStores.get(nodeId);
|
|
@@ -133,7 +139,7 @@ export function createFormRuntime(port, options = {}) {
|
|
|
133
139
|
}
|
|
134
140
|
const nodeRuntimeState = defaultNodeState(value);
|
|
135
141
|
state.nodes.set(nodeId, nodeRuntimeState);
|
|
136
|
-
nodeStores.set(nodeId, createNodeStoreBundle(nodeRuntimeState, uiNode));
|
|
142
|
+
nodeStores.set(nodeId, createNodeStoreBundle(nodeRuntimeState, uiNode, attemptsStore));
|
|
137
143
|
}
|
|
138
144
|
// Drop entries for node ids that no longer appear in the recompiled
|
|
139
145
|
// document (e.g. the trailing item after an array shrinks), so both
|
|
@@ -177,8 +183,8 @@ export function createFormRuntime(port, options = {}) {
|
|
|
177
183
|
return;
|
|
178
184
|
batch(() => {
|
|
179
185
|
currentAttempt = null;
|
|
180
|
-
state = { ...state, submission: { status: 'submitted' } };
|
|
181
|
-
|
|
186
|
+
state = { ...state, submission: { status: 'submitted', attempts: state.submission.attempts } };
|
|
187
|
+
publishSubmission();
|
|
182
188
|
});
|
|
183
189
|
})
|
|
184
190
|
.catch((error) => {
|
|
@@ -186,8 +192,8 @@ export function createFormRuntime(port, options = {}) {
|
|
|
186
192
|
return;
|
|
187
193
|
batch(() => {
|
|
188
194
|
currentAttempt = null;
|
|
189
|
-
state = { ...state, submission: { status: 'idle', error } };
|
|
190
|
-
|
|
195
|
+
state = { ...state, submission: { status: 'idle', error, attempts: state.submission.attempts } };
|
|
196
|
+
publishSubmission();
|
|
191
197
|
});
|
|
192
198
|
});
|
|
193
199
|
}
|
|
@@ -217,16 +223,16 @@ export function createFormRuntime(port, options = {}) {
|
|
|
217
223
|
if (trigger === 'submit' && state.submission.status === 'validating') {
|
|
218
224
|
const attempt = currentAttempt;
|
|
219
225
|
if (result.valid && attempt) {
|
|
220
|
-
const submission = { status: 'submitting' };
|
|
226
|
+
const submission = { status: 'submitting', attempts: state.submission.attempts };
|
|
221
227
|
state = { ...state, submission };
|
|
222
|
-
|
|
228
|
+
publishSubmission();
|
|
223
229
|
void runOnSubmit(attempt);
|
|
224
230
|
}
|
|
225
231
|
else {
|
|
226
232
|
currentAttempt = null;
|
|
227
|
-
const submission = { status: 'idle' };
|
|
233
|
+
const submission = { status: 'idle', attempts: state.submission.attempts };
|
|
228
234
|
state = { ...state, submission };
|
|
229
|
-
|
|
235
|
+
publishSubmission();
|
|
230
236
|
}
|
|
231
237
|
}
|
|
232
238
|
});
|
|
@@ -258,8 +264,8 @@ export function createFormRuntime(port, options = {}) {
|
|
|
258
264
|
resetPendingNodes();
|
|
259
265
|
if (trigger === 'submit') {
|
|
260
266
|
currentAttempt = null;
|
|
261
|
-
state = { ...state, submission: { status: 'idle', error } };
|
|
262
|
-
|
|
267
|
+
state = { ...state, submission: { status: 'idle', error, attempts: state.submission.attempts } };
|
|
268
|
+
publishSubmission();
|
|
263
269
|
}
|
|
264
270
|
});
|
|
265
271
|
}
|
|
@@ -323,7 +329,7 @@ export function createFormRuntime(port, options = {}) {
|
|
|
323
329
|
if (mutatesData && state.submission.status === 'validating') {
|
|
324
330
|
submissionGeneration++;
|
|
325
331
|
currentAttempt = null;
|
|
326
|
-
state = { ...state, submission: { status: 'idle' } };
|
|
332
|
+
state = { ...state, submission: { status: 'idle', attempts: state.submission.attempts } };
|
|
327
333
|
}
|
|
328
334
|
if (mutatesData) {
|
|
329
335
|
// Reset nodes stuck at pending from an invalidated in-flight validation
|
|
@@ -333,7 +339,7 @@ export function createFormRuntime(port, options = {}) {
|
|
|
333
339
|
}
|
|
334
340
|
batch(() => {
|
|
335
341
|
dataStore.set(state.data);
|
|
336
|
-
|
|
342
|
+
publishSubmission();
|
|
337
343
|
syncNodeStores();
|
|
338
344
|
for (const effect of effects) {
|
|
339
345
|
handleEffect(effect);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|