@texaryn/core 0.4.0 → 0.5.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @texaryn/core
2
2
 
3
+ ## 0.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 469fe1f: Per-node runtime state now follows the logical array item across a reorder instead of staying at the index. Node ids are positional, so `MoveItem` used to leave `dirty`, `touched`, `errors` and `validationStatus` with whichever item took the old position, which reported a valid row as invalid carrying another row's message while the invalid row looked valid. Recompilation now carries interaction history by a logical address built from property names and `StableItemId`s, and starts an inserted item fresh. A validation result is dropped rather than moved when an item's pointer changes, because a schema can apply per index, so a result produced at the old position says nothing about the new one. Every binding reads `getNodeState`, so React, Vue and Web Components all gain the fix unchanged.
8
+
9
+ ## 0.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 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`.
14
+
3
15
  ## 0.4.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -225,7 +225,11 @@ Framework packages can register concrete widget components without adding framew
225
225
 
226
226
  ## Stable array identity
227
227
 
228
- 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:
229
233
 
230
234
  - `createIdentityMap`
231
235
  - `registerArray`
@@ -315,6 +319,10 @@ The core includes identity helpers used to keep dynamic array items stable acros
315
319
  - `resolvePointer`
316
320
  - `reconcile`
317
321
  - `ReconcileOptions`
322
+ - `identityKey`
323
+ - `ROOT_IDENTITY_KEY`
324
+ - `IdentityKey`
325
+ - `IdentitySegment`
318
326
 
319
327
  ### Rendering
320
328
 
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAMxD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU,GACnB,aAAa,CAiBf"}
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"}
@@ -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
- if (container?.dataPointer == null)
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, cmd.containerId, cmd.index);
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
- if (container?.dataPointer == null)
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, cmd.containerId, cmd.index);
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
- if (container?.dataPointer == null)
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, cmd.containerId, cmd.from, cmd.to);
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: [
@@ -125,6 +132,7 @@ function handleSubmit(state) {
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.id, oldItems, newItems, node.arrayMeta?.itemKey ? { itemKey: node.arrayMeta.itemKey } : undefined);
155
+ identities = reconcile(identities, node.arrayMeta.identityKey, oldItems, newItems, node.arrayMeta.itemKey ? { itemKey: node.arrayMeta.itemKey } : undefined);
148
156
  }
149
157
  }
150
158
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -1,3 +1,4 @@
1
1
  export { createIdentityMap, registerArray, insertItem, removeItem, moveItem, resolvePointer, } from './map.js';
2
2
  export { reconcile } from './reconcile.js';
3
+ export { identityKey, ROOT_IDENTITY_KEY } from './key.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -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,7 @@
1
+ export const ROOT_IDENTITY_KEY = '';
2
+ export function identityKey(segments) {
3
+ return segments
4
+ .map((segment) => segment.kind === 'property' ? `p=${encodeURIComponent(segment.name)}` : `i=${segment.id}`)
5
+ .join('/');
6
+ }
7
+ //# sourceMappingURL=key.js.map
@@ -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"}
@@ -1,15 +1,16 @@
1
- import type { NodeId, StableItemId } from '../types.js';
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, containerId: NodeId): IdentityMap;
5
- export declare function insertItem(map: IdentityMap, containerId: NodeId, index: number): {
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, containerId: NodeId, index: number): {
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, containerId: NodeId, from: number, to: number): 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,YAAY,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEzD,wBAAgB,iBAAiB,IAAI,WAAW,CAM/C;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,MAAM,GAClB,WAAW,CAIb;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAiB5C;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,MAAM,EACnB,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,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,WAAW,CAgBb;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,YAAY,GACnB,MAAM,CAIR"}
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"}
@@ -5,53 +5,53 @@ export function createIdentityMap() {
5
5
  nextId: 0,
6
6
  };
7
7
  }
8
- export function registerArray(map, containerId) {
8
+ export function registerArray(map, containerKey) {
9
9
  const arrayIdentities = new Map(map.arrayIdentities);
10
- arrayIdentities.set(containerId, []);
10
+ arrayIdentities.set(containerKey, []);
11
11
  return { ...map, arrayIdentities };
12
12
  }
13
- export function insertItem(map, containerId, index) {
13
+ export function insertItem(map, containerKey, index) {
14
14
  const itemId = `item_${map.nextId}`;
15
- const ids = [...(map.arrayIdentities.get(containerId) ?? [])];
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(containerId, ids);
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], { containerId, index: 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, containerId, index) {
29
- const ids = [...(map.arrayIdentities.get(containerId) ?? [])];
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(containerId, ids);
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], { containerId, index: 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, containerId, from, to) {
45
- const ids = [...(map.arrayIdentities.get(containerId) ?? [])];
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(containerId, ids);
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], { containerId, index: i });
54
+ itemLookup.set(ids[i], { containerKey, index: i });
55
55
  }
