@eduardorenani/atlasjs 0.1.0-alpha.1 → 0.1.0-alpha.2
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/dist/buildActiveState.d.ts +3 -2
- package/dist/buildActiveState.d.ts.map +1 -1
- package/dist/buildActiveState.js +16 -3
- package/dist/buildActiveState.js.map +1 -1
- package/dist/buildPassiveState.d.ts +2 -1
- package/dist/buildPassiveState.d.ts.map +1 -1
- package/dist/buildPassiveState.js +7 -2
- package/dist/buildPassiveState.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +290 -34
- package/dist/compile.js.map +1 -1
- package/dist/contextLift.d.ts +1 -0
- package/dist/contextLift.d.ts.map +1 -1
- package/dist/contextLift.js +1 -1
- package/dist/contextLift.js.map +1 -1
- package/dist/defineCompoundMode.d.ts +22 -8
- package/dist/defineCompoundMode.d.ts.map +1 -1
- package/dist/defineCompoundMode.js +18 -6
- package/dist/defineCompoundMode.js.map +1 -1
- package/dist/endBuckets.d.ts +9 -0
- package/dist/endBuckets.d.ts.map +1 -0
- package/dist/endBuckets.js +41 -0
- package/dist/endBuckets.js.map +1 -0
- package/dist/injectEnd.d.ts +21 -5
- package/dist/injectEnd.d.ts.map +1 -1
- package/dist/injectEnd.js +158 -60
- package/dist/injectEnd.js.map +1 -1
- package/dist/types.d.ts +63 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/validateRoutes.d.ts.map +1 -1
- package/dist/validateRoutes.js +23 -1
- package/dist/validateRoutes.js.map +1 -1
- package/dist/validateTargets.d.ts.map +1 -1
- package/dist/validateTargets.js +20 -1
- package/dist/validateTargets.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { assign } from "xstate";
|
|
2
2
|
import { type LiftContext } from "./contextLift.js";
|
|
3
|
+
import { type EndBucketSymbol } from "./endBuckets.js";
|
|
3
4
|
import type { ErrorRouteTarget, ModeOutput, RouteTarget } from "./types.js";
|
|
4
5
|
import type { LeafSlot } from "./walk.js";
|
|
5
6
|
export type LoweredGuard = (args: {
|
|
@@ -9,7 +10,7 @@ export type LoweredGuard = (args: {
|
|
|
9
10
|
}) => boolean;
|
|
10
11
|
export type LoweredOnDoneTransition = {
|
|
11
12
|
guard?: LoweredGuard;
|
|
12
|
-
target?: RouteTarget;
|
|
13
|
+
target?: RouteTarget | EndBucketSymbol | string;
|
|
13
14
|
reenter?: boolean;
|
|
14
15
|
actions?: ReturnType<typeof assign>;
|
|
15
16
|
};
|
|
@@ -26,7 +27,7 @@ export type LoweredReThrowAction = (args: {
|
|
|
26
27
|
export type LoweredErrorAction = ReturnType<typeof assign> | LoweredReThrowAction;
|
|
27
28
|
export type LoweredOnErrorTransition = {
|
|
28
29
|
guard?: LoweredErrorGuard;
|
|
29
|
-
target?: ErrorRouteTarget;
|
|
30
|
+
target?: ErrorRouteTarget | EndBucketSymbol | string;
|
|
30
31
|
actions?: LoweredErrorAction;
|
|
31
32
|
};
|
|
32
33
|
export type LoweredInvokeState = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildActiveState.d.ts","sourceRoot":"","sources":["../src/buildActiveState.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAIH,KAAK,WAAW,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAER,gBAAgB,EAGhB,UAAU,EAGV,WAAW,EAEd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAe1C,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAC9B,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAC1C,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"buildActiveState.d.ts","sourceRoot":"","sources":["../src/buildActiveState.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAIH,KAAK,WAAW,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAER,gBAAgB,EAGhB,UAAU,EAGV,WAAW,EAEd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAe1C,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAC9B,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAC1C,KAAK,OAAO,CAAC;AAOd,MAAM,MAAM,uBAAuB,GAAG;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACnC,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC7B,KAAK,OAAO,CAAC;AAKd,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACtC,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC7B,KAAK,KAAK,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAElF,MAAM,MAAM,wBAAwB,GAAG;IACnC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,GAAG,eAAe,GAAG,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC;QAC/C,MAAM,EAAE,SAAS,uBAAuB,EAAE,CAAC;QAC3C,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;KACjD,CAAC;CACL,CAAC;AA0LF,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,kBAAkB,CAmDpB"}
|
package/dist/buildActiveState.js
CHANGED
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
import { assign } from "xstate";
|
|
36
36
|
import { actorName } from "./actorName.js";
|
|
37
37
|
import { liftErrorAssign, liftExitAssign, liftInput, } from "./contextLift.js";
|
|
38
|
-
import { RE_THROW } from "./types.js";
|
|
38
|
+
import { END, RE_THROW } from "./types.js";
|
|
39
|
+
import { END_ABANDONED, END_ACHIEVED, END_ERROR, } from "./endBuckets.js";
|
|
39
40
|
// `Array.isArray` widens `readonly T[]` to `any[]` and does not subtract it
|
|
40
41
|
// from a `T | readonly T[]` union. A typed predicate fixes the narrowing
|
|
41
42
|
// without leaking `any`.
|
|
@@ -82,10 +83,19 @@ function wrapAssign(userAssign, lift, deps) {
|
|
|
82
83
|
return userAssign({ context, payload: output.payload, deps });
|
|
83
84
|
});
|
|
84
85
|
}
|
|
86
|
+
// Map the user-visible `END` to the bucket-specific internal sentinel.
|
|
87
|
+
// Non-END targets pass through untouched. `injectEnd` later rewrites the
|
|
88
|
+
// sentinel to the matching `$end_<outcome>` state name at the enclosing
|
|
89
|
+
// compound's level.
|
|
90
|
+
function bucketTargetForExit(target, outcomeKey) {
|
|
91
|
+
if (target !== END)
|
|
92
|
+
return target;
|
|
93
|
+
return outcomeKey === "achieved" ? END_ACHIEVED : END_ABANDONED;
|
|
94
|
+
}
|
|
85
95
|
function buildExitTransition(outcomeKey, entry, lift, deps) {
|
|
86
96
|
const transition = {
|
|
87
97
|
guard: makeGuard(outcomeKey, entry.when),
|
|
88
|
-
target: entry.target,
|
|
98
|
+
target: bucketTargetForExit(entry.target, outcomeKey),
|
|
89
99
|
};
|
|
90
100
|
if (entry.assign !== undefined) {
|
|
91
101
|
transition.actions = wrapAssign(entry.assign, lift, deps);
|
|
@@ -140,9 +150,12 @@ function buildErrorTransition(entry, lift, deps) {
|
|
|
140
150
|
actions: makeReThrowAction(),
|
|
141
151
|
};
|
|
142
152
|
}
|
|
153
|
+
// `END` in `routes.error` → `END_ERROR` bucket sentinel. RE_THROW was
|
|
154
|
+
// already handled above; everything else is a sibling name.
|
|
155
|
+
const errTarget = entry.target === END ? END_ERROR : entry.target;
|
|
143
156
|
const transition = {
|
|
144
157
|
guard,
|
|
145
|
-
target:
|
|
158
|
+
target: errTarget,
|
|
146
159
|
};
|
|
147
160
|
if (entry.assign !== undefined) {
|
|
148
161
|
transition.actions = wrapErrorAssign(entry.assign, lift, deps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildActiveState.js","sourceRoot":"","sources":["../src/buildActiveState.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,+DAA+D;AAC/D,mDAAmD;AACnD,4EAA4E;AAC5E,yEAAyE;AACzE,0BAA0B;AAC1B,EAAE;AACF,wCAAwC;AACxC,4DAA4D;AAC5D,8DAA8D;AAC9D,qCAAqC;AACrC,kEAAkE;AAClE,EAAE;AACF,4BAA4B;AAC5B,gBAAgB;AAChB,2EAA2E;AAC3E,0CAA0C;AAC1C,2EAA2E;AAC3E,sCAAsC;AACtC,2EAA2E;AAC3E,uEAAuE;AACvE,sEAAsE;AACtE,2EAA2E;AAC3E,4EAA4E;AAC5E,oEAAoE;AACpE,sDAAsD;AACtD,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,aAAa;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACH,eAAe,EACf,cAAc,EACd,SAAS,GAEZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"buildActiveState.js","sourceRoot":"","sources":["../src/buildActiveState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type LiftContext } from "./contextLift.js";
|
|
2
|
+
import { type EndBucketSymbol } from "./endBuckets.js";
|
|
2
3
|
import type { JsonObject, PassiveModeConfig, RouteTarget } from "./types.js";
|
|
3
4
|
type InternalCtx = JsonObject;
|
|
4
5
|
export type LoweredTransition = {
|
|
5
|
-
target?: RouteTarget;
|
|
6
|
+
target?: RouteTarget | EndBucketSymbol | string;
|
|
6
7
|
actions?: string | readonly string[];
|
|
7
8
|
guard?: (args: {
|
|
8
9
|
context: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPassiveState.d.ts","sourceRoot":"","sources":["../src/buildPassiveState.ts"],"names":[],"mappings":"AAeA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAER,UAAU,EACV,iBAAiB,EACjB,WAAW,EACd,MAAM,YAAY,CAAC;AAIpB,KAAK,WAAW,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"buildPassiveState.d.ts","sourceRoot":"","sources":["../src/buildPassiveState.ts"],"names":[],"mappings":"AAeA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,KAAK,EAER,UAAU,EACV,iBAAiB,EACjB,WAAW,EACd,MAAM,YAAY,CAAC;AAIpB,KAAK,WAAW,GAAG,UAAU,CAAC;AAS9B,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,iBAAiB,EAAE,CAAC,CAAC;CACxE,CAAC;AA6CF,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,iBAAiB,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACxD,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,kBAAkB,CASpB"}
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
// `$end` substate injection + END→`$end` rewrite happens in slice 5.11
|
|
14
14
|
// before the final XState `createMachine` call.
|
|
15
15
|
import { liftGuard } from "./contextLift.js";
|
|
16
|
+
import { END_ACHIEVED } from "./endBuckets.js";
|
|
17
|
+
import { END } from "./types.js";
|
|
16
18
|
// `Array.isArray` narrows to `any[]`, which fails to subtract
|
|
17
19
|
// `readonly T[]` from a union like `T | readonly T[]`. This typed predicate
|
|
18
20
|
// gives TypeScript the narrowing it needs without leaking `any`.
|
|
@@ -21,8 +23,11 @@ function isReadonlyArray(value) {
|
|
|
21
23
|
}
|
|
22
24
|
function mapTransition(t, lift, deps) {
|
|
23
25
|
const out = {};
|
|
24
|
-
if (t.target !== undefined)
|
|
25
|
-
|
|
26
|
+
if (t.target !== undefined) {
|
|
27
|
+
// Passive `target: END` defaults to bubbling `achieved` (spec 008
|
|
28
|
+
// §"Outcome propagation rules"). Non-END targets pass through.
|
|
29
|
+
out.target = t.target === END ? END_ACHIEVED : t.target;
|
|
30
|
+
}
|
|
26
31
|
if (t.actions !== undefined)
|
|
27
32
|
out.actions = t.actions;
|
|
28
33
|
if (t.guard !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPassiveState.js","sourceRoot":"","sources":["../src/buildPassiveState.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,6FAA6F;AAC7F,6EAA6E;AAC7E,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,6DAA6D;AAC7D,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,gDAAgD;AAEhD,OAAO,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"buildPassiveState.js","sourceRoot":"","sources":["../src/buildPassiveState.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,6FAA6F;AAC7F,6EAA6E;AAC7E,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,6DAA6D;AAC7D,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,gDAAgD;AAEhD,OAAO,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAwB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AA6BjC,8DAA8D;AAC9D,4EAA4E;AAC5E,iEAAiE;AACjE,SAAS,eAAe,CAAI,KAAuB;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAClB,CAAiD,EACjD,IAA6B,EAC7B,IAAuC;IAEvC,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,kEAAkE;QAClE,+DAA+D;QAC/D,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACrD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,oEAAoE;QACpE,kEAAkE;QAClE,iEAAiE;QACjE,wDAAwD;QACxD,EAAE;QACF,8DAA8D;QAC9D,kEAAkE;QAClE,2DAA2D;QAC3D,yCAAyC;QACzC,MAAM,SAAS,GAAG,CAAC,CAAC,KAIP,CAAC;QACd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,MAAwD,EACxD,IAA6B,EAC7B,IAAuC;IAEvC,MAAM,EAAE,GAA6B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QACxC,EAAE,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC;YACxC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtD,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,CAAC;AAClB,CAAC"}
|
package/dist/compile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAqC,KAAK,eAAe,EAA0B,MAAM,QAAQ,CAAC;AAqCzG,OAAO,KAAK,EACR,WAAW,EAIX,QAAQ,EAKX,MAAM,YAAY,CAAC;AA6gBpB,wBAAgB,OAAO,CACnB,QAAQ,EACR,OAAO,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAChC,MAAM,SAAS,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EACjD,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE7D,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EACrD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,GAC5B,eAAe,CAiDjB"}
|
package/dist/compile.js
CHANGED
|
@@ -1,80 +1,315 @@
|
|
|
1
1
|
// `compile` — lowers an `AgentConfig` tree into an XState machine.
|
|
2
2
|
//
|
|
3
3
|
// Spec: docs/specs/004-xstate-agent-wrapper.md §"Wrapper internals (compile.ts)"
|
|
4
|
-
//
|
|
4
|
+
// + spec 008 §Mapping (per-outcome final substates + compound onDone[]).
|
|
5
|
+
// Tasks: docs/specs/004-tasks.md Phase 5.16 (final emit).
|
|
5
6
|
// Spec 005: closes over a frozen `deps` reference and threads it to every
|
|
6
7
|
// build* helper. `deps` is NOT placed in XState context — it lives
|
|
7
8
|
// in callback closures, so `JSON.stringify(actor.getSnapshot().context)`
|
|
8
9
|
// returns only TContext (+ synthetic compound-local slots).
|
|
9
10
|
//
|
|
11
|
+
// Compound lowering (spec 008):
|
|
12
|
+
// - `CompoundMode.routes` is the same four-bucket shape `Mode.routes` uses;
|
|
13
|
+
// `retry: readonly []` is shape-only (compounds never bubble retry).
|
|
14
|
+
// - The compound's `onDone[]` is built from `cfg.routes` — one entry per
|
|
15
|
+
// bucket entry, in order. Achieved/abandoned use the same `buildExitTransition`
|
|
16
|
+
// the leaf uses; error needs a different builder because the error
|
|
17
|
+
// payload lives in `event.output.payload` (not `event.error`) once the
|
|
18
|
+
// leaf has already routed through `$end_error`.
|
|
19
|
+
// - Per-outcome final substates `$end_achieved` / `$end_abandoned` /
|
|
20
|
+
// `$end_error` are injected per compound, one per bucket that any child
|
|
21
|
+
// references. The final's `output` callback emits `{ outcome, payload }`
|
|
22
|
+
// for the parent compound's `onDone[]` dispatch.
|
|
23
|
+
// - Special case: when the compound omits `routes.error`, child END
|
|
24
|
+
// references in `routes.error` are rewritten to re-throw (matching the
|
|
25
|
+
// spec-005 "loud failure" default).
|
|
26
|
+
//
|
|
10
27
|
// This is the only file in `atlas` that calls `setup().createMachine`. It
|
|
11
|
-
// composes the toolkit slices built in 5.1–5.15:
|
|
28
|
+
// composes the toolkit slices built in 5.1–5.15 + the spec-008 additions:
|
|
12
29
|
// - validateTargets, validateRoutes (fail-fast at machine creation)
|
|
13
30
|
// - walk + actorName + buildActors (active-leaf actor map)
|
|
14
31
|
// - buildActions (named-actions map)
|
|
15
32
|
// - buildActiveState / buildPassiveState (per-leaf lowering, lift-aware)
|
|
16
|
-
// - contextLift
|
|
17
|
-
// - injectEnd
|
|
33
|
+
// - contextLift (LiftContext + entry/exit assigns)
|
|
34
|
+
// - injectEnd (per-outcome `$end_*` + bucket → name)
|
|
18
35
|
//
|
|
19
36
|
// `defineAgent` returns this value verbatim.
|
|
20
|
-
import { setup } from "xstate";
|
|
37
|
+
import { assign, setup } from "xstate";
|
|
21
38
|
import { buildActions } from "./buildActions.js";
|
|
22
|
-
import { buildActiveState } from "./buildActiveState.js";
|
|
39
|
+
import { buildActiveState, } from "./buildActiveState.js";
|
|
23
40
|
import { buildActors } from "./buildActors.js";
|
|
24
41
|
import { buildPassiveState } from "./buildPassiveState.js";
|
|
25
|
-
import { compoundLocalKey, makeCompoundEntry, makeCompoundExit, } from "./contextLift.js";
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
42
|
+
import { buildSubContext, compoundLocalKey, makeCompoundEntry, makeCompoundExit, } from "./contextLift.js";
|
|
43
|
+
import { END_ABANDONED, END_ACHIEVED, END_ERROR, bucketOf, isBucketSymbol, } from "./endBuckets.js";
|
|
44
|
+
import { collectEndBuckets, makeFinalSubstate, pickEndName, rewriteEndTargets, rewriteErrorBucketToReThrow, } from "./injectEnd.js";
|
|
45
|
+
import { END, RE_THROW } from "./types.js";
|
|
28
46
|
import { validateRoutes } from "./validateRoutes.js";
|
|
29
47
|
import { validateTargets } from "./validateTargets.js";
|
|
30
48
|
import { walk } from "./walk.js";
|
|
31
49
|
function asCarrier(value) {
|
|
32
50
|
return value;
|
|
33
51
|
}
|
|
34
|
-
// ──
|
|
52
|
+
// ── Lowered-state classifiers ────────────────────────────────────────
|
|
35
53
|
function isCompound(node) {
|
|
36
54
|
return "initial" in node && "states" in node;
|
|
37
55
|
}
|
|
38
56
|
function isFinal(node) {
|
|
39
57
|
return "type" in node && node.type === "final";
|
|
40
58
|
}
|
|
41
|
-
function
|
|
59
|
+
function isLeaf(node) {
|
|
60
|
+
return !isCompound(node) && !isFinal(node);
|
|
61
|
+
}
|
|
62
|
+
function isReadonlyArray(value) {
|
|
63
|
+
return Array.isArray(value);
|
|
64
|
+
}
|
|
65
|
+
// ── Bucket collection over any node at this level ────────────────────
|
|
66
|
+
//
|
|
67
|
+
// Leaves expose buckets via `injectEnd.collectEndBuckets`. Compound nodes
|
|
68
|
+
// expose buckets via their own `onDone[]` entries (sentinels chain upward
|
|
69
|
+
// through nested compounds). Final states never carry sentinels.
|
|
70
|
+
function collectBucketsForNode(node) {
|
|
42
71
|
if (isFinal(node))
|
|
43
|
-
return
|
|
44
|
-
if (
|
|
45
|
-
return node
|
|
72
|
+
return new Set();
|
|
73
|
+
if (isLeaf(node))
|
|
74
|
+
return collectEndBuckets(node);
|
|
75
|
+
const out = new Set();
|
|
76
|
+
if (node.onDone === undefined)
|
|
77
|
+
return out;
|
|
78
|
+
for (const t of node.onDone) {
|
|
79
|
+
if (isBucketSymbol(t.target))
|
|
80
|
+
out.add(t.target);
|
|
46
81
|
}
|
|
47
|
-
return
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
function rewriteCompoundOnDone(node, nameByBucket) {
|
|
85
|
+
if (node.onDone === undefined)
|
|
86
|
+
return node;
|
|
87
|
+
const onDone = node.onDone.map((t) => {
|
|
88
|
+
if (!isBucketSymbol(t.target))
|
|
89
|
+
return t;
|
|
90
|
+
const name = nameByBucket.get(t.target);
|
|
91
|
+
if (name === undefined)
|
|
92
|
+
return t;
|
|
93
|
+
return { ...t, target: name };
|
|
94
|
+
});
|
|
95
|
+
return { ...node, onDone };
|
|
48
96
|
}
|
|
49
|
-
function
|
|
97
|
+
function rewriteNodeBuckets(node, nameByBucket) {
|
|
50
98
|
if (isFinal(node))
|
|
51
99
|
return node;
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
|
|
100
|
+
if (isLeaf(node))
|
|
101
|
+
return rewriteEndTargets(node, nameByBucket);
|
|
102
|
+
return rewriteCompoundOnDone(node, nameByBucket);
|
|
103
|
+
}
|
|
104
|
+
// Apply `rewriteErrorBucketToReThrow` to every leaf whose `invoke.onError`
|
|
105
|
+
// references `END_ERROR`. Only used when the enclosing compound omits
|
|
106
|
+
// `routes.error` — converts the bucket sentinel into a target-less throw.
|
|
107
|
+
function rewriteErrorBucketAtLevel(states) {
|
|
108
|
+
const out = {};
|
|
109
|
+
for (const [name, node] of Object.entries(states)) {
|
|
110
|
+
if (isLeaf(node)) {
|
|
111
|
+
out[name] = rewriteErrorBucketToReThrow(node);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
out[name] = node;
|
|
55
115
|
}
|
|
56
|
-
return node;
|
|
57
116
|
}
|
|
58
|
-
return
|
|
117
|
+
return out;
|
|
59
118
|
}
|
|
60
|
-
|
|
61
|
-
|
|
119
|
+
// ── Per-outcome `$end_*` injection ───────────────────────────────────
|
|
120
|
+
//
|
|
121
|
+
// Walks the level's states, collects bucket sentinels referenced anywhere,
|
|
122
|
+
// picks a final-substate name per distinct bucket, rewrites every sentinel
|
|
123
|
+
// to its name, and injects the final substates with their `output`
|
|
124
|
+
// callbacks. `outputCb` (the compound's user-declared `output?`) is woven
|
|
125
|
+
// into the non-error finals; the error final's payload is the raw error.
|
|
126
|
+
//
|
|
127
|
+
// At the agent root: `outputCb` and `lift` are both `undefined` (the agent
|
|
128
|
+
// itself has no `output?` callback and no enclosing lift).
|
|
129
|
+
function injectEndAtLevel(states, outputCb, lift, deps) {
|
|
130
|
+
const buckets = new Set();
|
|
62
131
|
for (const node of Object.values(states)) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
132
|
+
for (const b of collectBucketsForNode(node))
|
|
133
|
+
buckets.add(b);
|
|
67
134
|
}
|
|
68
|
-
if (
|
|
135
|
+
if (buckets.size === 0)
|
|
69
136
|
return states;
|
|
70
|
-
const
|
|
137
|
+
const nameByBucket = new Map();
|
|
138
|
+
const siblings = new Set(Object.keys(states));
|
|
139
|
+
for (const b of buckets) {
|
|
140
|
+
const name = pickEndName(bucketOf(b), Array.from(siblings));
|
|
141
|
+
nameByBucket.set(b, name);
|
|
142
|
+
siblings.add(name);
|
|
143
|
+
}
|
|
71
144
|
const rewritten = {};
|
|
72
145
|
for (const [name, node] of Object.entries(states)) {
|
|
73
|
-
rewritten[name] =
|
|
146
|
+
rewritten[name] = rewriteNodeBuckets(node, nameByBucket);
|
|
147
|
+
}
|
|
148
|
+
for (const [bucket, name] of nameByBucket) {
|
|
149
|
+
rewritten[name] = makeFinalSubstate(bucketOf(bucket), outputCb, lift, deps);
|
|
74
150
|
}
|
|
75
|
-
rewritten[endName] = END_SUBSTATE;
|
|
76
151
|
return rewritten;
|
|
77
152
|
}
|
|
153
|
+
// ── Compound onDone[] builders ───────────────────────────────────────
|
|
154
|
+
// Compound onDone[] guard. The compound dispatches against the
|
|
155
|
+
// `{ outcome, payload }` shape its `$end_*` finals emit. `outcomeKey` is
|
|
156
|
+
// the bucket the entry belongs to (achieved/abandoned/error); `payload`
|
|
157
|
+
// is whatever the compound's `output?` produced for achieved/abandoned, or
|
|
158
|
+
// the raw error for the error bucket.
|
|
159
|
+
function makeCompoundOutcomeGuard(outcomeKey, userWhen) {
|
|
160
|
+
return ({ event }) => {
|
|
161
|
+
const out = event
|
|
162
|
+
.output;
|
|
163
|
+
if (out === undefined)
|
|
164
|
+
return false;
|
|
165
|
+
if (out.outcome !== outcomeKey)
|
|
166
|
+
return false;
|
|
167
|
+
if (userWhen === undefined)
|
|
168
|
+
return true;
|
|
169
|
+
return userWhen(out.payload);
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
// Wrap a user `assign({ context, payload, deps })` for a compound exit
|
|
173
|
+
// entry. Differs from the leaf-level `wrapAssign` only in that it always
|
|
174
|
+
// reads payload from `event.output.payload` — the compound is dispatching
|
|
175
|
+
// against the final substate's emitted `{ outcome, payload }` shape.
|
|
176
|
+
//
|
|
177
|
+
// `lift` here is the **parent** lift, because the compound's routes
|
|
178
|
+
// execute in the parent's scope (the compound's own context has already
|
|
179
|
+
// been torn down by `makeCompoundExit` by the time the parent's onDone
|
|
180
|
+
// fires).
|
|
181
|
+
function wrapCompoundExitAssign(userAssign, parentLift, deps) {
|
|
182
|
+
if (parentLift !== undefined) {
|
|
183
|
+
return assign(({ context, event }) => {
|
|
184
|
+
const root = context;
|
|
185
|
+
const sub = buildSubContext(root, parentLift);
|
|
186
|
+
const output = event.output;
|
|
187
|
+
return splitUserUpdateForParentLift(userAssign({ context: sub, payload: output.payload, deps }), root, parentLift);
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return assign(({ context, event }) => {
|
|
191
|
+
const output = event.output;
|
|
192
|
+
return userAssign({ context, payload: output.payload, deps });
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
// Compound error entry → onDone[] transition. Differs from
|
|
196
|
+
// `wrapCompoundExitAssign` in that `error` is passed as a named argument
|
|
197
|
+
// (matching `ErrorEntry.assign`'s signature) and is read from
|
|
198
|
+
// `event.output.payload` (the error was hoisted by `$end_error`).
|
|
199
|
+
function wrapCompoundErrorAssign(userAssign, parentLift, deps) {
|
|
200
|
+
if (parentLift !== undefined) {
|
|
201
|
+
return assign(({ context, event }) => {
|
|
202
|
+
const root = context;
|
|
203
|
+
const sub = buildSubContext(root, parentLift);
|
|
204
|
+
const error = event.output.payload;
|
|
205
|
+
return splitUserUpdateForParentLift(userAssign({ context: sub, error, deps }), root, parentLift);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return assign(({ context, event }) => {
|
|
209
|
+
const error = event.output.payload;
|
|
210
|
+
return userAssign({ context, error, deps });
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
// Mirrors `splitUserUpdate` in contextLift.ts but is private to compile.ts
|
|
214
|
+
// because the compound's exit/error assigns live here (not in
|
|
215
|
+
// buildActiveState). Keeping a slim duplicate avoids exporting the helper
|
|
216
|
+
// across module boundaries for one caller.
|
|
217
|
+
function splitUserUpdateForParentLift(update, rootContext, lift) {
|
|
218
|
+
const ownLocals = Object.keys(lift.initialLocal);
|
|
219
|
+
const rootPatch = {};
|
|
220
|
+
const slotPatches = {};
|
|
221
|
+
function touchSlot(slotKey, k, v) {
|
|
222
|
+
const existing = slotPatches[slotKey] ?? {};
|
|
223
|
+
existing[k] = v;
|
|
224
|
+
slotPatches[slotKey] = existing;
|
|
225
|
+
}
|
|
226
|
+
function findInheritOwner(key, parent) {
|
|
227
|
+
if (parent === undefined)
|
|
228
|
+
return { kind: "root" };
|
|
229
|
+
if (Object.keys(parent.initialLocal).includes(key)) {
|
|
230
|
+
return { kind: "slot", slotKey: parent.key };
|
|
231
|
+
}
|
|
232
|
+
return findInheritOwner(key, parent.parent);
|
|
233
|
+
}
|
|
234
|
+
for (const [k, v] of Object.entries(update)) {
|
|
235
|
+
if (ownLocals.includes(k)) {
|
|
236
|
+
touchSlot(lift.key, k, v);
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (lift.inherit.includes(k)) {
|
|
240
|
+
const owner = findInheritOwner(k, lift.parent);
|
|
241
|
+
if (owner.kind === "root") {
|
|
242
|
+
rootPatch[k] = v;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
touchSlot(owner.slotKey, k, v);
|
|
246
|
+
}
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
for (const [slotKey, patch] of Object.entries(slotPatches)) {
|
|
251
|
+
const current = (rootContext[slotKey] ?? {});
|
|
252
|
+
rootPatch[slotKey] = { ...current, ...patch };
|
|
253
|
+
}
|
|
254
|
+
return rootPatch;
|
|
255
|
+
}
|
|
256
|
+
function normalizeExitEntries(entry) {
|
|
257
|
+
return isReadonlyArray(entry) ? entry : [entry];
|
|
258
|
+
}
|
|
259
|
+
function normalizeErrorEntries(entry) {
|
|
260
|
+
return isReadonlyArray(entry) ? entry : [entry];
|
|
261
|
+
}
|
|
262
|
+
function bucketTargetForCompoundExit(target, outcomeKey) {
|
|
263
|
+
if (target !== END)
|
|
264
|
+
return target;
|
|
265
|
+
return outcomeKey === "achieved" ? END_ACHIEVED : END_ABANDONED;
|
|
266
|
+
}
|
|
267
|
+
function buildCompoundExitOnDone(outcomeKey, entry, parentLift, deps) {
|
|
268
|
+
const transition = {
|
|
269
|
+
guard: makeCompoundOutcomeGuard(outcomeKey, entry.when),
|
|
270
|
+
target: bucketTargetForCompoundExit(entry.target, outcomeKey),
|
|
271
|
+
};
|
|
272
|
+
if (entry.assign !== undefined) {
|
|
273
|
+
transition.actions = wrapCompoundExitAssign(entry.assign, parentLift, deps);
|
|
274
|
+
}
|
|
275
|
+
return transition;
|
|
276
|
+
}
|
|
277
|
+
function buildCompoundErrorOnDone(entry, parentLift, deps) {
|
|
278
|
+
const guard = makeCompoundOutcomeGuard("error", entry.when);
|
|
279
|
+
if (entry.target === RE_THROW) {
|
|
280
|
+
// Throw the error captured in event.output.payload. The user's
|
|
281
|
+
// `assign` is dropped — same convention as the leaf RE_THROW path.
|
|
282
|
+
return {
|
|
283
|
+
guard,
|
|
284
|
+
actions: assign(({ event }) => {
|
|
285
|
+
throw event.output.payload;
|
|
286
|
+
}),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
const transition = {
|
|
290
|
+
guard,
|
|
291
|
+
target: entry.target === END ? END_ERROR : entry.target,
|
|
292
|
+
};
|
|
293
|
+
if (entry.assign !== undefined) {
|
|
294
|
+
transition.actions = wrapCompoundErrorAssign(entry.assign, parentLift, deps);
|
|
295
|
+
}
|
|
296
|
+
return transition;
|
|
297
|
+
}
|
|
298
|
+
function buildCompoundOnDone(routes, parentLift, deps) {
|
|
299
|
+
const out = [];
|
|
300
|
+
for (const entry of normalizeExitEntries(routes.achieved)) {
|
|
301
|
+
out.push(buildCompoundExitOnDone("achieved", entry, parentLift, deps));
|
|
302
|
+
}
|
|
303
|
+
for (const entry of normalizeExitEntries(routes.abandoned)) {
|
|
304
|
+
out.push(buildCompoundExitOnDone("abandoned", entry, parentLift, deps));
|
|
305
|
+
}
|
|
306
|
+
if (routes.error !== undefined) {
|
|
307
|
+
for (const entry of normalizeErrorEntries(routes.error)) {
|
|
308
|
+
out.push(buildCompoundErrorOnDone(entry, parentLift, deps));
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return out;
|
|
312
|
+
}
|
|
78
313
|
// ── Recursive mode-map lowering ──────────────────────────────────────
|
|
79
314
|
function joinPath(parent, name) {
|
|
80
315
|
return parent === "" ? name : `${parent}.${name}`;
|
|
@@ -112,12 +347,29 @@ function buildStatesMap(modes, parentLift, parentPath, deps) {
|
|
|
112
347
|
ownEntry = makeCompoundEntry(newLift);
|
|
113
348
|
ownExit = makeCompoundExit(newLift);
|
|
114
349
|
}
|
|
350
|
+
// 1. Lower the compound's children (with the compound-local lift if
|
|
351
|
+
// any). The children may contain bucket sentinels that need this
|
|
352
|
+
// compound's `$end_*` injection to resolve.
|
|
115
353
|
const childStatesRaw = buildStatesMap(cfg.modes, childLift, path, deps);
|
|
116
|
-
|
|
354
|
+
// 2. If this compound omits `routes.error`, child END references in
|
|
355
|
+
// `routes.error` must re-throw above this compound (spec 008
|
|
356
|
+
// line 87). Rewrite those leaf transitions before the injection
|
|
357
|
+
// pass so the `error` bucket isn't injected as a final.
|
|
358
|
+
const childStatesAfterErrorFixup = cfg.routes.error === undefined
|
|
359
|
+
? rewriteErrorBucketAtLevel(childStatesRaw)
|
|
360
|
+
: childStatesRaw;
|
|
361
|
+
// 3. Inject per-outcome `$end_*` finals. `outputCb` and `childLift`
|
|
362
|
+
// are this compound's own — the finals' `output` callbacks run
|
|
363
|
+
// inside this compound, with the compound-effective context view.
|
|
364
|
+
const childStates = injectEndAtLevel(childStatesAfterErrorFixup, cfg.output, childLift, deps);
|
|
365
|
+
// 4. Build this compound's `onDone[]` from `cfg.routes`. Targets/
|
|
366
|
+
// assigns execute in the **parent** scope (after this compound
|
|
367
|
+
// exits), so use `parentLift` for the wrapping.
|
|
368
|
+
const onDone = buildCompoundOnDone(cfg.routes, parentLift, deps);
|
|
117
369
|
const compound = {
|
|
118
370
|
initial: cfg.initial,
|
|
119
371
|
states: childStates,
|
|
120
|
-
onDone
|
|
372
|
+
onDone,
|
|
121
373
|
};
|
|
122
374
|
if (ownEntry !== undefined)
|
|
123
375
|
compound.entry = ownEntry;
|
|
@@ -141,7 +393,11 @@ export function compile(config, frozenDeps) {
|
|
|
141
393
|
const actors = buildActors(slots, deps);
|
|
142
394
|
const actions = buildActions(config.actions, deps);
|
|
143
395
|
const lowered = buildStatesMap(rawModes, undefined, "", deps);
|
|
144
|
-
|
|
396
|
+
// Root-level injection: no enclosing compound → no `output?` callback,
|
|
397
|
+
// no lift. Children that bubble END at the agent root land in
|
|
398
|
+
// `$end_*` finals at the agent level (the actor reaches a top-level
|
|
399
|
+
// final state).
|
|
400
|
+
const finalStates = injectEndAtLevel(lowered, undefined, undefined, deps);
|
|
145
401
|
// The wrapper's type contract was discharged at the user's call site
|
|
146
402
|
// (defineMode / defineCompoundMode / defineAgent). At this internal layer
|
|
147
403
|
// every shape is `unknown`-typed by construction. XState's `setup` types
|
package/dist/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
|
package/dist/contextLift.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type LiftContext = {
|
|
|
6
6
|
readonly parent?: LiftContext;
|
|
7
7
|
};
|
|
8
8
|
export declare function compoundLocalKey(path: string): string;
|
|
9
|
+
export declare function buildSubContext(rootContext: Record<string, unknown>, lift: LiftContext): Record<string, unknown>;
|
|
9
10
|
export declare function liftInput(userInput: (args: {
|
|
10
11
|
context: unknown;
|
|
11
12
|
deps: Readonly<Record<string, unknown>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextLift.d.ts","sourceRoot":"","sources":["../src/contextLift.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CACjC,CAAC;AAOF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;
|
|
1
|
+
{"version":3,"file":"contextLift.d.ts","sourceRoot":"","sources":["../src/contextLift.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CACjC,CAAC;AAOF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAmBD,wBAAgB,eAAe,CAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,IAAI,EAAE,WAAW,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AA+DD,wBAAgB,SAAS,CACrB,SAAS,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,KAAK,OAAO,EAC3F,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAKzC;AAKD,wBAAgB,cAAc,CAC1B,UAAU,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,KAAK,MAAM,EAC7G,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,UAAU,CAAC,OAAO,MAAM,CAAC,CAQ3B;AAGD,wBAAgB,eAAe,CAC3B,UAAU,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,KAAK,MAAM,EAC3G,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,UAAU,CAAC,OAAO,MAAM,CAAC,CAQ3B;AAGD,wBAAgB,SAAS,CACrB,SAAS,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,KAAK,OAAO,EAC3G,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAKzD;AAOD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAI9E;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAI7E"}
|
package/dist/contextLift.js
CHANGED
|
@@ -50,7 +50,7 @@ function buildParentView(rootContext, parent) {
|
|
|
50
50
|
}
|
|
51
51
|
// Build the virtual subContext a child callback sees: inherit keys read
|
|
52
52
|
// from the parent view (live), local keys read from this compound's slot.
|
|
53
|
-
function buildSubContext(rootContext, lift) {
|
|
53
|
+
export function buildSubContext(rootContext, lift) {
|
|
54
54
|
const parentView = buildParentView(rootContext, lift.parent);
|
|
55
55
|
const sub = {};
|
|
56
56
|
for (const k of lift.inherit) {
|