@typeonce/ritmo 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 (125) hide show
  1. package/README.md +2 -0
  2. package/dist/Brand.d.ts +9 -4
  3. package/dist/Brand.d.ts.map +1 -1
  4. package/dist/Brand.js +9 -4
  5. package/dist/Brand.js.map +1 -1
  6. package/dist/Clock.d.ts +186 -0
  7. package/dist/Clock.d.ts.map +1 -0
  8. package/dist/Clock.js +111 -0
  9. package/dist/Clock.js.map +1 -0
  10. package/dist/Command.d.ts +157 -33
  11. package/dist/Command.d.ts.map +1 -1
  12. package/dist/Command.js +49 -15
  13. package/dist/Command.js.map +1 -1
  14. package/dist/Debug.d.ts +104 -12
  15. package/dist/Debug.d.ts.map +1 -1
  16. package/dist/Debug.js.map +1 -1
  17. package/dist/Decode.d.ts +1 -1
  18. package/dist/Decode.js +1 -1
  19. package/dist/Descriptor.d.ts +31 -21
  20. package/dist/Descriptor.d.ts.map +1 -1
  21. package/dist/Descriptor.js +21 -12
  22. package/dist/Descriptor.js.map +1 -1
  23. package/dist/Entity.d.ts +14 -5
  24. package/dist/Entity.d.ts.map +1 -1
  25. package/dist/Entity.js +2 -2
  26. package/dist/Entity.js.map +1 -1
  27. package/dist/EntityScope.d.ts +6 -0
  28. package/dist/EntityScope.d.ts.map +1 -1
  29. package/dist/EntityScope.js +6 -0
  30. package/dist/EntityScope.js.map +1 -1
  31. package/dist/HostClock.d.ts +49 -0
  32. package/dist/HostClock.d.ts.map +1 -0
  33. package/dist/HostClock.js +46 -0
  34. package/dist/HostClock.js.map +1 -0
  35. package/dist/Inspector.d.ts +7 -1
  36. package/dist/Inspector.d.ts.map +1 -1
  37. package/dist/Inspector.js.map +1 -1
  38. package/dist/Machine.d.ts +12 -3
  39. package/dist/Machine.d.ts.map +1 -1
  40. package/dist/Machine.js +4 -1
  41. package/dist/Machine.js.map +1 -1
  42. package/dist/Query.d.ts +28 -24
  43. package/dist/Query.d.ts.map +1 -1
  44. package/dist/Query.js +0 -24
  45. package/dist/Query.js.map +1 -1
  46. package/dist/Runtime.d.ts +36 -16
  47. package/dist/Runtime.d.ts.map +1 -1
  48. package/dist/Runtime.js +230 -67
  49. package/dist/Runtime.js.map +1 -1
  50. package/dist/Schedule.d.ts +217 -10
  51. package/dist/Schedule.d.ts.map +1 -1
  52. package/dist/Schedule.js +5 -0
  53. package/dist/Schedule.js.map +1 -1
  54. package/dist/Schema.d.ts +61 -25
  55. package/dist/Schema.d.ts.map +1 -1
  56. package/dist/Schema.js +0 -8
  57. package/dist/Schema.js.map +1 -1
  58. package/dist/System.d.ts +149 -52
  59. package/dist/System.d.ts.map +1 -1
  60. package/dist/System.js +52 -6
  61. package/dist/System.js.map +1 -1
  62. package/dist/index.d.ts +8 -7
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +8 -7
  65. package/dist/index.js.map +1 -1
  66. package/dist/internal/cells.d.ts +3 -3
  67. package/dist/internal/cells.d.ts.map +1 -1
  68. package/dist/internal/cells.js +9 -11
  69. package/dist/internal/cells.js.map +1 -1
  70. package/dist/internal/debug.d.ts +6 -0
  71. package/dist/internal/debug.d.ts.map +1 -1
  72. package/dist/internal/debug.js +95 -1
  73. package/dist/internal/debug.js.map +1 -1
  74. package/dist/internal/game.d.ts.map +1 -1
  75. package/dist/internal/game.js +9 -2
  76. package/dist/internal/game.js.map +1 -1
  77. package/dist/internal/order.d.ts +10 -0
  78. package/dist/internal/order.d.ts.map +1 -0
  79. package/dist/internal/order.js +120 -0
  80. package/dist/internal/order.js.map +1 -0
  81. package/dist/internal/queries.js +2 -2
  82. package/dist/internal/queries.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/Brand.ts +9 -4
  85. package/src/Clock.ts +311 -0
  86. package/src/Command.ts +271 -73
  87. package/src/Debug.ts +111 -10
  88. package/src/Decode.ts +1 -1
  89. package/src/Descriptor.ts +37 -27
  90. package/src/Entity.ts +15 -5
  91. package/src/EntityScope.ts +6 -0
  92. package/src/HostClock.ts +64 -0
  93. package/src/Inspector.ts +7 -2
  94. package/src/Machine.ts +13 -3
  95. package/src/Query.ts +41 -33
  96. package/src/Runtime.ts +273 -91
  97. package/src/Schedule.ts +380 -13
  98. package/src/Schema.ts +70 -41
  99. package/src/System.ts +174 -88
  100. package/src/index.ts +8 -7
  101. package/src/internal/cells.ts +10 -12
  102. package/src/internal/debug.ts +104 -4
  103. package/src/internal/game.ts +11 -3
  104. package/src/internal/order.ts +140 -0
  105. package/src/internal/queries.ts +3 -3
  106. package/dist/Definition.d.ts +0 -99
  107. package/dist/Definition.d.ts.map +0 -1
  108. package/dist/Definition.js +0 -68
  109. package/dist/Definition.js.map +0 -1
  110. package/dist/Feature.d.ts +0 -106
  111. package/dist/Feature.d.ts.map +0 -1
  112. package/dist/Feature.js +0 -87
  113. package/dist/Feature.js.map +0 -1
  114. package/dist/Fx.d.ts +0 -128
  115. package/dist/Fx.d.ts.map +0 -1
  116. package/dist/Fx.js +0 -112
  117. package/dist/Fx.js.map +0 -1
  118. package/dist/internal/definition.d.ts +0 -17
  119. package/dist/internal/definition.d.ts.map +0 -1
  120. package/dist/internal/definition.js +0 -25
  121. package/dist/internal/definition.js.map +0 -1
  122. package/src/Definition.ts +0 -106
  123. package/src/Feature.ts +0 -241
  124. package/src/Fx.ts +0 -176
  125. package/src/internal/definition.ts +0 -56
