@texaryn/core 0.8.0 → 0.10.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.
@@ -0,0 +1,223 @@
1
+ import { parsePointer } from '../json-pointer.js';
2
+ const DEFAULT_MAX_PASSES = 32;
3
+ export function initializeDefaults(data, view, options = {}) {
4
+ const maxPasses = options.maxPasses ?? DEFAULT_MAX_PASSES;
5
+ let current = data;
6
+ const written = [];
7
+ const provisional = new Set(options.provisional ?? []);
8
+ for (let pass = 1; pass <= maxPasses; pass += 1) {
9
+ const { writes, conflicts, refusals } = collect(current, view(current), provisional);
10
+ if (writes.length === 0) {
11
+ return { outcome: 'initialized', data: current, written, conflicts, refusals, passes: pass };
12
+ }
13
+ for (const write of writes) {
14
+ current = writeAtSegments(current, write.segments, deepCopy(write.value));
15
+ written.push(write.location);
16
+ consumeProvisional(provisional, write.segments);
17
+ }
18
+ }
19
+ return { outcome: 'budget-exhausted', passes: maxPasses };
20
+ }
21
+ /**
22
+ * Ends the provisional status of every location the write landed at or beneath.
23
+ *
24
+ * A write to `/rows/0/name` creates `/rows/0`, so both stop being locations
25
+ * nobody has stated a value for.
26
+ */
27
+ function consumeProvisional(provisional, segments) {
28
+ if (provisional.size === 0)
29
+ return;
30
+ for (let length = 0; length <= segments.length; length += 1) {
31
+ provisional.delete(encodePointer(segments.slice(0, length)));
32
+ }
33
+ }
34
+ function collect(data, view, provisional) {
35
+ const candidates = [];
36
+ const conflicts = [];
37
+ const refusals = [];
38
+ const conflicted = new Set();
39
+ // Both loops are over `reachable`, and both skip a location that is already
40
+ // filled. A conflict at a location holding a value explains nothing: the pass
41
+ // was not going to write there anyway, and reporting it would say a value was
42
+ // withheld that the data already has.
43
+ //
44
+ // A conflicted ancestor is found through this same set rather than a wider
45
+ // one, because exposure is inherited: a location the projection exposes has
46
+ // ancestors it also exposes, in both adapters. The one exception is an
47
+ // adapter that projects a node whose parent it dropped, which is #116, and
48
+ // there the ancestor has no node and so no diagnostic either.
49
+ for (const [location, sources] of view.conflicts) {
50
+ if (!view.reachable.has(location))
51
+ continue;
52
+ if (!isAbsent(data, parsePointer(location), provisional))
53
+ continue;
54
+ conflicted.add(location);
55
+ conflicts.push({ location, sources });
56
+ }
57
+ for (const location of view.reachable) {
58
+ if (!view.defaults.has(location))
59
+ continue;
60
+ const segments = parsePointer(location);
61
+ if (!isAbsent(data, segments, provisional))
62
+ continue;
63
+ const refusal = refuse(data, segments, provisional);
64
+ if (refusal !== undefined) {
65
+ refusals.push({ location, reason: refusal });
66
+ continue;
67
+ }
68
+ candidates.push({ location, segments, value: view.defaults.get(location) });
69
+ }
70
+ // A container default is materialised whole and recursed into on a later
71
+ // pass, so a descendant write in this pass would be the precedence rule the
72
+ // whole-value decision exists to avoid.
73
+ const withoutDescendants = candidates.filter((write) => !candidates.some((other) => isStrictDescendant(write.segments, other.segments)));
74
+ // A conflict produces no write, so the filter above has nothing to shadow a
75
+ // descendant against, and creating the parent would materialise the location
76
+ // the conflict said to leave absent.
77
+ const writes = withoutDescendants.filter((write) => !hasConflictedAbsentAncestor(data, write.segments, conflicted, provisional));
78
+ return { writes, conflicts, refusals };
79
+ }
80
+ /**
81
+ * Absent means the property is not there. `false`, `0`, `''` and `null` are
82
+ * values, and so is a key present holding `undefined`: telling that last one
83
+ * from a missing key is the whole reason this cannot use `getAtPointer`, which
84
+ * returns `undefined` for both.
85
+ */
86
+ function isAbsent(data, segments, provisional) {
87
+ // A location nobody stated a value for reads as absent, whatever stands in
88
+ // for it in the data. An ancestor needs no such check: whatever it holds is
89
+ // not a container, so everything beneath it is already absent.
90
+ if (provisional.has(encodePointer(segments)))
91
+ return true;
92
+ if (segments.length === 0)
93
+ return data === undefined;
94
+ let current = data;
95
+ for (const segment of segments.slice(0, -1)) {
96
+ if (!isContainer(current))
97
+ return true;
98
+ current = current[segment];
99
+ }
100
+ if (!isContainer(current))
101
+ return true;
102
+ return !Object.prototype.hasOwnProperty.call(current, segments[segments.length - 1]);
103
+ }
104
+ /**
105
+ * Why a write cannot be applied, or `undefined` when it can.
106
+ *
107
+ * An absent ancestor is created as an object. An ancestor holding a scalar is
108
+ * refused, because writing through it would spread the scalar into character
109
+ * keys, which is the corruption issue #124 records at the root. An absent
110
+ * ancestor whose next segment could be an array index is also refused: a
111
+ * pointer does not say whether `0` addresses the first element of an array or a
112
+ * property literally named `0`, so creating the container would mean guessing,
113
+ * and ADR-003 leaves array rows to whatever #120 and identity keys settle.
114
+ */
115
+ function refuse(data, segments, provisional) {
116
+ let current = data;
117
+ for (let index = 0; index < segments.length; index += 1) {
118
+ // `current` is the container that has to hold `segments[index]`.
119
+ if (current === undefined) {
120
+ return couldBeArrayIndex(segments[index]) ? 'unknown-container-kind' : undefined;
121
+ }
122
+ if (!isContainer(current))
123
+ return 'non-container-ancestor';
124
+ if (index === segments.length - 1)
125
+ return undefined;
126
+ current = current[segments[index]];
127
+ // The walk has to descend through a provisional level as the absent one it
128
+ // is, or the `null` holding its place reads as a scalar ancestor and the
129
+ // row's own properties are refused, which is the defect #127 records.
130
+ if (provisional.has(encodePointer(segments.slice(0, index + 1))))
131
+ current = undefined;
132
+ }
133
+ return undefined;
134
+ }
135
+ /**
136
+ * Whether a segment could be an array index, in canonical form so `01` and
137
+ * `1x` are ordinary keys. The pass refuses to create a container it cannot
138
+ * name; `setAtPointer` makes the opposite choice and always creates an object,
139
+ * because it is writing what a user typed rather than manufacturing a default.
140
+ */
141
+ function couldBeArrayIndex(segment) {
142
+ return /^(0|[1-9][0-9]*)$/.test(segment);
143
+ }
144
+ function hasConflictedAbsentAncestor(data, segments, conflicted, provisional) {
145
+ return properAncestors(segments).some((ancestor) => conflicted.has(ancestor.location) && isAbsent(data, ancestor.segments, provisional));
146
+ }
147
+ /**
148
+ * Every location strictly above this one, root first.
149
+ *
150
+ * The root is an ancestor of everything except itself, so a conflict there has
151
+ * to stop the pass reaching through it exactly as a conflict one level down
152
+ * does. Leaving the root out let a root conflict be defeated by any child
153
+ * default.
154
+ */
155
+ function properAncestors(segments) {
156
+ if (segments.length === 0)
157
+ return [];
158
+ const ancestors = [{ location: '', segments: [] }];
159
+ for (let length = 1; length < segments.length; length += 1) {
160
+ const prefix = segments.slice(0, length);
161
+ ancestors.push({ location: encodePointer(prefix), segments: prefix });
162
+ }
163
+ return ancestors;
164
+ }
165
+ /**
166
+ * Rebuilds a pointer from decoded segments.
167
+ *
168
+ * `parsePointer` decodes `~1` to `/` and `~0` to `~`, so joining its results
169
+ * with `/` again would turn a property named `b/c` into two levels and let a
170
+ * property containing `~1` be read back as an escape. Everything internal
171
+ * therefore travels as segments, and this exists only where a `Location` has to
172
+ * be compared against the caller's own keys.
173
+ */
174
+ function encodePointer(segments) {
175
+ return segments
176
+ .map((segment) => `/${segment.replace(/~/g, '~0').replace(/\//g, '~1')}`)
177
+ .join('');
178
+ }
179
+ function isStrictDescendant(candidate, of) {
180
+ return candidate.length > of.length && of.every((segment, index) => candidate[index] === segment);
181
+ }
182
+ function isContainer(value) {
183
+ return typeof value === 'object' && value !== null;
184
+ }
185
+ /**
186
+ * Sets a value, creating every missing object level on the way.
187
+ *
188
+ * `setAtPointer` now does the same thing, since #129 fixed the defect this was
189
+ * written around: it created exactly one missing level and threw on two. This
190
+ * stays because the pass carries parsed segments rather than pointers, and
191
+ * because `refuse` has already established what `setAtPointer` re-checks, that
192
+ * nothing on the path is a scalar and that no missing level would have to be an
193
+ * array. Collapsing the two is worth doing when the pass stops being a
194
+ * prototype, not while its diagnostics still depend on refusing before writing.
195
+ */
196
+ function writeAtSegments(data, segments, value) {
197
+ if (segments.length === 0)
198
+ return value;
199
+ const [head, ...rest] = segments;
200
+ const child = isContainer(data) ? data[head] : undefined;
201
+ const written = rest.length === 0 ? value : writeAtSegments(child, rest, value);
202
+ if (Array.isArray(data)) {
203
+ const copy = [...data];
204
+ copy[Number(head)] = written;
205
+ return copy;
206
+ }
207
+ return { ...(isContainer(data) ? data : {}), [head]: written };
208
+ }
209
+ /**
210
+ * A declaration is copied on every use, so two rows filled from one schema
211
+ * share no mutable identity with each other or with the schema. Anything that
212
+ * is not a plain object or array comes back as it is, which is correct for the
213
+ * JSON values a `default` can hold.
214
+ */
215
+ function deepCopy(value) {
216
+ if (Array.isArray(value))
217
+ return value.map(deepCopy);
218
+ if (typeof value === 'object' && value !== null) {
219
+ return Object.fromEntries(Object.entries(value).map(([key, v]) => [key, deepCopy(v)]));
220
+ }
221
+ return value;
222
+ }
223
+ //# sourceMappingURL=kernel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/initialization/kernel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { SchemaProjection } from '../schema/port.js';
2
+ import type { InitializationView } from './kernel.js';
3
+ /**
4
+ * What one `SchemaProjection` says, as the three things ADR-003's pass reads.
5
+ *
6
+ * The pass was written against a normalised view rather than a projection so
7
+ * that it could be executed and tested before the port could express the
8
+ * conflict case. It can now, so this is the translation, and it is deliberately
9
+ * nothing more: every rule here is a restatement of something the port already
10
+ * decided.
11
+ *
12
+ * Not exported from the package, for the same reason the pass is not: the two
13
+ * together decide what the runtime's baseline is.
14
+ */
15
+ export declare function viewFromProjection(projection: SchemaProjection): InitializationView;
16
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/initialization/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAY,MAAM,aAAa,CAAA;AAE/D;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,GAAG,kBAAkB,CA2BnF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * What one `SchemaProjection` says, as the three things ADR-003's pass reads.
3
+ *
4
+ * The pass was written against a normalised view rather than a projection so
5
+ * that it could be executed and tested before the port could express the
6
+ * conflict case. It can now, so this is the translation, and it is deliberately
7
+ * nothing more: every rule here is a restatement of something the port already
8
+ * decided.
9
+ *
10
+ * Not exported from the package, for the same reason the pass is not: the two
11
+ * together decide what the runtime's baseline is.
12
+ */
13
+ export function viewFromProjection(projection) {
14
+ const reachable = new Set();
15
+ const defaults = new Map();
16
+ for (const [pointer, node] of projection.nodes) {
17
+ // Rule 5's "reachable", which is exposure rather than activity. A branch the
18
+ // data identifies but has not yet satisfied is exposed so the user can
19
+ // complete it, and filling only the active locations would leave the field
20
+ // it exposes empty: the ADR's own defect, one branch deeper.
21
+ if (!node.active && node.provisional !== true)
22
+ continue;
23
+ reachable.add(pointer);
24
+ // Presence, not truthiness. A schema declaring `default: false` declares a
25
+ // default, and `0`, `''` and `null` are values like any other.
26
+ if ('default' in node.annotations)
27
+ defaults.set(pointer, node.annotations.default);
28
+ }
29
+ const conflicts = new Map();
30
+ for (const diagnostic of projection.diagnostics ?? []) {
31
+ if (diagnostic.code !== 'ambiguous-default')
32
+ continue;
33
+ // `sources` is optional on the type because the other codes describe one
34
+ // schema position. This code always carries them, and an adapter that did
35
+ // not would still have reported the conflict, which is the part the pass
36
+ // acts on.
37
+ conflicts.set(diagnostic.pointer, diagnostic.sources ?? []);
38
+ }
39
+ return { reachable, defaults, conflicts };
40
+ }
41
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/initialization/view.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAA4B;IAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAY,CAAA;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAE7C,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QAC/C,6EAA6E;QAC7E,uEAAuE;QACvE,2EAA2E;QAC3E,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,SAAQ;QACvD,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtB,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW;YAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACpF,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAA;IACxD,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACtD,IAAI,UAAU,CAAC,IAAI,KAAK,mBAAmB;YAAE,SAAQ;QACrD,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,WAAW;QACX,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;AAC3C,CAAC"}
@@ -1,3 +1,3 @@
1
- export type { FormRuntime, FormRuntimeOptions, NodeState } from './types.js';
1
+ export type { FormRuntime, FormRuntimeOptions, InitializationPolicy, InitializationReport, NodeState, } from './types.js';
2
2
  export { createFormRuntime } from './runtime.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,GACV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA"}
