@moku-labs/game 0.15.19 → 0.15.23

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.
Files changed (37) hide show
  1. package/dist/app/page.d.mts +1 -1
  2. package/dist/app/page.mjs +1 -1
  3. package/dist/app/system.d.mts +3 -3
  4. package/dist/app.d.mts +3 -3
  5. package/dist/app.mjs +1 -1
  6. package/dist/assets.d.mts +1 -1
  7. package/dist/{capture-D7XvoHdH.mjs → capture-PTJXDpxK.mjs} +117 -16
  8. package/dist/{commands-G9maNqTK.d.mts → commands-CV6Deuaj.d.mts} +5 -5
  9. package/dist/control.d.mts +4 -4
  10. package/dist/control.mjs +1 -1
  11. package/dist/{define-BAuGN0UM.d.mts → define-42KUe-al.d.mts} +2 -2
  12. package/dist/{headless-BA6ffzqD.mjs → headless-Bxxl_mQX.mjs} +1 -1
  13. package/dist/{headless-uUUH54Ij.d.mts → headless-DIbfzWkr.d.mts} +1 -1
  14. package/dist/{index-Cku9aRz_.d.mts → index-CHI7dTc9.d.mts} +26 -4
  15. package/dist/index.d.mts +5 -5
  16. package/dist/index.mjs +3 -3
  17. package/dist/inspect.d.mts +6 -6
  18. package/dist/inspect.mjs +1 -1
  19. package/dist/jsx-dev-runtime.d.mts +1 -1
  20. package/dist/jsx-runtime.d.mts +1 -1
  21. package/dist/{run-BqYmcNo7.mjs → run-DRcc2SKF.mjs} +2 -2
  22. package/dist/{runtime-CuMDZhii.d.mts → runtime-BcMjHiib.d.mts} +1 -1
  23. package/dist/{sources-BYKXYPhd.mjs → sources-Dpc4NXvG.mjs} +1 -1
  24. package/dist/{src-CXfBuKpl.mjs → src-hVe3f8GV.mjs} +1380 -302
  25. package/dist/testing.d.mts +4 -4
  26. package/dist/testing.mjs +2 -2
  27. package/dist/{types-rr56N0Ab.d.mts → types-9xAh1wGm.d.mts} +8 -5
  28. package/dist/{types-bwefoJES.d.mts → types-CHmCFReJ.d.mts} +219 -24
  29. package/dist/{types-4T4QTU48.d.mts → types-DmGs6x0c.d.mts} +24 -6
  30. package/dist/{types-DQtBMqRE.d.mts → types-DwREs5vb.d.mts} +4 -4
  31. package/dist/{types-DMsvVZZT.d.mts → types-L4nVF9Ny.d.mts} +2 -2
  32. package/dist/{visual-B-c5OIFB.d.mts → visual-CjXAp0DW.d.mts} +6 -6
  33. package/dist/{visual-DNM5oFYx.mjs → visual-kEC9nb-o.mjs} +20 -2
  34. package/dist/visual.d.mts +1 -1
  35. package/dist/visual.mjs +2 -2
  36. package/llms.txt +2 -2
  37. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { m as StartedPage, r as GameConfig, t as AnyGameApp, u as PageOptions } from "../types-DQtBMqRE.mjs";
1
+ import { m as StartedPage, r as GameConfig, t as AnyGameApp, u as PageOptions } from "../types-DwREs5vb.mjs";
2
2
 
3
3
  //#region src/app/page.d.ts
4
4
  /**
package/dist/app/page.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { r as systemSource, t as memory } from "../memory-CWlqhS7l.mjs";
2
2
  import { t as applyTo } from "../drafts-BawpSaVp.mjs";
3
3
  import { i as isControl } from "../dev-BNndV-hU.mjs";
4
- import { n as read, r as watch, t as sources } from "../sources-BYKXYPhd.mjs";
4
+ import { n as read, r as watch, t as sources } from "../sources-Dpc4NXvG.mjs";
5
5
  import { t as resolveConfig } from "../config-B87aFTW-.mjs";
6
6
  //#region src/app/save.ts
7
7
  /**
@@ -1,6 +1,6 @@
1
- import { kr as PlayerStateProvider } from "../types-bwefoJES.mjs";
2
- import { mt as PlatformProvider } from "../index-Cku9aRz_.mjs";
3
- import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-DQtBMqRE.mjs";
1
+ import { Ar as PlayerStateProvider } from "../types-CHmCFReJ.mjs";
2
+ import { ht as PlatformProvider } from "../index-CHI7dTc9.mjs";
3
+ import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types-DwREs5vb.mjs";
4
4
  import { Back, Haptics, KeepAwake, Lifecycle, Store } from "@moku-labs/system";
5
5
 
6
6
  //#region src/app/system.d.ts
package/dist/app.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { wr as Json } from "./types-bwefoJES.mjs";
2
- import { U as StringTable } from "./types-4T4QTU48.mjs";
3
- import { a as GameHandle, c as MemoryProvider, d as SaveKind, f as Scenario, g as SystemName, i as GameDefinition, l as PageAgent, n as GameApp, o as GamePluginConfigs, p as ScreenSeams, r as GameConfig, s as HeadlessSeams, v as WithGameState } from "./types-DQtBMqRE.mjs";
1
+ import { Tr as Json } from "./types-CHmCFReJ.mjs";
2
+ import { U as StringTable } from "./types-DmGs6x0c.mjs";
3
+ import { a as GameHandle, c as MemoryProvider, d as SaveKind, f as Scenario, g as SystemName, i as GameDefinition, l as PageAgent, n as GameApp, o as GamePluginConfigs, p as ScreenSeams, r as GameConfig, s as HeadlessSeams, v as WithGameState } from "./types-DwREs5vb.mjs";
4
4
  import { AnyPluginInstance } from "@moku-labs/core";
5
5
 
6
6
  //#region src/app/define.d.ts
package/dist/app.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { Nt as audioPlugin, St as effectsPlugin, V as platformPlugin, i as screen, m as flattenFeatures, t as createApp } from "./src-CXfBuKpl.mjs";
1
+ import { Ct as effectsPlugin, H as platformPlugin, Pt as audioPlugin, i as screen, m as flattenFeatures, t as createApp } from "./src-hVe3f8GV.mjs";
2
2
  import { t as memory } from "./memory-CWlqhS7l.mjs";
3
3
  import { n as isFakeClock, t as fakeClock } from "./fake-6mazmHK3.mjs";
4
4
  //#region src/app/define.ts
package/dist/assets.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { d as Manifest } from "./types-bwefoJES.mjs";
1
+ import { d as Manifest } from "./types-CHmCFReJ.mjs";
2
2
 
3
3
  //#region src/plugins/assets/scan/cli.d.ts
4
4
  /**
@@ -458,6 +458,44 @@ function graphHash(graph) {
458
458
  return hashText(stableJson(graph));
459
459
  }
460
460
  //#endregion
461
+ //#region src/plugins/renderer/monitor/clock.ts
462
+ /**
463
+ * @file renderer/monitor — the one renderer file that reads the page clock; lint L3 ignores it (eslint `ignores`). It
464
+ * measures the page in agent builds: the agent phase, a line's `t`, an event's time between frames, and puts a
465
+ * capture's picture in a page task after its frame. Never a game's state, whose time is `clock`.
466
+ */
467
+ /**
468
+ * Reads `globalThis.performance.now()` at call time, so a test stubs it.
469
+ *
470
+ * @returns Page-clock milliseconds.
471
+ */
472
+ function pageNow() {
473
+ return globalThis.performance.now();
474
+ }
475
+ /**
476
+ * Turns page-clock milliseconds into page epoch milliseconds, `performance.timeOrigin + ms`, rounded to 0.01 ms: the
477
+ * `t` of every log line.
478
+ *
479
+ * @param pageMs - Page-clock milliseconds.
480
+ * @returns Epoch milliseconds.
481
+ */
482
+ function epochOf(pageMs) {
483
+ return Math.round((globalThis.performance.timeOrigin + pageMs) * 100) / 100;
484
+ }
485
+ /**
486
+ * Runs work in a page task of its own, after the task running now (a frame) ends: `setTimeout` 0, which comes
487
+ * before the next animation frame. For the dev tools' own work (a capture's picture), never a game's state.
488
+ *
489
+ * @param work - The work.
490
+ * @example
491
+ * ```ts
492
+ * afterTask(() => takePicture()); // the frame ends first; the picture is its own task
493
+ * ```
494
+ */
495
+ function afterTask(work) {
496
+ globalThis.setTimeout(work, 0);
497
+ }
498
+ //#endregion
461
499
  //#region src/plugins/renderer/monitor/picture.ts
