@typeonce/ritmo 0.8.0 → 0.9.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 (117) hide show
  1. package/README.md +3 -2
  2. package/dist/Clock.d.ts +19 -4
  3. package/dist/Clock.d.ts.map +1 -1
  4. package/dist/Clock.js +18 -2
  5. package/dist/Clock.js.map +1 -1
  6. package/dist/Command.d.ts +101 -45
  7. package/dist/Command.d.ts.map +1 -1
  8. package/dist/Command.js +22 -4
  9. package/dist/Command.js.map +1 -1
  10. package/dist/Debug.d.ts +66 -8
  11. package/dist/Debug.d.ts.map +1 -1
  12. package/dist/Descriptor.d.ts +27 -9
  13. package/dist/Descriptor.d.ts.map +1 -1
  14. package/dist/Descriptor.js +13 -9
  15. package/dist/Descriptor.js.map +1 -1
  16. package/dist/Entity.d.ts +15 -8
  17. package/dist/Entity.d.ts.map +1 -1
  18. package/dist/Entity.js.map +1 -1
  19. package/dist/FixedLoop.d.ts +106 -0
  20. package/dist/FixedLoop.d.ts.map +1 -0
  21. package/dist/FixedLoop.js +97 -0
  22. package/dist/FixedLoop.js.map +1 -0
  23. package/dist/HostClock.d.ts +1 -1
  24. package/dist/HostClock.d.ts.map +1 -1
  25. package/dist/HostClock.js +2 -1
  26. package/dist/HostClock.js.map +1 -1
  27. package/dist/Machine.d.ts +4 -1
  28. package/dist/Machine.d.ts.map +1 -1
  29. package/dist/Machine.js +4 -1
  30. package/dist/Machine.js.map +1 -1
  31. package/dist/Query.d.ts +52 -10
  32. package/dist/Query.d.ts.map +1 -1
  33. package/dist/Query.js +2 -1
  34. package/dist/Query.js.map +1 -1
  35. package/dist/Relation.d.ts +5 -14
  36. package/dist/Relation.d.ts.map +1 -1
  37. package/dist/Relation.js +0 -32
  38. package/dist/Relation.js.map +1 -1
  39. package/dist/Runtime.d.ts +58 -15
  40. package/dist/Runtime.d.ts.map +1 -1
  41. package/dist/Runtime.js +288 -70
  42. package/dist/Runtime.js.map +1 -1
  43. package/dist/Schedule.d.ts +24 -15
  44. package/dist/Schedule.d.ts.map +1 -1
  45. package/dist/Schedule.js +2 -1
  46. package/dist/Schedule.js.map +1 -1
  47. package/dist/Schema.d.ts +98 -29
  48. package/dist/Schema.d.ts.map +1 -1
  49. package/dist/Schema.js +4 -4
  50. package/dist/Schema.js.map +1 -1
  51. package/dist/Snapshot.d.ts +76 -1
  52. package/dist/Snapshot.d.ts.map +1 -1
  53. package/dist/Snapshot.js +42 -1
  54. package/dist/Snapshot.js.map +1 -1
  55. package/dist/System.d.ts +68 -24
  56. package/dist/System.d.ts.map +1 -1
  57. package/dist/System.js.map +1 -1
  58. package/dist/index.d.ts +4 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +4 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/internal/cells.d.ts +2 -0
  63. package/dist/internal/cells.d.ts.map +1 -1
  64. package/dist/internal/cells.js +34 -8
  65. package/dist/internal/cells.js.map +1 -1
  66. package/dist/internal/debug.d.ts +3 -0
  67. package/dist/internal/debug.d.ts.map +1 -1
  68. package/dist/internal/debug.js +83 -15
  69. package/dist/internal/debug.js.map +1 -1
  70. package/dist/internal/fragments.d.ts +2 -6
  71. package/dist/internal/fragments.d.ts.map +1 -1
  72. package/dist/internal/fragments.js +25 -2
  73. package/dist/internal/fragments.js.map +1 -1
  74. package/dist/internal/game.d.ts +2 -0
  75. package/dist/internal/game.d.ts.map +1 -1
  76. package/dist/internal/game.js +16 -3
  77. package/dist/internal/game.js.map +1 -1
  78. package/dist/internal/queries.d.ts.map +1 -1
  79. package/dist/internal/queries.js +27 -18
  80. package/dist/internal/queries.js.map +1 -1
  81. package/dist/internal/relations.d.ts +10 -0
  82. package/dist/internal/relations.d.ts.map +1 -0
  83. package/dist/internal/relations.js +32 -0
  84. package/dist/internal/relations.js.map +1 -0
  85. package/dist/internal/streams.d.ts +2 -0
  86. package/dist/internal/streams.d.ts.map +1 -1
  87. package/dist/internal/streams.js +10 -0
  88. package/dist/internal/streams.js.map +1 -1
  89. package/dist/internal/world.d.ts +7 -1
  90. package/dist/internal/world.d.ts.map +1 -1
  91. package/dist/internal/world.js +53 -3
  92. package/dist/internal/world.js.map +1 -1
  93. package/package.json +1 -1
  94. package/src/Clock.ts +29 -4
  95. package/src/Command.ts +161 -67
  96. package/src/Debug.ts +61 -9
  97. package/src/Descriptor.ts +43 -17
  98. package/src/Entity.ts +16 -9
  99. package/src/FixedLoop.ts +218 -0
  100. package/src/HostClock.ts +2 -1
  101. package/src/Machine.ts +4 -1
  102. package/src/Query.ts +47 -10
  103. package/src/Relation.ts +5 -67
  104. package/src/Runtime.ts +345 -85
  105. package/src/Schedule.ts +31 -19
  106. package/src/Schema.ts +118 -35
  107. package/src/Snapshot.ts +90 -2
  108. package/src/System.ts +76 -23
  109. package/src/index.ts +4 -0
  110. package/src/internal/cells.ts +42 -10
  111. package/src/internal/debug.ts +84 -15
  112. package/src/internal/fragments.ts +23 -3
  113. package/src/internal/game.ts +19 -3
  114. package/src/internal/queries.ts +28 -2
  115. package/src/internal/relations.ts +52 -0
  116. package/src/internal/streams.ts +11 -0
  117. package/src/internal/world.ts +60 -4