56
56
  return { ...map, arrayIdentities, itemLookup };
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/identity/map.ts"],"names":[],"mappings":"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"}
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 { NodeId, JsonPointer } from '../types.js';
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, containerId: NodeId, oldItems: unknown[], newItems: unknown[], options?: ReconcileOptions): 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,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAA;AACpE,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,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,WAAW,CAwCb"}
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, containerId, oldItems, newItems, options) {
3
- const oldIds = map.arrayIdentities.get(containerId) ?? [];
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(containerId, newIds);
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], { containerId, index: 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":"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"}
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
@@ -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,GACV,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA"}
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,GACV,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA"}
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;AAuBrD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,OAAO,EACb,KAAK,CAAC,EAAE,OAAO,EACf,UAAU,CAAC,EAAE,WAAW,GACvB,aAAa,CAyBf"}
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"}
@@ -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
- function compileNode(pointer, proj, parentId, order, projection, data, hints, ctx, required) {
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 carried = ctx.identityMap.arrayIdentities.get(id);
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, id);
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, id, i);
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,
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/ir/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/ir/compiler.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -28,9 +29,9 @@ export interface SubmissionState {
28
29
  attempts: number;
29
30
  }
30
31
  export interface IdentityMap {
31
- arrayIdentities: Map<NodeId, StableItemId[]>;
32
+ arrayIdentities: Map<IdentityKey, StableItemId[]>;
32
33
  itemLookup: Map<StableItemId, {
33
- containerId: NodeId;
34
+ containerKey: IdentityKey;
34
35
  index: number;
35
36
  }>;
36
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;AAExE,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,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IAC5C,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACrE,MAAM,EAAE,MAAM,CAAA;CACf"}
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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"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"}
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;AA2D5E,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAsWb"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAa7D,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAa,MAAM,YAAY,CAAA;AAuI5E,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CA+Wb"}
@@ -2,7 +2,8 @@ import { compile } from '../ir/compiler.js';
2
2
  import { processCommand } from '../commands/handler.js';
3
3
  import { createStore, createComputedStore } from '../state/store.js';
4
4
  import { batch } from '../state/signal.js';
5
- import { getAtPointer } from '../json-pointer.js';
5
+ import { getAtPointer, parsePointer } from '../json-pointer.js';
6
+ import { identityKey } from '../identity/key.js';
6
7
  import { createValidationScheduler } from './validation-scheduler.js';