462
500
  /** Size of the badge number in CSS pixels; the picture draws it times the resolution. */
463
501
  const BADGE_FONT_PX = 12;
@@ -1000,24 +1038,78 @@ function measureLegend(mctx, layers) {
1000
1038
  return numberLegend(found);
1001
1039
  }
1002
1040
  /**
1003
- * Takes the picture of the frame just drawn. The legend and the extract's render happen now,
1004
- * synchronously, so both show this frame; only the encoding of the PNG comes later.
1041
+ * Reads what a picture keeps of the frame just drawn: the legend, when asked, and the game time.
1005
1042
  *
1006
1043
  * @param mctx - Domain context of the capture.
1007
1044
  * @param take - The layers drawn and whether the legend is measured.
1045
+ * @returns The facts of this frame.
1046
+ */
1047
+ function factsOf(mctx, take) {
1048
+ return {
1049
+ legend: take.legend ? measureLegend(mctx, take.layers) : void 0,
1050
+ elapsed: mctx.ctx.deps.time.snapshot().elapsed
1051
+ };
1052
+ }
1053
+ /**
1054
+ * Draws the stage into a PNG for facts already read. Pixi draws and reads back synchronously
1055
+ * inside the call; only the encoding of the PNG comes later.
1056
+ *
1057
+ * @param mctx - Domain context of the capture.
1058
+ * @param take - The layers drawn.
1059
+ * @param facts - The legend and the game time of the frame.
1008
1060
  * @returns The shot, or `undefined` when Pixi could not read the frame.
1009
1061
  */
