@typeonce/ritmo-devtools 0.6.0 → 0.7.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.
Files changed (72) hide show
  1. package/README.md +105 -21
  2. package/dist/Determinism.d.ts +70 -0
  3. package/dist/Determinism.d.ts.map +1 -0
  4. package/dist/Determinism.js +137 -0
  5. package/dist/Determinism.js.map +1 -0
  6. package/dist/Format.d.ts +6 -1
  7. package/dist/Format.d.ts.map +1 -1
  8. package/dist/Format.js +24 -0
  9. package/dist/Format.js.map +1 -1
  10. package/dist/Invariant.d.ts +34 -12
  11. package/dist/Invariant.d.ts.map +1 -1
  12. package/dist/Invariant.js +6 -19
  13. package/dist/Invariant.js.map +1 -1
  14. package/dist/Lint.d.ts +60 -0
  15. package/dist/Lint.d.ts.map +1 -0
  16. package/dist/Lint.js +15 -0
  17. package/dist/Lint.js.map +1 -0
  18. package/dist/Monitor.d.ts +18 -4
  19. package/dist/Monitor.d.ts.map +1 -1
  20. package/dist/Monitor.js +31 -20
  21. package/dist/Monitor.js.map +1 -1
  22. package/dist/Replay.d.ts +271 -0
  23. package/dist/Replay.d.ts.map +1 -0
  24. package/dist/Replay.js +335 -0
  25. package/dist/Replay.js.map +1 -0
  26. package/dist/ReplayNodeSink.d.ts +11 -0
  27. package/dist/ReplayNodeSink.d.ts.map +1 -0
  28. package/dist/ReplayNodeSink.js +29 -0
  29. package/dist/ReplayNodeSink.js.map +1 -0
  30. package/dist/ReplayVitePlugin.d.ts +41 -0
  31. package/dist/ReplayVitePlugin.d.ts.map +1 -0
  32. package/dist/ReplayVitePlugin.js +41 -0
  33. package/dist/ReplayVitePlugin.js.map +1 -0
  34. package/dist/ReplayViteSink.d.ts +30 -0
  35. package/dist/ReplayViteSink.d.ts.map +1 -0
  36. package/dist/ReplayViteSink.js +9 -0
  37. package/dist/ReplayViteSink.js.map +1 -0
  38. package/dist/Session.d.ts +66 -14
  39. package/dist/Session.d.ts.map +1 -1
  40. package/dist/Session.js +92 -6
  41. package/dist/Session.js.map +1 -1
  42. package/dist/cli.d.ts +3 -0
  43. package/dist/cli.d.ts.map +1 -0
  44. package/dist/cli.js +57 -0
  45. package/dist/cli.js.map +1 -0
  46. package/dist/index.d.ts +3 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/internal/monitor.d.ts +4 -2
  51. package/dist/internal/monitor.d.ts.map +1 -1
  52. package/dist/internal/monitor.js +9 -3
  53. package/dist/internal/monitor.js.map +1 -1
  54. package/dist/internal/version.d.ts +7 -0
  55. package/dist/internal/version.d.ts.map +1 -0
  56. package/dist/internal/version.js +7 -0
  57. package/dist/internal/version.js.map +1 -0
  58. package/package.json +5 -2
  59. package/src/Determinism.ts +190 -0
  60. package/src/Format.ts +25 -0
  61. package/src/Invariant.ts +38 -12
  62. package/src/Lint.ts +72 -0
  63. package/src/Monitor.ts +48 -25
  64. package/src/Replay.ts +583 -0
  65. package/src/ReplayNodeSink.ts +38 -0
  66. package/src/ReplayVitePlugin.ts +74 -0
  67. package/src/ReplayViteSink.ts +33 -0
  68. package/src/Session.ts +153 -23
  69. package/src/cli.ts +55 -0
  70. package/src/index.ts +3 -0
  71. package/src/internal/monitor.ts +12 -5
  72. package/src/internal/version.ts +6 -0