7
8
  function isDataMutatingCommand(command) {
8
9
  switch (command.type) {
@@ -16,6 +17,67 @@ function isDataMutatingCommand(command) {
16
17
  return false;
17
18
  }
18
19
  }
20
+ function propertyName(node) {
21
+ if (node.dataPointer == null)
22
+ return undefined;
23
+ const segments = parsePointer(node.dataPointer);
24
+ return segments[segments.length - 1];
25
+ }
26
+ /**
27
+ * Addresses every node by the path that survives an array mutation: property
28
+ * names for object members and `StableItemId`s for array items, in the same
29
+ * segment form array containers already use. Node ids cannot serve, because
30
+ * they are assigned by traversal order and so change hands when items move.
31
+ */
32
+ function indexByLogicalKey(doc, nodes) {
33
+ const byKey = new Map();
34
+ const keyOf = new Map();
35
+ function visit(nodeId, segments) {
36
+ const node = doc.nodes[nodeId];
37
+ if (!node)
38
+ return;
39
+ const key = identityKey(segments);
40
+ // Two nodes sharing an address would hand one control another's history,
41
+ // which is the failure this addressing exists to prevent.
42
+ if (byKey.has(key))
43
+ throw new Error(`Duplicate logical node address: ${key}`);
44
+ byKey.set(key, { node, state: nodes?.get(nodeId) });
45
+ keyOf.set(nodeId, key);
46
+ if (node.type !== 'container')
47
+ return;
48
+ const itemIds = node.containerType === 'array' ? node.arrayMeta?.itemIds : undefined;
49
+ node.children.forEach((childId, index) => {
50
+ if (doc.nodes[childId] === undefined)
51
+ return;
52
+ if (itemIds) {
53
+ const id = itemIds[index];
54
+ if (id !== undefined)
55
+ visit(childId, [...segments, { kind: 'item', id }]);
56
+ return;
57
+ }
58
+ const name = propertyName(doc.nodes[childId]);
59
+ if (name !== undefined)
60
+ visit(childId, [...segments, { kind: 'property', name }]);
61
+ });
62
+ }
63
+ visit(doc.rootId, []);
64
+ return { byKey, keyOf };
65
+ }
66
+ /**
67
+ * Carries one logical node's history onto the node that now represents it.
68
+ * Interaction history belongs to the item and is always carried; it cannot be
69
+ * recomputed from data. A validation result belongs to the item at a position,
70
+ * because a schema may apply per index (`prefixItems`, and the draft-07 tuple
71
+ * form of `items`), so when the item's pointer changes its result is dropped
72
+ * rather than moved. Reporting nothing until validation runs again is honest;
73
+ * moving a result to a position its schema may not produce is not.
74
+ */
75
+ function carryNodeState(previous, to, value) {
76
+ const carried = { ...previous.state, value };
77
+ if (previous.node.dataPointer === to.dataPointer)
78
+ return carried;
79
+ return { ...carried, validation: { status: 'idle', errors: [] } };
80
+ }
19
81
  function defaultNodeState(value) {
20
82
  return {
21
83
  value,
@@ -104,51 +166,58 @@ export function createFormRuntime(port, options = {}) {
104
166
  visibleErrorsStore.set(result);
105
167
  }
106
168
  function handleRecompile() {
169
+ // Addressed from the outgoing document on purpose: the command handler has
170
+ // already advanced `state.identities`, so that map no longer describes the
171
+ // ordering the current positional node ids were built from.
172
+ const previous = indexByLogicalKey(currentDoc, state.nodes);
107
173
  const nextProjection = port.project(state.data);
108
174
  const result = compile(nextProjection, state.data, options.hints, state.identities);
109
- currentDoc = result.document;
110
- state = { ...state, identities: result.identityMap };
111
- documentStore.set(currentDoc);
112
- const seenNodeIds = new Set();
113
- for (const key of Object.keys(currentDoc.nodes)) {
175
+ const nextDoc = result.document;
176
+ const next = indexByLogicalKey(nextDoc);
177
+ const nextNodes = new Map();
178
+ for (const key of Object.keys(nextDoc.nodes)) {
114
179
  const nodeId = key;
115
- seenNodeIds.add(nodeId);
116
- const uiNode = currentDoc.nodes[key];
180
+ const uiNode = nextDoc.nodes[key];
117
181
  const value = uiNode.dataPointer != null ? getAtPointer(state.data, uiNode.dataPointer) : undefined;
182
+ const logicalKey = next.keyOf.get(nodeId);
183
+ const carried = logicalKey === undefined ? undefined : previous.byKey.get(logicalKey);
184
+ // History belongs to the logical item, so it is adopted by address. A
185
+ // node whose address is new to this document starts fresh, which is what
186
+ // an inserted item and a re-minted array both need.
187
+ nextNodes.set(nodeId, carried?.state ? carryNodeState(carried, uiNode, value) : defaultNodeState(value));
188
+ }
189
+ // State is adopted in full before anything is published. Recompiles run
190
+ // inside `batch`, so subscribers all read the finished state whatever
191
+ // order the stores were set in.
192
+ state = { ...state, nodes: nextNodes, identities: result.identityMap };
193
+ currentDoc = nextDoc;
194
+ // The document is published before the per-node stores on purpose. Batched
195
+ // notifications fire in the order stores were first set, and a renderer
196
+ // has to re-point its widgets at their new nodes before it is told those
197
+ // nodes' values, or it writes one row's value into another row's control
198
+ // and moves the caret of whatever is focused.
199
+ documentStore.set(nextDoc);
200
+ for (const [nodeId, nodeRuntimeState] of nextNodes) {
201
+ const uiNode = nextDoc.nodes[nodeId];
118
202
  const bundle = nodeStores.get(nodeId);
119
- if (bundle) {
120
- // A node id can end up representing a different array position after
121
- // an insert/remove/move shifts indices, since ids are assigned by
122
- // traversal order rather than tracked per logical item. Re-derive
123
- // `value` from the freshly recompiled data so the bundle reflects
124
- // whatever this id now points at, while keeping the id's own
125
- // interaction/validation history (dirty, touched, errors, status).
126
- const previous = state.nodes.get(nodeId);
127
- const nodeRuntimeState = previous
128
- ? { ...previous, value }
129
- : defaultNodeState(value);
130
- state.nodes.set(nodeId, nodeRuntimeState);
131
- bundle.value.set(nodeRuntimeState.value);
132
- bundle.dirty.set(nodeRuntimeState.interaction.dirty);
133
- bundle.touched.set(nodeRuntimeState.interaction.touched);
134
- bundle.errors.set(nodeRuntimeState.validation.errors);
135
- bundle.validationStatus.set(nodeRuntimeState.validation.status);
136
- bundle.visible.set(uiNode.visible);
137
- bundle.disabled.set(uiNode.disabled);
203
+ if (!bundle) {
204
+ nodeStores.set(nodeId, createNodeStoreBundle(nodeRuntimeState, uiNode, attemptsStore));
138
205
  continue;
139
206
  }
140
- const nodeRuntimeState = defaultNodeState(value);
141
- state.nodes.set(nodeId, nodeRuntimeState);
142
- nodeStores.set(nodeId, createNodeStoreBundle(nodeRuntimeState, uiNode, attemptsStore));
207
+ bundle.value.set(nodeRuntimeState.value);
208
+ bundle.dirty.set(nodeRuntimeState.interaction.dirty);
209
+ bundle.touched.set(nodeRuntimeState.interaction.touched);
210
+ bundle.errors.set(nodeRuntimeState.validation.errors);
211
+ bundle.validationStatus.set(nodeRuntimeState.validation.status);
212
+ bundle.visible.set(uiNode.visible);
213
+ bundle.disabled.set(uiNode.disabled);
143
214
  }
144
- // Drop entries for node ids that no longer appear in the recompiled
145
- // document (e.g. the trailing item after an array shrinks), so both
146
- // maps don't grow without bound across the form's lifetime.
147
- for (const nodeId of state.nodes.keys()) {
148
- if (!seenNodeIds.has(nodeId)) {
149
- state.nodes.delete(nodeId);
215
+ // Drop stores for node ids the recompiled document no longer contains
216
+ // (the trailing item after an array shrinks), so the map does not grow
217
+ // without bound across the form's lifetime.
218
+ for (const nodeId of [...nodeStores.keys()]) {
219
+ if (!nextNodes.has(nodeId))
150
220
  nodeStores.delete(nodeId);
151
- }
152
221
  }
153
222
  refreshVisibleErrors();
154
223
  }
@@ -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":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAGrE,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,IAAI,CAAA;QACb;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC;AAuBD,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC/C,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,GAAe,EACf,KAAqC;IAErC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAA;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAA;IAE5C,SAAS,KAAK,CAAC,MAAc,EAAE,QAAoC;QACjE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QACjC,yEAAyE;QACzE,0DAA0D;QAC1D,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAA;QAC7E,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACnD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAEtB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,OAAM;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QACpF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAiB,CAAC,KAAK,SAAS;gBAAE,OAAM;YACtD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;gBACzB,IAAI,EAAE,KAAK,SAAS;oBAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;gBACzE,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAiB,CAAC,CAAC,CAAA;YACvD,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,QAAqB,EACrB,EAAU,EACV,KAAc;IAEd,MAAM,OAAO,GAAqB,EAAE,GAAG,QAAQ,CAAC,KAAM,EAAE,KAAK,EAAE,CAAA;IAC/D,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,WAAW;QAAE,OAAO,OAAO,CAAA;IAChE,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAA;AACnE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO;QACL,KAAK;QACL,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1C,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC/E,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAA2B,EAC3B,MAAc,EACd,QAAuB;IAEvB,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACjE,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;QACnC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;QAChD,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;QAC/C,OAAO;QACP,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;QACpC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,gBAAgB;QAChB,UAAU,EAAE,mBAAmB,CAC7B,GAAG,EAAE,CACH,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACrD,gBAAgB,CAAC,WAAW,EAAE,KAAK,SAAS,CAC/C;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAA0B,EAC1B,UAA8B,EAAE;IAEhC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAA;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5C,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAEtE,IAAI,UAAU,GAAe,cAAc,CAAC,QAAQ,CAAA;IACpD,MAAM,aAAa,GAAG,WAAW,CAAa,cAAc,CAAC,QAAQ,CAAC,CAAA;IACtE,MAAM,SAAS,GAAG,WAAW,CAAU,WAAW,CAAC,CAAA;IACnD,MAAM,eAAe,GAAG,WAAW,CAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;IACrF,MAAM,kBAAkB,GAAG,WAAW,CAAiB,EAAE,CAAC,CAAA;IAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAA;IAErD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAA;IACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,GAAa,CAAA;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpG,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAChD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;QACnC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IACxF,CAAC;IAED,IAAI,KAAK,GAAiB;QACxB,IAAI,EAAE,WAAW;QACjB,WAAW;QACX,KAAK;QACL,UAAU,EAAE,cAAc,CAAC,WAAW;QACtC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;KAC5C,CAAA;IAED,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,oBAAoB,GAAG,CAAC,CAAA;IAC5B,IAAI,cAAc,GAAiD,IAAI,CAAA;IAEvE,SAAS,iBAAiB;QACxB,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACrC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED,SAAS,cAAc;QACrB,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACrB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACjE,CAAC;QACD,oBAAoB,EAAE,CAAA;IACxB,CAAC;IAED,SAAS,oBAAoB;QAC3B,MAAM,MAAM,GAAmB,EAAE,CAAA;QACjC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;gBAAE,SAAQ;YAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACjC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAA;YACjD,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK;gBACtC,OAAO,EAAE,MAAM,EAAE,WAAW,IAAI,IAAI;gBACpC,MAAM;aACP,CAAC,CAAA;QACJ,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,SAAS,eAAe;QACtB,2EAA2E;QAC3E,2EAA2E;QAC3E,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAE3D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;QACnF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAEvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAA;QACrD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,GAAa,CAAA;YAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACnG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACrF,sEAAsE;YACtE,yEAAyE;YACzE,oDAAoD;YACpD,SAAS,CAAC,GAAG,CACX,MAAM,EACN,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAClF,CAAA;QACH,CAAC;QAED,wEAAwE;QACxE,sEAAsE;QACtE,gCAAgC;QAChC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,CAAA;QACtE,UAAU,GAAG,OAAO,CAAA;QAEpB,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,8CAA8C;QAC9C,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAE1B,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,SAAS,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;gBACtF,SAAQ;YACV,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAClC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QAED,sEAAsE;QACtE,uEAAuE;QACvE,4CAA4C;QAC5C,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvD,CAAC;QAED,oBAAoB,EAAE,CAAA;IACxB,CAAC;IAED,SAAS,yBAAyB,CAAC,MAAwB;QACzD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAA;QAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;YAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAChB,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,SAAS,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAA;YACjD,IAAI,MAAM,EAAE,WAAW,IAAI,IAAI;gBAAE,SAAQ;YACzC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;YAChE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;YAC1D,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,gBAAgB,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;YAC1F,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBAC7B,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QAED,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QACtC,oBAAoB,EAAE,CAAA;IACxB,CAAC;IAED,SAAS,WAAW,CAAC,OAA8C;QACjE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACrD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,oBAAoB;gBAAE,OAAM;YACpE,KAAK,CAAC,GAAG,EAAE;gBACT,cAAc,GAAG,IAAI,CAAA;gBACrB,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAA;gBAC9F,iBAAiB,EAAE,CAAA;YACrB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,oBAAoB;gBAAE,OAAM;YACpE,KAAK,CAAC,GAAG,EAAE;gBACT,cAAc,GAAG,IAAI,CAAA;gBACrB,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAA;gBAChG,iBAAiB,EAAE,CAAA;YACrB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACN,CAAC;IAED,SAAS,mBAAmB;QAC1B,IAAI,SAAS;YAAE,OAAM;QACrB,KAAK,CAAC,GAAG,EAAE;YACT,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACtC,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,SAAS,EAAE,CAAC;gBACnD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;oBACpB,GAAG,gBAAgB;oBACnB,UAAU,EAAE,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;iBAClE,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACrC,IAAI,MAAM;oBAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACpD,CAAC;YACD,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;YACtC,oBAAoB,EAAE,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,kBAAkB,CAAC,MAAwB,EAAE,OAA0B;QAC9E,IAAI,SAAS;YAAE,OAAM;QACrB,KAAK,CAAC,GAAG,EAAE;YACT,yBAAyB,CAAC,MAAM,CAAC,CAAA;YAEjC,IAAI,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACrE,MAAM,OAAO,GAAG,cAAc,CAAA;gBAC9B,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;oBACjG,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAA;oBAChC,iBAAiB,EAAE,CAAA;oBACnB,KAAK,WAAW,CAAC,OAAO,CAAC,CAAA;gBAC3B,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAA;oBACrB,MAAM,UAAU,GAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;oBAC3F,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAA;oBAChC,iBAAiB,EAAE,CAAA;gBACrB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,iBAAiB;QACxB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,SAAS,EAAE,CAAC;YACnD,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAQ;YAC9D,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;gBACpB,GAAG,gBAAgB;gBACnB,UAAU,EAAE,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;aAC/D,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,IAAI,MAAM;gBAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC/C,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;YACtC,oBAAoB,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;IAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,OAA0B;QACnE,IAAI,SAAS;YAAE,OAAM;QACrB,KAAK,CAAC,GAAG,EAAE;YACT,iBAAiB,EAAE,CAAA;YAEnB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,cAAc,GAAG,IAAI,CAAA;gBACrB,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAA;gBAChG,iBAAiB,EAAE,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,SAAS,GAAwB,yBAAyB,CAC9D;QACE,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CACzB,IAAI,CAAC,QAAQ,CACX,OAAO,KAAK,QAAQ,IAAI,cAAc;YACpC,CAAC,CAAC,cAAc,CAAC,IAAI;YACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CACf;QACH,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;KAC3B,EACD,OAAO,CAAC,oBAAoB,CAC7B,CAAA;IAED,SAAS,kBAAkB,CAAC,OAAiB,EAAE,OAA0B;QACvE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAA;YACjD,MAAM,OAAO,GAAG,MAAM,EAAE,WAAW,CAAA;YACnC,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAA;YACjC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAA;QAChE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,oBAAoB,CAAC,MAA6C;QACzE,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5E,OAAM;QACR,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACvF,OAAM;QACR,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,SAAS,YAAY,CAAC,MAAc;QAClC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,WAAW;gBACd,eAAe,EAAE,CAAA;gBACjB,MAAK;YACP,KAAK,UAAU;gBACb,oBAAoB,CAAC,MAAM,CAAC,CAAA;gBAC5B,MAAK;YACP;gBACE,MAAK;QACT,CAAC;IACH,CAAC;IAED,SAAS,QAAQ,CAAC,OAAgB;QAChC,IAAI,SAAS;YAAE,OAAM;QACrB,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,CAAC,UAAU,EAAE,CAAA;YACtB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC7B,SAAS,CAAC,eAAe,EAAE,CAAA;gBAC3B,oBAAoB,EAAE,CAAA;gBACtB,cAAc,GAAG,IAAI,CAAA;YACvB,CAAC;QACH,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACzE,KAAK,GAAG,SAAS,CAAA;QAEjB,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,CACvD,CAAA;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,cAAc,GAAG,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACzE,SAAS,CAAC,eAAe,EAAE,CAAA;QAC7B,CAAC;QAED,IAAI,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5D,oBAAoB,EAAE,CAAA;YACtB,cAAc,GAAG,IAAI,CAAA;YACrB,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC3F,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,wEAAwE;YACxE,KAAK,CAAC,GAAG,EAAE;gBACT,iBAAiB,EAAE,CAAA;YACrB,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,GAAG,EAAE;YACT,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACzB,iBAAiB,EAAE,CAAA;YACnB,cAAc,EAAE,CAAA;YAChB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,YAAY,CAAC,MAAM,CAAC,CAAA;YACtB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,YAAY,CAAC,MAAc;QAClC,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,OAAO;QACd,SAAS,GAAG,IAAI,CAAA;QAChB,oBAAoB,EAAE,CAAA;QACtB,cAAc,GAAG,IAAI,CAAA;QACrB,SAAS,CAAC,OAAO,EAAE,CAAA;QACnB,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,aAAa;QACvB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,eAAe;QAC3B,aAAa,EAAE,kBAAkB;QACjC,QAAQ;QACR,YAAY;QACZ,OAAO;KACR,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@texaryn/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Framework-neutral UI IR, compiler, runtime, and renderer registry for schema-driven forms",
5
5
  "keywords": [
6
6
  "json-schema",