@texaryn/core 0.4.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 CHANGED
@@ -1,5 +1,11 @@
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
+
3
9
  ## 0.4.0
4
10
 
5
11
  ### 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@texaryn/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Framework-neutral UI IR, compiler, runtime, and renderer registry for schema-driven forms",
5
5
  "keywords": [
6
6
  "json-schema",