package/dist/index.js CHANGED
@@ -5,7 +5,8 @@
5
5
  * small number of stable namespaces instead of many deep internal paths.
6
6
  */
7
7
  /**
8
- * Branding helpers for validated values.
8
+ * Branding helpers for packages that author validated value types (like
9
+ * `@typeonce/ritmo-math`). Game code validates through descriptors instead.
9
10
  */
10
11
  export * as Brand from "./Brand.js";
11
12
  /**
@@ -17,13 +18,13 @@ export * as Decode from "./Decode.js";
17
18
  */
18
19
  export * as Debug from "./Debug.js";
19
20
  /**
20
- * Descriptor authoring helpers.
21
+ * Simulation time: the fixed step, the clock resource, durations in whole steps.
21
22
  */
22
- export * as Descriptor from "./Descriptor.js";
23
+ export * as Clock from "./Clock.js";
23
24
  /**
24
- * Reusable validated authored definitions.
25
+ * Descriptor authoring helpers.
25
26
  */
26
- export * as Definition from "./Definition.js";
27
+ export * as Descriptor from "./Descriptor.js";
27
28
  /**
28
29
  * Entity identity and proof helpers.
29
30
  */
@@ -33,9 +34,9 @@ export * as Entity from "./Entity.js";
33
34
  */
34
35
  export * as EntityScope from "./EntityScope.js";
35
36
  /**
36
- * Minimal effect-style computation type.
37
+ * The host's wall clock as an injected contract (`standard`, `test()`).
37
38
  */
38
- export * as Fx from "./Fx.js";
39
+ export * as HostClock from "./HostClock.js";
39
40
  /**
40
41
  * Read-only typed world projections.
41
42
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -15,14 +15,14 @@ import type { EntityRecord, World } from "./world.ts";
15
15
  declare abstract class WriteCellBase<T> {
16
16
  abstract get(): T;
17
17
  abstract set(value: T): void;
18
- setResult<E>(result: Result.Result<T, E>): Result.Result<void, E>;
18
+ /** Writes a validated candidate only on success. Backs `setRaw` / `updateRaw`. */
19
+ writeResult<E>(result: Result.Result<T, E>): Result.Result<void, E>;
19
20
  update(f: (current: T) => T): void;
20
- updateResult<E>(f: (current: T) => Result.Result<T, E>): Result.Result<void, E>;
21
21
  }
22
22
  export declare const componentRead: (record: EntityRecord, ordinal: number) => {
23
23
  get(): unknown;
24
24
  };