1010
- async function takeShot(mctx, take) {
1011
- const legend = take.legend ? measureLegend(mctx, take.layers) : void 0;
1012
- const elapsed = mctx.ctx.deps.time.snapshot().elapsed;
1062
+ async function pictureOf(mctx, take, facts) {
1013
1063
  const png = await mctx.deps.host.extract(hiddenLayers(mctx, take.layers));
1014
1064
  return png === void 0 ? void 0 : {
1015
1065
  png,
1016
- legend,
1017
- elapsed
1066
+ legend: facts.legend,
1067
+ elapsed: facts.elapsed
1018
1068
  };
1019
1069
  }
1020
1070
  /**
1071
+ * Takes the picture of the stage now: the paused paths, where no frame runs.
1072
+ *
1073
+ * @param mctx - Domain context of the capture.
1074
+ * @param take - The layers drawn and whether the legend is measured.
1075
+ * @returns The shot, or `undefined` when Pixi could not read the frame.
1076
+ */
1077
+ function takeShot(mctx, take) {
1078
+ return pictureOf(mctx, take, factsOf(mctx, take));
1079
+ }
1080
+ /**
1081
+ * Runs the picture of a frame in a task of its own right after that frame, inside the agent span:
1082
+ * the synchronous part of the extract, Pixi's draw of the stage and its read-back (some 200 ms on a
1083
+ * slow phone), is charged to the agent and leaves the game's frame alone (F62). The span closes
1084
+ * when that part returns: the PNG encode that follows runs in the browser's own task and is no
1085
+ * page work to charge. The task comes before the next frame, so the stage is the one drawn. A
1086
+ * renderer stopped or lost by then answers `undefined` without opening the span (`cancelCaptures`
1087
+ * no longer sees a capture handed to this task). A picture that throws at once rejects the shot.
1088
+ *
1089
+ * @param mctx - Domain context of the capture.
1090
+ * @param span - The agent span.
1091
+ * @param picture - Takes the picture.
1092
+ * @returns The shot.
1093
+ */
1094
+ function afterFrame(mctx, span, picture) {
1095
+ return new Promise((resolve, reject) => {
1096
+ afterTask(() => {
1097
+ if (!mctx.deps.host.ready()) {
1098
+ resolve(void 0);
1099
+ return;
1100
+ }
1101
+ span.begin();
1102
+ try {
1103
+ resolve(picture());
1104
+ } catch (error) {
1105
+ reject(error);
1106
+ } finally {
1107
+ span.end();
1108
+ }
1109
+ });
1110
+ });
1111
+ }
1112
+ /**
1021
1113
  * Queues a picture for the end of the first drawn frame `due` accepts.
1022
1114
  *
1023
1115
  * @param mctx - Domain context of the capture.
@@ -1089,17 +1181,23 @@ function laterShot(mctx, layers, everyMs, since) {
1089
1181
  }
1090
1182
  /**
1091
1183
  * A cache for one drawn frame: the captures due on it with the same layers and legend share one
1092
- * shot, so one frame costs one extract per kind of picture.
1184
+ * shot, so one frame costs one extract per kind of picture. The facts of a shot are read on the
1185
+ * frame; its picture is taken right after it (`afterFrame`).
1093
1186
  *
1094
1187
  * @param mctx - Domain context of the capture.
1188
+ * @param span - The agent span the pictures are taken in.
1095
1189
  * @returns Takes the shot of a kind, or hands back the one taken already.
1096
1190
  */
1097
- function shotsOfFrame(mctx) {
1191
+ function shotsOfFrame(mctx, span) {
1098
1192
  const taken = /* @__PURE__ */ new Map();
1099
1193
  return (take) => {
1100
1194
  const kind = `${String(take.legend)} ${JSON.stringify(take.layers ?? [])}`;
1101
- const shot = taken.get(kind) ?? takeShot(mctx, take);
1102
- taken.set(kind, shot);
1195
+ let shot = taken.get(kind);
1196
+ if (shot === void 0) {
1197
+ const facts = factsOf(mctx, take);
1198
+ shot = afterFrame(mctx, span, () => pictureOf(mctx, take, facts));
1199
+ taken.set(kind, shot);
1200
+ }
1103
1201
  return shot;
1104
1202
  };
1105
1203
  }
@@ -1119,15 +1217,17 @@ function waitOn(state, request) {
1119
1217
  }
1120
1218
  /**
1121
1219
  * Hands the frame just drawn to the captures waiting for it. Called at the end of every drawn
1122
- * frame.
1220
+ * frame. What a picture keeps of the frame is read now; the picture itself is taken right after
1221
+ * the frame, charged to the agent (F62).
1123
1222
  *
1124
1223
  * @param mctx - Domain context of the capture.
1224
+ * @param span - The agent span the pictures are taken in.
1125
1225
  */
1126
- function serveCaptures(mctx) {
1226
+ function serveCaptures(mctx, span) {
1127
1227
  const state = mctx.ctx.state.monitor;
1128
1228
  if (state.captures.length === 0) return;
1129
1229
  const waiting = state.captures.splice(0);
1130
- const shots = shotsOfFrame(mctx);
1230
+ const shots = shotsOfFrame(mctx, span);
1131
1231
  for (const request of waiting) if (request.due()) shots(request).then(request.resolve, request.reject);
1132
1232
  else waitOn(state, request);
1133
1233
  }
@@ -1147,7 +1247,8 @@ function servePaused(state, time) {
1147
1247
  });
1148
1248
  }
1149
1249
  /**
1150
- * Answers every capture still waiting with `undefined`. Works on the state alone, for `onStop`.
1250
+ * Answers every capture still waiting with `undefined`. Works on the state alone, for `onStop`. A
1251
+ * capture whose picture task is already queued answers `undefined` by itself (`afterFrame`).
1151
1252
  *
1152
1253
  * @param state - The monitor branch of the plugin state.
1153
1254
  */
@@ -1228,4 +1329,4 @@ async function captureFrame(mctx, options) {
1228
1329
  return shot === void 0 ? void 0 : answerOf(mctx, shot, options.against);
1229
1330
  }
1230
1331
  //#endregion
1231
- export { sheetAlone as a, describedNode as c, graphHash as d, isRestCheckpoint as f, pushEntry as h, servePaused as i, findNode as l, compact as m, captureFrame as n, collectFlows as o, slotNames as p, serveCaptures as r, describeGraph as s, cancelCaptures as t, framePath as u };
1332
+ export { pushEntry as _, sheetAlone as a, collectFlows as c, findNode as d, framePath as f, compact as g, slotNames as h, servePaused as i, describeGraph as l, isRestCheckpoint as m, captureFrame as n, epochOf as o, graphHash as p, serveCaptures as r, pageNow as s, cancelCaptures as t, describedNode as u };
@@ -1,8 +1,8 @@
1
- import { $n as Bookmark, $t as Api$2, Fr as StoreApi, K as Api$1, Kr as FrameRate, Nr as Snapshot, Rr as Api, S as ScenesApi, T as DebugSwitches, Xr as Time, nr as FlowState, rt as Captured } from "./types-bwefoJES.mjs";
2
- import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-rr56N0Ab.mjs";
3
- import { N as InputApi } from "./types-4T4QTU48.mjs";
4
- import { t as HeadlessApp } from "./headless-uUUH54Ij.mjs";
5
- import { n as Command, r as ControlApp } from "./types-DMsvVZZT.mjs";
1
+ import { C as ScenesApi, E as DebugSwitches, Ir as StoreApi, Pr as Snapshot, Zr as Time, en as Api$2, er as Bookmark, it as Captured, q as Api$1, qr as FrameRate, rr as FlowState, zr as Api } from "./types-CHmCFReJ.mjs";
2
+ import { P as AnimApi, a as AudioApi, h as EffectsApi, r as UiApi } from "./types-9xAh1wGm.mjs";
3
+ import { N as InputApi } from "./types-DmGs6x0c.mjs";
4
+ import { t as HeadlessApp } from "./headless-DIbfzWkr.mjs";
5
+ import { n as Command, r as ControlApp } from "./types-L4nVF9Ny.mjs";
6
6
 
7
7
  //#region src/plugins/flow/doors/commands.d.ts
8
8
  /**
@@ -1,7 +1,7 @@
1
- import { t as HeadlessApp } from "./headless-uUUH54Ij.mjs";
2
- import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-DMsvVZZT.mjs";
3
- import { t as commands } from "./commands-G9maNqTK.mjs";
4
- import { t as defineCommand } from "./define-BAuGN0UM.mjs";
1
+ import { t as HeadlessApp } from "./headless-DIbfzWkr.mjs";
2
+ import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-L4nVF9Ny.mjs";
3
+ import { t as commands } from "./commands-CV6Deuaj.mjs";
4
+ import { t as defineCommand } from "./define-42KUe-al.mjs";
5
5
 
6
6
  //#region src/plugins/flow/doors/dev.d.ts
7
7
  /**
package/dist/control.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  import { n as controlRefused, t as controlReadOnly } from "./dev-BNndV-hU.mjs";
2
2
  import { s as defineCommand } from "./session-CeKgO2hy.mjs";
3
- import { n as commands, t as run } from "./run-BqYmcNo7.mjs";
3
+ import { n as commands, t as run } from "./run-DRcc2SKF.mjs";
4
4
  export { commands, controlReadOnly, controlRefused, defineCommand, run };
@@ -1,5 +1,5 @@
1
- import { t as HeadlessApp } from "./headless-uUUH54Ij.mjs";
2
- import { c as Source, n as Command, o as InputSchema } from "./types-DMsvVZZT.mjs";
1
+ import { t as HeadlessApp } from "./headless-DIbfzWkr.mjs";
2
+ import { c as Source, n as Command, o as InputSchema } from "./types-L4nVF9Ny.mjs";
3
3
 
4
4
  //#region src/plugins/flow/doors/define.d.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { c as describedNode, d as graphHash } from "./capture-D7XvoHdH.mjs";
1
+ import { p as graphHash, u as describedNode } from "./capture-PTJXDpxK.mjs";
2
2
  //#region src/plugins/flow/headless.ts
3
3
  const noPayload = null;
4
4
  /** Seed of a repro that pins no rng state, the seed `saveOf` writes. */
@@ -1,4 +1,4 @@
1
- import { Lr as RngState, Pn as Api$1, Wr as Api, ar as RouteStep, mr as Answer, nr as FlowState, rr as JournalEntry, wr as Json } from "./types-bwefoJES.mjs";
1
+ import { Fn as Api$1, Gr as Api, Rr as RngState, Tr as Json, hr as Answer, ir as JournalEntry, or as RouteStep, rr as FlowState } from "./types-CHmCFReJ.mjs";
2
2
 
3
3
  //#region src/plugins/flow/headless.d.ts
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { $r as Events$1, $t as Api$6, An as ReducedMotion, B as SpriteOptions, Br as Events, C as State$7, Cn as Ease, Dn as NumericFields, Er as State$5, F as OverlayValue, Fn as BundlesOf, Fr as StoreApi, Gr as Config$7, Hn as TextStylesOf, Hr as State$4, In as Config$3, Ir as RngApi, Jr as State$8, K as Api$4, Ln as EmitterIdOf, N as NineSliceValue, On as ProjectionMotion, Or as Patch, Pn as Api$2, Qr as Config$9, R as ShapeValue, Rn as GameTypes, Rr as Api$3, S as ScenesApi, Sn as DescriptionNode, Sr as Config$5, Tr as Root, U as TransformValue, V as SpriteValue, Vn as State$3, Vr as PauseReason, W as sprite, Wn as defineFlow, Wr as Api$5, Xn as FeaturePlugin, Yn as FeatureDescription, Yr as ThermalReading, Zn as FeatureTree, _ as DefineScene, _n as ResourceType, _r as Config$2, a as Config$1, b as SceneDefinition, bn as TagType, c as LoadBundles, cr as Descriptor, ct as ViewportSize, dr as GuideOptions, ei as Require, en as Config$8, er as DefineNode, et as State$6, f as State$1, fr as Hint, g as AnySceneProjection, gn as QueryTerm, hn as Narrowed, hr as Api$1, i as BundleSpec, j as HudPartValue, kn as ProjectionSpec, l as LoadReason, ln as ComponentType, lr as Effect, mn as Mut, mr as Answer, mt as FrameRing, nn as State$9, o as DefineBundles, or as SceneIdOf, p as Tier, pt as FrameRecord, q as Config$6, qr as RateChange, r as BundleMap, sn as ComponentHandle, t as Api, u as LoadResult, un as ComponentValue, ur as EffectOptions, vn as SystemDefinition, wr as Json, wt as PassKind, x as SceneSpec, y as LayerMap, yn as SystemFor, yr as State$2, zn as HudKeysOf, zr as Config$4 } from "./types-bwefoJES.mjs";
2
- import { A as GlowValue, B as Target, C as BlurValue, D as FilterComponent, F as AnimPlayerValue, H as HapticKind, I as Config$10, K as defineAnimation, L as FramesValue, M as OutlineValue, N as UniformDeclaration, O as FilterSpec, P as AnimApi, Q as play, R as MotionKeyframe, S as AlphaValue, T as DisplacementValue, U as SfxDescriptor, W as Step, _ as State$12, a as AudioApi, b as EmitterDefinition, c as MusicDescriptor, ct as OverlayApi, d as State$11, f as VolumesFor, h as EffectsApi, j as NoiseValue, k as FilterValueOf, l as MusicOptions, m as Config$12, n as State$13, r as UiApi, s as Config$11, t as Config$13, w as ColorMatrixValue, x as EmitterValue, y as EmitterConfig, z as State$10 } from "./types-rr56N0Ab.mjs";
3
- import { B as Message, C as State$16, D as TextStyleInput, G as TypedTr, H as State$14, I as Argument, J as ResolvedStyle, L as Config$14, M as Config$15, N as InputApi, O as TextStyles, P as State$15, R as I18nApi, S as Point, T as TextBind, V as Part, W as TextKey, Y as Style, Z as WhenFlags, b as Config$16, g as IntrinsicElementsFor, h as defineTokens, j as defineComponent, k as TextValue, q as IsFlags, s as PopupComponent, v as BindField, w as TextApi, x as CountdownValue, y as BindOptions, z as IntlKit } from "./types-4T4QTU48.mjs";
1
+ import { $r as Config$9, An as ProjectionSpec, Bn as HudKeysOf, Br as Config$4, C as ScenesApi, Cn as DescriptionNode, Cr as Config$5, Dr as State$5, Er as Root, Fn as Api$2, G as sprite, Gn as defineFlow, Gr as Api$5, H as SpriteValue, Hn as State$3, Hr as PauseReason, I as OverlayValue, In as BundlesOf, Ir as StoreApi, J as Config$6, Jr as RateChange, Kr as Config$7, Ln as Config$3, Lr as RngApi, M as HudPartValue, On as NumericFields, P as NineSliceValue, Qn as FeatureTree, Rn as EmitterIdOf, S as SceneSpec, Tr as Json, Tt as PassKind, Un as TextStylesOf, Ur as State$4, V as SpriteOptions, Vr as Events, W as TransformValue, Xn as FeatureDescription, Xr as ThermalReading, Yr as State$8, Zn as FeaturePlugin, _ as AnySceneProjection, _n as QueryTerm, a as Config$1, b as LayerMap, bn as SystemFor, br as State$2, c as LoadBundles, cn as ComponentHandle, dn as ComponentValue, dr as EffectOptions, ei as Events$1, en as Api$6, f as ReadyBundles, fr as GuideOptions, gn as Narrowed, gr as Api$1, hn as Mut, hr as Answer, ht as FrameRing, i as BundleSpec, jn as ReducedMotion, kn as ProjectionMotion, kr as Patch, l as LoadReason, lr as Descriptor, lt as ViewportSize, m as Tier, mt as FrameRecord, o as DefineBundles, p as State$1, pr as Hint, q as Api$4, r as BundleMap, rn as State$9, sr as SceneIdOf, t as Api, ti as Require, tn as Config$8, tr as DefineNode, tt as State$6, u as LoadResult, un as ComponentType, ur as Effect, v as DefineScene, vn as ResourceType, vr as Config$2, w as State$7, wn as Ease, x as SceneDefinition, xn as TagType, yn as SystemDefinition, z as ShapeValue, zn as GameTypes, zr as Api$3 } from "./types-CHmCFReJ.mjs";
2
+ import { A as GlowValue, B as Target, C as BlurValue, D as FilterComponent, F as AnimPlayerValue, H as HapticKind, I as Config$10, K as defineAnimation, L as FramesValue, M as OutlineValue, N as UniformDeclaration, O as FilterSpec, P as AnimApi, Q as play, R as MotionKeyframe, S as AlphaValue, T as DisplacementValue, U as SfxDescriptor, W as Step, _ as State$12, a as AudioApi, b as EmitterDefinition, c as MusicDescriptor, ct as OverlayApi, d as State$11, f as VolumesFor, h as EffectsApi, j as NoiseValue, k as FilterValueOf, l as MusicOptions, m as Config$12, n as State$13, r as UiApi, s as Config$11, t as Config$13, w as ColorMatrixValue, x as EmitterValue, y as EmitterConfig, z as State$10 } from "./types-9xAh1wGm.mjs";
3
+ import { B as Message, C as State$16, D as TextStyleInput, G as TypedTr, H as State$14, I as Argument, J as ResolvedStyle, L as Config$14, M as Config$15, N as InputApi, O as TextStyles, P as State$15, R as I18nApi, S as Point, T as TextBind, V as Part, W as TextKey, Y as Style, Z as WhenFlags, b as Config$16, g as IntrinsicElementsFor, h as defineTokens, j as defineComponent, k as TextValue, q as IsFlags, s as PopupComponent, v as BindField, w as TextApi, x as CountdownValue, y as BindOptions, z as IntlKit } from "./types-DmGs6x0c.mjs";
4
4
  import { Log } from "@moku-labs/common/browser";
5
5
  import { PluginCtx } from "@moku-labs/core";
6
6
 
@@ -1168,6 +1168,27 @@ declare function defineBundles<Key extends string>(map: Partial<Record<Key, Bund
1168
1168
  * ```
1169
1169
  */
1170
1170
  declare function load(bundle: string | readonly string[]): Descriptor<LoadResult | undefined>;
1171
+ /**
1172
+ * Creates the effect a node awaits to rest on bundles and stay answerable (F52). The handler of the
1173
+ * kind `"ready"` is registered by this plugin and runs in fast mode too. It answers `true` when every
1174
+ * bundle is loaded and its textures went to the GPU (`assets.warm`), or its last load failed, so a
1175
+ * node never hangs on it. Otherwise it starts what is missing, answers `false`, and posts the world
1176
+ * event `ready` into `flow.inbox` once all of it settled: the node rests on `inbox: ["ready"]`
1177
+ * meanwhile, and Back still answers. A headless `assets` answers `true`; an app without `assets`,
1178
+ * such as the headless app of `game.headless()`, resolves `undefined`, hence `=== false`. A name
1179
+ * the manifest lacks throws, as for `load`.
1180
+ *
1181
+ * @param bundle - One bundle name, or a list of them.
1182
+ * @returns The descriptor a transit node awaits.
1183
+ * @example
1184
+ * ```ts
1185
+ * ready("ep01.memory"); // { kind: "ready", payload: { bundles: ["ep01.memory"] } }
1186
+ * // The transit node in front of the rest node `wait` (inbox: ["elapsed", "ready"]):
1187
+ * if ((await fx(ready(["ep01.memory", "ui"]))) === false) return out.wait(); // false: still loading
1188
+ * return out.open(); // true: loaded and on the GPU
1189
+ * ```
1190
+ */
1191
+ declare function ready(bundle: string | readonly string[]): Descriptor<boolean | undefined>;
1171
1192
  //#endregion
1172
1193
  //#region src/plugins/scenes/define.d.ts
1173
1194
  /**
@@ -1881,6 +1902,7 @@ declare function defineGame<Types extends GameTypes>(): {
1881
1902
  defineScene: DefineScene<Types["assets"], BundlesOf<Types>, Types["player"], Types["session"]>;
1882
1903
  defineBundles: DefineBundles<BundlesOf<Types>>;
1883
1904
  load: LoadBundles<BundlesOf<Types>>;
1905
+ ready: ReadyBundles<BundlesOf<Types>>;
1884
1906
  sprite: (options: Omit<SpriteOptions, "texture"> & {
1885
1907
  texture: Types["assets"];
1886
1908
  }) => ReturnType<typeof sprite>;
@@ -1975,4 +1997,4 @@ declare const screen: readonly [import("@moku-labs/core").PluginInstance<"world"
1975
1997
  };
1976
1998
  }> & Record<never, never>, import("@moku-labs/core").PluginInstance<"text", Config$16, State$16, TextApi, {}> & Record<never, never>, import("@moku-labs/core").PluginInstance<"ui", Config$13, State$13, UiApi, {}> & Record<never, never>];
1977
1999
  //#endregion
1978
- export { tag as $, DropTarget as A, bind as At, Traceable as B, AnimPlayer as C, clockPlugin as Ct, defineBundles as D, projection as Dt, defineScene as E, animPlugin as Et, Pressable as F, Layer as G, PASS_KINDS as H, Pressed as I, Tree as J, Now as K, Swipeable as L, Hovered as M, label as Mt, Pointer as N, load as O, Countdown as Ot, PointerOver as P, system as Q, Tappable as R, defineMotion as S, debugPlugin as St, Frames as T, assetsPlugin as Tt, frameAt as U, Traced as V, Exiting as W, mut as X, component as Y, resource as Z, defineStyle as _, lifecyclePlugin as _t, defineEmitter as a, flattenFeatures as at, messageDuration as b, flowPlugin as bt, Alpha as c, timePlugin as ct, Displacement as d, rendererPlugin as dt, defineEffect as et, Glow as f, platformPlugin as ft, resolve as g, modelPlugin as gt, music as h, types_d_exports as ht, screen as i, defineFeature as it, Held as j, defineTextStyles as jt, Draggable as k, Text as kt, Blur as l, textPlugin as lt, Outline as m, PlatformProvider as mt, createPlugin as n, hint as nt, Emitter as o, worldPlugin as ot, Noise as p, BackResult as pt, Order as q, defineGame as r, schedule as rt, defineFilter as s, uiPlugin as st, createApp as t, guide as tt, ColorMatrix as u, scenesPlugin as ut, tr as v, inputPlugin as vt, Animation as w, audioPlugin as wt, cubicBezier as x, effectsPlugin as xt, messageArgument as y, i18nPlugin as yt, Touchable as z };
2000
+ export { system as $, Draggable as A, Text as At, Touchable as B, AnimPlayer as C, debugPlugin as Ct, defineBundles as D, animPlugin as Dt, defineScene as E, assetsPlugin as Et, PointerOver as F, Exiting as G, Traced as H, Pressable as I, Order as J, Layer as K, Pressed as L, Held as M, defineTextStyles as Mt, Hovered as N, label as Nt, load as O, projection as Ot, Pointer as P, resource as Q, Swipeable as R, defineMotion as S, effectsPlugin as St, Frames as T, audioPlugin as Tt, PASS_KINDS as U, Traceable as V, frameAt as W, component as X, Tree as Y, mut as Z, defineStyle as _, modelPlugin as _t, defineEmitter as a, defineFeature as at, messageDuration as b, i18nPlugin as bt, Alpha as c, uiPlugin as ct, Displacement as d, scenesPlugin as dt, tag as et, Glow as f, rendererPlugin as ft, resolve as g, types_d_exports as gt, music as h, PlatformProvider as ht, screen as i, schedule as it, DropTarget as j, bind as jt, ready as k, Countdown as kt, Blur as l, timePlugin as lt, Outline as m, BackResult as mt, createPlugin as n, guide as nt, Emitter as o, flattenFeatures as ot, Noise as p, platformPlugin as pt, Now as q, defineGame as r, hint as rt, defineFilter as s, worldPlugin as st, createApp as t, defineEffect as tt, ColorMatrix as u, textPlugin as ut, tr as v, lifecyclePlugin as vt, Animation as w, clockPlugin as wt, cubicBezier as x, flowPlugin as xt, messageArgument as y, inputPlugin as yt, Tappable as z };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as PoolTrim, A as HudPart, At as PerfCounts, Bt as PerfSampleLine, Ct as PROBLEM_RULES, Dr as types_d_exports$10, Dt as PerfChange, Et as PerfCause, F as OverlayValue, Ft as PerfHeaderLine, G as AdaptiveScale, Gn as exit, Gt as PoolTrimDetail, H as Transform, Ht as PerfStartupLine, I as Parent, It as PerfLogLine, J as MonitorConfig, Jn as type, Jt as SHADER_WHATS, Kn as slot, Kt as ProblemEventDetail, L as Shape, Lt as PerfLongFrameLine, M as NineSlice, Mr as SaveUnreadableError, Mt as PerfEventLine, Nt as PerfEventName, Ot as PerfChangeEntry, P as Overlay, Pt as PerfGapLine, Qt as DEMAND_REASONS, Rt as PerfMarkLine, Sn as DescriptionNode, St as PERF_LOG_VERSION, Tt as PassRecord, Un as types_d_exports$6, Ur as types_d_exports$9, Ut as PerfTelemetryLine, Vt as PerfSpikeLine, W as sprite, Wt as PerfThermalLine, Xt as ShaderWhat, Yt as ShaderEventDetail, Zr as types_d_exports$15, Zt as WarmDetail, _t as MonitorSections, br as types_d_exports$3, bt as PERF_CAUSES, dt as FrameReadResult, ft as FrameReadout, gt as MONITOR_SECTIONS, h as types_d_exports$1, ht as LongFrameEntry, it as MonitorCounts, j as HudPartValue, jt as PerfDisplay, k as Display, kt as PerfCollectorLine, mt as FrameRing, nt as types_d_exports$12, pt as FrameRecord, qn as to, qt as ProblemRule, rn as types_d_exports$17, ut as FrameColumns, vt as OverlayEventDetail, w as types_d_exports$13, wt as PassKind, xt as PERF_GAP_BUCKETS, yt as OverlayWhat, z as Sprite, zt as PerfMeasured } from "./types-bwefoJES.mjs";
2
- import { $ as sequence, E as FilterArea, G as HAPTIC_KINDS, H as HapticKind, J as frames, K as defineAnimation, Q as play, V as types_d_exports, X as mark, Y as haptic, Z as parallel, at as tween, et as set, i as types_d_exports$16, it as stagger, lt as types_d_exports$4, nt as spawn, ot as use, p as types_d_exports$2, q as external, rt as spawned, st as wait, tt as sfx, v as types_d_exports$5 } from "./types-rr56N0Ab.mjs";
3
- import { A as types_d_exports$14, E as TextFormat, F as types_d_exports$8, K as types_d_exports$7, d as DebugTrigger, f as LocalWrite, h as defineTokens, j as defineComponent, m as popup, p as ScrollState, u as Box, x as CountdownValue, y as BindOptions } from "./types-4T4QTU48.mjs";
4
- import { $ as tag, A as DropTarget, At as bind, B as Traceable, C as AnimPlayer, Ct as clockPlugin, D as defineBundles, Dt as projection, E as defineScene, Et as animPlugin, F as Pressable, G as Layer, H as PASS_KINDS, I as Pressed, J as Tree, K as Now, L as Swipeable, M as Hovered, Mt as label, N as Pointer, O as load, Ot as Countdown, P as PointerOver, Q as system, R as Tappable, S as defineMotion, St as debugPlugin, T as Frames, Tt as assetsPlugin, U as frameAt, V as Traced, W as Exiting, X as mut, Y as component, Z as resource, _ as defineStyle, _t as lifecyclePlugin, a as defineEmitter, at as flattenFeatures, b as messageDuration, bt as flowPlugin, c as Alpha, ct as timePlugin, d as Displacement, dt as rendererPlugin, et as defineEffect, f as Glow, ft as platformPlugin, g as resolve, gt as modelPlugin, h as music, ht as types_d_exports$11, i as screen, it as defineFeature, j as Held, jt as defineTextStyles, k as Draggable, kt as Text, l as Blur, lt as textPlugin, m as Outline, mt as PlatformProvider, n as createPlugin, nt as hint, o as Emitter, ot as worldPlugin, p as Noise, pt as BackResult, q as Order, r as defineGame, rt as schedule, s as defineFilter, st as uiPlugin, t as createApp, tt as guide, u as ColorMatrix, ut as scenesPlugin, v as tr, vt as inputPlugin, w as Animation, wt as audioPlugin, x as cubicBezier, xt as effectsPlugin, y as messageArgument, yt as i18nPlugin, z as Touchable } from "./index-Cku9aRz_.mjs";
5
- export { type AdaptiveScale, Alpha, types_d_exports as Anim, AnimPlayer, Animation, types_d_exports$1 as Assets, types_d_exports$2 as Audio, type BackResult, type BindOptions, Blur, Box, types_d_exports$3 as Clock, ColorMatrix, Countdown, type CountdownValue, DEMAND_REASONS, types_d_exports$4 as Debug, DebugTrigger, type DescriptionNode, Displacement, Display, Draggable, DropTarget, types_d_exports$5 as Effects, Emitter, Exiting, type FilterArea, types_d_exports$6 as Flow, type FrameColumns, type FrameReadResult, type FrameReadout, type FrameRecord, type FrameRing, Frames, Glow, HAPTIC_KINDS, type HapticKind, Held, Hovered, HudPart, type HudPartValue, types_d_exports$7 as I18n, types_d_exports$8 as Input, Layer, types_d_exports$9 as Lifecycle, LocalWrite, type LongFrameEntry, MONITOR_SECTIONS, types_d_exports$10 as Model, type MonitorConfig, type MonitorCounts, type MonitorSections, NineSlice, Noise, Now, Order, Outline, Overlay, type OverlayEventDetail, type OverlayValue, type OverlayWhat, PASS_KINDS, PERF_CAUSES, PERF_GAP_BUCKETS, PERF_LOG_VERSION, PROBLEM_RULES, Parent, type PassKind, type PassRecord, type PerfCause, type PerfChange, type PerfChangeEntry, type PerfCollectorLine, type PerfCounts, type PerfDisplay, type PerfEventLine, type PerfEventName, type PerfGapLine, type PerfHeaderLine, type PerfLogLine, type PerfLongFrameLine, type PerfMarkLine, type PerfMeasured, type PerfSampleLine, type PerfSpikeLine, type PerfStartupLine, type PerfTelemetryLine, type PerfThermalLine, types_d_exports$11 as Platform, type PlatformProvider, Pointer, PointerOver, type PoolTrim, type PoolTrimDetail, Pressable, Pressed, type ProblemEventDetail, type ProblemRule, types_d_exports$12 as Renderer, SHADER_WHATS, SaveUnreadableError, types_d_exports$13 as Scenes, ScrollState, type ShaderEventDetail, type ShaderWhat, Shape, Sprite, Swipeable, Tappable, Text, type TextFormat, types_d_exports$14 as TextTypes, types_d_exports$15 as Time, Touchable, Traceable, Traced, Transform, Tree, types_d_exports$16 as Ui, type WarmDetail, types_d_exports$17 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, createApp, createPlugin, cubicBezier, debugPlugin, defineAnimation, defineBundles, defineComponent, defineEffect, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flattenFeatures, flowPlugin, frameAt, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
1
+ import { $t as DEMAND_REASONS, A as Display, At as PerfCollectorLine, B as Sprite, Bt as PerfMeasured, Cn as DescriptionNode, Ct as PERF_LOG_VERSION, Dt as PerfCause, Et as PassRecord, F as Overlay, Ft as PerfGapLine, G as sprite, Gt as PerfThermalLine, Ht as PerfSpikeLine, I as OverlayValue, It as PerfHeaderLine, Jn as to, Jt as ProblemRule, K as AdaptiveScale, Kn as exit, Kt as PoolTrimDetail, L as Parent, Lt as PerfLogLine, M as HudPartValue, Mt as PerfDisplay, N as NineSlice, Nr as SaveUnreadableError, Nt as PerfEventLine, Or as types_d_exports$10, Ot as PerfChange, Pt as PerfEventName, Qr as types_d_exports$15, Qt as WarmDetail, R as Shape, Rt as PerfLongFrameLine, St as PERF_GAP_BUCKETS, T as types_d_exports$13, Tt as PassKind, U as Transform, Ut as PerfStartupLine, Vt as PerfSampleLine, Wn as types_d_exports$6, Wr as types_d_exports$9, Wt as PerfTelemetryLine, Xt as ShaderEventDetail, Y as MonitorConfig, Yn as type, Yt as SHADER_WHATS, Zt as ShaderWhat, _t as MONITOR_SECTIONS, at as MonitorCounts, bt as OverlayWhat, dt as FrameColumns, et as PoolTrim, ft as FrameReadResult, g as types_d_exports$1, gt as LongFrameEntry, ht as FrameRing, in as types_d_exports$17, j as HudPart, jt as PerfCounts, kt as PerfChangeEntry, mt as FrameRecord, pt as FrameReadout, qn as slot, qt as ProblemEventDetail, rt as types_d_exports$12, vt as MonitorSections, wt as PROBLEM_RULES, xr as types_d_exports$3, xt as PERF_CAUSES, yt as OverlayEventDetail, zt as PerfMarkLine } from "./types-CHmCFReJ.mjs";
2
+ import { $ as sequence, E as FilterArea, G as HAPTIC_KINDS, H as HapticKind, J as frames, K as defineAnimation, Q as play, V as types_d_exports, X as mark, Y as haptic, Z as parallel, at as tween, et as set, i as types_d_exports$16, it as stagger, lt as types_d_exports$4, nt as spawn, ot as use, p as types_d_exports$2, q as external, rt as spawned, st as wait, tt as sfx, v as types_d_exports$5 } from "./types-9xAh1wGm.mjs";
3
+ import { A as types_d_exports$14, E as TextFormat, F as types_d_exports$8, K as types_d_exports$7, d as DebugTrigger, f as LocalWrite, h as defineTokens, j as defineComponent, m as popup, p as ScrollState, u as Box, x as CountdownValue, y as BindOptions } from "./types-DmGs6x0c.mjs";
4
+ import { $ as system, A as Draggable, At as Text, B as Touchable, C as AnimPlayer, Ct as debugPlugin, D as defineBundles, Dt as animPlugin, E as defineScene, Et as assetsPlugin, F as PointerOver, G as Exiting, H as Traced, I as Pressable, J as Order, K as Layer, L as Pressed, M as Held, Mt as defineTextStyles, N as Hovered, Nt as label, O as load, Ot as projection, P as Pointer, Q as resource, R as Swipeable, S as defineMotion, St as effectsPlugin, T as Frames, Tt as audioPlugin, U as PASS_KINDS, V as Traceable, W as frameAt, X as component, Y as Tree, Z as mut, _ as defineStyle, _t as modelPlugin, a as defineEmitter, at as defineFeature, b as messageDuration, bt as i18nPlugin, c as Alpha, ct as uiPlugin, d as Displacement, dt as scenesPlugin, et as tag, f as Glow, ft as rendererPlugin, g as resolve, gt as types_d_exports$11, h as music, ht as PlatformProvider, i as screen, it as schedule, j as DropTarget, jt as bind, k as ready, kt as Countdown, l as Blur, lt as timePlugin, m as Outline, mt as BackResult, n as createPlugin, nt as guide, o as Emitter, ot as flattenFeatures, p as Noise, pt as platformPlugin, q as Now, r as defineGame, rt as hint, s as defineFilter, st as worldPlugin, t as createApp, tt as defineEffect, u as ColorMatrix, ut as textPlugin, v as tr, vt as lifecyclePlugin, w as Animation, wt as clockPlugin, x as cubicBezier, xt as flowPlugin, y as messageArgument, yt as inputPlugin, z as Tappable } from "./index-CHI7dTc9.mjs";
5
+ export { type AdaptiveScale, Alpha, types_d_exports as Anim, AnimPlayer, Animation, types_d_exports$1 as Assets, types_d_exports$2 as Audio, type BackResult, type BindOptions, Blur, Box, types_d_exports$3 as Clock, ColorMatrix, Countdown, type CountdownValue, DEMAND_REASONS, types_d_exports$4 as Debug, DebugTrigger, type DescriptionNode, Displacement, Display, Draggable, DropTarget, types_d_exports$5 as Effects, Emitter, Exiting, type FilterArea, types_d_exports$6 as Flow, type FrameColumns, type FrameReadResult, type FrameReadout, type FrameRecord, type FrameRing, Frames, Glow, HAPTIC_KINDS, type HapticKind, Held, Hovered, HudPart, type HudPartValue, types_d_exports$7 as I18n, types_d_exports$8 as Input, Layer, types_d_exports$9 as Lifecycle, LocalWrite, type LongFrameEntry, MONITOR_SECTIONS, types_d_exports$10 as Model, type MonitorConfig, type MonitorCounts, type MonitorSections, NineSlice, Noise, Now, Order, Outline, Overlay, type OverlayEventDetail, type OverlayValue, type OverlayWhat, PASS_KINDS, PERF_CAUSES, PERF_GAP_BUCKETS, PERF_LOG_VERSION, PROBLEM_RULES, Parent, type PassKind, type PassRecord, type PerfCause, type PerfChange, type PerfChangeEntry, type PerfCollectorLine, type PerfCounts, type PerfDisplay, type PerfEventLine, type PerfEventName, type PerfGapLine, type PerfHeaderLine, type PerfLogLine, type PerfLongFrameLine, type PerfMarkLine, type PerfMeasured, type PerfSampleLine, type PerfSpikeLine, type PerfStartupLine, type PerfTelemetryLine, type PerfThermalLine, types_d_exports$11 as Platform, type PlatformProvider, Pointer, PointerOver, type PoolTrim, type PoolTrimDetail, Pressable, Pressed, type ProblemEventDetail, type ProblemRule, types_d_exports$12 as Renderer, SHADER_WHATS, SaveUnreadableError, types_d_exports$13 as Scenes, ScrollState, type ShaderEventDetail, type ShaderWhat, Shape, Sprite, Swipeable, Tappable, Text, type TextFormat, types_d_exports$14 as TextTypes, types_d_exports$15 as Time, Touchable, Traceable, Traced, Transform, Tree, types_d_exports$16 as Ui, type WarmDetail, types_d_exports$17 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, createApp, createPlugin, cubicBezier, debugPlugin, defineAnimation, defineBundles, defineComponent, defineEffect, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flattenFeatures, flowPlugin, frameAt, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, ready, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as spawn, $t as exit, A as types_exports$6, At as Outline, B as textPlugin, Bt as rendererPlugin, C as types_exports$13, Ct as Emitter, D as types_exports$9, Dt as Displacement, E as types_exports$10, Et as ColorMatrix, F as types_exports$1, Ft as assetsPlugin, G as frames, Gt as PERF_GAP_BUCKETS, H as HAPTIC_KINDS, Ht as frameAt, I as types_exports, It as animPlugin, J as parallel, Jt as SHADER_WHATS, K as haptic, Kt as PERF_LOG_VERSION, L as uiPlugin, Lt as AnimPlayer, M as types_exports$4, Mt as debugPlugin, N as types_exports$3, Nt as audioPlugin, O as types_exports$8, Ot as Glow, P as types_exports$2, Pt as scenesPlugin, Q as sfx, R as resolve, Rt as Animation, S as types_exports$14, St as effectsPlugin, T as types_exports$11, Tt as Blur, U as defineAnimation, Ut as MONITOR_SECTIONS, V as platformPlugin, Vt as PASS_KINDS, W as external, Wt as PERF_CAUSES, X as sequence, Xt as worldPlugin, Y as play, Yt as DEMAND_REASONS, Z as set, Zt as flowPlugin, _ as defineBundles, _t as Traceable, a as cubicBezier, an as lifecyclePlugin, at as inputPlugin, b as types_exports$16, bt as messageArgument, c as hint, ct as Held, d as defineScene, dt as PointerOver, en as slot, et as spawned, f as tr, ft as Pressable, g as music, gt as Touchable, h as defineEmitter, ht as Tappable, i as screen, in as SaveUnreadableError, it as wait, j as types_exports$5, jt as defineFilter, k as types_exports$7, kt as Noise, l as schedule, lt as Hovered, m as flattenFeatures, mt as Swipeable, n as createPlugin, nn as type, nt as tween, o as defineEffect, on as timePlugin, ot as Draggable, p as defineFeature, pt as Pressed, q as mark, qt as PROBLEM_RULES, r as defineGame, rn as modelPlugin, rt as use, s as guide, sn as clockPlugin, st as DropTarget, t as createApp, tn as to, tt as stagger, u as projection, ut as Pointer, v as load, vt as Traced, w as types_exports$12, wt as Alpha, x as types_exports$15, xt as messageDuration, y as types_exports$17, yt as i18nPlugin, z as defineMotion, zt as Frames } from "./src-CXfBuKpl.mjs";
2
- import { $ as component, H as Shape, I as Display, J as Exiting, L as HudPart, Q as Tree, R as NineSlice, S as bind, T as label, U as Sprite, V as Parent, W as Transform, X as Now, Y as Layer, Z as Order, b as Countdown, d as LocalWrite, et as mut, g as popup, it as tag, l as DebugTrigger, nt as system, p as ScrollState, q as sprite, s as Box, tt as resource, v as defineTokens, w as defineTextStyles, x as Text, y as defineStyle, z as Overlay } from "./visual-DNM5oFYx.mjs";
1
+ import { $ as sfx, A as types_exports$7, At as Noise, B as defineMotion, Bt as Frames, C as types_exports$14, Ct as effectsPlugin, D as types_exports$10, Dt as ColorMatrix, E as types_exports$11, Et as Blur, F as types_exports$2, Ft as scenesPlugin, G as external, Gt as PERF_CAUSES, H as platformPlugin, Ht as PASS_KINDS, I as types_exports$1, It as assetsPlugin, J as mark, Jt as PROBLEM_RULES, K as frames, Kt as PERF_GAP_BUCKETS, L as types_exports, Lt as animPlugin, M as types_exports$5, Mt as defineFilter, N as types_exports$4, Nt as debugPlugin, O as types_exports$9, Ot as Displacement, P as types_exports$3, Pt as audioPlugin, Q as set, Qt as flowPlugin, R as uiPlugin, Rt as AnimPlayer, S as types_exports$15, St as messageDuration, T as types_exports$12, Tt as Alpha, U as HAPTIC_KINDS, Ut as frameAt, V as textPlugin, Vt as rendererPlugin, W as defineAnimation, Wt as MONITOR_SECTIONS, X as play, Xt as DEMAND_REASONS, Y as parallel, Yt as SHADER_WHATS, Z as sequence, Zt as worldPlugin, _ as defineBundles, _t as Touchable, a as cubicBezier, an as SaveUnreadableError, at as wait, b as types_exports$17, bt as i18nPlugin, c as hint, cn as clockPlugin, ct as DropTarget, d as defineScene, dt as Pointer, en as exit, et as spawn, f as tr, ft as PointerOver, g as music, gt as Tappable, h as defineEmitter, ht as Swipeable, i as screen, in as modelPlugin, it as use, j as types_exports$6, jt as Outline, k as types_exports$8, kt as Glow, l as schedule, lt as Held, m as flattenFeatures, mt as Pressed, n as createPlugin, nn as to, nt as stagger, o as defineEffect, on as lifecyclePlugin, ot as inputPlugin, p as defineFeature, pt as Pressable, q as haptic, qt as PERF_LOG_VERSION, r as defineGame, rn as type, rt as tween, s as guide, sn as timePlugin, st as Draggable, t as createApp, tn as slot, tt as spawned, u as projection, ut as Hovered, v as load, vt as Traceable, w as types_exports$13, wt as Emitter, x as types_exports$16, xt as messageArgument, y as ready, yt as Traced, z as resolve, zt as Animation } from "./src-hVe3f8GV.mjs";
2
+ import { $ as component, H as Shape, I as Display, J as Exiting, L as HudPart, Q as Tree, R as NineSlice, S as bind, T as label, U as Sprite, V as Parent, W as Transform, X as Now, Y as Layer, Z as Order, b as Countdown, d as LocalWrite, et as mut, g as popup, it as tag, l as DebugTrigger, nt as system, p as ScrollState, q as sprite, s as Box, tt as resource, v as defineTokens, w as defineTextStyles, x as Text, y as defineStyle, z as Overlay } from "./visual-kEC9nb-o.mjs";
3
3
  import { t as defineComponent } from "./component-DGg5DqKK.mjs";
4
- export { Alpha, types_exports as Anim, AnimPlayer, Animation, types_exports$1 as Assets, types_exports$2 as Audio, Blur, Box, types_exports$3 as Clock, ColorMatrix, Countdown, DEMAND_REASONS, types_exports$4 as Debug, DebugTrigger, Displacement, Display, Draggable, DropTarget, types_exports$5 as Effects, Emitter, Exiting, types_exports$6 as Flow, Frames, Glow, HAPTIC_KINDS, Held, Hovered, HudPart, types_exports$7 as I18n, types_exports$8 as Input, Layer, types_exports$9 as Lifecycle, LocalWrite, MONITOR_SECTIONS, types_exports$10 as Model, NineSlice, Noise, Now, Order, Outline, Overlay, PASS_KINDS, PERF_CAUSES, PERF_GAP_BUCKETS, PERF_LOG_VERSION, PROBLEM_RULES, Parent, types_exports$11 as Platform, Pointer, PointerOver, Pressable, Pressed, types_exports$12 as Renderer, SHADER_WHATS, SaveUnreadableError, types_exports$13 as Scenes, ScrollState, Shape, Sprite, Swipeable, Tappable, Text, types_exports$14 as TextTypes, types_exports$15 as Time, Touchable, Traceable, Traced, Transform, Tree, types_exports$16 as Ui, types_exports$17 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, createApp, createPlugin, cubicBezier, debugPlugin, defineAnimation, defineBundles, defineComponent, defineEffect, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flattenFeatures, flowPlugin, frameAt, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
4
+ export { Alpha, types_exports as Anim, AnimPlayer, Animation, types_exports$1 as Assets, types_exports$2 as Audio, Blur, Box, types_exports$3 as Clock, ColorMatrix, Countdown, DEMAND_REASONS, types_exports$4 as Debug, DebugTrigger, Displacement, Display, Draggable, DropTarget, types_exports$5 as Effects, Emitter, Exiting, types_exports$6 as Flow, Frames, Glow, HAPTIC_KINDS, Held, Hovered, HudPart, types_exports$7 as I18n, types_exports$8 as Input, Layer, types_exports$9 as Lifecycle, LocalWrite, MONITOR_SECTIONS, types_exports$10 as Model, NineSlice, Noise, Now, Order, Outline, Overlay, PASS_KINDS, PERF_CAUSES, PERF_GAP_BUCKETS, PERF_LOG_VERSION, PROBLEM_RULES, Parent, types_exports$11 as Platform, Pointer, PointerOver, Pressable, Pressed, types_exports$12 as Renderer, SHADER_WHATS, SaveUnreadableError, types_exports$13 as Scenes, ScrollState, Shape, Sprite, Swipeable, Tappable, Text, types_exports$14 as TextTypes, types_exports$15 as Time, Touchable, Traceable, Traced, Transform, Tree, types_exports$16 as Ui, types_exports$17 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, createApp, createPlugin, cubicBezier, debugPlugin, defineAnimation, defineBundles, defineComponent, defineEffect, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flattenFeatures, flowPlugin, frameAt, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, ready, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
@@ -1,9 +1,9 @@
1
- import { $t as Api$1, Bn as Position, K as Api$2, Nr as Snapshot, at as RenderStats, cn as ComponentSchema, fn as EntitySnapshot, m as Usage, pn as FrameDiff, rr as JournalEntry, t as Api$3, tn as Explained, tr as FlowGraph, tt as Under, xr as Api } from "./types-bwefoJES.mjs";
2
- import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-rr56N0Ab.mjs";
3
- import { c as UiNode } from "./types-4T4QTU48.mjs";
4
- import { t as HeadlessApp } from "./headless-uUUH54Ij.mjs";
5
- import { a as InputOf, c as Source, i as InputArguments, l as WatchApp, o as InputSchema, t as CheatEntry, u as WatchInput } from "./types-DMsvVZZT.mjs";
6
- import { n as defineSource } from "./define-BAuGN0UM.mjs";
1
+ import { Pr as Snapshot, Sr as Api, Vn as Position, en as Api$1, h as Usage, ir as JournalEntry, ln as ComponentSchema, mn as FrameDiff, nn as Explained, nr as FlowGraph, nt as Under, ot as RenderStats, pn as EntitySnapshot, q as Api$2, t as Api$3 } from "./types-CHmCFReJ.mjs";
2
+ import { a as AudioApi, g as EffectsStats, h as EffectsApi, r as UiApi, u as SoundEntry } from "./types-9xAh1wGm.mjs";
3
+ import { c as UiNode } from "./types-DmGs6x0c.mjs";
4
+ import { t as HeadlessApp } from "./headless-DIbfzWkr.mjs";
5
+ import { a as InputOf, c as Source, i as InputArguments, l as WatchApp, o as InputSchema, t as CheatEntry, u as WatchInput } from "./types-L4nVF9Ny.mjs";
6
+ import { n as defineSource } from "./define-42KUe-al.mjs";
7
7
 
8
8
  //#region src/plugins/flow/doors/read.d.ts
9
9
  /**
package/dist/inspect.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  import { c as defineSource } from "./session-CeKgO2hy.mjs";
2
- import { n as read, r as watch, t as sources } from "./sources-BYKXYPhd.mjs";
2
+ import { n as read, r as watch, t as sources } from "./sources-Dpc4NXvG.mjs";
3
3
  import "./inspect-la_KkjCS.mjs";
4
4
  export { defineSource, read, sources, watch };
@@ -1,2 +1,2 @@
1
- import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-CuMDZhii.mjs";
1
+ import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-BcMjHiib.mjs";
2
2
  export { Fragment, type JSX, jsx, jsxDEV, jsxs };
@@ -1,2 +1,2 @@
1
- import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-CuMDZhii.mjs";
1
+ import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-BcMjHiib.mjs";
2
2
  export { Fragment, type JSX, jsx, jsxs };
@@ -1,6 +1,6 @@
1
- import { a as sheetAlone, d as graphHash } from "./capture-D7XvoHdH.mjs";
1
+ import { a as sheetAlone, p as graphHash } from "./capture-PTJXDpxK.mjs";
2
2
  import { a as isDev, i as isControl, n as controlRefused, o as notInstalled, r as isAgent, t as controlReadOnly } from "./dev-BNndV-hU.mjs";
3
- import { n as reproBookmark } from "./headless-BA6ffzqD.mjs";
3
+ import { n as reproBookmark } from "./headless-Bxxl_mQX.mjs";
4
4
  import { a as readTarget, i as isProjectionTarget, n as isTainted, o as inputOrEmpty, r as recordCheat, s as defineCommand } from "./session-CeKgO2hy.mjs";
5
5
  //#region src/plugins/anim/control.ts
6
6
  /**
@@ -1,4 +1,4 @@
1
- import { _ as UiIntrinsicElements, a as JsxChild, t as DescriptionNode } from "./types-4T4QTU48.mjs";
1
+ import { _ as UiIntrinsicElements, a as JsxChild, t as DescriptionNode } from "./types-DmGs6x0c.mjs";
2
2
 
3
3
  //#region src/plugins/ui/jsx/runtime.d.ts
4
4
  /** What the compiler passes as props: the children plus whatever the tag declared. */
@@ -1,4 +1,4 @@
1
- import { F as rootPoseOf, H as Shape, R as NineSlice, Y as Layer, j as parentOf, n as drawnRect, s as Box } from "./visual-DNM5oFYx.mjs";
1
+ import { F as rootPoseOf, H as Shape, R as NineSlice, Y as Layer, j as parentOf, n as drawnRect, s as Box } from "./visual-kEC9nb-o.mjs";
2
2
  import { o as notInstalled } from "./dev-BNndV-hU.mjs";
3
3
  import { a as readTarget, c as defineSource, n as isTainted, o as inputOrEmpty, t as cheatsOf } from "./session-CeKgO2hy.mjs";
4
4
  //#region src/plugins/flow/doors/read.ts