@almadar/core 10.101.0 → 10.103.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/dist/builders.d.ts +5 -5
- package/dist/builders.js +6 -2
- package/dist/builders.js.map +1 -1
- package/dist/{bus-B8evi8AZ.d.ts → bus-BGojNDOE.d.ts} +52 -7
- package/dist/{domain-Ds_7wZIL.d.ts → domain-OgMkN3WN.d.ts} +13 -1
- package/dist/{effect-Hm_QDaSI.d.ts → effect-Xn3LIyL7.d.ts} +1 -1
- package/dist/{entityAccess-DdcKps16.d.ts → entityAccess-z5HA0P7P.d.ts} +3 -3
- package/dist/{expression-DRwzVnMu.d.ts → expression-CfeHdS-f.d.ts} +10 -1
- package/dist/factory/index.d.ts +5 -5
- package/dist/factory/index.js.map +1 -1
- package/dist/factory-runtime/index.d.ts +5 -5
- package/dist/factory-runtime/index.js +42 -8
- package/dist/factory-runtime/index.js.map +1 -1
- package/dist/fixtures.d.ts +3 -3
- package/dist/fixtures.js +27 -2
- package/dist/fixtures.js.map +1 -1
- package/dist/i18n/index.js +27 -6
- package/dist/i18n/index.js.map +1 -1
- package/dist/{index-1b2JJVYl.d.ts → index-CVYZ3GcI.d.ts} +122 -23
- package/dist/index.d.ts +74 -17
- package/dist/index.js +417 -72
- package/dist/index.js.map +1 -1
- package/dist/lolo-document/index.d.ts +166 -0
- package/dist/lolo-document/index.js +615 -0
- package/dist/lolo-document/index.js.map +1 -0
- package/dist/mock/index.d.ts +6 -6
- package/dist/mock/index.js +12 -1
- package/dist/mock/index.js.map +1 -1
- package/dist/patterns/index.d.ts +22 -4
- package/dist/patterns/index.js +41 -1
- package/dist/patterns/index.js.map +1 -1
- package/dist/{schema-TqLV2wlK.d.ts → schema-sHVqe8Kb.d.ts} +1307 -4
- package/dist/state-machine/index.d.ts +1 -1
- package/dist/themes/index.d.ts +1 -1
- package/dist/themes/index.js +2 -1
- package/dist/themes/index.js.map +1 -1
- package/dist/{trait-YlNXc4H3.d.ts → trait-BSe6oDBd.d.ts} +79 -3
- package/dist/types/index.d.ts +8 -8
- package/dist/types/index.js +227 -12
- package/dist/types/index.js.map +1 -1
- package/dist/{types-Ug92oza4.d.ts → types-DK29MMOQ.d.ts} +2 -2
- package/fixtures/events-wire/client-effects-provenance/request.json +5 -0
- package/fixtures/events-wire/client-effects-provenance/response.json +57 -0
- package/package.json +6 -1
- package/src/types/bindings.ts +28 -3
package/dist/types/index.js
CHANGED
|
@@ -862,6 +862,44 @@ var EventPayloadValueSchema = z.lazy(
|
|
|
862
862
|
])
|
|
863
863
|
);
|
|
864
864
|
var EventPayloadSchema = z.lazy(() => z.record(EventPayloadValueSchema));
|
|
865
|
+
function isStaticallyFalse(expr, resolve) {
|
|
866
|
+
const known = (e) => {
|
|
867
|
+
if (typeof e === "string" && e.startsWith("@") && resolve !== void 0) {
|
|
868
|
+
const value2 = resolve(e);
|
|
869
|
+
return value2 === void 0 ? e : value2;
|
|
870
|
+
}
|
|
871
|
+
return e;
|
|
872
|
+
};
|
|
873
|
+
const isLiteral = (e) => e === null || typeof e === "boolean" || typeof e === "number" || typeof e === "string" && !e.startsWith("@");
|
|
874
|
+
const value = known(expr);
|
|
875
|
+
if (value === false || value === null) return true;
|
|
876
|
+
if (typeof value === "number") return value === 0;
|
|
877
|
+
if (typeof value === "string") return value === "";
|
|
878
|
+
if (Array.isArray(value)) {
|
|
879
|
+
const op = value[0];
|
|
880
|
+
if (typeof op !== "string") return value.length === 0;
|
|
881
|
+
const args = value.slice(1);
|
|
882
|
+
switch (op) {
|
|
883
|
+
case "and":
|
|
884
|
+
return args.some((a) => isStaticallyFalse(a, resolve));
|
|
885
|
+
case "or":
|
|
886
|
+
return args.length > 0 && args.every((a) => isStaticallyFalse(a, resolve));
|
|
887
|
+
case "not":
|
|
888
|
+
return args.length === 1 && known(args[0]) === true;
|
|
889
|
+
case "==":
|
|
890
|
+
case "!=": {
|
|
891
|
+
if (args.length !== 2) return false;
|
|
892
|
+
const [l, r] = [known(args[0]), known(args[1])];
|
|
893
|
+
if (!isLiteral(l) || !isLiteral(r)) return false;
|
|
894
|
+
return l === r === (op === "!=");
|
|
895
|
+
}
|
|
896
|
+
default:
|
|
897
|
+
return false;
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
if (typeof value === "object") return Object.keys(value).length === 0;
|
|
901
|
+
return false;
|
|
902
|
+
}
|
|
865
903
|
|
|
866
904
|
// src/types/entity.ts
|
|
867
905
|
var EntityPersistenceSchema = z.enum([
|
|
@@ -1288,6 +1326,7 @@ var TraitTickSchema = z.object({
|
|
|
1288
1326
|
priority: z.number().optional(),
|
|
1289
1327
|
interval: TickIntervalSchema,
|
|
1290
1328
|
appliesTo: z.array(z.string()).optional(),
|
|
1329
|
+
runsInBackground: z.boolean().optional(),
|
|
1291
1330
|
pages: z.array(z.string()).optional(),
|
|
1292
1331
|
pageIds: z.array(PageIdSchema).optional(),
|
|
1293
1332
|
guard: ExpressionSchema.optional(),
|
|
@@ -1472,6 +1511,19 @@ var EffectUseSchema = z.object({
|
|
|
1472
1511
|
site: EffectSiteSchema.optional()
|
|
1473
1512
|
});
|
|
1474
1513
|
var EffectRowSchema = z.array(EffectUseSchema);
|
|
1514
|
+
var DispatchModeSchema = z.enum(["persistedAwaited", "hybridClientOnly", "runtimeOptimistic"]);
|
|
1515
|
+
function computeDispatchMode(local, entityIsRuntime, touchesServer) {
|
|
1516
|
+
if (local) {
|
|
1517
|
+
return "hybridClientOnly";
|
|
1518
|
+
}
|
|
1519
|
+
if (entityIsRuntime) {
|
|
1520
|
+
return touchesServer ? "runtimeOptimistic" : "hybridClientOnly";
|
|
1521
|
+
}
|
|
1522
|
+
return "persistedAwaited";
|
|
1523
|
+
}
|
|
1524
|
+
function computeTraitDispatchMode(trait, entity, touchesServer) {
|
|
1525
|
+
return computeDispatchMode(trait.local ?? false, entity !== void 0 && isRuntimeEntity(entity), touchesServer);
|
|
1526
|
+
}
|
|
1475
1527
|
var SourceBehaviorMetadataSchema = z.object({
|
|
1476
1528
|
behavior: z.string().min(1),
|
|
1477
1529
|
alias: z.string().min(1),
|
|
@@ -1958,8 +2010,18 @@ var ThemeDefinitionSchema = z.object({
|
|
|
1958
2010
|
function isThemeReference(theme) {
|
|
1959
2011
|
return typeof theme === "string";
|
|
1960
2012
|
}
|
|
2013
|
+
var THEME_REGISTRY_KEY_PATTERN = "[a-z][a-z0-9]*(-[a-z0-9]+)*";
|
|
2014
|
+
var THEME_REGISTRY_KEY = new RegExp(`^${THEME_REGISTRY_KEY_PATTERN}$`);
|
|
2015
|
+
function isThemeRegistryKey(theme) {
|
|
2016
|
+
return typeof theme === "string" && THEME_REGISTRY_KEY.test(theme);
|
|
2017
|
+
}
|
|
2018
|
+
function themeDataKey(theme) {
|
|
2019
|
+
if (theme === void 0) return "";
|
|
2020
|
+
if (typeof theme === "string") return theme;
|
|
2021
|
+
return theme.name;
|
|
2022
|
+
}
|
|
1961
2023
|
var ThemeRefStringSchema = z.string().regex(
|
|
1962
|
-
|
|
2024
|
+
new RegExp(`^([A-Z][a-zA-Z0-9]*\\.theme|${THEME_REGISTRY_KEY_PATTERN})$`),
|
|
1963
2025
|
'Theme reference must be "Alias.theme" or a registry theme key (e.g., "linear-clean-light")'
|
|
1964
2026
|
);
|
|
1965
2027
|
var ThemeRefSchema = z.union([
|
|
@@ -2236,7 +2298,8 @@ var OrbitalRefObjectSchema = z.object({
|
|
|
2236
2298
|
roles: z.record(z.string(), z.array(z.string())).optional(),
|
|
2237
2299
|
entities: z.record(z.string(), z.string()).optional(),
|
|
2238
2300
|
mounts: z.record(z.string(), z.array(z.string())).optional(),
|
|
2239
|
-
extend: z.array(EntityFieldSchema).optional()
|
|
2301
|
+
extend: z.array(EntityFieldSchema).optional(),
|
|
2302
|
+
listens: z.array(TraitEventListenerSchema.extend({ trait: z.string() })).optional()
|
|
2240
2303
|
});
|
|
2241
2304
|
function parseOrbitalRef(ref2) {
|
|
2242
2305
|
const match = ref2.match(/^([A-Z][a-zA-Z0-9]*)\.orbitals\.([A-Z][a-zA-Z0-9]*)$/);
|
|
@@ -2437,15 +2500,40 @@ var BINDING_DOCS = {
|
|
|
2437
2500
|
description: "Render-resolved schema sigil \u2014 the host orbital's active data-theme key, derived from Orbital.theme. Substituted from the OrbitalSchema before codegen; never survives as a live binding.",
|
|
2438
2501
|
examples: ["@currentTheme"],
|
|
2439
2502
|
requiresPath: false
|
|
2503
|
+
},
|
|
2504
|
+
event: {
|
|
2505
|
+
description: "The delivery being processed: { event, payload, source } \u2014 for a listens delivery the source emit, with its BusEventSource envelope (Runtime Spec Clause 5.5)",
|
|
2506
|
+
examples: ["@event.event", "@event.payload.n", "@event.source.trait", "@event.source.tick"],
|
|
2507
|
+
requiresPath: false
|
|
2508
|
+
},
|
|
2509
|
+
prevEvents: {
|
|
2510
|
+
description: "The deliveries this trait already received in this dispatch, in order, each shaped like @event",
|
|
2511
|
+
examples: ["@prevEvents"],
|
|
2512
|
+
requiresPath: false
|
|
2513
|
+
},
|
|
2514
|
+
prevStates: {
|
|
2515
|
+
description: "The states this trait left in this dispatch, in order",
|
|
2516
|
+
examples: ["@prevStates"],
|
|
2517
|
+
requiresPath: false
|
|
2518
|
+
},
|
|
2519
|
+
fromState: {
|
|
2520
|
+
description: "The transition's source state",
|
|
2521
|
+
examples: ["@fromState"],
|
|
2522
|
+
requiresPath: false
|
|
2523
|
+
},
|
|
2524
|
+
toState: {
|
|
2525
|
+
description: "The transition's target state (null in a listens `when`, where no transition is chosen yet)",
|
|
2526
|
+
examples: ["@toState"],
|
|
2527
|
+
requiresPath: false
|
|
2440
2528
|
}
|
|
2441
2529
|
};
|
|
2442
2530
|
var BINDING_CONTEXT_RULES = {
|
|
2443
2531
|
guard: {
|
|
2444
|
-
allowed: ["entity", "payload", "state", "now", "config", "user"],
|
|
2445
|
-
description: `Guards can access entity fields, event payload, current state, time, the call-site trait config (@config.X), and the authenticated user context (@user.id, @user.role) for ownership / role gates. Config access lets atoms write mode-aware guards \u2014 e.g. std-modal's OPEN can require @payload.row only when @config.mode equals "edit", letting create-mode legitimately fire OPEN with no row. Like effects, @config.X is substituted at molecule/organism inline time with the literal call-site value; at atom-scope validate, @config is allowed-but-unresolved.`
|
|
2532
|
+
allowed: ["entity", "payload", "state", "now", "config", "user", "event", "prevEvents", "prevStates", "fromState", "toState"],
|
|
2533
|
+
description: `Guards can read the delivery being processed and this dispatch's log (@event, @prevEvents, @prevStates) and the transition's ends (@fromState, @toState; Runtime Spec Clause 5.5). Guards can access entity fields, event payload, current state, time, the call-site trait config (@config.X), and the authenticated user context (@user.id, @user.role) for ownership / role gates. Config access lets atoms write mode-aware guards \u2014 e.g. std-modal's OPEN can require @payload.row only when @config.mode equals "edit", letting create-mode legitimately fire OPEN with no row. Like effects, @config.X is substituted at molecule/organism inline time with the literal call-site value; at atom-scope validate, @config is allowed-but-unresolved.`
|
|
2446
2534
|
},
|
|
2447
2535
|
effect: {
|
|
2448
|
-
allowed: ["entity", "payload", "state", "now", "trait", "config", "user", "callsitePayload", "pages", "currentTheme"],
|
|
2536
|
+
allowed: ["entity", "payload", "state", "now", "trait", "config", "user", "callsitePayload", "pages", "currentTheme", "event", "prevEvents", "prevStates", "fromState", "toState"],
|
|
2449
2537
|
description: "Effects can access and modify entity fields, use payload data, embed another trait's live frame via @trait.X inside render-ui children, read trait config values (@config.X) for atoms parameterized by their call-site, and read the authenticated user context (@user.id, @user.role). At molecule/organism inline time, @config.X is substituted with the literal value from the call-site config block; at atom-scope validate, @config is allowed-but-unresolved. @callsitePayload.X is the call-site-captured event payload emitted by the compiler's inline-trait hoisting (a hoisted render block that captured @payload); it is resolved at the composing effect by the runtime BindingResolver."
|
|
2450
2538
|
},
|
|
2451
2539
|
tick: {
|
|
@@ -2499,12 +2587,18 @@ var BINDING_ROOTS = [
|
|
|
2499
2587
|
"entity",
|
|
2500
2588
|
"payload",
|
|
2501
2589
|
"state",
|
|
2590
|
+
"now",
|
|
2502
2591
|
"config",
|
|
2503
|
-
"user",
|
|
2504
2592
|
"trait",
|
|
2505
|
-
"
|
|
2506
|
-
"
|
|
2507
|
-
"
|
|
2593
|
+
"user",
|
|
2594
|
+
"callsitePayload",
|
|
2595
|
+
"pages",
|
|
2596
|
+
"currentTheme",
|
|
2597
|
+
"event",
|
|
2598
|
+
"prevEvents",
|
|
2599
|
+
"prevStates",
|
|
2600
|
+
"fromState",
|
|
2601
|
+
"toState",
|
|
2508
2602
|
"other"
|
|
2509
2603
|
];
|
|
2510
2604
|
var KNOWN_ROOTS = new Set(BINDING_ROOTS.filter((r) => r !== "other"));
|
|
@@ -2960,6 +3054,24 @@ function isValidPatternType(type) {
|
|
|
2960
3054
|
// src/types/pattern.ts
|
|
2961
3055
|
var PatternTypeSchema = z.string();
|
|
2962
3056
|
|
|
3057
|
+
// src/types/changeset.ts
|
|
3058
|
+
var SEMANTIC_CHANGE_KINDS = [
|
|
3059
|
+
"orbital-added",
|
|
3060
|
+
"orbital-removed",
|
|
3061
|
+
"entity-fields-changed",
|
|
3062
|
+
"trait-added",
|
|
3063
|
+
"trait-removed",
|
|
3064
|
+
"trait-config-changed",
|
|
3065
|
+
"state-machine-changed",
|
|
3066
|
+
"guard-changed",
|
|
3067
|
+
"effect-changed",
|
|
3068
|
+
"render-ui-changed",
|
|
3069
|
+
"event-wiring-changed",
|
|
3070
|
+
"page-changed",
|
|
3071
|
+
"theme-changed",
|
|
3072
|
+
"behavior-composed"
|
|
3073
|
+
];
|
|
3074
|
+
|
|
2963
3075
|
// src/service-types.ts
|
|
2964
3076
|
function createTypedEventBus(bus) {
|
|
2965
3077
|
return {
|
|
@@ -3078,6 +3190,22 @@ var ServerEffectResultSchema = z.object({
|
|
|
3078
3190
|
});
|
|
3079
3191
|
|
|
3080
3192
|
// src/types/bus.ts
|
|
3193
|
+
function deliveryRecordValue(record) {
|
|
3194
|
+
const s = record.source;
|
|
3195
|
+
const source = {
|
|
3196
|
+
...s.orbital !== void 0 ? { orbital: s.orbital } : {},
|
|
3197
|
+
...s.orbitalId !== void 0 ? { orbitalId: s.orbitalId } : {},
|
|
3198
|
+
...s.trait !== void 0 ? { trait: s.trait } : {},
|
|
3199
|
+
...s.traitId !== void 0 ? { traitId: s.traitId } : {},
|
|
3200
|
+
...s.eventId !== void 0 ? { eventId: s.eventId } : {},
|
|
3201
|
+
...s.transition !== void 0 ? { transition: s.transition } : {},
|
|
3202
|
+
...s.tick !== void 0 ? { tick: s.tick } : {},
|
|
3203
|
+
...s.fromBridge !== void 0 ? { fromBridge: s.fromBridge } : {},
|
|
3204
|
+
...s.dispatched !== void 0 ? { dispatched: s.dispatched } : {},
|
|
3205
|
+
...s.originClientId !== void 0 ? { originClientId: s.originClientId } : {}
|
|
3206
|
+
};
|
|
3207
|
+
return { event: record.event, payload: record.payload ?? null, source };
|
|
3208
|
+
}
|
|
3081
3209
|
var BusEventSourceSchema = z.object({
|
|
3082
3210
|
orbital: z.string().optional(),
|
|
3083
3211
|
orbitalId: OrbitalIdSchema.optional(),
|
|
@@ -3090,6 +3218,15 @@ var BusEventSourceSchema = z.object({
|
|
|
3090
3218
|
dispatched: z.boolean().optional(),
|
|
3091
3219
|
originClientId: z.string().optional()
|
|
3092
3220
|
});
|
|
3221
|
+
var DeliveryRecordSchema = z.object({
|
|
3222
|
+
event: z.string(),
|
|
3223
|
+
payload: EventPayloadSchema.optional(),
|
|
3224
|
+
source: BusEventSourceSchema
|
|
3225
|
+
});
|
|
3226
|
+
var DispatchLogSchema = z.object({
|
|
3227
|
+
prevEvents: z.array(DeliveryRecordSchema),
|
|
3228
|
+
prevStates: z.array(z.string())
|
|
3229
|
+
});
|
|
3093
3230
|
var EmittedEventSchema = z.object({
|
|
3094
3231
|
event: z.string(),
|
|
3095
3232
|
payload: EventPayloadSchema.optional(),
|
|
@@ -3134,7 +3271,9 @@ var OrbitalEventRequestSchema = z.object({
|
|
|
3134
3271
|
sourceTrait: z.string().optional(),
|
|
3135
3272
|
traits: z.array(z.object({ trait: z.string(), from: z.string() })).optional(),
|
|
3136
3273
|
entityByTrait: z.record(EntityRowSchema).optional(),
|
|
3137
|
-
behavior: z.string().optional()
|
|
3274
|
+
behavior: z.string().optional(),
|
|
3275
|
+
delivery: DeliveryRecordSchema.optional(),
|
|
3276
|
+
dispatchLog: DispatchLogSchema.optional()
|
|
3138
3277
|
});
|
|
3139
3278
|
var OrbitalEventResponseSchema = z.object({
|
|
3140
3279
|
success: z.boolean(),
|
|
@@ -3144,7 +3283,12 @@ var OrbitalEventResponseSchema = z.object({
|
|
|
3144
3283
|
data: z.record(z.array(EntityRowSchema)).optional(),
|
|
3145
3284
|
entityByTrait: z.record(EntityRowSchema).optional(),
|
|
3146
3285
|
clientEffects: z.array(ClientEffectTupleSchema).optional(),
|
|
3147
|
-
clientEffectsByTrait: z.array(z.object({
|
|
3286
|
+
clientEffectsByTrait: z.array(z.object({
|
|
3287
|
+
traitName: z.string(),
|
|
3288
|
+
effect: ClientEffectTupleSchema,
|
|
3289
|
+
event: z.string().optional(),
|
|
3290
|
+
fromState: z.string().optional()
|
|
3291
|
+
})).optional(),
|
|
3148
3292
|
effectResults: z.array(ServerEffectResultSchema).optional(),
|
|
3149
3293
|
guardFailed: z.string().optional(),
|
|
3150
3294
|
rejections: z.array(
|
|
@@ -3161,6 +3305,14 @@ var OrbitalEventResponseSchema = z.object({
|
|
|
3161
3305
|
cascadeTruncated: z.array(z.string()).optional(),
|
|
3162
3306
|
error: z.string().optional()
|
|
3163
3307
|
});
|
|
3308
|
+
var ServerTopologySchema = z.enum(["stateless", "stateful"]);
|
|
3309
|
+
var OrbitalRegisterResponseSchema = z.object({
|
|
3310
|
+
success: z.boolean(),
|
|
3311
|
+
topology: ServerTopologySchema.optional(),
|
|
3312
|
+
message: z.string().optional(),
|
|
3313
|
+
orbitals: z.array(z.string()).optional(),
|
|
3314
|
+
error: z.string().optional()
|
|
3315
|
+
});
|
|
3164
3316
|
var LiveBroadcastItemSchema = z.object({
|
|
3165
3317
|
event: z.string(),
|
|
3166
3318
|
payload: EventPayloadSchema.optional(),
|
|
@@ -3170,6 +3322,66 @@ var LiveBroadcastItemSchema = z.object({
|
|
|
3170
3322
|
var EventDispatchRequestSchema = OrbitalEventRequestSchema;
|
|
3171
3323
|
var EventDispatchResponseSchema = OrbitalEventResponseSchema;
|
|
3172
3324
|
|
|
3325
|
+
// src/types/visit-key.ts
|
|
3326
|
+
function isPayloadList(value) {
|
|
3327
|
+
return Array.isArray(value);
|
|
3328
|
+
}
|
|
3329
|
+
function canonicalJson(value) {
|
|
3330
|
+
if (value === void 0 || value === null) return "null";
|
|
3331
|
+
if (value instanceof Date) return JSON.stringify(value.toISOString());
|
|
3332
|
+
if (isPayloadList(value)) {
|
|
3333
|
+
return `[${value.map((item) => item === void 0 ? "null" : canonicalJson(item)).join(",")}]`;
|
|
3334
|
+
}
|
|
3335
|
+
if (typeof value === "object") {
|
|
3336
|
+
const record = value;
|
|
3337
|
+
const fields = Object.keys(record).filter((k) => record[k] !== void 0).sort().map((k) => `${JSON.stringify(k)}:${canonicalJson(record[k])}`);
|
|
3338
|
+
return `{${fields.join(",")}}`;
|
|
3339
|
+
}
|
|
3340
|
+
return JSON.stringify(value);
|
|
3341
|
+
}
|
|
3342
|
+
function dispatchVisitKey(trait, event, from, payload) {
|
|
3343
|
+
return `${trait}\0${event}\0${from}\0${canonicalJson(payload)}`;
|
|
3344
|
+
}
|
|
3345
|
+
|
|
3346
|
+
// src/types/dispatch-memory.ts
|
|
3347
|
+
function dispatchScopeOf(delivery, log, event, payload) {
|
|
3348
|
+
const record = delivery ?? { event, ...payload !== void 0 ? { payload } : {}, source: {} };
|
|
3349
|
+
return {
|
|
3350
|
+
event: deliveryRecordValue(record),
|
|
3351
|
+
prevEvents: (log?.prevEvents ?? []).map(deliveryRecordValue),
|
|
3352
|
+
prevStates: [...log?.prevStates ?? []]
|
|
3353
|
+
};
|
|
3354
|
+
}
|
|
3355
|
+
var DispatchMemory = class {
|
|
3356
|
+
constructor() {
|
|
3357
|
+
this.deliveries = /* @__PURE__ */ new Map();
|
|
3358
|
+
this.left = /* @__PURE__ */ new Map();
|
|
3359
|
+
}
|
|
3360
|
+
/** This trait's log so far, as it travels on a request. */
|
|
3361
|
+
log(trait) {
|
|
3362
|
+
return { prevEvents: [...this.deliveries.get(trait) ?? []], prevStates: [...this.left.get(trait) ?? []] };
|
|
3363
|
+
}
|
|
3364
|
+
view(trait, delivery) {
|
|
3365
|
+
return dispatchScopeOf(delivery, this.log(trait), delivery.event, delivery.payload);
|
|
3366
|
+
}
|
|
3367
|
+
/** Continue a dispatch that began elsewhere: the target trait's log so far. */
|
|
3368
|
+
seed(trait, log) {
|
|
3369
|
+
this.deliveries.set(trait, [...log.prevEvents]);
|
|
3370
|
+
this.left.set(trait, [...log.prevStates]);
|
|
3371
|
+
}
|
|
3372
|
+
recordDelivery(trait, delivery) {
|
|
3373
|
+
const log = this.deliveries.get(trait) ?? [];
|
|
3374
|
+
log.push(delivery);
|
|
3375
|
+
this.deliveries.set(trait, log);
|
|
3376
|
+
}
|
|
3377
|
+
recordTransition(trait, from, to) {
|
|
3378
|
+
if (from === to) return;
|
|
3379
|
+
const log = this.left.get(trait) ?? [];
|
|
3380
|
+
log.push(from);
|
|
3381
|
+
this.left.set(trait, log);
|
|
3382
|
+
}
|
|
3383
|
+
};
|
|
3384
|
+
|
|
3173
3385
|
// src/types/validation.ts
|
|
3174
3386
|
var KNOWN_VALIDATION_ERROR_CODES = {
|
|
3175
3387
|
// Binding (`@entity.X`, `@payload.Y`, `@state.Z`, `@now`, ...)
|
|
@@ -3181,6 +3393,9 @@ var KNOWN_VALIDATION_ERROR_CODES = {
|
|
|
3181
3393
|
ORB_BINDING_NOW_NO_PATH: "ORB_BINDING_NOW_NO_PATH",
|
|
3182
3394
|
ORB_BINDING_PAYLOAD_FIELD_UNDECLARED: "ORB_BINDING_PAYLOAD_FIELD_UNDECLARED",
|
|
3183
3395
|
ORB_BINDING_PAYLOAD_IN_TICK: "ORB_BINDING_PAYLOAD_IN_TICK",
|
|
3396
|
+
ORB_BINDING_DISPATCH_ROOT_IN_TICK: "ORB_BINDING_DISPATCH_ROOT_IN_TICK",
|
|
3397
|
+
ORB_BINDING_ROOT_NO_PATH: "ORB_BINDING_ROOT_NO_PATH",
|
|
3398
|
+
ORB_BINDING_EVENT_INVALID_PATH: "ORB_BINDING_EVENT_INVALID_PATH",
|
|
3184
3399
|
ORB_BINDING_PAYLOAD_TYPE_INCOMPATIBLE: "ORB_BINDING_PAYLOAD_TYPE_INCOMPATIBLE",
|
|
3185
3400
|
ORB_BINDING_SET_TARGET_MISSING_PATH: "ORB_BINDING_SET_TARGET_MISSING_PATH",
|
|
3186
3401
|
ORB_BINDING_STATE_NO_PATH: "ORB_BINDING_STATE_NO_PATH",
|
|
@@ -3376,6 +3591,6 @@ function widenTier(tier) {
|
|
|
3376
3591
|
return tier;
|
|
3377
3592
|
}
|
|
3378
3593
|
|
|
3379
|
-
export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ANONYMOUS_USER, ASSET_ASPECTS, ASSET_DIMENSIONS, AgentDomainCategorySchema, AnimationDefSchema, AnimationNameSchema, AssetAspectSchema, AssetCatalogEntrySchema, AssetCatalogSchema, AssetDimensionSchema, AssetSchema, AudioManifestSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BINDING_ROOTS, BindingSchema, BusEventSourceSchema, CAMERA_MODES, COLOR_TOKEN_KEYS, CONFIG_REF_EVENT_PATTERN, CORE_BINDINGS, CameraModeSchema, CameraSchema, ClientEffectTupleSchema, ClientNavigateBackTupleSchema, ClientNavigateTupleSchema, ClientRenderUITupleSchema, ColorSliceSchema, ColorTokensSchema, ComputedEventContractSchema, ComputedEventListenerSchema, ConfigFieldDeclarationSchema, ConfigProvenanceRecordSchema, CustomPatternDefinitionSchema, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DEFAULT_UNIT_ANIMATION_ROWS, DEFAULT_VIEWER, DEV_TOKEN_PREFIX, DeclaredTraitConfigSchema, DensitySliceSchema, DensityTokensSchema, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EffectSchema, ElevationSliceSchema, ElevationTokensSchema, EmittedEventSchema, EntityCallSchema, EntityFieldContractSchema, EntityFieldSchema, EntityIdSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntityRowSchema, EntitySchema, EntitySemanticRoleSchema, EventDispatchRequestSchema, EventDispatchResponseSchema, EventIdSchema, EventListenerSchema, EventPayloadFieldSchema, EventPayloadSchema, EventPayloadValueSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpectDeclarationSchema, ExpressionSchema, FIELD_TYPES, FieldSchema, FieldTypeSchema, FieldValueSchema, FileValueSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, ILLUSTRATION_TOKEN_KEYS, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IdentityLedgerSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, LedgerEntrySchema, LedgerKindSchema, ListenSourceSchema, LiveBroadcastItemSchema, MANIFEST_ASSET_LICENSES, MANIFEST_CANVAS_AFFINITIES, MANIFEST_ENTRY_KINDS, MANIFEST_SOURCE_CATALOGS, ManifestAssetLicenseSchema, ManifestCanvasAffinitySchema, ManifestEntryKindSchema, ManifestEntrySchema, ManifestFrameSpecSchema, ManifestSourceCatalogSchema, McpServiceDefSchema, MotionDurationKeySchema, MotionDurationPaletteSchema, MotionEasingKeySchema, MotionEasingPaletteSchema, MotionIntentMapSchema, MotionIntentSchema, MotionSliceSchema, MotionTokensSchema, NodeClassificationSchema, OrbitalDefinitionSchema, OrbitalEntitySchema, OrbitalEventRequestSchema, OrbitalEventResponseSchema, OrbitalIdSchema, OrbitalPageSchema, OrbitalPageStrictSchema, OrbitalRefObjectSchema, OrbitalRefStringSchema, OrbitalSchemaSchema, OrbitalTraitRefSchema, OrbitalUnitSchema, OrbitalSchema as OrbitalZodSchema, PATTERN_TYPES, PageIdSchema, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRefSchema, PaletteEntryIdSchema, PatternConfigSchema, PatternTypeSchema, PayloadFieldSchema, PayloadTypeWhenSchema, REFERENCE_CONFIG_TYPES, RENDER_BINDING_MARKER, RawUserClaimsSchema, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, ResolvedPatternPropsSchema, RestAuthConfigSchema, RestServiceDefSchema, SECRET_CONFIG_TYPES, SEMANTIC_STRING_TYPES, SERVER_REPORTED_EFFECTS, SERVICE_TYPES, SExprAtomSchema, SExprDataSchema, SExprSchema, SHEET_PROJECTIONS, SPRITE_DIRECTIONS, SPRITE_SHEET_LAYOUT, ScenePosSchema, SchemaMetadataSchema, SemanticAssetRefSchema, ServerBatchSummarySchema, ServerEffectResultSchema, ServiceDefinitionSchema, ServiceIdSchema, ServiceRefObjectSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SheetProjectionSchema, SkinSpecSchema, SocketEventsSchema, SocketServiceDefSchema, SoundEntrySchema, SpacingScaleSchema, SpriteDirectionSchema, SpriteSheetAtlasSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SubTextureSchema, SuggestedGuardSchema, TYPE_POSITION_ONLY, TextureAtlasSchema, ThemeDefinitionSchema, ThemeIdSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TickIntervalSchema, TilesheetSchema, TraitCategorySchema, TraitConfigSchema, TraitConfigValueSchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitFieldRefSchema, TraitIdSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TraitUIBindingSchema, TransitionSchema, TypeIntentMapSchema, TypeIntentSchema, TypeScaleEntrySchema, TypeScaleSchema, TypeScaleTokensSchema, TypeSizeKeySchema, TypeSliceSchema, TypeSlotSchema, TypeWeightSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, asEntityId, asEventId, asOrbitalId, asPageId, asPaletteEntryId, asServiceId, asThemeId, asTraitId, atomic, callService, collectBindings, configRefEventKnob, containsEntityBinding, containsPayloadBinding, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, decodeDevIdentityToken, defaultUnitAtlas, deref, deriveCollection, deriveId, despawn, doEffects, emit, encodeDevIdentityToken, expectedEntityName, findPersonaInRoster, findService, getArgs, getBindingExamples, getDefaultAnimationsForRole, getInteractionModelForDomain, getOperator, getServiceNames, getTraitConfig, getTraitName, hasService, idKindOf, idPrefix, inferTsType, isBinding, isCallSiteConfigDeclaration, isCircuitEvent, isEffect, isEmailValue, isEntityCall, isEntityId, isEntityReference, isEntityReferenceAny, isEventId, isEventPayloadValue, isFieldValue, isFileValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMcpService, isOrbitalDefinition, isOrbitalId, isPageId, isPageReference, isPageReferenceObject, isPageReferenceString, isPaletteEntryId, isPersistBatchOperation, isPhoneValue, isPlanSnapshot, isReferenceConfigType, isRenderBindingMarker, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isSecretConfigType, isSemanticStringType, isSemanticStringValue, isServiceId, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isThemeId, isThemeReference, isTraitFieldRef, isTraitId, isUrlValue, isUuidValue, isValidBinding, isValidPatternType, ledgerCurName, ledgerRename, ledgerResolveName, manifestToAssetCatalog, maskSecretConfigValues, matchAssetQuery, mintId, navigate, navigateBack, normalizeCallSiteConfigToValues, normalizeTraitRef, normalizeUserContext, overrideDeclaredKnobs, parseAssetKey, parseAssetQuery, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalRef, parseOrbitalSchema, parsePageRef, parseServiceRef, persist, persistenceModeAllowsOverrides, personaFromIdentityRow, ref, renderUI, resolveConfigRefEventName, resolveDefaultViewer, resolvePersonaSpec, safeParseOrbitalSchema, set, sexpr, spawn, swap, toBindingRoot, validateAssetAnimations, validateBindingInContext, walkSExpr, watch, widenTier };
|
|
3594
|
+
export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ANONYMOUS_USER, ASSET_ASPECTS, ASSET_DIMENSIONS, AgentDomainCategorySchema, AnimationDefSchema, AnimationNameSchema, AssetAspectSchema, AssetCatalogEntrySchema, AssetCatalogSchema, AssetDimensionSchema, AssetSchema, AudioManifestSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BINDING_ROOTS, BindingSchema, BusEventSourceSchema, CAMERA_MODES, COLOR_TOKEN_KEYS, CONFIG_REF_EVENT_PATTERN, CORE_BINDINGS, CameraModeSchema, CameraSchema, ClientEffectTupleSchema, ClientNavigateBackTupleSchema, ClientNavigateTupleSchema, ClientRenderUITupleSchema, ColorSliceSchema, ColorTokensSchema, ComputedEventContractSchema, ComputedEventListenerSchema, ConfigFieldDeclarationSchema, ConfigProvenanceRecordSchema, CustomPatternDefinitionSchema, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DEFAULT_UNIT_ANIMATION_ROWS, DEFAULT_VIEWER, DEV_TOKEN_PREFIX, DeclaredTraitConfigSchema, DeliveryRecordSchema, DensitySliceSchema, DensityTokensSchema, DesignPreferencesSchema, DesignTokensSchema, DispatchLogSchema, DispatchMemory, DispatchModeSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EffectSchema, ElevationSliceSchema, ElevationTokensSchema, EmittedEventSchema, EntityCallSchema, EntityFieldContractSchema, EntityFieldSchema, EntityIdSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntityRowSchema, EntitySchema, EntitySemanticRoleSchema, EventDispatchRequestSchema, EventDispatchResponseSchema, EventIdSchema, EventListenerSchema, EventPayloadFieldSchema, EventPayloadSchema, EventPayloadValueSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpectDeclarationSchema, ExpressionSchema, FIELD_TYPES, FieldSchema, FieldTypeSchema, FieldValueSchema, FileValueSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, ILLUSTRATION_TOKEN_KEYS, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IdentityLedgerSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, LedgerEntrySchema, LedgerKindSchema, ListenSourceSchema, LiveBroadcastItemSchema, MANIFEST_ASSET_LICENSES, MANIFEST_CANVAS_AFFINITIES, MANIFEST_ENTRY_KINDS, MANIFEST_SOURCE_CATALOGS, ManifestAssetLicenseSchema, ManifestCanvasAffinitySchema, ManifestEntryKindSchema, ManifestEntrySchema, ManifestFrameSpecSchema, ManifestSourceCatalogSchema, McpServiceDefSchema, MotionDurationKeySchema, MotionDurationPaletteSchema, MotionEasingKeySchema, MotionEasingPaletteSchema, MotionIntentMapSchema, MotionIntentSchema, MotionSliceSchema, MotionTokensSchema, NodeClassificationSchema, OrbitalDefinitionSchema, OrbitalEntitySchema, OrbitalEventRequestSchema, OrbitalEventResponseSchema, OrbitalIdSchema, OrbitalPageSchema, OrbitalPageStrictSchema, OrbitalRefObjectSchema, OrbitalRefStringSchema, OrbitalRegisterResponseSchema, OrbitalSchemaSchema, OrbitalTraitRefSchema, OrbitalUnitSchema, OrbitalSchema as OrbitalZodSchema, PATTERN_TYPES, PageIdSchema, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRefSchema, PaletteEntryIdSchema, PatternConfigSchema, PatternTypeSchema, PayloadFieldSchema, PayloadTypeWhenSchema, REFERENCE_CONFIG_TYPES, RENDER_BINDING_MARKER, RawUserClaimsSchema, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, ResolvedPatternPropsSchema, RestAuthConfigSchema, RestServiceDefSchema, SECRET_CONFIG_TYPES, SEMANTIC_CHANGE_KINDS, SEMANTIC_STRING_TYPES, SERVER_REPORTED_EFFECTS, SERVICE_TYPES, SExprAtomSchema, SExprDataSchema, SExprSchema, SHEET_PROJECTIONS, SPRITE_DIRECTIONS, SPRITE_SHEET_LAYOUT, ScenePosSchema, SchemaMetadataSchema, SemanticAssetRefSchema, ServerBatchSummarySchema, ServerEffectResultSchema, ServerTopologySchema, ServiceDefinitionSchema, ServiceIdSchema, ServiceRefObjectSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SheetProjectionSchema, SkinSpecSchema, SocketEventsSchema, SocketServiceDefSchema, SoundEntrySchema, SpacingScaleSchema, SpriteDirectionSchema, SpriteSheetAtlasSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SubTextureSchema, SuggestedGuardSchema, TYPE_POSITION_ONLY, TextureAtlasSchema, ThemeDefinitionSchema, ThemeIdSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TickIntervalSchema, TilesheetSchema, TraitCategorySchema, TraitConfigSchema, TraitConfigValueSchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitFieldRefSchema, TraitIdSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TraitUIBindingSchema, TransitionSchema, TypeIntentMapSchema, TypeIntentSchema, TypeScaleEntrySchema, TypeScaleSchema, TypeScaleTokensSchema, TypeSizeKeySchema, TypeSliceSchema, TypeSlotSchema, TypeWeightSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, asEntityId, asEventId, asOrbitalId, asPageId, asPaletteEntryId, asServiceId, asThemeId, asTraitId, atomic, callService, collectBindings, computeDispatchMode, computeTraitDispatchMode, configRefEventKnob, containsEntityBinding, containsPayloadBinding, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, decodeDevIdentityToken, defaultUnitAtlas, deliveryRecordValue, deref, deriveCollection, deriveId, despawn, dispatchScopeOf, dispatchVisitKey, doEffects, emit, encodeDevIdentityToken, expectedEntityName, findPersonaInRoster, findService, getArgs, getBindingExamples, getDefaultAnimationsForRole, getInteractionModelForDomain, getOperator, getServiceNames, getTraitConfig, getTraitName, hasService, idKindOf, idPrefix, inferTsType, isBinding, isCallSiteConfigDeclaration, isCircuitEvent, isEffect, isEmailValue, isEntityCall, isEntityId, isEntityReference, isEntityReferenceAny, isEventId, isEventPayloadValue, isFieldValue, isFileValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMcpService, isOrbitalDefinition, isOrbitalId, isPageId, isPageReference, isPageReferenceObject, isPageReferenceString, isPaletteEntryId, isPersistBatchOperation, isPhoneValue, isPlanSnapshot, isReferenceConfigType, isRenderBindingMarker, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isSecretConfigType, isSemanticStringType, isSemanticStringValue, isServiceId, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isStaticallyFalse, isThemeId, isThemeReference, isThemeRegistryKey, isTraitFieldRef, isTraitId, isUrlValue, isUuidValue, isValidBinding, isValidPatternType, ledgerCurName, ledgerRename, ledgerResolveName, manifestToAssetCatalog, maskSecretConfigValues, matchAssetQuery, mintId, navigate, navigateBack, normalizeCallSiteConfigToValues, normalizeTraitRef, normalizeUserContext, overrideDeclaredKnobs, parseAssetKey, parseAssetQuery, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalRef, parseOrbitalSchema, parsePageRef, parseServiceRef, persist, persistenceModeAllowsOverrides, personaFromIdentityRow, ref, renderUI, resolveConfigRefEventName, resolveDefaultViewer, resolvePersonaSpec, safeParseOrbitalSchema, set, sexpr, spawn, swap, themeDataKey, toBindingRoot, validateAssetAnimations, validateBindingInContext, walkSExpr, watch, widenTier };
|
|
3380
3595
|
//# sourceMappingURL=index.js.map
|
|
3381
3596
|
//# sourceMappingURL=index.js.map
|