@sharpee/story-loader 3.0.0 → 3.3.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/chain-map.d.ts +40 -0
- package/chain-map.d.ts.map +1 -0
- package/chain-map.js +39 -0
- package/chain-map.js.map +1 -0
- package/evaluator.d.ts +16 -0
- package/evaluator.d.ts.map +1 -1
- package/evaluator.js +59 -23
- package/evaluator.js.map +1 -1
- package/event-contract.d.ts +18 -0
- package/event-contract.d.ts.map +1 -1
- package/event-contract.js +28 -1
- package/event-contract.js.map +1 -1
- package/event-id-map.d.ts +42 -0
- package/event-id-map.d.ts.map +1 -0
- package/event-id-map.js +62 -0
- package/event-id-map.js.map +1 -0
- package/extension-registry.d.ts +54 -0
- package/extension-registry.d.ts.map +1 -0
- package/extension-registry.js +70 -0
- package/extension-registry.js.map +1 -0
- package/index.d.ts +9 -7
- package/index.d.ts.map +1 -1
- package/index.js +28 -25
- package/index.js.map +1 -1
- package/loader.d.ts +132 -5
- package/loader.d.ts.map +1 -1
- package/loader.js +1008 -109
- package/loader.js.map +1 -1
- package/message-alias-map.d.ts +25 -0
- package/message-alias-map.d.ts.map +1 -0
- package/message-alias-map.js +836 -0
- package/message-alias-map.js.map +1 -0
- package/package.json +11 -9
- package/phrasebook-data.d.ts +27 -0
- package/phrasebook-data.d.ts.map +1 -0
- package/phrasebook-data.js +6 -0
- package/phrasebook-data.js.map +1 -0
- package/runtime.d.ts +158 -19
- package/runtime.d.ts.map +1 -1
- package/runtime.js +846 -169
- package/runtime.js.map +1 -1
package/chain-map.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* chain-map.ts — Chord chain-alias → platform chain registration (ADR-094 + the
|
|
3
|
+
* `define chain … from` hatch).
|
|
4
|
+
*
|
|
5
|
+
* Purpose: a Chord author replaces a stdlib event chain by its curated kebab
|
|
6
|
+
* alias (`define chain opened-revealed from "./reveal.ts"`); the compiler keeps
|
|
7
|
+
* the alias platform-free (validated against `STDLIB_CHAIN_NAMES` in chord's
|
|
8
|
+
* catalog). This module is the single place that knows the dotted platform
|
|
9
|
+
* facts — the chain KEY (so the author's handler REPLACES the stdlib one via
|
|
10
|
+
* `world.chainEvent`, same key), the TRIGGER event type, and the stdlib PRIORITY.
|
|
11
|
+
*
|
|
12
|
+
* Public interface: `resolveChain(alias)`. `CHORD_CHAIN_MAP` is exported for the
|
|
13
|
+
* conformance test, which pins the key against stdlib's `OPENED_REVEALED_CHAIN_KEY`.
|
|
14
|
+
*
|
|
15
|
+
* Owner context: @sharpee/story-loader (Chord-IR → platform bindings), the same
|
|
16
|
+
* Interface-Contract seam as `event-id-map.ts` / `message-alias-map.ts`.
|
|
17
|
+
*/
|
|
18
|
+
/** The platform registration for one replaceable stdlib chain. */
|
|
19
|
+
export interface ChainRegistration {
|
|
20
|
+
/** Dotted platform chain key — matching it makes the hatch REPLACE the stdlib chain. */
|
|
21
|
+
key: string;
|
|
22
|
+
/** The event type the chain fires on (`world.chainEvent` trigger). */
|
|
23
|
+
trigger: string;
|
|
24
|
+
/** The stdlib priority for this chain (kept identical so replacement is in-place). */
|
|
25
|
+
priority: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Chord chain alias (dotless, as authored + validated by chord's `STDLIB_CHAIN_NAMES`)
|
|
29
|
+
* → its platform registration. One stdlib chain exists today (ADR-094 opened→revealed);
|
|
30
|
+
* the conformance test pins `opened-revealed`'s key against `OPENED_REVEALED_CHAIN_KEY`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const CHORD_CHAIN_MAP: Readonly<Record<string, ChainRegistration>>;
|
|
33
|
+
/**
|
|
34
|
+
* Resolve a Chord chain alias to its platform registration.
|
|
35
|
+
* @param alias the dotless chain alias from a `define chain` hatch
|
|
36
|
+
* @returns the `{ key, trigger, priority }`, or undefined for an unknown alias
|
|
37
|
+
* (the chord analyzer's `analysis.unknown-chain` gate catches this first)
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveChain(alias: string): ChainRegistration | undefined;
|
|
40
|
+
//# sourceMappingURL=chain-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-map.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/chain-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEvE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEzE"}
|
package/chain-map.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* chain-map.ts — Chord chain-alias → platform chain registration (ADR-094 + the
|
|
4
|
+
* `define chain … from` hatch).
|
|
5
|
+
*
|
|
6
|
+
* Purpose: a Chord author replaces a stdlib event chain by its curated kebab
|
|
7
|
+
* alias (`define chain opened-revealed from "./reveal.ts"`); the compiler keeps
|
|
8
|
+
* the alias platform-free (validated against `STDLIB_CHAIN_NAMES` in chord's
|
|
9
|
+
* catalog). This module is the single place that knows the dotted platform
|
|
10
|
+
* facts — the chain KEY (so the author's handler REPLACES the stdlib one via
|
|
11
|
+
* `world.chainEvent`, same key), the TRIGGER event type, and the stdlib PRIORITY.
|
|
12
|
+
*
|
|
13
|
+
* Public interface: `resolveChain(alias)`. `CHORD_CHAIN_MAP` is exported for the
|
|
14
|
+
* conformance test, which pins the key against stdlib's `OPENED_REVEALED_CHAIN_KEY`.
|
|
15
|
+
*
|
|
16
|
+
* Owner context: @sharpee/story-loader (Chord-IR → platform bindings), the same
|
|
17
|
+
* Interface-Contract seam as `event-id-map.ts` / `message-alias-map.ts`.
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.CHORD_CHAIN_MAP = void 0;
|
|
21
|
+
exports.resolveChain = resolveChain;
|
|
22
|
+
/**
|
|
23
|
+
* Chord chain alias (dotless, as authored + validated by chord's `STDLIB_CHAIN_NAMES`)
|
|
24
|
+
* → its platform registration. One stdlib chain exists today (ADR-094 opened→revealed);
|
|
25
|
+
* the conformance test pins `opened-revealed`'s key against `OPENED_REVEALED_CHAIN_KEY`.
|
|
26
|
+
*/
|
|
27
|
+
exports.CHORD_CHAIN_MAP = {
|
|
28
|
+
'opened-revealed': { key: 'stdlib.chain.opened-revealed', trigger: 'if.event.opened', priority: 100 },
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a Chord chain alias to its platform registration.
|
|
32
|
+
* @param alias the dotless chain alias from a `define chain` hatch
|
|
33
|
+
* @returns the `{ key, trigger, priority }`, or undefined for an unknown alias
|
|
34
|
+
* (the chord analyzer's `analysis.unknown-chain` gate catches this first)
|
|
35
|
+
*/
|
|
36
|
+
function resolveChain(alias) {
|
|
37
|
+
return exports.CHORD_CHAIN_MAP[alias];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=chain-map.js.map
|
package/chain-map.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-map.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/chain-map.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AA2BH,oCAEC;AAjBD;;;;GAIG;AACU,QAAA,eAAe,GAAgD;IAC1E,iBAAiB,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE;CACtG,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,uBAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
package/evaluator.d.ts
CHANGED
|
@@ -56,6 +56,15 @@ export declare class Evaluator {
|
|
|
56
56
|
*/
|
|
57
57
|
private readonly irEntities;
|
|
58
58
|
private readonly irEntityById;
|
|
59
|
+
/**
|
|
60
|
+
* Live client-capability source for `client has` (ADR-216) — set by the
|
|
61
|
+
* loader at engine-ready from the engine's negotiated capabilities.
|
|
62
|
+
* Null (load time, headless tests) means the text-only default: every
|
|
63
|
+
* gateable flag reads false.
|
|
64
|
+
*/
|
|
65
|
+
private capabilitiesProvider;
|
|
66
|
+
/** Wire the live capability source (loader-only; ADR-216). */
|
|
67
|
+
setCapabilitiesProvider(provider: () => Record<string, unknown> | undefined): void;
|
|
59
68
|
constructor(ir: StoryIR, ids: EntityIdResolver, seed?: number);
|
|
60
69
|
evalCondition(cond: IRCondition, ctx: EvalContext): boolean;
|
|
61
70
|
private evalPredicate;
|
|
@@ -98,5 +107,12 @@ export declare class Evaluator {
|
|
|
98
107
|
* resume the stream (AC-6).
|
|
99
108
|
*/
|
|
100
109
|
private drawChance;
|
|
110
|
+
/**
|
|
111
|
+
* Pick a 0-based index in [0, n) through the seeded story RNG (the same
|
|
112
|
+
* world-state seed chain `chance` uses — deterministic under a fixed
|
|
113
|
+
* seed, AC-5 class). Used by `randomly`/`sticky` phrase selection at
|
|
114
|
+
* point of use (ADR-240's live blocked-message resolution).
|
|
115
|
+
*/
|
|
116
|
+
pickIndex(n: number, world: WorldModel): number;
|
|
101
117
|
}
|
|
102
118
|
//# sourceMappingURL=evaluator.d.ts.map
|
package/evaluator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAQL,UAAU,EACX,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,8EAA8E;IAC9E,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAQL,UAAU,EACX,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,8EAA8E;IAC9E,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,SAAS;IA+BlB,OAAO,CAAC,QAAQ,CAAC,GAAG;IA9BtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAE/D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAE5D;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB,CAA4D;IAExF,8DAA8D;IAC9D,uBAAuB,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI;gBAKhF,EAAE,EAAE,OAAO,EACM,GAAG,EAAE,gBAAgB,EACtC,IAAI,CAAC,EAAE,MAAM;IAgBf,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAkD3D,OAAO,CAAC,aAAa;IA2ErB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IA0CpD,yDAAyD;IACzD,OAAO,CAAC,cAAc;IAMtB,iFAAiF;IACjF,OAAO,CAAC,SAAS;IAOjB;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE;IAOnD,0DAA0D;IAC1D,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM;IAQrD,OAAO,CAAC,SAAS;IA4BjB,+EAA+E;IAC/E,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,cAAc;IAMtB,oEAAoE;IACpE,OAAO,CAAC,QAAQ;IAShB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IASlB;;;;;OAKG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM;CAOhD"}
|
package/evaluator.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Evaluator = void 0;
|
|
4
4
|
const core_1 = require("@sharpee/core");
|
|
5
5
|
const world_model_1 = require("@sharpee/world-model");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const errors_js_1 = require("./errors.js");
|
|
7
|
+
const state_keys_js_1 = require("./state-keys.js");
|
|
8
8
|
class Evaluator {
|
|
9
9
|
ids;
|
|
10
10
|
conditions = new Map();
|
|
@@ -19,6 +19,17 @@ class Evaluator {
|
|
|
19
19
|
*/
|
|
20
20
|
irEntities;
|
|
21
21
|
irEntityById = new Map();
|
|
22
|
+
/**
|
|
23
|
+
* Live client-capability source for `client has` (ADR-216) — set by the
|
|
24
|
+
* loader at engine-ready from the engine's negotiated capabilities.
|
|
25
|
+
* Null (load time, headless tests) means the text-only default: every
|
|
26
|
+
* gateable flag reads false.
|
|
27
|
+
*/
|
|
28
|
+
capabilitiesProvider = null;
|
|
29
|
+
/** Wire the live capability source (loader-only; ADR-216). */
|
|
30
|
+
setCapabilitiesProvider(provider) {
|
|
31
|
+
this.capabilitiesProvider = provider;
|
|
32
|
+
}
|
|
22
33
|
constructor(ir, ids, seed) {
|
|
23
34
|
this.ids = ids;
|
|
24
35
|
for (const c of ir.conditions)
|
|
@@ -45,12 +56,22 @@ class Evaluator {
|
|
|
45
56
|
case 'condition': {
|
|
46
57
|
const named = this.conditions.get(cond.name);
|
|
47
58
|
if (!named)
|
|
48
|
-
throw new
|
|
59
|
+
throw new errors_js_1.LoadError(`Unknown condition \`${cond.name}\` at evaluation time.`);
|
|
49
60
|
return this.evalCondition(named, ctx);
|
|
50
61
|
}
|
|
51
62
|
case 'story-state':
|
|
52
63
|
// The story object's phase (`while after-hours`, ratchet D2).
|
|
53
|
-
return ctx.world.getStateValue(
|
|
64
|
+
return ctx.world.getStateValue(state_keys_js_1.CHORD_STORY_STATE_KEY) === cond.state;
|
|
65
|
+
case 'client-has': {
|
|
66
|
+
// ADR-216: the live negotiated client capability. Without a
|
|
67
|
+
// provider (load time, headless tests) the engine's text-only
|
|
68
|
+
// default applies: only `text` is true, and `text` cannot be
|
|
69
|
+
// written in a `client has` (the compiler's closed flag set).
|
|
70
|
+
const capabilities = this.capabilitiesProvider?.();
|
|
71
|
+
if (!capabilities)
|
|
72
|
+
return false;
|
|
73
|
+
return capabilities[cond.capability] === true;
|
|
74
|
+
}
|
|
54
75
|
case 'any-of':
|
|
55
76
|
// E1 (ratchet 2026-07-12): true iff some entity satisfies the
|
|
56
77
|
// named open condition; false over the empty set. Short-circuits.
|
|
@@ -161,12 +182,13 @@ class Evaluator {
|
|
|
161
182
|
const entity = ctx.world.getEntity(subject);
|
|
162
183
|
if (entity) {
|
|
163
184
|
if (symbol === 'dark') {
|
|
164
|
-
|
|
165
|
-
|
|
185
|
+
// Effective darkness is owned by VisibilityBehavior — it also accounts
|
|
186
|
+
// for a carried lit light source — never the raw `requiresLight` field.
|
|
187
|
+
return world_model_1.VisibilityBehavior.isDark(entity, ctx.world);
|
|
166
188
|
}
|
|
167
189
|
const irId = this.ids.irIdOf(subject);
|
|
168
190
|
if (irId !== undefined) {
|
|
169
|
-
const state = ctx.world.getStateValue(
|
|
191
|
+
const state = ctx.world.getStateValue(state_keys_js_1.CHORD_STATE_PREFIX + irId);
|
|
170
192
|
if (state !== undefined && state === symbol)
|
|
171
193
|
return true;
|
|
172
194
|
}
|
|
@@ -233,25 +255,25 @@ class Evaluator {
|
|
|
233
255
|
return this.playerId(ctx.world);
|
|
234
256
|
case 'it': {
|
|
235
257
|
if (!ctx.it)
|
|
236
|
-
throw new
|
|
258
|
+
throw new errors_js_1.LoadError('`it` used outside an entity-scoped clause.');
|
|
237
259
|
return this.requireWorldId(ctx.it);
|
|
238
260
|
}
|
|
239
261
|
case 'story':
|
|
240
262
|
// The story object is not an entity — only `change` targets it.
|
|
241
|
-
throw new
|
|
263
|
+
throw new errors_js_1.LoadError('The story object has no entity value — use `change the story to <state>`.');
|
|
242
264
|
case 'entity':
|
|
243
265
|
return this.requireWorldId(value.id);
|
|
244
266
|
case 'field': {
|
|
245
267
|
const base = this.evalValue(value.base, ctx);
|
|
246
268
|
if (typeof base !== 'string') {
|
|
247
|
-
throw new
|
|
269
|
+
throw new errors_js_1.LoadError(`Cannot read \`${value.field}\` of a non-entity value.`);
|
|
248
270
|
}
|
|
249
271
|
return this.readField(base, value.field, ctx);
|
|
250
272
|
}
|
|
251
273
|
case 'slot': {
|
|
252
274
|
const bound = ctx.slots?.[value.name];
|
|
253
275
|
if (!bound) {
|
|
254
|
-
throw new
|
|
276
|
+
throw new errors_js_1.LoadError(`Context value \`${value.name}\` is not bound here.`);
|
|
255
277
|
}
|
|
256
278
|
return bound;
|
|
257
279
|
}
|
|
@@ -259,7 +281,7 @@ class Evaluator {
|
|
|
259
281
|
// The `each`-block binder (ratchet E3) — the analyzer's
|
|
260
282
|
// match-outside-each gate makes an unbound read a loader bug.
|
|
261
283
|
if (!ctx.match)
|
|
262
|
-
throw new
|
|
284
|
+
throw new errors_js_1.LoadError('`the match` used outside an `each` block.');
|
|
263
285
|
return this.requireWorldId(ctx.match);
|
|
264
286
|
}
|
|
265
287
|
}
|
|
@@ -269,7 +291,7 @@ class Evaluator {
|
|
|
269
291
|
namedCondition(name) {
|
|
270
292
|
const named = this.conditions.get(name);
|
|
271
293
|
if (!named)
|
|
272
|
-
throw new
|
|
294
|
+
throw new errors_js_1.LoadError(`Unknown condition \`${name}\` at evaluation time.`);
|
|
273
295
|
return named;
|
|
274
296
|
}
|
|
275
297
|
/** True when some domain entity satisfies the open condition (short-circuit). */
|
|
@@ -292,7 +314,7 @@ class Evaluator {
|
|
|
292
314
|
entityValue(value, ctx) {
|
|
293
315
|
const result = this.evalValue(value, ctx);
|
|
294
316
|
if (typeof result !== 'string' || !ctx.world.getEntity(result)) {
|
|
295
|
-
throw new
|
|
317
|
+
throw new errors_js_1.LoadError(`Expected an entity, got \`${String(result)}\`.`);
|
|
296
318
|
}
|
|
297
319
|
return result;
|
|
298
320
|
}
|
|
@@ -303,8 +325,8 @@ class Evaluator {
|
|
|
303
325
|
case 'state': {
|
|
304
326
|
const irId = this.ids.irIdOf(worldId);
|
|
305
327
|
if (irId === undefined)
|
|
306
|
-
throw new
|
|
307
|
-
return ctx.world.getStateValue(
|
|
328
|
+
throw new errors_js_1.LoadError('Cannot read `state` of a non-story entity.');
|
|
329
|
+
return ctx.world.getStateValue(state_keys_js_1.CHORD_STATE_PREFIX + irId);
|
|
308
330
|
}
|
|
309
331
|
default: {
|
|
310
332
|
// Chord trait data fields (Phase B): stored as own properties on
|
|
@@ -321,7 +343,7 @@ class Evaluator {
|
|
|
321
343
|
}
|
|
322
344
|
return value.value;
|
|
323
345
|
}
|
|
324
|
-
throw new
|
|
346
|
+
throw new errors_js_1.LoadError(`Field \`${field}\` is not supported here.`);
|
|
325
347
|
}
|
|
326
348
|
}
|
|
327
349
|
}
|
|
@@ -331,11 +353,11 @@ class Evaluator {
|
|
|
331
353
|
if (!entity)
|
|
332
354
|
return undefined;
|
|
333
355
|
for (const trait of entity.traits.values()) {
|
|
334
|
-
if (!trait.type.startsWith(
|
|
356
|
+
if (!trait.type.startsWith(state_keys_js_1.CHORD_TRAIT_PREFIX))
|
|
335
357
|
continue;
|
|
336
358
|
const record = trait;
|
|
337
359
|
if (field in record) {
|
|
338
|
-
const traitName = trait.type.slice(
|
|
360
|
+
const traitName = trait.type.slice(state_keys_js_1.CHORD_TRAIT_PREFIX.length);
|
|
339
361
|
return { value: record[field], isEntityField: this.entityFields.get(traitName)?.has(field) ?? false };
|
|
340
362
|
}
|
|
341
363
|
}
|
|
@@ -345,13 +367,13 @@ class Evaluator {
|
|
|
345
367
|
playerId(world) {
|
|
346
368
|
const id = world.getPlayer()?.id ?? this.ids.playerWorldId();
|
|
347
369
|
if (!id)
|
|
348
|
-
throw new
|
|
370
|
+
throw new errors_js_1.LoadError('No player entity exists yet.');
|
|
349
371
|
return id;
|
|
350
372
|
}
|
|
351
373
|
requireWorldId(irId) {
|
|
352
374
|
const id = this.ids.entityId(irId);
|
|
353
375
|
if (!id)
|
|
354
|
-
throw new
|
|
376
|
+
throw new errors_js_1.LoadError(`Entity \`${irId}\` has no world instance.`);
|
|
355
377
|
return id;
|
|
356
378
|
}
|
|
357
379
|
/** True when `thing` is located inside `container` at any depth. */
|
|
@@ -372,13 +394,27 @@ class Evaluator {
|
|
|
372
394
|
drawChance(n, world) {
|
|
373
395
|
if (n <= 1)
|
|
374
396
|
return true;
|
|
375
|
-
const stored = world.getStateValue(
|
|
397
|
+
const stored = world.getStateValue(state_keys_js_1.CHORD_RNG_KEY);
|
|
376
398
|
if (typeof stored === 'number')
|
|
377
399
|
this.rng.setSeed(stored);
|
|
378
400
|
const hit = this.rng.int(1, n) === 1;
|
|
379
|
-
world.setStateValue(
|
|
401
|
+
world.setStateValue(state_keys_js_1.CHORD_RNG_KEY, this.rng.getSeed());
|
|
380
402
|
return hit;
|
|
381
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Pick a 0-based index in [0, n) through the seeded story RNG (the same
|
|
406
|
+
* world-state seed chain `chance` uses — deterministic under a fixed
|
|
407
|
+
* seed, AC-5 class). Used by `randomly`/`sticky` phrase selection at
|
|
408
|
+
* point of use (ADR-240's live blocked-message resolution).
|
|
409
|
+
*/
|
|
410
|
+
pickIndex(n, world) {
|
|
411
|
+
const stored = world.getStateValue(state_keys_js_1.CHORD_RNG_KEY);
|
|
412
|
+
if (typeof stored === 'number')
|
|
413
|
+
this.rng.setSeed(stored);
|
|
414
|
+
const pick = this.rng.int(1, n) - 1;
|
|
415
|
+
world.setStateValue(state_keys_js_1.CHORD_RNG_KEY, this.rng.getSeed());
|
|
416
|
+
return pick;
|
|
417
|
+
}
|
|
382
418
|
}
|
|
383
419
|
exports.Evaluator = Evaluator;
|
|
384
420
|
//# sourceMappingURL=evaluator.js.map
|
package/evaluator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/evaluator.ts"],"names":[],"mappings":"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"}
|
package/event-contract.d.ts
CHANGED
|
@@ -36,4 +36,22 @@ export declare const EVENT_PAYLOAD_FIELDS: {
|
|
|
36
36
|
* @returns the destination room id, or undefined when absent/mis-shaped
|
|
37
37
|
*/
|
|
38
38
|
export declare function enteringDestination(data: unknown): ActorMovedEventData['toRoom'] | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Chord event verb → crossing event type when the clause owner is a REGION
|
|
41
|
+
* (ADR-236 D6): going.ts emits one event per boundary actually crossed
|
|
42
|
+
* (`getRegionCrossings` is the source of truth), so nesting transitivity —
|
|
43
|
+
* a parent's reaction fires only when the parent boundary is crossed — is
|
|
44
|
+
* the emitter's guarantee, not a runtime filter.
|
|
45
|
+
*/
|
|
46
|
+
export declare const REGION_EVENT_TRIGGERS: Record<string, string>;
|
|
47
|
+
/**
|
|
48
|
+
* Type-guarded read of a crossing event's region — which region's boundary
|
|
49
|
+
* was crossed (the WORLD entity id going.ts stamps as `regionId`). No
|
|
50
|
+
* stdlib payload type exists for the crossing events (going.ts emits
|
|
51
|
+
* inline objects), so the runtime pin is tests/event-selector.test.ts plus
|
|
52
|
+
* the region-crossing REAL-PATH suite.
|
|
53
|
+
* @param data the raw event payload (unknown shape at the seam)
|
|
54
|
+
* @returns the crossed region's world entity id, or undefined
|
|
55
|
+
*/
|
|
56
|
+
export declare function crossingRegionId(data: unknown): string | undefined;
|
|
39
57
|
//# sourceMappingURL=event-contract.d.ts.map
|
package/event-contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-contract.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE;IAAE,QAAQ,EAAE,MAAM,mBAAmB,GAAG,QAAQ,CAAA;CAElF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAI5F"}
|
|
1
|
+
{"version":3,"file":"event-contract.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE;IAAE,QAAQ,EAAE,MAAM,mBAAmB,GAAG,QAAQ,CAAA;CAElF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAI5F;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGxD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlE"}
|
package/event-contract.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EVENT_PAYLOAD_FIELDS = exports.EVENT_TRIGGERS = void 0;
|
|
3
|
+
exports.REGION_EVENT_TRIGGERS = exports.EVENT_PAYLOAD_FIELDS = exports.EVENT_TRIGGERS = void 0;
|
|
4
4
|
exports.enteringDestination = enteringDestination;
|
|
5
|
+
exports.crossingRegionId = crossingRegionId;
|
|
5
6
|
/**
|
|
6
7
|
* Chord event verb → stdlib event type it binds to. Gerund register since
|
|
7
8
|
* the ownership package (ratchet D3): entity clauses read `after entering
|
|
@@ -32,4 +33,30 @@ function enteringDestination(data) {
|
|
|
32
33
|
const value = data[exports.EVENT_PAYLOAD_FIELDS.entering];
|
|
33
34
|
return typeof value === 'string' ? value : undefined;
|
|
34
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Chord event verb → crossing event type when the clause owner is a REGION
|
|
38
|
+
* (ADR-236 D6): going.ts emits one event per boundary actually crossed
|
|
39
|
+
* (`getRegionCrossings` is the source of truth), so nesting transitivity —
|
|
40
|
+
* a parent's reaction fires only when the parent boundary is crossed — is
|
|
41
|
+
* the emitter's guarantee, not a runtime filter.
|
|
42
|
+
*/
|
|
43
|
+
exports.REGION_EVENT_TRIGGERS = {
|
|
44
|
+
entering: 'if.event.region_entered',
|
|
45
|
+
leaving: 'if.event.region_exited', // ratchet R3 — the verb exists only for regions
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Type-guarded read of a crossing event's region — which region's boundary
|
|
49
|
+
* was crossed (the WORLD entity id going.ts stamps as `regionId`). No
|
|
50
|
+
* stdlib payload type exists for the crossing events (going.ts emits
|
|
51
|
+
* inline objects), so the runtime pin is tests/event-selector.test.ts plus
|
|
52
|
+
* the region-crossing REAL-PATH suite.
|
|
53
|
+
* @param data the raw event payload (unknown shape at the seam)
|
|
54
|
+
* @returns the crossed region's world entity id, or undefined
|
|
55
|
+
*/
|
|
56
|
+
function crossingRegionId(data) {
|
|
57
|
+
if (typeof data !== 'object' || data === null)
|
|
58
|
+
return undefined;
|
|
59
|
+
const value = data['regionId'];
|
|
60
|
+
return typeof value === 'string' ? value : undefined;
|
|
61
|
+
}
|
|
35
62
|
//# sourceMappingURL=event-contract.js.map
|
package/event-contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-contract.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":";;;AA0CA,kDAIC;
|
|
1
|
+
{"version":3,"file":"event-contract.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-contract.ts"],"names":[],"mappings":";;;AA0CA,kDAIC;AAuBD,4CAIC;AAzDD;;;;GAIG;AACU,QAAA,cAAc,GAA2B;IACpD,QAAQ,EAAE,sBAAsB;CACjC,CAAC;AAEF;;;;GAIG;AACU,QAAA,oBAAoB,GAAuD;IACtF,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,KAAK,GAAI,IAAgC,CAAC,4BAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/E,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACU,QAAA,qBAAqB,GAA2B;IAC3D,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,wBAAwB,EAAE,gDAAgD;CACpF,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAAC,IAAa;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,KAAK,GAAI,IAAgC,CAAC,UAAU,CAAC,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* event-id-map.ts — Chord-event-id → platform-event-id translation (ADR-256).
|
|
3
|
+
*
|
|
4
|
+
* Purpose: Chord is dotless (ADR-254) — an author writes `emit media-sound-play`
|
|
5
|
+
* — but the TS platform keeps its dotted `media.*` event ids untouched. This
|
|
6
|
+
* module is the single place that knows both spellings, so the Chord compiler
|
|
7
|
+
* stays platform-free (ADR-256 D1) and no rename lands in stdlib/engine.
|
|
8
|
+
*
|
|
9
|
+
* Public interface: `translateEventId(chordId)` — forward-translate a Chord IR
|
|
10
|
+
* event id to the runtime event type applied at all three event seams (emit,
|
|
11
|
+
* channel `from event`, machine `when event`). `CHORD_TO_PLATFORM_EVENT_ID` —
|
|
12
|
+
* the pinned map, exported for the conformance test only.
|
|
13
|
+
*
|
|
14
|
+
* Owner context: @sharpee/story-loader (Chord-IR → platform bindings). The map
|
|
15
|
+
* is a runtime table, distinct from `event-contract.ts` (a compile-time drift
|
|
16
|
+
* guard); a `media.*` rename in stdlib is caught by `event-id-map.test.ts`.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Chord event id (dotless, as it appears in the compiled IR) → platform event
|
|
20
|
+
* id (dotted, unchanged, as stdlib's channels consume it). Only Chord↔platform
|
|
21
|
+
* events appear here; a story's own author events (`chord-compass-updated`,
|
|
22
|
+
* `gatehouse-watch-report`, …) are emitted and consumed within Chord as their
|
|
23
|
+
* kebab string and are deliberately absent — `translateEventId` passes them
|
|
24
|
+
* through (ADR-256 D3).
|
|
25
|
+
*
|
|
26
|
+
* The initial set is stdlib's `media.*` registry (`stdlib/channels/media.ts`).
|
|
27
|
+
* Each entry is the platform id with `.` → `-`; the conformance test pins this
|
|
28
|
+
* table against the live `MEDIA_EVENT_TYPES` so a platform rename fails the build.
|
|
29
|
+
*/
|
|
30
|
+
export declare const CHORD_TO_PLATFORM_EVENT_ID: Readonly<Record<string, string>>;
|
|
31
|
+
/**
|
|
32
|
+
* Forward-translate a Chord IR event id to the platform runtime event type.
|
|
33
|
+
* A mapped Chord↔platform event (the `media.*` set) resolves to its dotted
|
|
34
|
+
* platform id; an author event with no entry passes through unchanged. Applied
|
|
35
|
+
* identically at every event seam so emit and subscribe always agree.
|
|
36
|
+
*
|
|
37
|
+
* @param chordId the event id as it appears in the compiled Chord IR (dotless)
|
|
38
|
+
* @returns the platform runtime event type (dotted for platform events, the
|
|
39
|
+
* unchanged kebab id for author events)
|
|
40
|
+
*/
|
|
41
|
+
export declare function translateEventId(chordId: string): string;
|
|
42
|
+
//# sourceMappingURL=event-id-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-id-map.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-id-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcvE,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
package/event-id-map.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* event-id-map.ts — Chord-event-id → platform-event-id translation (ADR-256).
|
|
4
|
+
*
|
|
5
|
+
* Purpose: Chord is dotless (ADR-254) — an author writes `emit media-sound-play`
|
|
6
|
+
* — but the TS platform keeps its dotted `media.*` event ids untouched. This
|
|
7
|
+
* module is the single place that knows both spellings, so the Chord compiler
|
|
8
|
+
* stays platform-free (ADR-256 D1) and no rename lands in stdlib/engine.
|
|
9
|
+
*
|
|
10
|
+
* Public interface: `translateEventId(chordId)` — forward-translate a Chord IR
|
|
11
|
+
* event id to the runtime event type applied at all three event seams (emit,
|
|
12
|
+
* channel `from event`, machine `when event`). `CHORD_TO_PLATFORM_EVENT_ID` —
|
|
13
|
+
* the pinned map, exported for the conformance test only.
|
|
14
|
+
*
|
|
15
|
+
* Owner context: @sharpee/story-loader (Chord-IR → platform bindings). The map
|
|
16
|
+
* is a runtime table, distinct from `event-contract.ts` (a compile-time drift
|
|
17
|
+
* guard); a `media.*` rename in stdlib is caught by `event-id-map.test.ts`.
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.CHORD_TO_PLATFORM_EVENT_ID = void 0;
|
|
21
|
+
exports.translateEventId = translateEventId;
|
|
22
|
+
/**
|
|
23
|
+
* Chord event id (dotless, as it appears in the compiled IR) → platform event
|
|
24
|
+
* id (dotted, unchanged, as stdlib's channels consume it). Only Chord↔platform
|
|
25
|
+
* events appear here; a story's own author events (`chord-compass-updated`,
|
|
26
|
+
* `gatehouse-watch-report`, …) are emitted and consumed within Chord as their
|
|
27
|
+
* kebab string and are deliberately absent — `translateEventId` passes them
|
|
28
|
+
* through (ADR-256 D3).
|
|
29
|
+
*
|
|
30
|
+
* The initial set is stdlib's `media.*` registry (`stdlib/channels/media.ts`).
|
|
31
|
+
* Each entry is the platform id with `.` → `-`; the conformance test pins this
|
|
32
|
+
* table against the live `MEDIA_EVENT_TYPES` so a platform rename fails the build.
|
|
33
|
+
*/
|
|
34
|
+
exports.CHORD_TO_PLATFORM_EVENT_ID = {
|
|
35
|
+
'media-sound-play': 'media.sound.play',
|
|
36
|
+
'media-image-show': 'media.image.show',
|
|
37
|
+
'media-image-hide': 'media.image.hide',
|
|
38
|
+
'media-image-preload': 'media.image.preload',
|
|
39
|
+
'media-music-play': 'media.music.play',
|
|
40
|
+
'media-music-stop': 'media.music.stop',
|
|
41
|
+
'media-ambient-play': 'media.ambient.play',
|
|
42
|
+
'media-ambient-stop': 'media.ambient.stop',
|
|
43
|
+
'media-animation-play': 'media.animation.play',
|
|
44
|
+
'media-animate': 'media.animate',
|
|
45
|
+
'media-transition': 'media.transition',
|
|
46
|
+
'media-layout-configure': 'media.layout.configure',
|
|
47
|
+
'media-clear': 'media.clear',
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Forward-translate a Chord IR event id to the platform runtime event type.
|
|
51
|
+
* A mapped Chord↔platform event (the `media.*` set) resolves to its dotted
|
|
52
|
+
* platform id; an author event with no entry passes through unchanged. Applied
|
|
53
|
+
* identically at every event seam so emit and subscribe always agree.
|
|
54
|
+
*
|
|
55
|
+
* @param chordId the event id as it appears in the compiled Chord IR (dotless)
|
|
56
|
+
* @returns the platform runtime event type (dotted for platform events, the
|
|
57
|
+
* unchanged kebab id for author events)
|
|
58
|
+
*/
|
|
59
|
+
function translateEventId(chordId) {
|
|
60
|
+
return exports.CHORD_TO_PLATFORM_EVENT_ID[chordId] ?? chordId;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=event-id-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-id-map.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/story-loader/src/event-id-map.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAwCH,4CAEC;AAxCD;;;;;;;;;;;GAWG;AACU,QAAA,0BAA0B,GAAqC;IAC1E,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,qBAAqB,EAAE,qBAAqB;IAC5C,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,oBAAoB,EAAE,oBAAoB;IAC1C,oBAAoB,EAAE,oBAAoB;IAC1C,sBAAsB,EAAE,sBAAsB;IAC9C,eAAe,EAAE,eAAe;IAChC,kBAAkB,EAAE,kBAAkB;IACtC,wBAAwB,EAAE,wBAAwB;IAClD,aAAa,EAAE,aAAa;CAC7B,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,OAAO,kCAA0B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;AACxD,CAAC"}
|