25
- export declare const componentWrite: (record: EntityRecord, ordinal: number, world: World, constructor: ResultConstructor<unknown, unknown, unknown> | undefined, state: string | undefined) => WriteCellBase<unknown>;
25
+ export declare const componentWrite: (record: EntityRecord, ordinal: number, world: World, constructor: ResultConstructor<unknown, unknown, unknown> | undefined, entityState: string | undefined) => WriteCellBase<unknown>;
26
26
  export declare const componentOptional: (record: EntityRecord, ordinal: number) => {
27
27
  readonly present: boolean;
28
28
  get(): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"cells.d.ts","sourceRoot":"","sources":["../../src/internal/cells.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGrD;;GAEG;AACH,uBAAe,aAAa,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IACjB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAE5B,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAMhE;IAED,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAEjC;IAED,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAE9E;CACF;AAyHD,eAAO,MAAM,aAAa,WAAY,YAAY,WAAW,MAAM,KAAG;IAAE,GAAG,IAAI,OAAO,CAAA;CAC9C,CAAA;AAExC,eAAO,MAAM,cAAc,WACjB,YAAY,WACX,MAAM,SACR,KAAK,eACC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,SAC9D,MAAM,GAAG,SAAS,KACxB,aAAa,CAAC,OAAO,CAIvB,CAAA;AAED,eAAO,MAAM,iBAAiB,WAAY,YAAY,WAAW,MAAM,KAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,IAAI,OAAO,CAAA;CACzE,CAAA;AAE5C,eAAO,MAAM,SAAS,UAAW,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,MAAM,KAAG;IAAE,GAAG,IAAI,OAAO,CAAA;CACtD,CAAA;AAE/B;;;GAGG;AACH,eAAO,MAAM,UAAU,UACd,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OACtB,MAAM,SACJ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,eAC/B,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,KACpE,aAAa,CAAC,OAAO,CAGvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,QAAQ,MAAM,CAAC,KAAG;IAAE,GAAG,IAAI,CAAC,CAAA;CAAqB,CAAA;AAE9E;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,aACpB,MAAM,OAAO,QAClB,MAAM,CAAC,KACZ;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,IAAI,CAAC,CAAA;CAKtC,CAAA"}
1
+ {"version":3,"file":"cells.d.ts","sourceRoot":"","sources":["../../src/internal/cells.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGrD;;GAEG;AACH,uBAAe,aAAa,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IACjB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAE5B,kFAAkF;IAClF,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAMlE;IAED,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAEjC;CAEF;AAyHD,eAAO,MAAM,aAAa,WAAY,YAAY,WAAW,MAAM,KAAG;IAAE,GAAG,IAAI,OAAO,CAAA;CAC9C,CAAA;AAExC,eAAO,MAAM,cAAc,WACjB,YAAY,WACX,MAAM,SACR,KAAK,eACC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,eACxD,MAAM,GAAG,SAAS,KAC9B,aAAa,CAAC,OAAO,CAIvB,CAAA;AAED,eAAO,MAAM,iBAAiB,WAAY,YAAY,WAAW,MAAM,KAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,IAAI,OAAO,CAAA;CACzE,CAAA;AAE5C,eAAO,MAAM,SAAS,UAAW,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,MAAM,KAAG;IAAE,GAAG,IAAI,OAAO,CAAA;CACtD,CAAA;AAE/B;;;GAGG;AACH,eAAO,MAAM,UAAU,UACd,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OACtB,MAAM,SACJ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,eAC/B,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,KACpE,aAAa,CAAC,OAAO,CAGvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,QAAQ,MAAM,CAAC,KAAG;IAAE,GAAG,IAAI,CAAC,CAAA;CAAqB,CAAA;AAE9E;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,aACpB,MAAM,OAAO,QAClB,MAAM,CAAC,KACZ;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,IAAI,CAAC,CAAA;CAKtC,CAAA"}
@@ -4,7 +4,8 @@ import { ABSENT } from "./world.js";
4
4
  * Validation behavior shared by every writable cell.
5
5
  */
6
6
  class WriteCellBase {
7
- setResult(result) {
7
+ /** Writes a validated candidate only on success. Backs `setRaw` / `updateRaw`. */
8
+ writeResult(result) {
8
9
  if (!result.ok) {
9
10
  return Result.failure(result.error);
10
11
  }
@@ -14,30 +15,27 @@ class WriteCellBase {
14
15
  update(f) {
15
16
  this.set(f(this.get()));
16
17
  }
17
- updateResult(f) {
18
- return this.setResult(f(this.get()));
19
- }
20
18
  }
21
19
  /**
22
20
  * Adds raw-validation helpers for values owned by constructed descriptors.
23
21
  */
24
22
  const withConstructor = (cell, constructor) => Object.assign(cell, {
25
23
  setRaw(raw) {
26
- return cell.setResult(constructor.result(raw));
24
+ return cell.writeResult(constructor.result(raw));
27
25
  },
28
26
  updateRaw(f) {
29
- return cell.setResult(constructor.result(f(cell.get())));
27
+ return cell.writeResult(constructor.result(f(cell.get())));
30
28
  }
31
29
  });
32
30
  /**
33
- * Adds `transition` to the write cell of a state component: a compare-and-set
31
+ * Adds `transition` to the write cell of an entity state component: a compare-and-set
34
32
  * that writes `to` only while the current state is still `from`.
35
33
  */
36
- const withTransition = (cell, state) => Object.assign(cell, {
34
+ const withTransition = (cell, component) => Object.assign(cell, {
37
35
  transition(from, to) {
38
36
  const actual = cell.get();
39
37
  if (actual !== from) {
40
- return Result.failure({ _tag: "StateMismatch", state, expected: from, actual });
38
+ return Result.failure({ _tag: "EntityStateMismatch", component, expected: from, actual });
41
39
  }
42
40
  cell.set(to);
43
41
  return Result.success(undefined);
@@ -115,10 +113,10 @@ class StoreWriteCell extends WriteCellBase {
115
113
  }
116
114
  }
117
115
  export const componentRead = (record, ordinal) => new ComponentReadCell(record, ordinal);
118
- export const componentWrite = (record, ordinal, world, constructor, state) => {
116
+ export const componentWrite = (record, ordinal, world, constructor, entityState) => {
119
117
  const cell = new ComponentWriteCell(record, ordinal, world);
120
118
  const constructed = constructor === undefined ? cell : withConstructor(cell, constructor);
121
- return state === undefined ? constructed : withTransition(constructed, state);
119
+ return entityState === undefined ? constructed : withTransition(constructed, entityState);
122
120
  };
123
121
  export const componentOptional = (record, ordinal) => new OptionalComponentCell(record, ordinal);
124
122
  export const storeRead = (store, key) => new StoreReadCell(store, key);
@@ -1 +1 @@
1
- {"version":3,"file":"cells.js","sourceRoot":"","sources":["../../src/internal/cells.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cells.js","sourceRoot":"","sources":["../../src/internal/cells.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,12 @@ export interface DescribeInput {
24
24
  readonly currentMachine: (machine: Machine.StateMachine.Any) => Machine.StateValue | undefined;
25
25
  readonly providedServices: ReadonlyArray<string>;
26
26
  readonly externallyWrittenEvents: ReadonlySet<string>;
27
+ /** Relations commands have tried to relate or reorder, by the queuing systems. */
28
+ readonly relationMutations: ReadonlyMap<string, ReadonlySet<string>>;
29
+ /** What each system's applied commands did, as `kind:name`; see `Runtime`. */
30
+ readonly commandUses: ReadonlyMap<string, ReadonlySet<string>>;
31
+ /** Systems that ran in this session. */
32
+ readonly ranSystems: ReadonlySet<string>;
27
33
  readonly hasResource: (descriptor: Descriptor.Any) => boolean;
28
34
  readonly schedules: ReadonlyArray<readonly [string, AnySchedule]>;
29
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/internal/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAG7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,KAAK,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAChD,KAAK,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;CAAE,CAAA;AAC3E,KAAK,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE9E,eAAO,MAAM,SAAS,eAAgB,UAAU,CAAC,GAAG,KAAG,KAAK,CAAC,OAGlD,CAAA;AAEX,eAAO,MAAM,eAAe,cAAe,OAAO,CAAC,SAAS,KAAG,MAe9D,CAAA;AAkBD,eAAO,MAAM,sBAAsB,aAAc,kBAAkB,KAAG,MAUrE,CAAA;AAiDD,eAAO,MAAM,cAAc,WAAY,SAAS,cAAc,aAAa,CAAC,MAAM,CAAC,KAAG,KAAK,CAAC,iBAsC3F,CAAA;AAqED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1D,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAA;IAC9F,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrD,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,KAAK,OAAO,CAAA;IAC7D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;CAClE;AAED,eAAO,MAAM,QAAQ,UAAW,aAAa,KAAG,KAAK,CAAC,WA6HrD,CAAA"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/internal/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAG7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,KAAK,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAChD,KAAK,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;CAAE,CAAA;AAC3E,KAAK,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE9E,eAAO,MAAM,SAAS,eAAgB,UAAU,CAAC,GAAG,KAAG,KAAK,CAAC,OAGlD,CAAA;AAEX,eAAO,MAAM,eAAe,cAAe,OAAO,CAAC,SAAS,KAAG,MAe9D,CAAA;AAkBD,eAAO,MAAM,sBAAsB,aAAc,kBAAkB,KAAG,MAUrE,CAAA;AAyED,eAAO,MAAM,cAAc,WAAY,SAAS,cAAc,aAAa,CAAC,MAAM,CAAC,KAAG,KAAK,CAAC,iBA+C3F,CAAA;AAqED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1D,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAA;IAC9F,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrD,kFAAkF;IAClF,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IACpE,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,KAAK,OAAO,CAAA;IAC7D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;CAClE;AAED,eAAO,MAAM,QAAQ,UAAW,aAAa,KAAG,KAAK,CAAC,WAmKrD,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import * as DescriptorModule from "../Descriptor.js";
2
2
  import * as Schedule from "../Schedule.js";
3
+ import * as OrderInternal from "./order.js";
3
4
  export const storageOf = (descriptor) => DescriptorModule.isTransient(descriptor) ? "transient"
4
5
  : DescriptorModule.hasConstructor(descriptor) ? "constructed"
5
6
  : "plain";
@@ -85,6 +86,25 @@ const describeQuery = (slot, query) => {
85
86
  ]
86
87
  };
87
88
  };
89
+ const permissionsOf = (access) => {
90
+ const of = (kind) => [...new Set((access?.permissions ?? []).filter((p) => p.permission === kind).flatMap((p) => p.values.map((value) => value.name)))];
91
+ return {
92
+ spawns: of("spawns"),
93
+ inserts: of("inserts"),
94
+ removes: of("removes"),
95
+ despawns: of("despawns"),
96
+ despawnsScope: of("despawnsScope"),
97
+ relates: of("relates")
98
+ };
99
+ };
100
+ const permissionVerb = {
101
+ spawns: "spawn",
102
+ inserts: "insert",
103
+ removes: "remove",
104
+ despawns: "despawn",
105
+ despawnsScope: "despawn the scope",
106
+ relates: "relate"
107
+ };
88
108
  export const describeSystem = (system, placements) => {
89
109
  const spec = system.spec;
90
110
  const byMode = (record, mode) => Object.values(record).filter((access) => access.mode === mode).map((access) => access.descriptor.name);
@@ -116,7 +136,16 @@ export const describeSystem = (system, placements) => {
116
136
  removed: names(spec.removed, (access) => access.descriptor.name),
117
137
  despawned: Object.keys(spec.despawned).length > 0,
118
138
  relationFailures: names(spec.relationFailures, (access) => access.relation.name),
139
+ thisTick: [
140
+ ...[...Object.values(spec.events), ...Object.values(spec.resources)]
141
+ .filter((access) => access.thisTick === true)
142
+ .map((access) => access.descriptor.name),
143
+ ...Object.entries(spec.queries)
144
+ .filter(([, query]) => query.thisTick === true)
145
+ .map(([slot]) => `queries.${slot}`)
146
+ ],
119
147
  services: names(spec.services, (access) => access.descriptor.name),
148
+ commands: permissionsOf(spec.commands),
120
149
  when: spec.when.map(renderCondition),
121
150
  pauseWhen: spec.pauseWhen.map(renderCondition),
122
151
  local: spec.local !== undefined
@@ -224,6 +253,8 @@ export const describe = (input) => {
224
253
  }
225
254
  for (const name of system.removed)
226
255
  components.read(name, system.name);
256
+ for (const name of [...system.commands.spawns, ...system.commands.inserts, ...system.commands.removes])
257
+ components.write(name, system.name);
227
258
  for (const name of system.resources.reads)
228
259
  resources.read(name, system.name);
229
260
  for (const name of system.resources.writes)
@@ -271,7 +302,49 @@ export const describe = (input) => {
271
302
  });
272
303
  }
273
304
  }
305
+ const failureReaders = new Set(systems.flatMap((system) => system.relationFailures));
306
+ // Declared `relates` permissions, and relations that commands were seen to relate (drafts relate without one).
307
+ const relaters = new Map();
308
+ for (const system of systems) {
309
+ for (const name of system.commands.relates)
310
+ relaters.set(name, new Set([...(relaters.get(name) ?? []), system.name]));
311
+ }
312
+ for (const [name, queuers] of input.relationMutations)
313
+ relaters.set(name, new Set([...(relaters.get(name) ?? []), ...queuers]));
314
+ for (const [name, queuers] of relaters) {
315
+ if (failureReaders.has(name))
316
+ continue;
317
+ lints.push({
318
+ severity: "warning",
319
+ code: "relation-failure-never-read",
320
+ subject: name,
321
+ message: `${name} is related by commands from ${[...queuers].sort().join(", ")}, but no described system reads its failures (Game.System.readRelationFailures(${name})), so a failed relate or reorder is dropped silently`
322
+ });
323
+ }
274
324
  lints.push(...readBeforeWriteLints(schedules, described, input.externallyWrittenEvents));
325
+ // Each named schedule is checked as one tick; `tick` checks this at compile time.
326
+ for (const [name, schedule] of input.schedules) {
327
+ for (const issue of OrderInternal.tickOrderIssues(schedule.steps)) {
328
+ lints.push({ severity: "warning", code: "this-tick-order", subject: issue.data, message: `in ${name}, ${issue.message}` });
329
+ }
330
+ }
331
+ // Observed with debug: only systems that ran, so an unplayed session reports nothing.
332
+ for (const system of systems) {
333
+ if (!input.ranSystems.has(system.name))
334
+ continue;
335
+ const uses = input.commandUses.get(system.name) ?? new Set();
336
+ for (const kind of Object.keys(permissionVerb)) {
337
+ const unused = system.commands[kind].filter((name) => !uses.has(`${kind}:${name}`));
338
+ if (unused.length === 0)
339
+ continue;
340
+ lints.push({
341
+ severity: "info",
342
+ code: "command-permission-unused",
343
+ subject: system.name,
344
+ message: `${system.name} may ${permissionVerb[kind]} ${unused.join(", ")} but never did in this session`
345
+ });
346
+ }
347
+ }
275
348
  for (const entry of components.list()) {
276
349
  if (entry.writers.length > 0 && entry.readers.every((reader) => entry.writers.includes(reader))) {
277
350
  lints.push({
@@ -312,9 +385,30 @@ export const describe = (input) => {
312
385
  resources: resources.list(),
313
386
  events: events.list()
314
387
  },
315
- lints
388
+ lints: lints.map((lint) => ({ ...lint, fix: fixFor(lint.code, lint.subject) }))
316
389
  };
317
390
  };
391
+ /** The fix each lint names, by code. */
392
+ const fixFor = (code, subject) => {
393
+ switch (code) {
394
+ case "event-never-read":
395
+ return `read ${subject} in a system with Game.System.readEvent, or stop emitting it; if only a render schedule reads it, pass that schedule as describe-only`;
396
+ case "event-never-written":
397
+ return `emit ${subject} from a system with Game.System.writeEvent, or stop reading it; if the host sends it with runtime.send, declare it (debug.declareHostEvents, or hostEvents in a Session or lint target)`;
398
+ case "next-state-never-applied":
399
+ return `add Game.Schedule.applyStateTransitions(...) to a schedule that runs after the system that queues ${subject}`;
400
+ case "relation-failure-never-read":
401
+ return `read the failures with Game.System.readRelationFailures(${subject}) in a system and handle them`;
402
+ case "this-tick-order":
403
+ return "move the writer before the reader in the schedule (the message names both), or read without Game.System.thisTick";
404
+ case "component-never-read":
405
+ return `fine if ${subject} is read outside the described schedules (rendering, inspectors); otherwise stop writing it`;
406
+ case "command-permission-unused":
407
+ return `fine if the session did not reach the case where ${subject} uses it; otherwise drop the permission from its Game.System.commands(...)`;
408
+ case "read-before-write":
409
+ return "fine when a one-run lag is intended (input before movement); otherwise move the reader after the writer, or read with Game.System.thisTick to make it an error";
410
+ }
411
+ };
318
412
  /** What a system reads and writes, per kind. `with`/`without` filters test presence and are not reads. */
319
413
  const accessesOf = (system) => ({
320
414
  component: {
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/internal/debug.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,gBAAgB,MAAM,kBAAkB,CAAA;AAMpD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAQ1C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAA0B,EAAiB,EAAE,CACrE,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW;IACtD,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa;QAC7D,CAAC,CAAC,OAAO,CAAA;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA4B,EAAU,EAAE;IACtE,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,SAAS;YACZ,OAAO,WAAW,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAA;QACxE,KAAK,cAAc;YACjB,OAAO,gBAAgB,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,CAAA;QAClD,KAAK,KAAK;YACR,OAAO,OAAO,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAA;QACvD,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChE,KAAK,IAAI;YACP,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;QACtE,KAAK,OAAO;YACV,OAAO,SAAS,SAAS,CAAC,IAAI,GAAG,CAAA;IACrC,CAAC;AACH,CAAC,CAAA;AAED,iFAAiF;AACjF,MAAM,QAAQ,GAAG,CAAC,UAA4C,EAAiC,EAAE,CAC/F,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAiC,EAAE;IAC9D,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,CAAC,SAAS,CAAC,CAAA;QACpB,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QACxC,KAAK,KAAK,CAAC;QACX,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACvC;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAA4B,EAAU,EAAE;IAC7E,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAA;IAC/D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,WAAW,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAA;QACpD,KAAK,MAAM;YACT,OAAO,UAAU,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAA;QACnD,KAAK,YAAY;YACf,OAAO,gBAAgB,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,GAAG,CAAA;IAC1E,CAAC;AACH,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CAAI,MAAyB,EAAE,IAA0B,EAAiB,EAAE,CACxF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAEjC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,KAA2B,EAA0B,EAAE;IAC1F,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAClC,MAAM,SAAS,GAAkB,EAAE,CAAA;IACnC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAA6H,EAAE,CAAC;QAChL,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,GAAG,CAAA;QAC3E,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAChB,MAAK;YACP,KAAK,OAAO;gBACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACjB,MAAK;YACP,KAAK,UAAU;gBACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACnB,MAAK;YACP;gBACE,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,CAAC,IAA0C,EAAE,KAAa,EAAE,EAAE,CAClF,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IACrD,OAAO;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3D,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QACxG,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5G,SAAS,EAAE;YACT,GAAG,SAAS;YACZ,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC;YAC7C,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC;YACnD,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;YAClD,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC;SACzD;KACF,CAAA;AACH,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAiB,EAAE,UAAiC,EAA2B,EAAE;IAC9G,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,MAAM,MAAM,GAAG,CAAC,MAA4B,EAAE,IAAsB,EAAE,EAAE,CACtE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACxG,MAAM,WAAW,GAAG,CAAC,MAAsD,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAA;IACnG,4DAA4D;IAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAI,IAAI,CAAC,IAAyC,EAAE,GAAI,IAAI,CAAC,SAA8C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrJ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAG,KAAK,CAAC,UAA4C,CAAC,MAAM,CAAC,IAAI;KACtE,CAAC,CAAC,CAAA;IACH,MAAM,MAAM,GAAG,CAAC,MAA6B,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACtE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU;QACV,OAAO,EAAE;YACP,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAA+C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1H,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAA+C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;SAC3J;QACD,SAAS,EAAE;YACT,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACtH,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;SACxC;QACD,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;QACpF,QAAQ,EAAE;YACR,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5H,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;YAC3C,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;YACjD,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC;SAC5D;QACD,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAkE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3H,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QACjD,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgF,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChJ,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAmE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7H,IAAI,EAAG,IAAI,CAAC,IAAyC,CAAC,GAAG,CAAC,eAAe,CAAC;QAC1E,SAAS,EAAG,IAAI,CAAC,SAA8C,CAAC,GAAG,CAAC,eAAe,CAAC;QACpF,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;KAChC,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CACvB,KAAoD,EACL,EAAE;IACjD,MAAM,MAAM,GAA0C,EAAE,CAAA;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAA;IACnC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,QAAqB,EAAE,EAAE;QACpD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAM;QAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAClB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC7B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAA4C,EAAE,CAAC;oBAC7E,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,IAA2B,EAAyB,EAAE;IAC1E,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;IACnE,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,SAAS,EAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAuC,CAAC,GAAG,CAAC,sBAAsB,CAAC;KAC3G,CAAA;AACH,CAAC,CAAA;AAED,MAAM,KAAK;IACQ,OAAO,GAAG,IAAI,GAAG,EAA0D,CAAA;IAE5F,YAAY,KAA4B;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IAEO,KAAK,CAAC,IAAY;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;YAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,MAAc;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,MAAc;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI;YACJ,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAC3B,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;SAC5B,CAAC,CAAC,CAAA;IACL,CAAC;CACF;AAYD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAqB,EAAE;IAClE,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAkC,CAAA;IACpG,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAkC,CAAA;IAClG,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAkC,CAAA;IAC5F,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAyC,CAAA;IAE/F,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAA;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QACzC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;gBAAE,OAAM;YACxC,MAAM,MAAM,GAAG,IAAiB,CAAA;YAChC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACnC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAA;YACpC,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;gBACzB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAU,CAAC,CAAC,CAAA;IACrH,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;IAEvC,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACvF,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACrF,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAA;IACnD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,uBAAuB;QAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACpF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YACpC,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;gBAClC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACrE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK;YAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM;YAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACtE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACxE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpC,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;;gBACxE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CACzD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC,CAAA;IAEvG,MAAM,KAAK,GAAsB,EAAE,CAAA;IACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,KAAK,CAAC,IAAI;oBACnB,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC;iBACpG,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,KAAK,CAAC,IAAI;oBACnB,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC;iBACjG,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,8FAA8F;iBAClK,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAA;QACxF,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAChG,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,KAAK,CAAC,IAAI;oBACnB,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC;iBACzG,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjH,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;YAC9B,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC;SACvC,CAAC,CAAC;QACH,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,QAAQ,CAAC,YAAY;YAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;SACvC,CAAC,CAAC;QACH,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC;QAC3D,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACnG,OAAO;QACP,MAAM,EAAE;YACN,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE;YAC7B,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;YAC3B,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;SACtB;QACD,KAAK;KACN,CAAA;AACH,CAAC,CAAA;AAID,0GAA0G;AAC1G,MAAM,UAAU,GAAG,CAAC,MAA+B,EAAwD,EAAE,CAAC,CAAC;IAC7G,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/G,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;KACxD;IACD,QAAQ,EAAE,MAAM,CAAC,SAAS;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAC3B,SAAwD,EACxD,SAA0D,EAC1D,uBAA4C,EACzB,EAAE;IACrB,MAAM,KAAK,GAAsB,EAAE,CAAA;IACnC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5C,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,IAAiB,CAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAiB,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC9I,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAU,EAAE,CAAC;YAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;YAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM;oBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;wBAAE,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAClH,CAAC,CAAC,CAAA;YACF,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,WAAW,EAAE,CAAC;gBACjD,IAAI,IAAI,KAAK,OAAO,IAAI,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,SAAQ;gBACtE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;yBACpD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;yBAC9G,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAE,CAAC,MAAM,CAAC,IAAI,CAAA;gBAC9C,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,sBAAsB,CAAC,CAAC,CAAC,OAAO,OAAO,8BAA8B,CAAA;gBAC/G,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,mBAAmB;oBACzB,OAAO;oBACP,OAAO,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,MAAM,WAAW,OAAO,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE;iBACtL,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CACvB,QAA+B,EAC/B,OAA+C,EACd,EAAE;IACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/E,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9E,CAAC,CAAA"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/internal/debug.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/internal/game.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG1C,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,SAAS,IAAI,KAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CA8GhG,CAAA"}
1
+ {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/internal/game.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG1C,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,SAAS,IAAI,KAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAqHhG,CAAA"}
@@ -48,9 +48,8 @@ export const makeGame = (schema, _root) => {
48
48
  }),
49
49
  Command: {
50
50
  spawn: Command.spawn,
51
- insert: Command.insert,
51
+ extend: Command.extend,
52
52
  entry: Command.entry,
53
- entryResult: Command.entryResult,
54
53
  entryRaw: Command.entryRaw,
55
54
  relate: Command.relate
56
55
  },
@@ -68,6 +67,14 @@ export const makeGame = (schema, _root) => {
68
67
  writeResource: System.writeResource,
69
68
  readEvent: System.readEvent,
70
69
  writeEvent: System.writeEvent,
70
+ thisTick: System.thisTick,
71
+ commands: Command.commands,
72
+ spawns: Command.spawns,
73
+ inserts: Command.inserts,
74
+ removes: Command.removes,
75
+ despawns: Command.despawns,
76
+ despawnsScope: Command.despawnsScope,
77
+ relates: Command.relates,
71
78
  service: System.service,
72
79
  machine: System.machine,
73
80
  nextState: System.nextState,
@@ -1 +1 @@
1
- {"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/internal/game.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/internal/game.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as Schedule from "../Schedule.ts";
2
+ type OrderIssue = Schedule.OrderIssue;
3
+ /**
4
+ * Checks the systems of one tick, in the order they run. A read with no
5
+ * writer in the tick is fine (a reused reader); `event-never-written` covers
6
+ * a writer missing everywhere.
7
+ */
8
+ export declare const tickOrderIssues: (steps: ReadonlyArray<Schedule.ScheduleStep>) => ReadonlyArray<OrderIssue>;
9
+ export {};
10
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/internal/order.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAI1C,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;AAiErC;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAW,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAG,aAAa,CAAC,UAAU,CAOrG,CAAA"}
@@ -0,0 +1,120 @@
1
+ import * as Schedule from "../Schedule.js";
2
+ const accesses = (system) => [
3
+ ...Object.values(system.spec.events),
4
+ ...Object.values(system.spec.resources)
5
+ ];
6
+ const sameData = (left, right) => left.kind === right.kind && left.name === right.name;
7
+ const sameSystem = (left, right) => (left.base ?? left) === (right.base ?? right);
8
+ /**
9
+ * The positions of a tick, flattened: an `applyStateTransitions(...)` step
10
+ * applies queued commands, then runs every schedule of its bundle (as if
11
+ * each may run), markers inside them included.
12
+ */
13
+ const flatten = (steps) => steps.flatMap((step) => {
14
+ if (Schedule.isSystemStep(step))
15
+ return [{ kind: "system", system: step }];
16
+ if (step.kind === "applyDeferred")
17
+ return [{ kind: "flush" }];
18
+ const bundle = step.bundle;
19
+ return [{ kind: "flush" }, ...(bundle?.entries ?? []).flatMap((entry) => flatten(entry.steps))];
20
+ });
21
+ const permissionNames = (system, kind) => {
22
+ const commands = system.spec.commands;
23
+ return new Set((commands?.permissions ?? []).filter((p) => p.permission === kind).flatMap((p) => p.values.map((value) => value.name)));
24
+ };
25
+ /**
26
+ * Whether a system's declared commands can change what a query sees: spawns
27
+ * covering every component it requires, or inserts / removes of any
28
+ * component it names. Despawns never count.
29
+ */
30
+ const changesQuery = (system, query) => {
31
+ const slots = Object.values(query.selection);
32
+ const required = [
33
+ ...slots.filter((slot) => slot.mode === "read" || slot.mode === "write").flatMap((slot) => slot.descriptor ? [slot.descriptor.name] : []),
34
+ ...query.with.map((d) => d.name)
35
+ ];
36
+ const named = new Set([
37
+ ...slots.flatMap((slot) => slot.descriptor ? [slot.descriptor.name] : []),
38
+ ...query.with.map((d) => d.name),
39
+ ...query.without.map((d) => d.name),
40
+ ...query.filters.flatMap((filter) => filter.descriptor ? [filter.descriptor.name] : [])
41
+ ]);
42
+ const changes = [...permissionNames(system, "inserts"), ...permissionNames(system, "removes")];
43
+ if (changes.some((name) => named.has(name)))
44
+ return true;
45
+ const spawns = permissionNames(system, "spawns");
46
+ return spawns.size > 0 && required.every((name) => spawns.has(name));
47
+ };
48
+ /**
49
+ * Checks the systems of one tick, in the order they run. A read with no
50
+ * writer in the tick is fine (a reused reader); `event-never-written` covers
51
+ * a writer missing everywhere.
52
+ */
53
+ export const tickOrderIssues = (steps) => {
54
+ // A schedule's steps never change, so `tryTick` checks each schedule once.
55
+ const cached = checked.get(steps);
56
+ if (cached !== undefined)
57
+ return cached;
58
+ const issues = computeIssues(steps);
59
+ checked.set(steps, issues);
60
+ return issues;
61
+ };
62
+ const checked = new WeakMap();
63
+ const computeIssues = (steps) => {
64
+ const items = flatten(steps);
65
+ const issues = [];
66
+ const systemsAt = items.flatMap((item, at) => item.kind === "system" ? [{ system: item.system, at }] : []);
67
+ for (const { system: reader, at: index } of systemsAt) {
68
+ for (const read of accesses(reader)) {
69
+ if (read.mode !== "read" || read.thisTick !== true)
70
+ continue;
71
+ const data = read.descriptor.name;
72
+ for (const { system, at } of systemsAt) {
73
+ if (at <= index || sameSystem(system, reader))
74
+ continue;
75
+ if (!accesses(system).some((access) => access.mode === "write" && sameData(access.descriptor, read.descriptor)))
76
+ continue;
77
+ issues.push({
78
+ kind: "lateWriter",
79
+ reader: reader.name,
80
+ data,
81
+ writer: system.name,
82
+ message: `${reader.name} needs ${data} from this tick, but its writer ${system.name} runs after it: move ${system.name} before ${reader.name}, or read ${data} without thisTick`
83
+ });
84
+ }
85
+ }
86
+ for (const [slot, query] of Object.entries(reader.spec.queries)) {
87
+ if (query.thisTick !== true)
88
+ continue;
89
+ const data = `queries.${slot}`;
90
+ let lastFlush = -1;
91
+ for (let at = 0; at < index; at++)
92
+ if (items[at].kind === "flush")
93
+ lastFlush = at;
94
+ for (const { system, at } of systemsAt) {
95
+ if (sameSystem(system, reader) || !changesQuery(system, query))
96
+ continue;
97
+ if (at > index) {
98
+ issues.push({
99
+ kind: "lateWriter",
100
+ reader: reader.name,
101
+ data,
102
+ writer: system.name,
103
+ message: `${system.name} queues commands that ${reader.name} needs this tick (${data}), but it runs after ${reader.name}: move ${system.name} before the applyDeferred() that precedes ${reader.name}, or read ${data} without thisTick`
104
+ });
105
+ }
106
+ else if (at > lastFlush && at < index) {
107
+ issues.push({
108
+ kind: "unflushedWriter",
109
+ reader: reader.name,
110
+ data,
111
+ writer: system.name,
112
+ message: `${reader.name} needs this tick's commands for ${data}, but ${system.name} queues them with no applyDeferred() in between: add Game.Schedule.applyDeferred() after ${system.name}`
113
+ });
114
+ }
115
+ }
116
+ }
117
+ }
118
+ return issues;
119
+ };
120
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/internal/order.ts"],"names":[],"mappings":"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"}