@@ -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;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,CAqYb"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAe7D,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAGnB,MAAM,YAAY,CAAA;AAkJnB,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CA8eb"}
@@ -1,5 +1,6 @@
1
1
  import { compile } from '../ir/compiler.js';
2
- import { processCommand } from '../commands/handler.js';
2
+ import { processCommand, resetTarget } from '../commands/handler.js';
3
+ import { initializeDefaults, viewFromProjection } from '../initialization/index.js';
3
4
  import { createStore, createComputedStore } from '../state/store.js';
4
5
  import { batch } from '../state/signal.js';
5
6
  import { getAtPointer, parsePointer } from '../json-pointer.js';
@@ -100,11 +101,45 @@ function createNodeStoreBundle(nodeState, uiNode, attempts) {
100
101
  validationStatus.getSnapshot() === 'invalid'),
101
102
  };
102
103
  }
104
+ function reportOf(result) {
105
+ return result.outcome === 'initialized'
106
+ ? {
107
+ outcome: 'initialized',
108
+ conflicts: result.conflicts,
109
+ refusals: result.refusals,
110
+ passes: result.passes,
111
+ }
112
+ : { outcome: 'budget-exhausted', passes: result.passes };
113
+ }
103
114
  export function createFormRuntime(port, options = {}) {
104
115
  // Not `?? {}`, which treated `null` as "not supplied" while `false`, `0` and
105
116
  // `''` survived, so a caller could not say the instance is `null` and which
106
117
  // falsy values lived was arbitrary. `null` is a legal instance.
107
- const initialData = options.initialData === undefined ? {} : options.initialData;
118
+ //
119
+ // An omitted root is still substituted before the pass runs, so a root-level
120
+ // `default` never applies: `{}` is present and the rule fills absent
121
+ // locations. Distinguishing the two would mean projecting `undefined`, which
122
+ // is not JSON and which the hyperjump adapter refuses. Tracked separately.
123
+ const suppliedData = options.initialData === undefined ? {} : options.initialData;
124
+ /**
125
+ * ADR-003 fills a location when it becomes reachable, so the pass runs again
126
+ * whenever an edit can have changed what is reachable. Construction is only
127
+ * the first such moment; a branch the user activates by clicking a
128
+ * discriminator is another, which is the case the contract measured against
129
+ * the reference and matched.
130
+ */
131
+ const initialize = options.initialization === 'schema-defaults'
132
+ ? (data, provisional) => initializeDefaults(data, (current) => viewFromProjection(port.project(current)), provisional === undefined ? {} : { provisional })
133
+ : undefined;
134
+ const construction = initialize?.(suppliedData);
135
+ if (construction !== undefined && construction.outcome === 'budget-exhausted') {
136
+ // This surface returns a value, so it throws: the caller is in a position
137
+ // to catch a runtime it never received. `Reset` is not, and reports.
138
+ throw new Error(`Initialization did not converge in ${construction.passes} passes, so nothing was written.`);
139
+ }
140
+ // Rule 6: what the pass materialised is the baseline, so a seeded location is
141
+ // not modified against it and `handleSetValue` needs no new code.
142
+ const initialData = construction === undefined ? suppliedData : construction.data;
108
143
  const projection = port.project(initialData);
109
144
  const initialCompile = compile(projection, initialData, options.hints);
110
145
  let currentDoc = initialCompile.document;
@@ -112,6 +147,7 @@ export function createFormRuntime(port, options = {}) {
112
147
  const dataStore = createStore(initialData);
113
148
  const submissionStore = createStore({ status: 'idle', attempts: 0 });
114
149
  const visibleErrorsStore = createStore([]);
150
+ const initializationStore = createStore(construction === undefined ? undefined : reportOf(construction));
115
151
  const attemptsStore = createStore(0);
116
152
  const nodeStores = new Map();
117
153
  const nodes = new Map();
@@ -379,9 +415,29 @@ export function createFormRuntime(port, options = {}) {
379
415
  break;
380
416
  }
381
417
  }
382
- function dispatch(command) {
418
+ function dispatch(incoming) {
383
419
  if (destroyed)
384
420
  return;
421
+ // `Reset` establishes a new baseline, so the policy that produced the first
422
+ // one produces this one, with or without `cmd.data`. It runs before the
423
+ // handler and before any teardown, so an exhausted budget leaves the
424
+ // runtime exactly as it was: a baseline that was never initialized under
425
+ // its own policy is the incoherence rule 7 exists to prevent, and refusing
426
+ // the whole command is the only way to avoid establishing one.
427
+ //
428
+ // An ordinary edit establishes no baseline, so it is seeded after the
429
+ // handler instead, and an exhausted budget there discards only the seeding.
430
+ let report;
431
+ let command = incoming;
432
+ if (initialize !== undefined && incoming.type === 'Reset') {
433
+ const result = initialize(resetTarget(state, incoming));
434
+ if (result.outcome === 'budget-exhausted') {
435
+ initializationStore.set(reportOf(result));
436
+ return;
437
+ }
438
+ report = reportOf(result);
439
+ command = { type: 'Reset', data: result.data };
440
+ }
385
441
  const mutatesData = isDataMutatingCommand(command);
386
442
  // Nothing observable happens until the handler has returned. A command is
387
443
  // not guaranteed to happen: `setAtPointer` refuses to write through a
@@ -400,7 +456,7 @@ export function createFormRuntime(port, options = {}) {
400
456
  // back does not, because `Reset` never reaches `setAtPointer` and so
401
457
  // cannot throw today. It moves with the rest because the invariant is the
402
458
  // ordering, not the one line that currently demonstrates it.
403
- const { nextState, effects } = processCommand(state, command, currentDoc);
459
+ const { nextState, effects, provisional } = processCommand(state, command, currentDoc);
404
460
  if (mutatesData) {
405
461
  scheduler.invalidate();
406
462
  if (command.type === 'Reset') {
@@ -410,6 +466,23 @@ export function createFormRuntime(port, options = {}) {
410
466
  }
411
467
  }
412
468
  state = nextState;
469
+ // An ordinary edit can change what is reachable, so it seeds too, and this
470
+ // is the only moment whose result is not also the baseline. `Reset` was
471
+ // seeded above, before the handler, because its result becomes one.
472
+ let seeded = [];
473
+ if (initialize !== undefined && mutatesData && command.type !== 'Reset') {
474
+ // A row the command created without a value stated for it reads as absent
475
+ // to the pass while the data holds the `null` standing in for it, so an
476
+ // array never has a hole and nothing but JSON reaches the port. If the
477
+ // pass writes nothing there, or the run is discarded, that `null` is what
478
+ // the caller gets, which is the behaviour without a policy.
479
+ const result = initialize(state.data, provisional);
480
+ report = reportOf(result);
481
+ if (result.outcome === 'initialized') {
482
+ state = { ...state, data: result.data };
483
+ seeded = result.written;
484
+ }
485
+ }
413
486
  const isAcceptedSubmit = effects.some((e) => e.type === 'validate' && e.trigger === 'submit');
414
487
  if (isAcceptedSubmit) {
415
488
  currentAttempt = { generation: ++submissionGeneration, data: state.data };
@@ -428,13 +501,41 @@ export function createFormRuntime(port, options = {}) {
428
501
  }
429
502
  batch(() => {
430
503
  dataStore.set(state.data);
504
+ if (report !== undefined)
505
+ initializationStore.set(report);
431
506
  publishSubmission();
432
507
  syncNodeStores();
433
508
  for (const effect of effects) {
434
509
  handleEffect(effect);
435
510
  }
511
+ // After the recompile, which builds the node the seeded location now has.
512
+ if (seeded.length > 0)
513
+ markSeeded(seeded);
436
514
  });
437
515
  }
516
+ /**
517
+ * `modified` for a location the pass filled against a baseline that was
518
+ * already fixed. The value does differ from `state.initialData`, and the user
519
+ * did not type it, so `dirty`, `touched` and `pristine` are left alone.
520
+ *
521
+ * Neither of the two paths a node can take works this out on its own:
522
+ * `defaultNodeState` builds a new node with every flag fresh, and
523
+ * `carryNodeState` carries the answer from before the seeding.
524
+ */
525
+ function markSeeded(pointers) {
526
+ const wanted = new Set(pointers);
527
+ const nextNodes = new Map(state.nodes);
528
+ for (const [nodeId, nodeRuntimeState] of nextNodes) {
529
+ const pointer = currentDoc.nodes[nodeId]?.dataPointer;
530
+ if (pointer == null || !wanted.has(pointer))
531
+ continue;
532
+ nextNodes.set(nodeId, {
533
+ ...nodeRuntimeState,
534
+ interaction: { ...nodeRuntimeState.interaction, modified: true },
535
+ });
536
+ }
537
+ state = { ...state, nodes: nextNodes };
538
+ }
438
539
  function getNodeState(nodeId) {
439
540
  return nodeStores.get(nodeId);
440
541
  }
@@ -450,6 +551,7 @@ export function createFormRuntime(port, options = {}) {
450
551
  data: dataStore,
451
552
  submission: submissionStore,
452
553
  visibleErrors: visibleErrorsStore,
554
+ initialization: initializationStore,
453
555
  dispatch,
454
556
  getNodeState,
455
557
  destroy,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}