@@ -43,6 +43,10 @@ const makeConstructedDescriptor = (kind, name, constructor) => ({
43
43
  * Components are the only descriptor kind that can be queried directly with
44
44
  * `Game.Query.read(...)`, `write(...)`, or `optional(...)`.
45
45
  *
46
+ * The value is a real type: `any` and `never` do not compile (here and in
47
+ * every other descriptor constructor). Use `unknown` for a value no system
48
+ * reads, and `Descriptor.Tag` for a marker.
49
+ *
46
50
  * @example
47
51
  * ```ts
48
52
  * const Position = Descriptor.Component<{ x: number; y: number }>()("Position")
@@ -50,7 +54,7 @@ const makeConstructedDescriptor = (kind, name, constructor) => ({
50
54
  * const EnemyKind = Descriptor.Component<"grunt" | "boss">()("EnemyKind", { immutable: true })
51
55
  * ```
52
56
  */
53
- export const Component = () => (name, options) => applyComponentOptions(makeDescriptor("component", name), options);
57
+ export const Component = () => ((name, options) => applyComponentOptions(makeDescriptor("component", name), options));
54
58
  /**
55
59
  * Defines a component descriptor that also knows how to validate raw values.
56
60
  *
@@ -76,7 +80,7 @@ export const ConstructedComponent = (constructor) => (name, options) => applyCom
76
80
  * const SpriteRef = Descriptor.TransientComponent<{ frame: number }>()("SpriteRef")
77
81
  * ```
78
82
  */
79
- export const TransientComponent = () => (name, options) => applyComponentOptions(makeTransientDescriptor("component", name), options);
83
+ export const TransientComponent = () => ((name, options) => applyComponentOptions(makeTransientDescriptor("component", name), options));
80
84
  /**
81
85
  * Defines a marker component: no data, only presence (`[Player, {}]`).
82
86
  *
@@ -140,7 +144,7 @@ export const isEntityState = (descriptor) => "states" in descriptor;
140
144
  * const Score = Descriptor.Resource<number>()("Score")
141
145
  * ```
142
146
  */
143
- export const Resource = () => (name) => makeDescriptor("resource", name);
147
+ export const Resource = () => ((name) => makeDescriptor("resource", name));
144
148
  /**
145
149
  * Defines a resource descriptor that also knows how to validate raw values.
146
150
  */
@@ -154,7 +158,7 @@ export const ConstructedResource = (constructor) => (name) => makeConstructedDes
154
158
  * const DeltaTime = Descriptor.TransientResource<number>()("DeltaTime")
155
159
  * ```
156
160
  */
157
- export const TransientResource = () => (name) => makeTransientDescriptor("resource", name);
161
+ export const TransientResource = () => ((name) => makeTransientDescriptor("resource", name));
158
162
  /**
159
163
  * Defines an event descriptor.
160
164
  *
@@ -173,7 +177,7 @@ export const TransientResource = () => (name) => makeTransientDescriptor("resour
173
177
  * const Hit = Descriptor.Event<{ target: number; amount: number }>()("Hit")
174
178
  * ```
175
179
  */
176
- export const Event = () => (name) => makeDescriptor("event", name);
180
+ export const Event = () => ((name) => makeDescriptor("event", name));
177
181
  /**
178
182
  * Defines a service descriptor.
179
183
  *
@@ -191,7 +195,7 @@ export const Event = () => (name) => makeDescriptor("event", name);
191
195
  * const Logger = Descriptor.Service<{ log: (message: string) => void }>()("Logger")
192
196
  * ```
193
197
  */
194
- export const Service = () => (name) => makeDescriptor("service", name);
198
+ export const Service = () => ((name) => makeDescriptor("service", name));
195
199
  /**
196
200
  * Checks whether one descriptor is transient (skipped by snapshots).
197
201
  */
@@ -254,7 +258,7 @@ export function constructorOf(descriptor) {
254
258
  * `Game.EntityScope(...)` instead when entities only share a lifetime (a
255
259
  * level, a menu) and need no tree, order, or traversal.
256
260
  */
257
- export const Hierarchy = RelationModule.Hierarchy;
261
+ export const Hierarchy = (name, relatedName) => makePair("hierarchy", name, relatedName);
258
262
  /**
259
263
  * Defines a general relationship pair with direct edges and reverse lookups.
260
264
  *
@@ -262,8 +266,8 @@ export const Hierarchy = RelationModule.Hierarchy;
262
266
  * reverse lookup, but not hierarchy-only behavior such as tree traversal or
263
267
  * child reordering.
264
268
  */
265
- export const Relation = RelationModule.Relation;
269
+ export const Relation = (name, relatedName) => makePair("relation", name, relatedName);
266
270
  import * as DecodeModule from "./Decode.js";
267
- import * as RelationModule from "./Relation.js";
271
+ import { makePair } from "./internal/relations.js";
268
272
  import * as ResultModule from "./Result.js";
269
273
  //# sourceMappingURL=Descriptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../src/Descriptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../src/Descriptor.ts"],"names":[],"mappings":"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"}
package/dist/Entity.d.ts CHANGED
@@ -114,7 +114,7 @@ export declare namespace Handle {
114
114
  * Drafts exist before the command queue is flushed. This is the place where the
115
115
  * API can safely carry exact structural information.
116
116
  */
117
- export interface EntityDraft<S extends Schema.Any, out P extends ComponentProof, Root = unknown> {
117
+ export interface EntityDraft<S extends Schema.Any, out P extends ComponentProof, Root = unknown, out Relates = never> {
118
118
  /**
119
119
  * Runtime tag for debugging and pattern matching.
120
120
  */
@@ -139,6 +139,11 @@ export interface EntityDraft<S extends Schema.Any, out P extends ComponentProof,
139
139
  * Staged relationship edges attached to the entity before spawn.
140
140
  */
141
141
  readonly relations: ReadonlyArray<StagedRelation<S, Root>>;
142
+ /**
143
+ * The relations `Game.Command.relate(...)` staged on this draft: spawning
144
+ * it needs them in the system's `Game.System.relates(...)`. Type-level only.
145
+ */
146
+ readonly __relates?: (_: never) => Relates;
142
147
  }
143
148
  /**
144
149
  * One staged component value paired with the descriptor that owns it.
@@ -149,7 +154,7 @@ export type StagedComponent = readonly [Descriptor<"component", string, any>, un
149
154
  *
150
155
  * Query execution is the main source of `EntityRef` values.
151
156
  */
152
- export interface EntityRef<S extends Schema.Any, out P extends ComponentProof, Root = unknown, out Proves = unknown, out Lacks = never> {
157
+ export interface EntityRef<S extends Schema.Any, out P extends ComponentProof, Root = unknown, in Proves = never, in Lacks = never> {
153
158
  /**
154
159
  * Runtime tag for debugging and pattern matching.
155
160
  */
@@ -157,15 +162,17 @@ export interface EntityRef<S extends Schema.Any, out P extends ComponentProof, R
157
162
  /**
158
163
  * The component descriptors the query that produced this ref proves (its
159
164
  * required slots and `with`): what `commands.despawn`, `insert`, and
160
- * `remove` check. Type-level only.
165
+ * `remove` check. Type-level only. Contravariant on purpose: a ref proving
166
+ * more is a subtype, so a union of refs (`cond ? a.entity : b.entity`)
167
+ * keeps only what both prove.
161
168
  */
162
- readonly __proves?: (_: never) => Proves;
169
+ readonly __proves?: (_: Proves) => void;
163
170
  /**
164
171
  * The component descriptors the producing query proves absent (its
165
172
  * `without`): what `commands.remove` checks against `Schema.requires`.
166
173
  * Type-level only.
167
174
  */
168
- readonly __lacks?: (_: never) => Lacks;
175
+ readonly __lacks?: (_: Lacks) => void;
169
176
  /**
170
177
  * The schema-bound entity identity.
171
178
  */
@@ -182,15 +189,15 @@ export interface EntityRef<S extends Schema.Any, out P extends ComponentProof, R
182
189
  * `P` tracks readable components and `W` tracks the writable subset. This keeps
183
190
  * mutation capabilities explicit in query results.
184
191
  */
185
- export interface EntityMut<S extends Schema.Any, out P extends ComponentProof, out W extends ComponentProof, Root = unknown, out Proves = unknown, out Lacks = never> {
192
+ export interface EntityMut<S extends Schema.Any, out P extends ComponentProof, out W extends ComponentProof, Root = unknown, in Proves = never, in Lacks = never> {
186
193
  /**
187
194
  * Runtime tag for debugging and pattern matching.
188
195
  */
189
196
  readonly kind: "EntityMut";
190
197
  /** The component descriptors the producing query proves; see `EntityRef`. */
191
- readonly __proves?: (_: never) => Proves;
198
+ readonly __proves?: (_: Proves) => void;
192
199
  /** The component descriptors the producing query proves absent; see `EntityRef`. */
193
- readonly __lacks?: (_: never) => Lacks;
200
+ readonly __lacks?: (_: Lacks) => void;
194
201
  /**
195
202
  * The schema-bound entity identity.
196
203
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAyBrC;;GAEG;AACH,MAAM,YAAY,GAAiB,eAAe,CAAA;AAClD,MAAM,kBAAkB,GAAG,qBAA8B,CAAA;AAsKzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAuC,KAAa,EAAqB,EAAE,CACrG,KAA0B,CAAA;AAE5B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAGxB,KAAa,EAAwB,EAAE,CACvC,KAA6B,CAAA;AAU/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAKpB,MAA6B,EAC7B,OAAgB,EACM,EAAE,CACxB,UAAU,CAAe,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAU3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAI1B,KAAW,EACX,GAAY,EACZ,OAAgB,EACoC,EAAE;IACtD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAe,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,EAAqB,EACrB,KAAQ,EACR,UAAU,GAAmC,EAAE,EAC/C,SAAS,GAA2C,EAAE,EAC7B,EAAE,CAAC,CAAC;IAC7B,IAAI,EAAE,aAAa;IACnB,EAAE;IACF,YAAY,EAAE,SAA4B;IAC1C,KAAK;IACL,UAAU;IACV,SAAS;CACV,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,EAAqB,EACrB,KAAQ,EACe,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAE,WAAW;IACjB,EAAE;IACF,YAAY,EAAE,SAA4B;IAC1C,KAAK;CACN,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,EAAqB,EACrB,KAAQ,EACR,QAAW,EACe,EAAE,CAAC,CAAC;IAC9B,IAAI,EAAE,WAAW;IACjB,EAAE;IACF,YAAY,EAAE,SAA4B;IAC1C,KAAK;IACL,QAAQ;CACT,CAAC,CAAA"}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAyBrC;;GAEG;AACH,MAAM,YAAY,GAAiB,eAAe,CAAA;AAClD,MAAM,kBAAkB,GAAG,qBAA8B,CAAA;AA6KzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAuC,KAAa,EAAqB,EAAE,CACrG,KAA0B,CAAA;AAE5B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAGxB,KAAa,EAAwB,EAAE,CACvC,KAA6B,CAAA;AAU/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAKpB,MAA6B,EAC7B,OAAgB,EACM,EAAE,CACxB,UAAU,CAAe,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAU3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAI1B,KAAW,EACX,GAAY,EACZ,OAAgB,EACoC,EAAE;IACtD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAe,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,EAAqB,EACrB,KAAQ,EACR,UAAU,GAAmC,EAAE,EAC/C,SAAS,GAA2C,EAAE,EAC7B,EAAE,CAAC,CAAC;IAC7B,IAAI,EAAE,aAAa;IACnB,EAAE;IACF,YAAY,EAAE,SAA4B;IAC1C,KAAK;IACL,UAAU;IACV,SAAS;CACV,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,EAAqB,EACrB,KAAQ,EACe,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAE,WAAW;IACjB,EAAE;IACF,YAAY,EAAE,SAA4B;IAC1C,KAAK;CACN,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,EAAqB,EACrB,KAAQ,EACR,QAAW,EACe,EAAE,CAAC,CAAC;IAC9B,IAAI,EAAE,WAAW;IACjB,EAAE;IACF,YAAY,EAAE,SAA4B;IAC1C,KAAK;IACL,QAAQ;CACT,CAAC,CAAA"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Deterministic fixed-step timing for any host: browsers, native shells,
3
+ * desktop runtimes, and headless tests.
4
+ *
5
+ * The loop owns the timing policy that is easy to get subtly wrong in every
6
+ * game: frame clamping, catch-up limits, interpolation, cancellation, and
7
+ * typed update failures. It does not know about an ECS runtime, a renderer,
8
+ * or a platform: frames arrive through a `TickSource` that the host supplies.
9
+ * Use a platform adapter such as `BrowserTickSource.make(window)` from
10
+ * `@typeonce/ritmo-browser`, or wrap a renderer's own ticker with `source`.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const loop = FixedLoop.start({
15
+ * source: BrowserTickSource.make(window),
16
+ * step: Clock.hz(60),
17
+ * maxFrameSeconds: 0.25,
18
+ * maxStepsPerFrame: 5,
19
+ * update: () => runtime.tick(update),
20
+ * render: (frame) => draw(frame.alpha),
21
+ * onFailure: (failure) => console.error(failure)
22
+ * })
23
+ * ```
24
+ *
25
+ * @module FixedLoop
26
+ * @docGroup runtime
27
+ */
28
+ import type * as Clock from "./Clock.ts";
29
+ import * as Result from "./Result.ts";
30
+ /** One host frame: milliseconds elapsed since the previous one. */
31
+ export interface Tick {
32
+ readonly deltaMS: number;
33
+ }
34
+ /** A stoppable host subscription. Calling `stop` more than once is safe. */
35
+ export interface Subscription {
36
+ stop(): void;
37
+ }
38
+ /**
39
+ * Where host frames come from. Implemented by platform adapters
40
+ * (`BrowserTickSource.make(window)`), by `source` around a renderer's ticker,
41
+ * and by deterministic tests.
42
+ */
43
+ export interface TickSource<TTick extends Tick = Tick> {
44
+ subscribe(onTick: (tick: TTick) => void): Subscription;
45
+ }
46
+ /** Validated fixed-step timing policy. */
47
+ export interface Options {
48
+ /**
49
+ * The fixed step every update advances (`Clock.hz(60)`): the same value
50
+ * the game's clock resource runs at, so the loop and the clock agree.
51
+ */
52
+ readonly step: Clock.Step;
53
+ /** Maximum host-frame duration admitted into the accumulator. */
54
+ readonly maxFrameSeconds: number;
55
+ /** Maximum number of simulation updates performed for one host frame. */
56
+ readonly maxStepsPerFrame: number;
57
+ }
58
+ /** Configuration error returned before a loop subscribes to its host. */
59
+ export interface InvalidOptions {
60
+ readonly kind: "InvalidFixedLoopOptions";
61
+ readonly field: keyof Options;
62
+ readonly reason: "mustBeFiniteAndPositive" | "mustBePositiveInteger";
63
+ readonly value: number;
64
+ }
65
+ /** Data passed to the renderer after all fixed updates for one host frame. */
66
+ export interface Frame {
67
+ /** Clamped time admitted for this host frame. */
68
+ readonly elapsedSeconds: number;
69
+ /** Number of fixed updates completed for this host frame. */
70
+ readonly fixedSteps: number;
71
+ /** Remaining accumulator fraction in the range `[0, 1)`. */
72
+ readonly alpha: number;
73
+ /** Time discarded by frame clamping or the catch-up limit. */
74
+ readonly droppedSeconds: number;
75
+ }
76
+ /** Failure delivered by an active loop before it stops itself. */
77
+ export type Failure<UpdateError> = {
78
+ readonly kind: "InvalidTickDelta";
79
+ readonly deltaMS: number;
80
+ } | {
81
+ readonly kind: "UpdateFailure";
82
+ readonly error: UpdateError;
83
+ };
84
+ /** A running fixed-step driver. */
85
+ export interface Driver extends Subscription {
86
+ /** Clears accumulated partial time without removing the host subscription. */
87
+ reset(): void;
88
+ }
89
+ /** Input for a fixed-step driver. */
90
+ export interface StartOptions<TTick extends Tick, UpdateError> extends Options {
91
+ readonly source: TickSource<TTick>;
92
+ readonly update: (stepSeconds: number) => Result.Result<void, UpdateError>;
93
+ readonly render: (frame: Frame) => void;
94
+ readonly onFailure: (failure: Failure<UpdateError>) => void;
95
+ }
96
+ /** Wraps a host-specific subscription function in the canonical source type. */
97
+ export declare const source: <TTick extends Tick>(subscribe: TickSource<TTick>["subscribe"]) => TickSource<TTick>;
98
+ /**
99
+ * Starts a fixed-step loop after validating its timing policy.
100
+ *
101
+ * Update failures and malformed host ticks are delivered to `onFailure`, then
102
+ * the driver stops. Render defects are deliberately not caught: they are
103
+ * programmer defects, not expected game outcomes.
104
+ */
105
+ export declare const start: <TTick extends Tick, UpdateError>(options: StartOptions<TTick, UpdateError>) => Result.Result<Driver, InvalidOptions>;
106
+ //# sourceMappingURL=FixedLoop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedLoop.d.ts","sourceRoot":"","sources":["../src/FixedLoop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,mEAAmE;AACnE,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,IAAI,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,SAAS,IAAI,GAAG,IAAI;IACnD,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,YAAY,CAAA;CACvD;AAED,0CAA0C;AAC1C,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAA;IACzB,iEAAiE;IACjE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,yEAAyE;IACzE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,uBAAuB,CAAA;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,KAAK;IACpB,iDAAiD;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAED,kEAAkE;AAClE,MAAM,MAAM,OAAO,CAAC,WAAW,IAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAC5B,CAAA;AAEL,mCAAmC;AACnC,MAAM,WAAW,MAAO,SAAQ,YAAY;IAC1C,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAA;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY,CAAC,KAAK,SAAS,IAAI,EAAE,WAAW,CAAE,SAAQ,OAAO;IAC5E,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC1E,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;CAC5D;AAED,gFAAgF;AAChF,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,IAAI,aAC5B,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KACxC,UAAU,CAAC,KAAK,CAAoB,CAAA;AAyBvC;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,SAAS,IAAI,EAAE,WAAW,WAC1C,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KACxC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAyEtC,CAAA"}
@@ -0,0 +1,97 @@
1
+ import * as Result from "./Result.js";
2
+ /** Wraps a host-specific subscription function in the canonical source type. */
3
+ export const source = (subscribe) => ({ subscribe });
4
+ const validate = (options) => {
5
+ for (const field of ["maxFrameSeconds"]) {
6
+ const value = options[field];
7
+ if (!Number.isFinite(value) || value <= 0) {
8
+ return Result.failure({
9
+ kind: "InvalidFixedLoopOptions",
10
+ field,
11
+ reason: "mustBeFiniteAndPositive",
12
+ value
13
+ });
14
+ }
15
+ }
16
+ if (!Number.isInteger(options.maxStepsPerFrame) || options.maxStepsPerFrame <= 0) {
17
+ return Result.failure({
18
+ kind: "InvalidFixedLoopOptions",
19
+ field: "maxStepsPerFrame",
20
+ reason: "mustBePositiveInteger",
21
+ value: options.maxStepsPerFrame
22
+ });
23
+ }
24
+ return Result.success(undefined);
25
+ };
26
+ /**
27
+ * Starts a fixed-step loop after validating its timing policy.
28
+ *
29
+ * Update failures and malformed host ticks are delivered to `onFailure`, then
30
+ * the driver stops. Render defects are deliberately not caught: they are
31
+ * programmer defects, not expected game outcomes.
32
+ */
33
+ export const start = (options) => {
34
+ const validity = validate(options);
35
+ if (!validity.ok) {
36
+ return validity;
37
+ }
38
+ let accumulator = 0;
39
+ let stopped = false;
40
+ let hostSubscription;
41
+ const stop = () => {
42
+ if (stopped) {
43
+ return;
44
+ }
45
+ stopped = true;
46
+ hostSubscription?.stop();
47
+ };
48
+ const fail = (failure) => {
49
+ stop();
50
+ options.onFailure(failure);
51
+ };
52
+ const onTick = (tick) => {
53
+ if (stopped) {
54
+ return;
55
+ }
56
+ if (!Number.isFinite(tick.deltaMS) || tick.deltaMS < 0) {
57
+ fail({ kind: "InvalidTickDelta", deltaMS: tick.deltaMS });
58
+ return;
59
+ }
60
+ const rawSeconds = tick.deltaMS / 1000;
61
+ const elapsedSeconds = Math.min(rawSeconds, options.maxFrameSeconds);
62
+ let droppedSeconds = rawSeconds - elapsedSeconds;
63
+ accumulator += elapsedSeconds;
64
+ let fixedSteps = 0;
65
+ while (accumulator >= options.step.dt && fixedSteps < options.maxStepsPerFrame) {
66
+ const update = options.update(options.step.dt);
67
+ if (!update.ok) {
68
+ fail({ kind: "UpdateFailure", error: update.error });
69
+ return;
70
+ }
71
+ accumulator -= options.step.dt;
72
+ fixedSteps += 1;
73
+ }
74
+ if (accumulator >= options.step.dt) {
75
+ const droppedWholeSteps = Math.floor(accumulator / options.step.dt) * options.step.dt;
76
+ accumulator -= droppedWholeSteps;
77
+ droppedSeconds += droppedWholeSteps;
78
+ }
79
+ options.render({
80
+ elapsedSeconds,
81
+ fixedSteps,
82
+ alpha: accumulator / options.step.dt,
83
+ droppedSeconds
84
+ });
85
+ };
86
+ hostSubscription = options.source.subscribe(onTick);
87
+ if (stopped) {
88
+ hostSubscription.stop();
89
+ }
90
+ return Result.success({
91
+ stop,
92
+ reset() {
93
+ accumulator = 0;
94
+ }
95
+ });
96
+ };
97
+ //# sourceMappingURL=FixedLoop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedLoop.js","sourceRoot":"","sources":["../src/FixedLoop.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * @example
15
15
  * ```ts
16
- * const runtime = Game.Runtime.make({ services, debug: { hostClock: HostClock.standard } })
16
+ * const runtime = Game.Runtime.make({ services, debug: { hostClock: HostClock.standard } }).value
17
17
  * ```
18
18
  *
19
19
  * @module HostClock
@@ -1 +1 @@
1
- {"version":3,"file":"HostClock.d.ts","sourceRoot":"","sources":["../src/HostClock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAqC,CAAA;AAE5D,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;CACxE;AAED,4EAA4E;AAC5E,eAAO,MAAM,IAAI,QAAO,aAUvB,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,OAAO,SAAU,MAAM,MAAM,MAAM,KAAG,MAAgC,CAAA"}
1
+ {"version":3,"file":"HostClock.d.ts","sourceRoot":"","sources":["../src/HostClock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;CAC3B;AAED;;;;;;GAMG;AAEH,eAAO,MAAM,QAAQ,EAAE,SAAqC,CAAA;AAE5D,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;CACxE;AAED,4EAA4E;AAC5E,eAAO,MAAM,IAAI,QAAO,aAUvB,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,OAAO,SAAU,MAAM,MAAM,MAAM,KAAG,MAAgC,CAAA"}
package/dist/HostClock.js CHANGED
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * @example
15
15
  * ```ts
16
- * const runtime = Game.Runtime.make({ services, debug: { hostClock: HostClock.standard } })
16
+ * const runtime = Game.Runtime.make({ services, debug: { hostClock: HostClock.standard } }).value
17
17
  * ```
18
18
  *
19
19
  * @module HostClock
@@ -27,6 +27,7 @@ import * as Result from "./Result.js";
27
27
  * 0. Prefer a monotonic platform clock when there is one
28
28
  * (`BrowserHostClock.make(window)`).
29
29
  */
30
+ // oxlint-disable-next-line ritmo/use-clock-for-time -- HostClock is host time, for hosts and tools; systems read Clock.
30
31
  export const standard = { now: () => Date.now() };
31
32
  /** A test clock at 0. Every reading is the same until `adjust` moves it. */
32
33
  export const test = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"HostClock.js","sourceRoot":"","sources":["../src/HostClock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAOrC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAc,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;AAc5D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,IAAI,GAAG,GAAkB,EAAE;IACtC,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;gBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAA;YAC9H,OAAO,IAAI,EAAE,CAAA;YACb,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAU,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"HostClock.js","sourceRoot":"","sources":["../src/HostClock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAOrC;;;;;;GAMG;AACH,wHAAwH;AACxH,MAAM,CAAC,MAAM,QAAQ,GAAc,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;AAc5D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,IAAI,GAAG,GAAkB,EAAE;IACtC,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;gBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAA;YAC9H,OAAO,IAAI,EAAE,CAAA;YACb,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAU,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA"}
package/dist/Machine.d.ts CHANGED
@@ -311,7 +311,10 @@ export declare const readTransitionEvent: <M extends StateMachine.Any>(machine:
311
311
  */
312
312
  export declare const inState: <M extends StateMachine.Any>(machine: M, value: StateMachine.Value<M>) => InStateCondition<M>;
313
313
  /**
314
- * Creates a condition that passes when the machine changed during the current schedule execution.
314
+ * Creates a condition that passes when the machine changed during the current schedule execution:
315
+ * from the `applyStateTransitions(...)` that committed the change to the end of
316
+ * that schedule (or the next `applyStateTransitions(...)`), not for the rest of
317
+ * the tick call or the next schedule.
315
318
  */
316
319
  export declare const stateChanged: <M extends StateMachine.Any>(machine: M) => StateChangedCondition<M>;
317
320
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Machine.d.ts","sourceRoot":"","sources":["../src/Machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Machine.d.ts","sourceRoot":"","sources":["../src/Machine.ts"],"names":[],"mappings":"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"}
package/dist/Machine.js CHANGED
@@ -72,7 +72,10 @@ export const inState = (machine, value) => ({
72
72
  requirements: [machine]
73
73
  });
74
74
  /**
75
- * Creates a condition that passes when the machine changed during the current schedule execution.
75
+ * Creates a condition that passes when the machine changed during the current schedule execution:
76
+ * from the `applyStateTransitions(...)` that committed the change to the end of
77
+ * that schedule (or the next `applyStateTransitions(...)`), not for the rest of
78
+ * the tick call or the next schedule.
76
79
  */
77
80
  export const stateChanged = (machine) => ({
78
81
  kind: "stateChanged",
@@ -1 +1 @@
1
- {"version":3,"file":"Machine.js","sourceRoot":"","sources":["../src/Machine.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAkS/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAK1B,IAAU,EACV,MAAc,EACd,MAAuB,EACqB,EAAE,CAAC,CAAC;IAChD,IAAI,EAAE,cAAc;IACpB,IAAI;IACJ,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;IAC7C,MAAM;IACN,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5C,CAA+C,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAA6B,OAAU,EAAkB,EAAE,CAAC,CAAC;IAC/E,OAAO;CACR,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAA6B,OAAU,EAAuB,EAAE,CAAC,CAAC;IACrF,OAAO;CACR,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAA6B,OAAU,EAAqB,EAAE,CAAC,CAAC;IACxF,OAAO;CACR,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAA6B,OAAU,EAA0B,EAAE,CAAC,CAAC;IACtG,OAAO;CACR,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,OAAU,EACV,KAA4B,EACP,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,SAAS;IACf,OAAO;IACP,KAAK;IACL,YAAY,EAAE,CAAC,OAAO,CAAC;CACxB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAU,EACgB,EAAE,CAAC,CAAC;IAC9B,IAAI,EAAE,cAAc;IACpB,OAAO;IACP,YAAY,EAAE,CAAC,OAAO,CAAC;CACxB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAsB,SAAY,EAAsC,EAAE,CAAC,CAAC;IAC7F,IAAI,EAAE,KAAK;IACX,SAAS;IACT,YAAY,EAAE,SAAS,CAAC,YAAY;CACrC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAA2C,GAAG,UAAa,EAA8C,EAAE,CAAC,CAAC;IAC9H,IAAI,EAAE,KAAK;IACX,UAAU;IACV,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;CAC7F,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,CAA2C,GAAG,UAAa,EAA6C,EAAE,CAAC,CAAC;IAC5H,IAAI,EAAE,IAAI;IACV,UAAU;IACV,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;CAC7F,CAAC,CAAA"}
1
+ {"version":3,"file":"Machine.js","sourceRoot":"","sources":["../src/Machine.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAkS/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAK1B,IAAU,EACV,MAAc,EACd,MAAuB,EACqB,EAAE,CAAC,CAAC;IAChD,IAAI,EAAE,cAAc;IACpB,IAAI;IACJ,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;IAC7C,MAAM;IACN,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5C,CAA+C,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAA6B,OAAU,EAAkB,EAAE,CAAC,CAAC;IAC/E,OAAO;CACR,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAA6B,OAAU,EAAuB,EAAE,CAAC,CAAC;IACrF,OAAO;CACR,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAA6B,OAAU,EAAqB,EAAE,CAAC,CAAC;IACxF,OAAO;CACR,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAA6B,OAAU,EAA0B,EAAE,CAAC,CAAC;IACtG,OAAO;CACR,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,OAAU,EACV,KAA4B,EACP,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,SAAS;IACf,OAAO;IACP,KAAK;IACL,YAAY,EAAE,CAAC,OAAO,CAAC;CACxB,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAU,EACgB,EAAE,CAAC,CAAC;IAC9B,IAAI,EAAE,cAAc;IACpB,OAAO;IACP,YAAY,EAAE,CAAC,OAAO,CAAC;CACxB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAsB,SAAY,EAAsC,EAAE,CAAC,CAAC;IAC7F,IAAI,EAAE,KAAK;IACX,SAAS;IACT,YAAY,EAAE,SAAS,CAAC,YAAY;CACrC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAA2C,GAAG,UAAa,EAA8C,EAAE,CAAC,CAAC;IAC9H,IAAI,EAAE,KAAK;IACX,UAAU;IACV,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;CAC7F,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,CAA2C,GAAG,UAAa,EAA6C,EAAE,CAAC,CAAC;IAC5H,IAAI,EAAE,IAAI;IACV,UAAU;IACV,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;CAC7F,CAAC,CAAA"}