@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.
- package/CHANGELOG.md +123 -0
- package/dist/commands/handler.d.ts +13 -0
- package/dist/commands/handler.d.ts.map +1 -1
- package/dist/commands/handler.js +22 -4
- package/dist/commands/handler.js.map +1 -1
- package/dist/commands/types.d.ts +16 -1
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initialization/index.d.ts +4 -0
- package/dist/initialization/index.d.ts.map +1 -0
- package/dist/initialization/index.js +3 -0
- package/dist/initialization/index.js.map +1 -0
- package/dist/initialization/kernel.d.ts +133 -0
- package/dist/initialization/kernel.d.ts.map +1 -0
- package/dist/initialization/kernel.js +223 -0
- package/dist/initialization/kernel.js.map +1 -0
- package/dist/initialization/view.d.ts +16 -0
- package/dist/initialization/view.d.ts.map +1 -0
- package/dist/initialization/view.js +41 -0
- package/dist/initialization/view.js.map +1 -0
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +106 -4
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/types.d.ts +58 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schema/port.d.ts +59 -11
- package/dist/schema/port.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -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,
|
|
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":"
|
|
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;
|
|
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"}
|
package/dist/runtime/runtime.js
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
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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"}
|