@@ -1,27 +1,49 @@
1
1
  /**
2
2
  * Named world checks evaluated after every frame of a session run.
3
3
  *
4
- * A check returns a message describing the violation, or `undefined` when the
5
- * invariant holds. Read the world through `runtime.inspect(...)` with a
6
- * `Game.Inspector`, so the check stays typed and read-only.
4
+ * An invariant is a `Game.Inspector` whose projection returns a message
5
+ * describing the violation, or `undefined` when the invariant holds. The
6
+ * inspector declares its reads like a system and cannot write, so the check
7
+ * is typed and read-only, and `Session.make` rejects at compile time an
8
+ * invariant that reads a resource, service, or machine the runtime does not
9
+ * provide. The invariant is named after its inspector.
10
+ *
11
+ * Use `Invariant.fromInspector` for checks over the world during a session.
12
+ * Use `Game.Inspector` with `runtime.inspect(...)` directly for one-off reads
13
+ * in tests and scripts.
7
14
  *
8
15
  * @module Invariant
9
16
  * @docGroup devtools
10
17
  *
11
18
  * @example
12
19
  * ```ts
13
- * const PlayerInsideWorld = Invariant.make("player inside world", () => {
14
- * for (const position of runtime.inspect(PlayerPositions)) {
15
- * if (position.x < 0 || position.x > WORLD_WIDTH) return `player at x=${position.x}`
20
+ * const PlayerInsideWorld = Invariant.fromInspector(Game.Inspector("player inside world", {
21
+ * queries: { players: Game.Query({ selection: { position: Game.Query.read(Position) }, with: [Player] }) }
22
+ * }, ({ queries }) => {
23
+ * for (const { data } of queries.players.each()) {
24
+ * const { x } = data.position.get()
25
+ * if (x < 0 || x > WORLD_WIDTH) return `player at x=${x}`
16
26
  * }
17
27
  * return undefined
18
- * })
28
+ * }))
29
+ *
30
+ * const session = Session.make(runtime, { schedules: { update }, invariants: [PlayerInsideWorld] })
19
31
  * ```
20
32
  */
21
- export interface Invariant {
22
- readonly name: string;
23
- /** A violation message, or `undefined` when the invariant holds. */
24
- readonly check: () => string | undefined;
33
+ import type * as Inspector from "@typeonce/ritmo/Inspector";
34
+ export declare namespace Invariant {
35
+ /** An inspector usable as an invariant: it returns a violation message or `undefined`. */
36
+ type CheckInspector = Inspector.InspectorDefinition<any, string | undefined, any, any, any>;
37
+ }
38
+ export interface Invariant<I extends Invariant.CheckInspector = Invariant.CheckInspector> {
39
+ /** The inspector's name, printed when the invariant is violated. */
40
+ readonly name: I["name"];
41
+ /** The read-only check: a violation message, or `undefined` when the invariant holds. */
42
+ readonly inspector: I;
25
43
  }
26
- export declare const make: (name: string, check: () => string | undefined) => Invariant;
44
+ /**
45
+ * Turns a `Game.Inspector` that returns `string | undefined` into an
46
+ * invariant for `Session.make({ invariants })`.
47
+ */
48
+ export declare const fromInspector: <const I extends Invariant.CheckInspector>(inspector: I) => Invariant<I>;
27
49
  //# sourceMappingURL=Invariant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Invariant.d.ts","sourceRoot":"","sources":["../src/Invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CACzC;AAED,eAAO,MAAM,IAAI,SAAU,MAAM,SAAS,MAAM,MAAM,GAAG,SAAS,KAAG,SAA8B,CAAA"}
1
+ {"version":3,"file":"Invariant.d.ts","sourceRoot":"","sources":["../src/Invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,KAAK,SAAS,MAAM,2BAA2B,CAAA;AAE3D,yBAAiB,SAAS,CAAC;IACzB,0FAA0F;IAC1F,KAAY,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACnG;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc;IACtF,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACxB,yFAAyF;IACzF,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,cAAc,aAAa,CAAC,KAAG,SAAS,CAAC,CAAC,CAGhG,CAAA"}
package/dist/Invariant.js CHANGED
@@ -1,22 +1,9 @@
1
1
  /**
2
- * Named world checks evaluated after every frame of a session run.
3
- *
4
- * A check returns a message describing the violation, or `undefined` when the
5
- * invariant holds. Read the world through `runtime.inspect(...)` with a
6
- * `Game.Inspector`, so the check stays typed and read-only.
7
- *
8
- * @module Invariant
9
- * @docGroup devtools
10
- *
11
- * @example
12
- * ```ts
13
- * const PlayerInsideWorld = Invariant.make("player inside world", () => {
14
- * for (const position of runtime.inspect(PlayerPositions)) {
15
- * if (position.x < 0 || position.x > WORLD_WIDTH) return `player at x=${position.x}`
16
- * }
17
- * return undefined
18
- * })
19
- * ```
2
+ * Turns a `Game.Inspector` that returns `string | undefined` into an
3
+ * invariant for `Session.make({ invariants })`.
20
4
  */
21
- export const make = (name, check) => ({ name, check });
5
+ export const fromInspector = (inspector) => ({
6
+ name: inspector.name,
7
+ inspector
8
+ });
22
9
  //# sourceMappingURL=Invariant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Invariant.js","sourceRoot":"","sources":["../src/Invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAA+B,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"Invariant.js","sourceRoot":"","sources":["../src/Invariant.ts"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAA2C,SAAY,EAAgB,EAAE,CAAC,CAAC;IACtG,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,SAAS;CACV,CAAC,CAAA"}
package/dist/Lint.d.ts ADDED
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The static lints of a game's schedules, as a tool: `describe()`'s lints over
3
+ * a headless runtime, each with its fix, and a verdict (warnings fail, info
4
+ * does not).
5
+ *
6
+ * Run it from a game's `check` script with the CLI:
7
+ *
8
+ * ```sh
9
+ * ritmo-devtools lint src/simulation.ts
10
+ * ```
11
+ *
12
+ * The entry module exports `lintTarget`, a function that builds the game's
13
+ * headless runtime (made with `debug: { hostClock }`) and names its schedules: the
14
+ * ones ticked headless in `schedules`, and the ones that need a renderer or
15
+ * other host services in `describe` (described and linted, never run).
16
+ *
17
+ * Use `Session.make(...).describe()` instead to read the lints while
18
+ * debugging; this module is for the pass/fail check.
19
+ *
20
+ * @module Lint
21
+ * @docGroup devtools
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * // src/simulation.ts
26
+ * export const lintTarget = (): Lint.Target<typeof Game.schema, typeof Game.schema> => {
27
+ * const sim = createSimulation({ keyboard: Keyboard.scripted(bindings, []) })
28
+ * return { runtime: sim.runtime, schedules: { setup: sim.setup, update: sim.update }, describe: { render } }
29
+ * }
30
+ * ```
31
+ */
32
+ import type * as Debug from "@typeonce/ritmo/Debug";
33
+ import type { AnyScheduleOrder, ExecutableScheduleDefinition } from "@typeonce/ritmo/Schedule";
34
+ import type { Schema } from "@typeonce/ritmo/Schema";
35
+ import * as Rendered from "./Rendered.ts";
36
+ type AnySchedule<S extends Schema.Any, Root> = ExecutableScheduleDefinition<S, any, Root, any, any, AnyScheduleOrder>;
37
+ /** What `lintTarget` returns. */
38
+ export interface Target<S extends Schema.Any, Root> {
39
+ /** A runtime made with `debug: { hostClock }`. */
40
+ readonly runtime: {
41
+ readonly debug: Debug.Handle<S, Root>;
42
+ };
43
+ /** The schedules the game ticks, by name. */
44
+ readonly schedules: Readonly<Record<string, AnySchedule<S, Root>>>;
45
+ /** Schedules to describe without running (a render schedule needing a renderer). */
46
+ readonly describe?: Readonly<Record<string, AnySchedule<S, Root>>>;
47
+ /** Events the host publishes with `runtime.send` (UI requests, network messages): written, for the lints. */
48
+ readonly hostEvents?: ReadonlyArray<Schema.EventDescriptor<S>>;
49
+ }
50
+ export interface Report {
51
+ readonly lints: ReadonlyArray<Debug.Lint>;
52
+ readonly warnings: number;
53
+ readonly infos: number;
54
+ /** `true` when there is no warning-level lint. */
55
+ readonly ok: boolean;
56
+ }
57
+ /** Lints the target's schedules. */
58
+ export declare const run: <S extends Schema.Any, Root>(target: Target<S, Root>) => Rendered.Rendered<Report>;
59
+ export {};
60
+ //# sourceMappingURL=Lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lint.d.ts","sourceRoot":"","sources":["../src/Lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,4BAA4B,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAA;AAErH,iCAAiC;AACjC,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI;IAChD,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;KAAE,CAAA;IAC3D,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClE,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClE,6GAA6G;IAC7G,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/D;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;CACrB;AAED,oCAAoC;AACpC,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,UAAU,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAWjG,CAAA"}
package/dist/Lint.js ADDED
@@ -0,0 +1,15 @@
1
+ import * as Rendered from "./Rendered.js";
2
+ /** Lints the target's schedules. */
3
+ export const run = (target) => {
4
+ target.runtime.debug.nameSchedules({ ...target.describe, ...target.schedules });
5
+ target.runtime.debug.declareHostEvents(target.hostEvents ?? []);
6
+ const lints = target.runtime.debug.describe().lints;
7
+ const warnings = lints.filter((lint) => lint.severity === "warning").length;
8
+ const report = { lints, warnings, infos: lints.length - warnings, ok: warnings === 0 };
9
+ const lines = [
10
+ ...lints.flatMap((lint) => [`${lint.severity} ${lint.code} ${lint.subject}: ${lint.message}`, ` fix: ${lint.fix}`]),
11
+ `${warnings} ${warnings === 1 ? "warning" : "warnings"}, ${report.infos} info${warnings > 0 ? " (warnings fail)" : ""}`
12
+ ];
13
+ return Rendered.make(report, lines.join("\n"));
14
+ };
15
+ //# sourceMappingURL=Lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lint.js","sourceRoot":"","sources":["../src/Lint.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAwBzC,oCAAoC;AACpC,MAAM,CAAC,MAAM,GAAG,GAAG,CAA6B,MAAuB,EAA6B,EAAE;IACpG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAC/E,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAA;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAA;IAC3E,MAAM,MAAM,GAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,EAAE,EAAE,QAAQ,KAAK,CAAC,EAAE,CAAA;IAC9F,MAAM,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACpH,GAAG,QAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,KAAK,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE;KACxH,CAAA;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAChD,CAAC,CAAA"}
package/dist/Monitor.d.ts CHANGED
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * The monitor observes the runtime only while it is open, so a closed monitor
16
16
  * costs nothing. While open it reduces trace events to counts and shows its
17
- * own cost per tick. It needs a runtime made with `debug: true`.
17
+ * own cost per tick. It needs a runtime made with `debug: { hostClock }`, and the page passed as `host`.
18
18
  *
19
19
  * @module Monitor
20
20
  * @docGroup devtools
@@ -22,6 +22,7 @@
22
22
  * @example
23
23
  * ```ts
24
24
  * const monitor = Monitor.attach(runtime, {
25
+ * host: window,
25
26
  * schedules: { fixedUpdate: step, frame },
26
27
  * pick: (event) => entityUnderPointer(event),
27
28
  * locate: (entity) => screenPositionOf(entity)
@@ -30,7 +31,7 @@
30
31
  * ```
31
32
  */
32
33
  import type * as Debug from "@typeonce/ritmo/Debug";
33
- import type { ExecutableScheduleDefinition } from "@typeonce/ritmo/Schedule";
34
+ import type { AnyScheduleOrder, ExecutableScheduleDefinition } from "@typeonce/ritmo/Schedule";
34
35
  import type { Schema } from "@typeonce/ritmo/Schema";
35
36
  import { Collector, recentSchedule, recentSystem } from "./internal/monitor.ts";
36
37
  /**
@@ -51,8 +52,14 @@ export interface Options<S extends Schema.Any, Root> {
51
52
  * panel and make up the system map. Name the schedule objects actually
52
53
  * passed to `tick`: nested schedules are flattened into them.
53
54
  */
54
- readonly schedules: Readonly<Record<string, ExecutableScheduleDefinition<S, any, Root, any, any>>>;
55
- /** Where the panel is added. Defaults to `document.body`. */
55
+ readonly schedules: Readonly<Record<string, ExecutableScheduleDefinition<S, any, Root, any, any, AnyScheduleOrder>>>;
56
+ /**
57
+ * The page the panel lives in, passed explicitly (`window`): its
58
+ * `document`, timers, animation frames, keyboard events, and
59
+ * `performance` clock. The monitor reads no globals.
60
+ */
61
+ readonly host: Window;
62
+ /** Where the panel is added. Defaults to `host.document.body`. */
56
63
  readonly mount?: HTMLElement;
57
64
  /** `KeyboardEvent.code` that toggles the panel. Defaults to `Backslash`. */
58
65
  readonly key?: string;
@@ -67,6 +74,13 @@ export interface Options<S extends Schema.Any, Root> {
67
74
  } | undefined;
68
75
  /** Milliseconds between panel refreshes. Defaults to 250. */
69
76
  readonly refreshMs?: number;
77
+ /**
78
+ * A replay recorder (`Replay.recorder`): adds a "Save replay" button that
79
+ * saves the last seconds of play with the reason "Save replay button".
80
+ */
81
+ readonly replay?: {
82
+ readonly save: (reason: string) => unknown;
83
+ };
70
84
  }
71
85
  export interface Monitor {
72
86
  readonly open: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Monitor.d.ts","sourceRoot":"","sources":["../src/Monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAG/E;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA;AAClD,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjI,+DAA+D;AAC/D,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI;IAChD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI;IACjD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAClG,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,GAAG,SAAS,CAAA;IAC3D,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAC5F,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACrD,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAC5B;AA4JD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,WAAW,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAG,OA6bxG,CAAA"}
1
+ {"version":3,"file":"Monitor.d.ts","sourceRoot":"","sources":["../src/Monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAG/E;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA;AAClD,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjI,+DAA+D;AAC/D,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI;IAChD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI;IACjD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACpH;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,GAAG,SAAS,CAAA;IAC3D,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAC5F,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE,CAAA;CACjE;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IACrD,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAC5B;AA4JD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,WAAW,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAG,OAwcxG,CAAA"}
package/dist/Monitor.js CHANGED
@@ -141,16 +141,17 @@ const STYLE = `
141
141
  export const attach = (runtime, options) => {
142
142
  const debug = runtime.debug;
143
143
  debug.nameSchedules(options.schedules);
144
- const mount = options.mount ?? document.body;
144
+ const host = options.host;
145
+ const mount = options.mount ?? host.document.body;
145
146
  const key = options.key ?? "Backslash";
146
147
  const refreshMs = options.refreshMs ?? 250;
147
- if (document.getElementById("btm-style") === null) {
148
- const style = document.createElement("style");
148
+ if (host.document.getElementById("btm-style") === null) {
149
+ const style = host.document.createElement("style");
149
150
  style.id = "btm-style";
150
151
  style.textContent = STYLE;
151
- document.head.append(style);
152
+ host.document.head.append(style);
152
153
  }
153
- const root = document.createElement("div");
154
+ const root = host.document.createElement("div");
154
155
  root.className = "btm";
155
156
  root.innerHTML = `
156
157
  <button class="btm-toggle" type="button" title="Toggle the Ritmo monitor">◉ monitor</button>
@@ -160,6 +161,7 @@ export const attach = (runtime, options) => {
160
161
  <button class="btm-tab" data-tab="overview" type="button">Overview</button>
161
162
  <button class="btm-tab" data-tab="systems" type="button">Systems</button>
162
163
  <button class="btm-tab" data-tab="entity" type="button">Entity</button>
164
+ ${options.replay === undefined ? "" : `<button class="btm-save-replay" type="button" title="Save the last seconds of play as a replay">Save replay</button>`}
163
165
  <button class="btm-close" type="button" title="Close">×</button>
164
166
  </div>
165
167
  <div class="btm-status"></div>
@@ -409,20 +411,20 @@ export const attach = (runtime, options) => {
409
411
  const render = () => {
410
412
  if (collector === undefined)
411
413
  return;
412
- const started = performance.now();
414
+ const started = host.performance.now();
413
415
  const history = collector.history;
414
416
  const latest = history.slice(-RECENT);
415
417
  const overhead = latest.reduce((total, sample) => total + sample.overheadMs, 0);
416
418
  const ticks = latest.reduce((total, sample) => total + [...sample.schedules.values()].reduce((sum, window) => sum + window.ticks, 0), 0);
417
- status.textContent = `observing for ${Math.round((performance.now() - openedAt) / 1000)}s · frame ${debug.frame()} · panel ${ticks === 0 ? "–" : number(overhead / ticks, 3)} ms/tick + ${number(renderMs, 1)} ms/refresh`;
419
+ status.textContent = `observing for ${Math.round((host.performance.now() - openedAt) / 1000)}s · frame ${debug.frame()} · panel ${ticks === 0 ? "–" : number(overhead / ticks, 3)} ms/tick + ${number(renderMs, 1)} ms/refresh`;
418
420
  status.title = "The panel's own work. Tracing (on only while the panel is open) also slows every system run a little, and the times shown include it: compare them with each other, not with a closed-monitor run.";
419
421
  body.innerHTML = tab === "overview" ? renderOverview(history) : tab === "systems" ? renderSystems(history) : renderEntity();
420
- renderMs = performance.now() - started;
422
+ renderMs = host.performance.now() - started;
421
423
  };
422
424
  const refresh = () => {
423
425
  if (collector === undefined)
424
426
  return;
425
- collector.sample(performance.now());
427
+ collector.sample(host.performance.now());
426
428
  render();
427
429
  };
428
430
  const placeRing = () => {
@@ -433,7 +435,7 @@ export const attach = (runtime, options) => {
433
435
  ring.style.top = `${at.y}px`;
434
436
  }
435
437
  if (!panel.hidden)
436
- requestAnimationFrame(placeRing);
438
+ host.requestAnimationFrame(placeRing);
437
439
  };
438
440
  const setTab = (next) => {
439
441
  tab = next;
@@ -449,14 +451,14 @@ export const attach = (runtime, options) => {
449
451
  readers = new Map(description.access.components.map((entry) => [entry.name, entry.readers.length]));
450
452
  prefix = commonPrefix([...description.systems.map((system) => system.name), ...description.components.map((component) => component.name)]);
451
453
  browse.replaceChildren(new Option("browse by component…", ""), ...description.components.map((component) => new Option(short(component.name), component.name)));
452
- collector = new Collector(() => debug.population(), performance.now());
454
+ collector = new Collector(() => debug.population(), () => host.performance.now());
453
455
  collector.select(selected);
454
456
  stopObserving = debug.observe(collector.observe);
455
- openedAt = performance.now();
457
+ openedAt = host.performance.now();
456
458
  panel.hidden = false;
457
- timer = setInterval(refresh, refreshMs);
459
+ timer = host.setInterval(refresh, refreshMs);
458
460
  setTab(tab);
459
- requestAnimationFrame(placeRing);
461
+ host.requestAnimationFrame(placeRing);
460
462
  };
461
463
  const close = () => {
462
464
  if (panel.hidden)
@@ -466,7 +468,7 @@ export const attach = (runtime, options) => {
466
468
  stopObserving?.();
467
469
  stopObserving = undefined;
468
470
  if (timer !== undefined)
469
- clearInterval(timer);
471
+ host.clearInterval(timer);
470
472
  timer = undefined;
471
473
  collector = undefined;
472
474
  setPicking(false);
@@ -498,11 +500,11 @@ export const attach = (runtime, options) => {
498
500
  picking = on;
499
501
  pickButton.classList.toggle("is-on", on);
500
502
  pickButton.textContent = on ? "Click an entity… (Esc)" : "Pick on screen";
501
- document.documentElement.classList.toggle("btm-picking", on);
503
+ host.document.documentElement.classList.toggle("btm-picking", on);
502
504
  if (on)
503
- window.addEventListener("pointerdown", onPick, { capture: true });
505
+ host.addEventListener("pointerdown", onPick, { capture: true });
504
506
  else
505
- window.removeEventListener("pointerdown", onPick, { capture: true });
507
+ host.removeEventListener("pointerdown", onPick, { capture: true });
506
508
  }
507
509
  // ── Events ─────────────────────────────────────────────────────────────
508
510
  const onKey = (event) => {
@@ -519,9 +521,18 @@ export const attach = (runtime, options) => {
519
521
  setPicking(false);
520
522
  }
521
523
  };
522
- window.addEventListener("keydown", onKey);
524
+ host.addEventListener("keydown", onKey);
523
525
  toggleButton.addEventListener("click", () => (panel.hidden ? open() : close()));
524
526
  query(".btm-close").addEventListener("click", close);
527
+ const replay = options.replay;
528
+ if (replay !== undefined) {
529
+ const button = query(".btm-save-replay");
530
+ button.addEventListener("click", () => {
531
+ replay.save("Save replay button");
532
+ button.textContent = "Saved";
533
+ host.setTimeout(() => { button.textContent = "Save replay"; }, 1500);
534
+ });
535
+ }
525
536
  for (const button of root.querySelectorAll(".btm-tab")) {
526
537
  button.addEventListener("click", () => setTab(button.dataset["tab"]));
527
538
  }
@@ -583,7 +594,7 @@ export const attach = (runtime, options) => {
583
594
  select,
584
595
  detach: () => {
585
596
  close();
586
- window.removeEventListener("keydown", onKey);
597
+ host.removeEventListener("keydown", onKey);
587
598
  root.remove();
588
599
  }
589
600
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Monitor.js","sourceRoot":"","sources":["../src/Monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Monitor.js","sourceRoot":"","sources":["../src/Monitor.ts"],"names":[],"mappings":"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"}